本系列共6篇文章,本文作为本系列的第三篇文章,介绍实验三 :定时/计数器实验,本系列文章基于Dais-52PRO实验箱。
本系列文章链接:
—————————————————————————–
51单片机汇编语言实验(一)—–数字量输入输出(附参考代码及注释)
51单片机汇编语言实验(二)—–中断控制实验(附参考代码及注释)
51单片机汇编语言实验(三)—–定时/计数器实验(附参考代码及注释)
51单片机汇编语言实验(四)—-串行通信实验(附参考代码及注释)
51单片机汇编语言实验(五)—–A/D 0809模数转换和DA0832数模转换实验(附参考代码及注释)
51单片机汇编语言实验(六)—–8255键盘与显示设计(附参考代码及注释)
—————————————————————————–
一、实验目的:
学习定时/计数器的工作方式,掌握程序设计方法。
二、实验设备:
PC计算机一台,Dais-52PRO+实验系统一套。
三、实验内容:
1. 定时器实验
2. 计数器实验
四、 定时器实验
1、实验原理:
使用T0进行定时,编写程序,使P1.0控制的发光二极管L0每隔2秒交替点亮或熄灭。
2、实验步骤:
① 将试验箱IO区的P1.0与LED区的L0按图下图连线;
② 编写程序,经编译、链接无语法错误后装载到实验系统;
③ 运行程序,观察发光二极管L0,应每隔2秒交替点亮或熄灭;
④ 实验完毕后,应使用暂停命令中止程序的运行。
3、参考代码:
//实验三 定时器实验
COUNT EQU 8192-8000 ;8192是2的13次方
LED EQU P1.0
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: SETB TR0 ;启动T0
MOV R7, #250 ;定时计数初值
LOOP: MOV TMOD,#00H
MOV TH0,#(COUNT/32) ;定时初值 8MS
MOV TL0,#(COUNT MOD 32) ; MOD是取余数
JNB TF0,$ ;等待8MS
CLR TF0
DJNZ R7,LOOP
CPL LED ; p1.0取反
SJMP MAIN
END
五、计数器实验:
1、实验原理:
T0工作在方式2,即8位自动重装载,当溢出时自动将TH0装入TL0。编写程序,每按动5次单脉冲按钮,使发光二极管L0交替点亮或熄灭1次。
2、实验步骤:
① 将试验箱IO区的P1.0与LED区的L0按下图连线;
② 将试验箱IO区的P3.4与脉冲区的SP按下图连线;
③ 编写程序,经编译、链接无语法错误后装载到实验系统;
④ 运行程序,每按动5次单脉冲按钮,L0交替点亮或熄灭1次;
⑤ 实验完毕后,应使用暂停命令中止程序的运行。
3、参考代码:
//实验三 计数器实验
LED EQU P1.0
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV TMOD,#06H ;T0计数方式2,自动重装
MOV TH0, #251 ;256-5
MOV TL0, #251 ;
SETB TR0 ;启动T0
LOOP: JNB TF0,$ ;判T0溢出标志
CPL LED
CLR TF0
SJMP LOOP
END
本文介绍的内容完整的工程文件我会放在附件里,需要者自取,放的时候都是免费,它会自己涨,链接失效或者需要的可以在评论区留言,我直接发给你。本文附件链接如下: