单片机实验报告
- 格式:doc
- 大小:1.89 MB
- 文档页数:21
单片机实验报告 指导老师: 班 级: 姓 名: 学 号: 实验一 1、实验目的: 熟悉软件开发平台Keil uVision3的基本操作。 2、实验内容: (1)新建项目文件. (2)编写内部数据存储器数据读写程序,利用存储器观察窗口观看程序执行结果. (3)编写外部数据存储器数据读写程序,利用存储器观察窗口观看程序执行结果. 3、实验步骤: (1)新建项目文件 ①新建文件夹,用来保存新建的项目文件,命名为project1。 ②打开Keil uVision3软件,点击项目,选择新建项目,选择单片机类型,如图所示。 (2)新建汇编文件(*.asm)并加入项目中去 ①点击file,选择new,新建汇编文件,然后保存,文件名后缀保存为 *.sam,如图所示。
②在源代码组上单击右键,选择添加文件,选择lusong.asm文件,如图所示。 新建项目如图所示
(3)设置项目属性,使其编译时产生HEX文件。 ①在目标1上单击右键,选择设置选项。 ②在设置对话框中选择output选项,然后选择create hex Fi,如图 所示。
③单击确定,完成设置。 (4)输入汇编语言程序。 (5)编译连接文件。 点击编译选项,编译文件,编译结果如图所示。
提示有一个警告:缺少END,修改后再次编译,结果如图所示。 编译成功,没有错误,没有警告。 (6)运行程序(单步/断点)并查看结果。 通过查看反汇编窗口文件,可以知道程序的地址、机器码以及汇编语言。
(7)通过设置断点来更清楚的了解程序运行的过程。 实验二
1、实验目的: (1)学习软件仿真方法 (2)学习程序编译、执行、运行结果查看的方法 2、实验内容: (1)依照实验一步骤建立新项目文件并设置输出。 (2)输入拆字程序并编译,如图所示。
(3)运行程序,利用内部数据存储器观察窗口观看程序执行结果,如图所示。 (4)依照实验一步骤建立新项目文件并设置输出。 (5)输入拼字程序并编译,如图所示。
(6)运行程序,利用外部数据存储器观察窗口和内部数据存储器观察窗口观看程序执行结果,如图所示。 (7)练习手工修改内部数据存储器和外部数据存储器的方法。 实验三 1、实验目的: (1)学习单片机I/O口(以P1为例)的使用方法。 (2)学习用查询和定时器两种方法编写延时子程序。 (3)进一步掌握Keil软件用法,用伟福实验箱观看结果。 2、实验内容: (1)分别使用查询和定时器两种方法编写延时子程序,实现1s的延时。 (2)编写程序,用P1口输出,实现发光二极管的循环点亮(间隔时间1s)。 (3)用伟福实验箱观看实验结果,验证程序。 3、实验步骤: (1)编写程序,实现发光二极管的循环点亮。 ①程序:软件定时控制 定时器控制定时 ORG 0000H ORG 000H LJMP 0030H LJMP 0030H ORG 0030H ORG 0030H MOV A,#01H MOV A,#01H LOOP: MOV TMOD,#01H MOV P1,A MOV TH0,#0CH RL A MOV TL0,#18H LCALL DELAY MOV R0,#10H LJMP LOOP SETB TR0 DELAY: LP:JNB TF0,$ MOV R5,#10 CLR TF0 DELAY2: MOV TH0,#0CH MOV R6,#200 MOV TL0,#18H DELAY1: DJNZ R0,LP MOV R7,#200 MOV P1,A DJNZ R7,$ RL A DJNZ R6,DELAY1 MOV R0,#10H DJNZ R5,DELAY2 SJMP LP RET RET END END ②建立新项目,编译并运行程序,如图所示。
利用查询方式起到延时作用 利用定时器起到延时作用 (2)连接线路,P1.0~P1.7口分别连接0~7号发光二极管。(注意连线和拆线时务必确保要断开实验箱电源) (3)调试(设置时注意选择使用伟福实验箱调试),观看实验结果。 (4)设置如图所示 实验四 1、实验目的: (1)学习单片机I/O口的使用方法。 (2)了解步进电机控制的基本原理和驱动方法。 (3)掌握控制步进电机转动的编程方法。 (4)了解单片机控制外部设备的常用电路。 2、实验内容: (1)编写延时程序控制步进电机的启动频率。 (2)编写程序实现对步进电机正转、反转、调速的控制,以P1口为数据输出口。 (3)连接实验箱,观看程序运行结果,分析控制原理。 3、实验原理: (1)步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转,切换是通过单片机输出脉冲信号来实现的,所以调节脉冲信号的频率便可以改变步进电机的转速,改变各相脉冲的先后顺序,可以改变电机的旋转方向,步进电机的转速应由慢到快逐步加速。电机驱动方式可以采用双四拍(AB→BC→CD→DA→AB)方式,也可以采用单四拍(A→B→C→D→A)方式,或单、双八拍(A→AB→B→BC→C→CD→D→DA→A)方式。
(2)步进电机是现代控制系统中广泛采用的执行部件,当步进电机用于精密仪器、仪表时的系统驱动时,要求它转矩小、振动小;在开环控制系统中,则希望它不失步;这取决于步进电机的步距角。一般地说,小步距角的电机比较容易满足这些要求。 (3)反应式步进电机的步距角:Qb=360/(NZR) (度) 式中ZR——转子齿数 N ——转子转过一个齿距的运行拍数 增大N或ZR增加齿数或改变分配方式则可得到较小的步距角,满足控制要求
(4)改变分配方式:环形分配器、软件细分 环形分配器是步进电机驱动系统中的一个 重要部件,作用是将控 制信号脉冲按一定规律循环分配给步进电机的每个绕组。 (5)步进电机驱动器——集成了细分、衰减模式设置、电路调节、CMOS功率放大等电路, 配合简单的外围电路即可实现高性能、多细分、大电流的驱动电路。
(6)软件编程代替环形脉冲分配器输出控制步进电机的脉冲信号,就四相步进电机而言,单-双八拍时序就是一种减小步距角的分配器,也称二细分或双1-2相时序。 (7)除了单-双八拍时序,还有A-AB-ABC-B-BC-BCD-C-CD-CDA-D-DA-DAB-A十二拍时序,可以实现三细分,即步距角为四拍时序的1/3。 4.实验步骤 (1)编写程序,实现对步进电机不同工作方式的控制。 汇编语言程序 ORG 0000h MOV A,60H LJMP 0030h DEC A ORG 0030h CJNE A,#1,NN1 LOOP:MOV P1,#01H INC A LCALL DELAY NN1: MOV 60H,A MOV P1,#03H LJMP LOOP LCALL DELAY DELAY: MOV P1,#02H MOV R5,#05 LCALL DELAY DELAY1: MOV P1,#06H MOV R6,#100 LCALL DELAY DELAY2: MOV P1,#04H MOV R7,#100 LCALL DELAY DJNZ R7,$ MOV P1,#0CH DJNZ R6,DELAY1 LCALL DELAY DJNZ R5,DELAY2 MOV P1,#08H RET LCALL DELAY END MOV P1,#09H LCALL DELAY (2)建立新项目,输入程序并编译,如图所示。 (3)连接线路,P1.0~P1.4口分别连接步进电机的A、C、B、D接口。 (4)调试,观看实验结果,如图所示。 实验五 1、实验目的: (1)了解数码管动态显示的原理。 (2)掌握用I/O控制数码管显示。 2、实验内容: (1)编写程序,分别从I/O口输出八段数码管的位选控制信号和段选控制信号,实现数码管的动态显示。 (2)利用Keil软件和实验仪提供的显示电路,动态显示一行数据。 (3)连接实验箱,观看程序运行结果,分析控制原理。 3、实验原理: 本试验仪显示电路可以工作在内驱和外驱两种方式,内驱是用CPU总线方式驱动,通过总线读写外部设备的地址来控制显示。外部驱动方式是直接用I/O方式驱动八段显示的段码、位码信息,这里的I/O控制可以用CPU的IO口来实现控制,也可通过8255等IO扩展电路来控制。内驱、外驱由板上的拨动开关控制。 外驱方式:将拨动开关拨到“外驱”位置,八段显示作于外驱方式,八段管的段码控制由输出端口(I/O)输出到A~H插孔,控制显示内容。G0~G5是八段管的位码,I/O口输出的信号可以控制点亮哪一位八段管。
6位8段码LED显示电路,显示共有6位,用动态方式显示。8位段码、6位位码分别由I/O口输出,分别控制显示的内容和显示的数码管。 显示字形 g f e d c b a 段码 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 1 1 0 06h 2 1 0 1 1 0 1 1 5bh 3 1 0 0 1 1 1 1 4fh 4 1 1 0 0 1 1 0 66h 5 1 1 0 1 1 0 1 6dh 6 1 1 1 1 1 0 1 7dh 7 0 0 0 0 1 1 1 07h 8 1 1 1 1 1 1 1 7fh 9 1 1 0 1 1 1 1 6fh A 1 1 1 0 1 1 1 77h b 1 1 1 1 1 0 0 7ch C 0 1 1 1 0 0 1 39h d 1 0 1 1 1 1 0 5eh E 1 1 1 1 0 0 1 79h F 1 1 1 0 0 0 1 71h
4、实验步骤 : (1)编写程序,将缓冲区数据通过试验箱的六位数码管动态显示出来,其中段选线和位选线分别由I/O口输出。 程序: ORG 0000H LJMP DISP LJMP 0030H RET DXM:MOV DPTR, #TAB DELAY: MOV R7, #10H