单片机实习指导书新 - 图文 联系客服

发布时间 : 星期一 文章单片机实习指导书新 - 图文更新完毕开始阅读

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