实验2、定时器计数器编程
时间:2025-07-12
时间:2025-07-12
定时器计数器编程
实验二、定时器/计数器编程
一、实验目的
1、掌握定时器的基本编程方法。
2、掌握计数器的基本编程方法。
二、实验内容
设计单片机程序,用T0作定时器产生周期为1秒的方波在P3.7输出,分别用示波器和发光二极管显示该信号,用T1作计数器对该脉冲进行计数并在数码管上显示。
三、实验原理
电路原理图如下,所需元件为:AT89C52、7SEG-BCD、
LED-YELLOW
当晶振为12M时机器周期为1微秒,要实现500毫秒的定时,需要500000个机器周期,对于51单片机内部定时器来说,最大只能定时65536个机器周期,
定时器计数器编程
能定时65.535毫秒,不能满足要求,为此必须借助软件循环进行扩展,当中断定时为50毫秒时,扩展10倍可得到500毫秒的定时。当到达500毫秒时,由P3.7取反输出一个脉冲信号。
选择定时器T0的工作方式为模式1,定时50ms(每50ms中断一次),设初值为X,根据下面公式,可求得X的值。
(216 X) 12
12 106 50 10 3
让T1工作于计数器模式。将P3.7与P3.5相连,就可以将P3.7输出的脉冲通过P3.5输入送T1计数,T1的计数值读出读出后送到P1在数码管上显示。 有关定时计数器的特殊功能寄存器,请参考课本。
四、实验预习
1、学习有关定时器和计数器的知识。
2、提前编写程序,写出预习报告。
五、实验报告
1、总结出实验的详细步骤。
2、写出调试正确的程序及框图。
六、参考程序:
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP IINT0
ORG 0030H
MAIN: MOV R6,#10
SETB P3.7
SETB P3.0
定时器计数器编程
MOV TMOD,#61H
MOV TL0,#LOW(-5000) MOV TH0,#HIGH(-50000) MOV IE,#82H
SETB TR0
MOV TL1,#0
MOV TH1,#0
SETB TR1
LOOP0:MOV A,TL1
MOV P1,A
SJMP LOOP0
IINT0: PUSH ACC
PUSH PSW
MOV TL0,#LOW(-5000) MOV TH0,#HIGH(-50000) DJNZ R6,LOOP3 CPL P3.7
CPL P3.0
MOV R6,#10
LOOP3: POP PSW
POP ACC
RETI
END
上一篇:医用物理学课后习题参考答案
下一篇:物业管理工作流程22