- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机流水灯汇编程序设计
开发板上的 8 只 LED 为共阳极连接,即单片机输出端为低电平时即可点亮LED。程序 A:
;用最直接的方式实现流水灯
ORG 0000H
START:MOV P1, ;最下面的 LED 点亮LCALL DELAY;延时 1 秒
MOV P1, ;最下面第二个的 LED 点亮LCALL DELAY;延时 1 秒
MOV P1, ;最下面第三个的 LED 点亮 (以下省略) LCALL DELAY
MOV P1, LCALL DELAY
MOV P1, LCALL DELAY
MOV P1, LCALL DELAY
MOV P1, LCALL DELAY
MOV P1, LCALL DELAY
MOV P1, ;完成第一次循环点亮,延时约 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 赋值成loop:
mov p1,a ;将A 送到P1 口,发光二极管低电平点亮lcall delay ;调用延时子程序
rl a ;累加器A 循环左移一位ajmp loop ;重新送P1 显示delay:
mov r3,#20 ;最外层循环二十次d1:
mov r4,#80 ;次外层循环八十次d2:
mov r5,#250 ;最内层循环 250 次djnz r5,$ ;总共延时 2us*250*80*20=0.8S
djnz r4,d2 djnz r3,d1 ret
end
51 单片机经典流水灯程序,在 51 单片机的 P2 口接上 8 个发光二极管,产生流水灯的移动效果。
ORG
0 ;程序从 0 地址开始
START:
MOV
A,#0FEH
;让 ACC 的内容为LOOP:
MOV
P2,A
;让 P2 口输出 ACC 的内容
RR
A ;让 ACC 的内容左移
CALL
DELAY ;调用延时子程序
LJMP
LOOP ;跳到 LOOP 处执行
;0.1 秒延时子程序(12MHz 晶振)===================
DELAY: MOV R7,#200 ;R7 寄存器加载 200 次数
D1: MOV R6,#250 ;R6 寄存器加载 250 次数
DJNZ R6,$ ;本行执行 R6 次
DJNZ R7,D1 ;D1 循环执行 R7 次
RET ;返回主程序
END ;结束程序
开关控制的单片机流水灯 汇编
在单片机控制下,用一个拨动开关 K1,控制8个发光二极管 L1-L8,发光的时间间隔为 0.5 秒。具体要求:
当拨动开关 K1 发出低电平(K1=0)时,L1-L8 从两头向中间逐个点亮,当 L1-L8 全部点亮后延时 2 秒钟全部熄灭,如此往复循环。
当拨动开关 K1 发出高电平(K1=1)时,中间的 L4、L5 点亮,然后点亮的灯向两边扩展,直到 L1-L8 全部点亮后延时 2 秒钟全部熄灭,如此往复循环。
悬赏分:20 - 解决时间:2009-12-21 13:42 提问者: ---------
最佳答案:
;--------------------------------------------
下列程序,经过了编译、仿真,可以满足要求。
;--------------------------------------------
ORG
0000H
MOV
R2, #0
M_LOOP:
MOV
A, R2
INC
R2
ANL
A, #07H
MOV
C, P1.0
MOV
ACC.3, C
MOV
DPTR, #TAB
MOVC A, @A + DPTR MOV P0, A
CALL DL5KT SJMP M_LOOP
;-------------------------------------------- TAB:
DB 0xFF, 0xE7, 0xC3, 0x81, 0x00, 0x00, 0x00, 0x00 DB 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00
;------
文档评论(0)