一、设计任务
1、做单个灯的闪烁,在P1.0端口接一个发光二极管的D1,使D1不停地一亮和一灭,时间间隔大约为0.125秒。
2、做一个流水灯的设计,在P0.0端口分别对应接上8个LED灯(在此,每个端口接上了3个灯),使这8个灯循环亮灭:P0.0—P0.1—P0.2—……—P0.7。
3做完上面两个了,现在来设计任意灯的点亮。
二、设计程序
//单片机89C51的p1.0口接一个闪光的二极管(设计1)
org 0h ljmp main org 30h main: clr p1.0 acall delay setb p1.0 acall delay sjmp main delay:mov R7,#250 d1 :mov R6,#250 djnz R6,$ djnz R7,d1 ret end //单片机89C51的P0口接上8个灯,使这8个灯循环点亮(设计2) START: MOV ACC,#0FEH MOV P0,ACC MOV R0,7 LOOP1: RL A MOV P0,ACC ACALL DELAY DJNZ R0,LOOP1 AJMP START DELAY: MOV R0,255 L1: MOV R1,255 DJNZ R1,$ DJNZ R1,$ DJNZ R0,L1 RET END //任意灯的点亮(设计3) START: MOV ACC,#7EH ;1和8灯亮 MOV P0,ACC ACALL DELAY MOV ACC,#0BDH ;2和7灯亮 MOV P0,ACC ACALL DELAY MOV ACC,#0DBH ;3和6灯亮 MOV P0,ACC ACALL DELAY MOV ACC,#0E7H ;4和5灯亮 MOV P0,ACC ACALL DELAY MOV ACC,#0FCH ;1和2灯亮 MOV P0,ACC ACALL DELAY MOV ACC,#0F3H ;3和4灯亮 MOV P0,ACC ACALL DELAY MOV ACC,#0CFH ;5和6灯亮 MOV P0,ACC ACALL DELAY MOV ACC,#3FH ;7和8灯亮 MOV P0,ACC ACALL DELAY AJMP START DELAY: MOV R0,255 L1: MOV R1,255 DJNZ R1,$ DJNZ R1,$ DJNZ R1,$ DJNZ R0,L1 RET END
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』