哈工大电子信息工程学院单片机软件实验报告2016_张迎新版

合集下载

关于单片机实训报告万能【六篇】

关于单片机实训报告万能【六篇】

关于单片机实训报告万能【六篇】【篇1】单片机实训报告万能通过今次单片机实训,使我对单片机的认识有了更深刻的理解。

系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。

由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。

例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。

踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。

当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。

我相信其中的酸甜苦辣最终都会化为甜美的甘泉。

但在这次实训中同时使我对汇编语言有了更深的认识。

当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。

这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。

这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。

希望这次的经历能让我在以后学习中激励我继续进步。

【篇2】单片机实训报告万能通过这一个学期的单片机学习,我收获了很多关于单片机的知识,并且这些知识和日常的生活息息相关。

了解了一些简单程序的录入,LED显示器、键盘、和显示器的应用和原理。

LED显示器:LED显示器是由发光二管组成显示字段的器件。

通常的8段LED显示器是由8个发光二极管组成,LED显示器分共阳极和共阴极两种。

有段选码和和位选码。

当LED显示器每段的平均电流位5MA时,就有较满意的亮度,一般选择断码5-10MA 电流;位线的电流应选择40-80MA。

LED显示器的显示方式有动态和静态两种。

7289A芯片是具有SPI串行接口功能的显示键盘控制芯片,它可同时取得8位共阴极数码管和64个键的键盘矩阵。

单片机实训报告范文精选5篇精选

单片机实训报告范文精选5篇精选

单片机实训报告范文精选5篇实训报告是展示本身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。

单片机课程设计心得体会在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我理解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。

通过在单片机小组里的学习我简单总结了几点心得和体会:第一:万事开头难,要英勇的迈出第一步,不要总找借口说没有学习过就总推脱。

凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。

可以从建工程开始,然后可以找一个简单的小程序先把它敲进单片机内然他运转起来,感受一下单片机的运转,让本人理解单片机整个运转。

第二:关于知识点,学过的要掌握结实,关于没有学的和临时用不到的先不用学习。

比方:小灯得点亮就没有用到中断可以先不用看。

如此可以防止知识过多记不住的苦恼。

关于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进展学习如此才能掌握的特别牢靠,当用到哪里的知识点不记得了可以去看书,关于用不到的可以不去看。

第三:程序不要只是看别人得,一定要本人写过才是本人的。

开始不明白可以参考别人的,看看每一句代表着什么意思,可以实现什么现象。

明白之后本人再重新写一遍,你会觉观察别人的能明白到本人写的时候特别困难。

当你本人能写出来的时候说明你真明白了。

第四:一定要学会程序调试的方法。

有时候把程序写完了然后运转时不能实现理想的现象。

这时有人就晕了不知该如何办,然后就去征询别人。

当别人找出征询题出在哪里时就会恍然大悟。

事实受骗遇到征询题一定要本人尝试着处理,不能遇到征询题就去征询别人。

本人一定要掌握处理征询的方法和思路。

第五:在学习初期看别人的代码,学习别人的思路这个特别有用。

通过看别人的代码特别是有多年编程经历的人的程序,可以迅速提高本人的编程水平。

单片机实验报告

单片机实验报告

单片机实验报告第一篇:单片机实验报告单片机实验报告一、实验目的1.熟练使用Keil、Protues两款软件2.通过上机操作,增强个人动手实践能力3.加深对理论知识的理解4.培养运用汇编语言进行初步编写程序的能力二、实验内容1.将片外RAM3050-306FH中数据转移至片内70-8FH中。

要求:可以从Keil或Protues上看到RAM的数据转移结果。

2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮。

要求:开发板或Prrotues演示3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术。

要求:在Keil或Protues上看到数据转换结果。

4.各使用中断方式和查询方式设计一个方波发生器,频率为50HZ。

要求:Protues使软件间示波器显示方波。

