单片机 51 汇编 花样 流水灯—五种花样

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

**==================花样流水灯=============================**
;*********************花样五变流水灯******************************##
;##:R7,R6延时;R5延时控制R4,R3 控制循环次数##
;##:*HUAYANG* 花样模块开始*BIAOZHI* 花样切换标志##
;##:单片机STC89C51 LED花样流水灯五种变化连续汇编基础##
;##: 编写:毛毛虫##
;*****毛毛虫*************毛毛虫***********毛毛虫****************** ##
;--------------------------------------低电位灯亮---------------------------------------------## ORG 0000H
SJMP MAIN
ORG 0030H
;*****************************************************************##
;##——————————————主程序开始—————————————##
;##—————————————花样1————————————————##
;##***************************************************************##
MAIN:
LCALL DELAY
LCALL HUAYANGYI //调用花样一
LCALL BIAOZHI //花样切换标志
LCALL DELAY
LCALL HUAYANGER //调用花样二
LCALL BIAOZHI //花样切换标志
LCALL DELAY
LCALL HUAYANGSAN //调用花样三
LCALL BIAOZHI //花样切换标志
LCALL DELAY
LCALL HUAYANGSI //调用花样四
LCALL BIAOZHI //花样切换标志
LCALL DELAY
LCALL HUAYANGWU //调用花样五
LCALL BIAOZHI //花样切换标志
LCALL DELAY
AJMP MAIN //跳转到MAIN主函数运行//***************************花样一*********************************
HUAYANGYI:MOV A,#0FEH ;给累加器A赋值
MOV R3,#05 ;给R3寄存器赋值
DEL0:MOV R4,#07 ;给R4寄存器赋值
DEL1:MOV P0,A ;累加器A值送至P0口,LED灯亮
LCALL DELAY ;延时
RL A ;累加器A向左移一位
DJNZ R4,DEL1 ;实现L1~L8逐个亮一次即判断循环
DJNZ R3,DEL0 ;实现L1~L8灯逐个亮一次,执行7次即判断循环
LCALL DELAY ;延时
LCALL DELAY
MOV A,#0FEH ;累加器A赋值
MOV R3,#05 ;寄存器R3 赋值DEL2:MOV R4,#07 ;寄存器R4 赋值
DEL3:MOV P0,A ;累加器A传送至p0 口LCALL DELAY ;延时
RR A ;累加器A 右移
DJNZ R4,DEL3 ;判断循环,实现花样
DJNZ R3,DEL2 ;判断循环,实现花样次数
LCALL DELAY
MOV A,#0FEH ;累加器A 赋值
MOV R3,#07 ;寄存器R3 赋值DEL4: MOV R4,#07 ;寄存器R4 赋值
DEL5: MOV P0,A ;累加器A 送至P0口
LCALL DELAY
RL A ;累加器A 左移一位
DJNZ R4,DEL5 ;判断循环
LCALL DELAY
MOV R4,#07 ;赋值
DEL6: MOV P0,A ;传送
LCALL DELAY
RR A ;右移
DJNZ R4,DEL6 ;判断循环
DJNZ R3,DEL4 ;判断循环
LCALL DELAY
RET
;-----------------------------------------------------------------------------------------------------------##
;##****************************花样2××××××××××××××××××××××××××××××××## ;————————————————————————————————————## HUAYANGER:MOV A,#01H
MOV R3,#05
HYE0:MOV R4,#07
HYE1:MOV P0,A
LCALL DELAY
LCALL DELAY
RL A
DJNZ R4,HYE1
DJNZ R3,HYE0
LCALL DELAY
MOV R3,#05
HYE2:MOV R4,#07
HYE3:MOV P0,A
LCALL DELAY
LCALL DELAY
RR A
DJNZ R4,HYE3
DJNZ R3,HYE2
LCALL DELAY
MOV R3,#05
HYE4:MOV R4,#07
HYE5:MOV P0,A
LCALL DELAY
RLC A
DJNZ R4,HYE5
MOV R4,#07
HYE6: MOV P0,A
LCALL DELAY
RRC A
DJNZ R4,HYE6
DJNZ R3,HYE4
LCALL DELAY
RET
;------------------------------------------------------------------------------------------------------------##
;##***************************花样3×××××××××××××××××××××××××××××××××## ;————————————————————————————————————## HUAYANGSAN:MOV A,#0FEH
MOV R3,#07
HYS0:MOV R4,#14
HYS1:MOV P0,A
LCALL DELAY
LCALL DELAY
RL A
DJNZ R4,HYS1
MOV A,#0FCH
HYS2:MOV R4,#12
HYS3:MOV P0,A
LCALL DELAY
LCALL DELAY
LCALL DELAY
RL A
DJNZ R4,HYS3
MOV A,#0F8H HYS4:MOV R4,#10 HYS5:MOV P0,A
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
RL A
DJNZ R4,HYS5
MOV A,#0F0H HYS6:MOV R4,#08 HYS7:MOV P0,A
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
RL A
DJNZ R4,HYS7
MOV A,#0E0H HYS8:MOV R4,#06
HYS9:MOV P0,A
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
RL A
DJNZ R4,HYS9
MOV A,#0C0H HYSA:MOV R4,#04
HYSB:MOV P0,A
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
RL A
DJNZ R4,HYSB
MOV A,#80H HYSC:MOV R4,#02
HYSD:MOV P0,A
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
RL A
DJNZ R4,HYSD
LCALL DELAY
LCALL DELAY
MOV P0,#00H
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
RET
;----------------------------------------------------------------------------------------------------------##
;##**************************花样4×××××××××××××××××××××××××××××××××## ;———————————————————————————————————##
;===========================查表程序============================## HUAYANGSI:MOV DPTR,#TABLE
HYSI0:MOV A,#00H
HYSI1:MOVC A,@A+DPTR
MOV P0,A
MOV R4,#08
HYSI2:LCALL DELAY
DJNZ R4,HYSI2
INC DPTR
CJNE A,#0FFH,HYSI1
RET
TABLE: DB 0FEH,0FEH,0FEH,0FEH,0FEH
DB 0FBH,0FBH,0FBH,0FBH,0FBH
DB 0EFH,0EFH,0EFH,0EFH,0EFH
DB 7EH,7EH,7EH,7EH,7EH,7EH
DB 3CH,3CH,3CH,3CH,3CH,3CH
DB 0AAH,0AAH,0AAH,0AAH,0AAH
DB 55H,55H,55H,55H,55H,55H
DB 0E7H,0E7H,0E7H,0E7H,0E7H
DB 0C3H,0C3H,0C3H,0C3H,0C3H
DB 81H,81H,81H,81H,81H,81H
DB 00H,00H,00H,00H,00H
DB 0FFH
;-----------------------------------------------------------------------------------------------------##
;##*************************花样5***********************************## ;——————————————————————————————————## HUAYANGWU:MOV A,#0E7H
MOV R3,#03
HYW0:MOV R4,#07
HYW1:MOV P0,A
LCALL DELAY
MOV P0,#0FFH
LCALL DELAY
LCALL DELAY
DJNZ R4,HYW1
MOV R4,#07
HYW2:MOV P0,#0A5H
LCALL DELAY
LCALL DELAY
MOV P0,#0FFH
LCALL DELAY
LCALL DELAY
LCALL DELAY
DJNZ R4,HYW2
MOV R4,#07
HYW3:MOV P0,#24H
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P0,#0FFH
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
DJNZ R4,HYW3
MOV R4,#07
HYW4:MOV P0,#00H
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV P0,#0FFH
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
DJNZ R4,HYW4
DJNZ R3,HYW0
RET
//***********************延时******************************************## DELAY: MOV R7,#50 ;延时子程序,延时小于0.1S D1: MOV R6,#125
D2: NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R6,D2
DJNZ R7,D1
RET
//***********************花样衔接标志***********************************## BIAOZHI: MOV R4,#20 ;循环次数B1: MOV P0,#00H
LCALL DELAY
MOV P0,#0FFH
LCALL DELAY
DJNZ R4,B1 ;判断循环结束
RET
END。

相关文档
最新文档