本系列共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
本文介绍的内容完整的工程文件我会放在附件里,需要者自取,放的时候都是免费,它会自己涨,链接失效或者需要的可以在评论区留言,我直接发给你。本文附件链接如下:



