1、定时器实验 :由 8051 内部定时器 1,按方式 1 工作,即作为 16 位定时器使用,每 0.05 秒钟 T1 溢出中断一次。P1 口的 P1.0-P1.7 分别接八个发光二极管。要求编写程序模拟一时序控制装置。开机后第一秒钟 L1、L3 亮,第二秒钟 L2、L4 亮,第三秒钟 L5、L7 亮,第四秒钟 L6、L8 亮,第五秒钟 L1、L3、L5、L7 亮,第六秒钟L2、L4、L6 、 L8 亮,第七秒钟全亮,第八秒钟全灭,以后又从头开始,一直循环下去。 ORG 0000HAJMP STARTORG 001BH ;T1 中断入口地AJMP INT_T1ORG 0100HSTART:MOV
2、SP,#60HMOV TMOD,#10H ;置 T1 为方式 1MOV TL1,#00H ;延时 50mS 的时间常数MOV TH1,#4CHMOV R0,#00H MOV R1,#20 SETB TR1 SETB ET1SETB EA SJMP $ INT_T1: ;T1 中断服务子程序PUSH ACC ;保护现场PUSH PSWPUSH DPLPUSH DPHCLR TR1 ;停止计数MOV TL1,#00H ;延时 50mS 常数MOV TH1,#4CHSETB TR1 ;开始计数DJNZ R1, EXITMOV R1,#20 ;延时一秒的常数MOV DPTR,#TAB ;置常数表基址MOV A,R0 ;置常数表偏移量MOVC A,A+DPTR ;读常数表MOV P1,A ;送 P1 口显示INC R0MOV A,R0ANL A,#07HEXIT: POP DPH ;恢复现场POP DPLPOP PSW1POP ACCRETI TAB: DB 05H,0AH,50H,0A0HDB 55H,0AAH,0FFH,0HEND RETI