单片机流水灯汇编程序设计 开发板上的8 只LED 为共阳极连接,即单片机输出端为低电平时即可点亮LED
程序A: ;用最直接的方式实现流水灯 ORG 0000H START:MOV P1,#01111111B ;最下面的LED 点亮 LCALL DELAY;延时1 秒 MOV P1,#10111111B ;最下面第二个的LED 点亮 LCALL DELAY;延时1 秒 MOV P1,#11011111B ;最下面第三个的LED 点亮 (以下省略) LCALL DELAY MOV P1,#11101111B LCALL DELAY MOV P1,#11110111B LCALL DELAY MOV P1,#11111011B LCALL DELAY MOV P1,#11111101B LCALL DELAY MOV P1,#11111110B LCALL DELAY MOV P1,#11111111B ;完成第一次循环点亮,延时约 0
25 秒 AJMP START ;反复循环 ;延时子程序,12M 晶振延时约 250 毫秒 DELAY: MOV R4,#2 L3: MOV R2 ,#250 L1: MOV R3 ,#250 L2: DJNZ R3 ,L2 DJNZ R2 ,L1 DJNZ R4 ,L3 RET END 程序B: ;用移位方式实现流水灯 org 00h ;程序上电从 00h 开始 ajmp main ;跳转到主程序 org 0030h ;主程序起始地址 main: mov a,#0feh ;给A 赋值成11111110 loop: mov p1,a ;将A 送到P1 口,发光二极管低电平点亮 lcall delay ;调用延时子程序 rl a ;累加器A 循环左移一位 ajmp loop ;重新送P1 显示 delay: mov r3,#20 ;最外层循环二