三、实验程序1.将片外RAM3050-306FH中数据转移至片内70-8FH中ORG 0000H AJMP MAIN 上电,转向主程序ORG 0030H 主程序入口MAIN: MOV DPTR,#3050H 数据指针指向地址3050H MOV A,#04H 将立即数04H送A寄存器MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 数据指针DPTR自加一DJNZ R0,NEXT 判断是否跳转到NEXT或继续向下执行MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1SJMP $ 等待END 2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮ORG 0000H SJMP MAIN 上电,转向主程序ORG 0003H 外部中断0向量入口AJMP INSER ORG 0030H 主程序入口MAIN: SETB EX0 SETB IT0SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或继续向下执行RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP 允许外部中断0中断选择边沿触发方式开中断等待中断设置循环次数赋初值,设置高电平亮将初值送往P2口延时左移一位判断循环次数,是否跳转到中断返回延时程序DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术 ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 将立即数50H转送内存单元80H MOV A,80H 将内存单元80H中的内容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器内容加指针偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中断方式产生50HZ方波ORG 0000HAJMP MAINORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 设置定时器工作模式为模式1 MOV TH1,#0D8H 装入T1计数初值MOV TL1,#0F0HSETB ET1 开中断SETB EA CPU开中断SETB TR1 启动定时器T1 HERE: SJMP HERE 等待中断ORG 001BH T1中断向量地址CLR TF1 将TF1清零CPL P2.0 P2.0取反输出MOV TH1,#0D8H 重装初值MOV TH0,#0F0HRETI;中断返回END 4.2 查询方式产生50HZ方波ORG 0000HAJMP MAINORG 0030H 主程序入口MAIN: MOV TMOD,#10H 设置定时器的工作模式为模式1 SETB TR1 启动定时器T1 LOOP: MOV TH1,#0D8H 装入T1计数初值MOV TH0,#0F0H JNB TF1,$ T1没有溢出则等待CLR TF1产生溢出,清标志位CPL P2.0 P2.0取反输出SJMP LOOP 循环END四、实验结果截图1.23.4.14.2第二篇:单片机实验报告实验四、中断交通灯实验林立强1000850116一、实验目的1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。

单片机实训报告范本(WORD档)11页word

单片机实训报告范本(WORD档)11页word

单片机实训报告题目:《单片机原理与应用》学院:电子信息工程学院专业:光电子技术学生姓名:学号:指导老师:日期: 2013年5月10日一、硬件系统:实验板的系统组成:1.8路跑马灯2.动态扫描共阳型数码管3.4x4矩阵键盘4.4路独立键盘5.蜂鸣器6.温度传感器DS18B207.I2C通信方式的EEPROM芯片24C02二、开发软件KEILC、下载软件:1、Keil C u Vision2使用说明(1)打开u Vision2(2)新建工程:菜单【Project】_>【New Project】选择工程存放路径,并输入工程文件名,然后点“保存”。

2、进入器件选择界面数列表框内选择“Atmel”_>”AT89s52”,然后点“确定”完成器件选择。

(1)编辑源程序:新建文件:菜单【File】_>【New…】。

然后输入代码存入硬盘。

C源文件存为.C后缀,汇编源文件存为.a或.src后缀,并存放在同一个工程文件夹下。

(2)加入源文件到工程中:在左边浮动窗口【file】选项卡里展开“Target 1”树,在“Source Group 1”上右键单击,弹出菜单,选【Add File to Group “Source Group 1”】,选择需要加入的源文件,点“Add”按钮加入,加入完成后按“Close”关闭。

(1)设置编译选项:先选中左边浮动窗口【File】选项卡里“Target 1”树节点,然后选菜单【Project】_>【Options for Target“Target 1”】。

(2)在弹出的“Options for Target “Target 1””对话框中选择【output】选项卡,勾选“Greate HEX File”,然后按“确定”完成设置。

(3)按“F7”开始编译,编译成功后会在工程文件夹内生成.hex目标文件生成的.hex文件就可以用来对AT89S52芯片进行编程和运行了。

单片机实训报告优选范文5篇分享

单片机实训报告优选范文5篇分享

单片机实训报告优选范文5篇分享单片)是一种集成电路芯片,是具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

下面就是小编给大家带来的单片机实训报告优选范文5篇分享,希望大家喜欢!单片机实训报告范文(一)前言一周的单片机实训很快就结束咯,在这一周的时间里,我学到了很多关于单片机各方面的知识。

