文档详情

实验三定时器实验报告.docx

发布:2018-05-16约2.21千字共4页下载文档
文本预览下载声明
实验三定时器实验报告实验要求:连接电路并编写程序,使单片机定时器在一定工作模式下,完成 9999.99s 倒计时;电路原理图:对 8051 单片机的可编程计数器/定时器的工作原理进行说明:定时器模式:对单片机的晶体振荡器12分频后的片内脉冲进行计数。从而达到定时目的。计数器模式:对外部输入引脚p3.4(t0)、p3.5(t1)的外部脉冲(负跳变)计数。程序清单及注释:ORG 0000H SJMP MAIN ORG 0030H ;将数码管所要显示的数据保存在 30H~35H 之中SJMP T0_INT MAIN: ;以下编写程序完成注释要求的步骤:MOV TMOD ,#00 ;T0 定时方式 1 MOV TH0,#0DCH ;定时 10ms@11.0592MHz MOV TL0,#00H ; TL0 赋值SETB TR0 ;启动 T0 SETB EA ;开中断MOV DPTR,#TAB LOOP1:; 将 30H~35H 地址内的值均赋为 9 ;注意:只有 R0、R1 可以间接赋值MOV R1,#30H LOOP2: MOV @R1,#09H INC R1CJNE R1,#36H,LOOP2 START: MOV R2,#00H MOV R1,#30H LED_123: ;控制前 3 个数码管的显示 MOV A,@R1 MOVC A,@A+DPTR CALL CONTROL_164 CALL CONTROL_138 CALL DELAYINC R2 ;间接通过 R2 的值控制数码管显示的次序 INC R2 ; INC R1 CJNE R1,#33H,LED_123 LED_4: ;控制第 4 个数码管的显示(带小数点) MOV A,@R1 MOVC A,@A+DPTR ADD A,#80H ALL CONTROL_164 CALL CONTROL_138 CALL DELAYINC R1 LED_56: ;控制第 5、6 个数码管的显示 INC R2 INC R2 MOV A,@R1 MOVC A,@A+DPTR CALL CONTROL_164 CALL CONTROL_138 CALL DELAY INC R1 CJNE R1,#36H,LED_56 JMP START CONTROL_164:MOV R3,#08H LOOP_0: CLR P2.0MOV R4,AANL A,#080H CJNE A,#080H,LOOP_1 SETB P2.7 JMP LOOP_2 LOOP_1: CLR P2.7LOOP_2: SETB P2.0 MOV A,R4RL A DJNZ R3,LOOP_0 RET CONTROL_138:MOV A,#0F0H ; 0XF0二进制) ADD A,R2 ; 需直接通过 P21、P22、P23 的值控制数码管显示的次序MOV P2,A ; 将 A 的值赋给 P2 端口,则, R2 需每次加 2 才能使 P21 发生一次改变RET T0_INT: ;定时中断PUSH ACC;以下请仿照中断 INT0 编写程序完成如下步骤:PUSH PSW;1、保存 PSW、ACC 寄存器; CLR EA;2、关闭全局中断MOV TH0,#0DCH;3、对 TH0,TL0 赋值,定时 10ms@11.0592MHz MOV TL0,#00H;将 30H~35H 内改值,使每进入一次定时中断,30H~35H 内数字组成的 6 位数减 1 MOV R0,#35H RETI;T0_LOOP0: CJNE @R0,#0H,T0_END MOV @R0,#9H DEC R0 JMP T0_LOOP0 T0_END: DEC @R0 SETB EA ;开启全局中断 ;以下编写程序完成注释要求的步骤:POP PSWPOP ACC ;恢复保存寄存器数据。 RETI DELAY: ;延迟程序。 MOV R6,#0EEH DELAY_0: MOV R7,#09H 45 DJNZ R7,$
显示全部
相似文档