发布时间 : 星期一 文章单片机实习指导书新 - 图文更新完毕开始阅读
MOV A,SECOND CJNE A,#60,NEX MOV SECOND,#00H
NEX: MOV A,SECOND
MOV B,#10 DIV AB
MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A MOV A,B
MOVC A,@A+DPTR MOV P2,A
NEXT: RETI TABLE:
DB 3FH,06H,5BH,4FH,66H, DB 6DH,7DH,07H,7FH,6FH END 思考题
1.一次定时中断为多少时间? 2.如何实现从59秒—00秒的倒计时。
3.如何通过两个按钮实现00秒—59秒之间的正计时和倒计时功能之间的切换。
(三)定时LED闪烁设计 1.实习目的:
(1)进一步熟悉定时中断程序的设计过程。 (2)掌握定时中断的程序设计。 2.实习任务:
用AT89S51的定时/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯闪烁,每个指示闪烁的频率为0.2秒,也就是说,开始L1指示灯以0.2秒的速率闪烁,当2秒定时到来之后,L2开始以0.2秒的速率闪烁,如此循环下去。0.2秒的闪烁速率也由定时/计数器T0来完成。
参考程序:
TCOUNT2S EQU 30H TCNT02S EQU 31H ID EQU 32H ORG 00H LJMP START ORG 0BH LJMP INT_T0
START: MOV TCOUNT2S,#00H MOV TCNT02S,#00H MOV ID,#00H MOV TMOD,#01H
MOV TH0,#(65536-50000) / 256 MOV TL0,#(65536-50000) % 256 SETB TR0 SETB ET0 SETB EA SJMP $ INT_T0:
MOV TH0,#(65536-50000) / 256 MOV TL0,#(65536-50000) % 256 INC TCOUNT2S MOV A,TCOUNT2S CJNE A,#40,NEXT
MOV TCOUNT2S,#00H INC ID MOV A,ID
CJNE A,#04H,NEXT MOV ID,#00H
NEXT: INC TCNT02S
MOV A,TCNT02S CJNE A,#4,DONE MOV TCNT02S,#00H MOV A,ID
CJNE A,#00H,SID1 CPL P1.0 SJMP DONE
SID1: CJNE A,#01H,SID2
CPL P1.1 SJMP DONE
SID2: CJNE A,#02H,SID3
CPL P1.2 SJMP DONE
SID3: CJNE A,#03H,SID4
CPL P1.3
SID4: SJMP DONE DONE: RETI
END 思考题
1.一次定时中断为多少时间?
2.如何实现1秒计时更换指示灯闪烁操作? 3.用定时器T1程序在何处修改?
实习七:
(一)16位跑马灯设计方法 1.实习目的:
(1)进一步熟悉LED跑马灯程序的设计过程。 (2)掌握定时中断的程序设计。 2.实习任务:
如下图所示,在AT89S51单片机的P0和P2端口分别接有16个LED,P0口驱动8个, P2口驱动8个。要求实现这16个LED顺时针和逆时针顺序切换点亮,每一秒钟切换一次。
参考程序:
ORG 0000H
MOV 20H,#0FEH ;FFFCH=11111111 11111100 MOV 21H,#0FFH
START: MOV P0,20H
MOV P2,21H LCALL TIM JB P1.0, NEXT MOV A,20H RLC A MOV 20H,A MOV A,21H RLC A MOV 21H,A MOV 20H.0,C SJMP START
NEXT: MOV A,21H
RRC A MOV 21H,A MOV A,20H