老师在实训课中也教会咯我们很多关于单片机软件编程与硬件设施的知识。

一周的实训中我们一共实训咯好几个项目,通过这几个项目的实训,我们掌握咯一些单片机的汇编语言和硬件调试,达到了很好的效果。

一周时间实训过后,我把之前在课堂上不懂的知识点,通过实际操作的练习,我都搞明白咯。

当然在实训过程中也遇到咯很多问题,就是有时在调试方面不能调试成功,有时程序是没有错误,但是就是调试不好,一直找原因也找不出是什么原因。

希望以后能够拥有更多的实训时间和机会学习单片机。

实训任务一一、实验目的熟悉Keil C51集成开发环境的使用方法二、实验设备及器件IBM PC机三、实验内容按照本书的第2章的2.1节到2.4节内容进行Keil C51集成开发环境的安装和使用练习。

然后按照以下内容建立文件并编译产生HEX文件。

ORG 8000HLJMP MainORG 80F0HMain:MOV R7,#0LOOP:MOV R6,#0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOP ;延时一台CPL P1.0CPL P1.1CPL P1.2CPL P1.3CPL P1.4CPL P1.5CPL P1.6CPL P1.7SJMP MainEND ;P1.0取反 ;P1.1取反 ;P1.2取反 ;P1.3取反 ;P1.4取反 ;P1.5取反 ;P1.6取反 ;P1.7取反通过该程序实现八盏灯的同时亮和同时灭的功能,更好的掌握汇编指令。

单片机项目开发实训报告

单片机项目开发实训报告

一、引言单片机作为现代电子系统中的核心组成部分,具有体积小、功耗低、功能强大等特点。

为了提高自己的实际动手能力和工程实践能力,我参加了单片机项目开发实训。

通过本次实训,我深入了解了单片机的基本原理、编程方法以及在实际项目中的应用,积累了宝贵的实践经验。

二、实训内容1. 实训环境本次实训所使用的开发环境为Keil uVision5,单片机为STC89C52R。

此外,还配备了数码管、按键、蜂鸣器、LCD1602显示屏等外围设备。

2. 实训项目本次实训主要完成以下项目:(1)基于STC89C52R单片机的抢答器显示系统该系统主要由LCD1602显示屏、数码管、后台数码显示器、按键等部分组成。

通过串口通信实现与后台数码显示器的数据交互,以扩展显示功能。

抢答器通过4个按键实现,使用Proteus仿真软件进行展示。

(2)基于STM32 103vetx LQFP100单片机的心率监测系统该系统利用M3主控模块和心率传感器M20,实时监测心率变化,并通过流水灯速度控制心率快慢。

同时,实现按键控制蜂鸣器响声频率和持续时间。

三、实训过程及心得1. 抢答器显示系统(1)设计思路首先,对系统需求进行分析,明确抢答器显示系统的功能模块。

然后,根据模块功能设计电路图,编写程序实现各个模块的功能。

(2)编程实现在Keil uVision5中创建工程,添加相应的头文件和库文件。

编写主函数,初始化外部设备,实现按键扫描、数码管显示、LCD1602显示等功能。

最后,进行调试和仿真。

(3)心得体会通过抢答器显示系统的设计,我学会了如何进行需求分析、电路设计、程序编写和调试。

同时,对串口通信、中断处理等知识点有了更深入的理解。

2. 心率监测系统(1)设计思路心率监测系统主要由心率传感器、M3主控模块、流水灯、蜂鸣器等组成。

根据心率变化实时调整流水灯速度,并通过按键控制蜂鸣器响声频率和持续时间。

(2)编程实现在Keil uVision5中创建工程,添加相应的头文件和库文件。

单片机实验报告

单片机实验报告

单片机实验报告一、实验目的本次单片机实验的主要目的是通过实际操作和编程,深入了解单片机的工作原理和应用,掌握单片机系统的设计、开发和调试方法,提高自身的动手能力和解决问题的能力。

