单片机原理及应用实验指导书(12
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及应用实验指导书
湖南人文科技学院
二00一年三月
实验一I /O口输出实验—LED流水灯实验
一、实验目的
1、掌握单片机最小系统的构成;
2、掌握I/O口的使用及驱动能力的概念;
3、熟悉移位指令和软件延时程序。
二、实验设备与器件
1、计算机1台
2、PROTEUS单片机教学实验箱FB-EDU-P51A
三、实验原理
如下图所示,用单片机控制LED的亮与灭,在实验图中将MCU的P1口与LED的阴极相连,当P1口给低电平时,LED发亮,当P1口给高电平时,
四、实验内容
1、利用51单片机及8个发光二级管等器件,构成一个流水灯单片机系统。
2、用Keil C51软件创建程序
3、对程序进行编译与链接,建立实验程序并编译,加载hex文件,仿真;
4、实验板验证
(1)用ISP下载hex程序到CPU
(2)按连接表连接电路
(3)检查验证结果
五、实验报告
在预习报告的基础上写出详细实验过程;画出实验原理图,写出单片机控制程序,写出调试步骤与仿真方法,观察实验现象,得出实验结果,并分析实验结果的正确性。
六、预习要求
1、单片机最小系统的构成
2、单片机I/O口的使用以及软件延时程序的编写。
七、实验参考程序
ORG 00H
START: MOV R2,#8
MOV A,#0FEH
LOOP: MOV P1,A
LCALL DELAY
RL A ;循环左移
DJNZ R2,LOOP ;判断移动是否超过8 位,
未超过继续循环
LJMP START
DELAY: MOV R5,#20 ;延时程序,延时0.2s
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
实验二定时器实验
一、实验要求
用51单片机的P1.0口接1个发光二级管,编写程序,控制发光二级管闪烁,时间间隔1S,要求A T89C51内部定时器计时。
二、实验目的
掌握单片机定时计数器定时方式的使用及编程方法。
三、实验电路及连线
1、Proteus实验电路
2、硬件验证实验(CPU板+006板)
硬件连接表
四、实验说明
1.主要知识点概述:
关于内部计数器的编程,主要是定时常数的位置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本例使用的是定时器,定时1S。
CPU运行定时中断方式,实现每1S输出状态发生一次反转,即发光二级管1S亮一次。
定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止。
内部计数器用于定时器时,是对机器周期计数。每个机器周期的长度是12个振荡周期。本例中单片机晶振12MHZ,选用工作方式2,既8位自动重装方式定时器,定时器100us中断一次,所以定时常数的设置可按以下方法计算:
机器周期=12/12MHZ=1us
(256-定时常数)*1us=100us
定时常数=156。然后对100us中断次数计数10000次,就是1S。
2.实验效果说明:
发光二级管按设定的定时时间闪烁。
五、实验参考程序:
TICK EQU 10000 ;10000×100us=1s
T100us EQU 256-100 ;100us时间常数(12M)
C100us EQU 30H ;100us计数单元
LEDBUF EQU 40H
LED BIT P1.0
ORG 00H
LJMP START ;跳至主程序
ORG 000BH ;定时中断入口地址
T0INT: PUSH PSW ;状态保护
MOV A,C100us+1
JNZ GOON
DEC C100us ;秒计数值减1
GOON: DEC C100us+1
MOV A,C100us
ORL A,C100us+1
JNZ EXIT ;100us计数器不为0,返回
MOV C100us,#HIGH(TICK) ;100us计数器为0,重置计数器
MOV C100us+1,#LOW(TICK)
CPL LEDBUF ;取反LED
EXIT: POP PSW
RETI
START: MOV TMOD,#02H ;方式2,定时器
MOV TH0,#T100us ;置定时器初值
MOV TL0,#T100us
MOV IE,#10000010B ;EA=1,IT0=1
SETB TR0 ;开始定时
CLR LEDBUF
CLR LED
MOV C100us,#HIGH(TICK) ;设置10000次计数值
MOV C100us+1,#LOW(TICK)
LOOP: MOV C,LEDBUF
MOV LED,C
LJMP LOOP
END
实验三多个中断同时存在实验
一、实验目的
1、了解MCS-51中断系统
2、了解中断嵌套及中断优先级的概念和编程方法。
二、实验设备与器件
1、计算机1台
2、PROTEUS单片机教学实验箱FB-EDU-P51A
三、实验原理
如下图所示,在实验图中将MCU的P1口与LED的阴极相连,外部中断未发生时,系统通过定时器定时的方法,使LED做流水灯操作,当有中断产生,LED闪烁5次,完毕返回。