二、实验设备1、单片机开发板2、计算机3、编程软件(如 Keil)4、下载器5、示波器6、万用表三、实验内容1、点亮 LED 灯通过编写简单的程序,控制单片机的引脚输出高低电平,从而点亮或熄灭连接在该引脚上的 LED 灯。

这是单片机最基础的操作之一,旨在熟悉单片机的编程环境和引脚控制方式。

2、数码管显示利用单片机驱动数码管,实现数字的显示。

需要了解数码管的工作原理和驱动方式,通过编程控制数码管的段选和位选信号,显示不同的数字。

3、按键输入设计按键电路,通过读取按键的状态,实现对单片机系统的输入控制。

例如,通过按键切换不同的显示模式或控制其他外部设备。

4、定时器/计数器应用使用单片机的定时器/计数器功能,实现定时、计数等操作。

例如,设计一个定时闪烁的 LED 灯,或者通过计数器统计外部脉冲的个数。

5、串口通信实现单片机与计算机之间的串口通信,将单片机采集到的数据发送到计算机上进行显示和处理,或者接收计算机发送的指令对单片机系统进行控制。

四、实验原理1、单片机的基本结构单片机通常由中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入输出接口(I/O 口)、定时器/计数器、中断系统等部分组成。

2、编程语言本次实验采用 C 语言进行编程。

C 语言具有简洁、高效、可移植性强等优点,非常适合单片机的开发。

3、引脚功能单片机的引脚分为电源引脚、时钟引脚、复位引脚、I/O 引脚等。

通过对这些引脚的合理配置和控制,可以实现各种功能。

4、数码管驱动原理数码管分为共阴极和共阳极两种类型。

通过控制数码管的段选和位选信号,可以使数码管显示不同的数字和字符。

5、按键检测原理按键通常采用上拉电阻或下拉电阻的方式连接到单片机的I/O 引脚。

哈尔滨工业大学单片机实验报告-图文(精)

哈尔滨工业大学单片机实验报告-图文(精)

哈尔滨工业大学单片机实验报告-图文(精)H a r b i n I n s t i t u t e o f T e c h n o l o g y 单片机原理与应用实验报告学生姓名:学号:班级:通信工程专业:任课教师:所在单位:电子与信息工程学院2013年5月在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。

实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。

二、实验内容把2000~20FFh的内容清零。

三、程序框图四、实验过程1、LED环境⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。

⑵在“P.”状态下键入0640,然后按“STEP”或“EXEC”进入实验项目的调试与运行。

在与PC联机状态下,编译、连接、下载PH51\se01.asm,用连续或单步方式运行程序。

3、运行结果检查⑴在单步运行时,每走一步可观察其运行结果。

⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2000~20FFH中执行程序前后的内容变化。

五、实验结果及分析实验前截图:实验后截图:实验源程序:ORG 0640HSE01: MOV R0,#00HMOV DPTR,#2000H ;(2000H送DPTR LOO1: MOVX @DPTR,A ;0送(DPTR INC DPTR ;DPTR+1INC R0 ;字节数加1CJNE R0,#00H,LOO1 ;不到FF个字节再清SJMP $END实验问题:2000H~20FFh中的内容是什么?解答:实验运行之前,2000H~20FFh中的内容是随机分配的;在执行完清零程序之后,2000H~20FFh中的内容都变为0.实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;===============================================
; RESET and INTERRUPT VECTORS
;===============================================
; Reset Vector
org 0000h
jmp Start
ACALL SP1
MOV 30H,A
MOV A,#9FH
ANL A,#0FH
ACALL SP1
MOV 31H,A
SP1:
ADD A,#02H
MOVC A,A+PC
MOV R0,A
RET
TAB:
DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H
; RESET and INTERRUPT VECTORS
;===============================================
; Reset Vector
org 0000h
jmp Start
;===============================================
2.将2040H地址开始的20个字节传送到以0030H开始的目的地址。
实验问答:
3.简述MOVX两组指令,并说明其作用及区别。
MOVX A,Ri将Ri指向的片外8位数据送入A
MOVX A,DPTR将DPTR指向的片外16位数据送入A
MOVX Ri,A将累加器数据送入片外8位地址
MOVX DPTR,A将累加器数据送入片外16位地址
ANL A,#0FH
MOV 31H,A
MOV A,40H
ANL A,#0FH
MOV 32H,A
MOV A,31H
SWAP A
MOV R6,A
MOV A,32H
ORL A,R6
MOV 30H,A
;===============================================
END

学号:
;===============================================
; RESET and INTERRUPT VECTORS
;===============================================
; Reset Vector
org 0000h
jmp Start
;===============================================
; CODE SEGMENT
;===============================================
org 0100h
Start:
MOV A,#9FH
SWAP A
ANL A,#0FH
;===============================================
; VARIABLES
;===============================================
;===============================================
; CODE SEGMENT
;===============================================
org 0100h
Start:
MOV R1,#0B0H
MOV R2,#10H
LP1:
MOV R1,#00H
INC R1
DJNZ R2,LP1
MOV R0,#0B9H
MOV R0,#01H
; CODE SEGMENT
;===============================================
org 0100h
Start:
MOV R1,#20H
MOV A,#55H
MOV R0,#90H
LP1:
MOV R0,A
INC R0
DJNZ R1,LP1
MOV R2,#10H
MOV A,#00H
Loop:
jmp Loop
;===============================================
END

学号:
班级:
同组人:
指导老师:
报告日期:
软件设计实验5:数据块传送实验
实验目的:
掌握外部扩展RAM中的数据操作。
实验容:
1.对2040H地址开始的100个字节进行赋值,值为#5AH;
ASCLL码是标准信息编码,由7位二进制表示,每个二进制数有唯一对应字符。
BCD码用10位编码来表示十进制数。
两种代码都是二进制码,通过一一对应的关系来实现查询功能。
2.简述MOVC两条指令,并说明其作用及区别。
MOVC A,A+DPTR:以数据指针为基址,A为增量来实现查表功能。
MOVC A,A+PC:以PC为基址,A为增量来实现查表功能。
END

学号:
班级:
同组人:
指导老师:
报告日期:
软件设计实验4:二进制转ASCII实验
实验目的:
熟悉ASCII的编码原理,学习其与二进制之间的转换。
实验容:
1.将#9FH转为相应的ASCII;
2.将结果存放到30H、31H地址;
3.查表的方式实现。
实验问答:
1.简述ASCII、BCD码与二进制之间的关系。
2.在B0H-BFH中查找有几个单元存放的容是#00H,把个数放在R7中。
实验问答:
1.如需使用第2组工作寄存器的R7,需如何修改程序?
只需更改起始地址即可,位操作指令RS0,RS1分别置为0,1
2.如需从B0H单元开始,查32个单元的容,需修改程序哪个语句,如何修改?
将数据块长度R1的值修改为#20H,及循环#20H次。
实验程序:
================================================
$NOMOD=============================================
; DEFINITIONS
;===============================================
;===============================================
;===============================================
; VARIABLES
;===============================================
实验程序:
================================================
$NOMOD51
$INCLUDE (80C52.MCU)
;===============================================
; DEFINITIONS
;===============================================
; RESET and INTERRUPT VECTORS
;===============================================
; Reset Vector
org 0000h
jmp Start
;===============================================
MOV R0,#0BBH
MOV R0,#01H
MOV R7,#00H
MOV R1,#0B0H
MOV R2,#10H
LP2:CJNE R1,#00H,L3
INC R7
L3:INC R1
DJNZ R2,LP2
Loop:
jmp Loop
;===============================================
只需将32H中的低位先交换后赋给R6,然后把31H的高位与之做或运算即可。
实验程序:
================================================
$NOMOD51
$INCLUDE (80C52.MCU)
;===============================================
;===============================================
; CODE SEGMENT
;===============================================
org 0100h
Start:
MOV 40H,#8AH
MOV A,40H
SWAP A
;===============================================
; VARIABLES
;===============================================
;===============================================
MOV R0,#90H
LP2:
MOV R0,A
INC R0
DJNZ R2,LP2
Loop:
jmp Loop
;===============================================
相关文档
最新文档