问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

新手提问单片机流水灯程序

发布网友 发布时间:2022-04-29 00:04

我来回答

4个回答

热心网友 时间:2022-06-26 01:20

//都是很简单很基本的汇编指令而已。注释如下。
/*******************************************************/

ORG 0000H //存储器起始地址
AJMP START //直接跳转执行程序
ORG 0030H //用户程序起始地址

START: MOV P0,#0FFH //熄灭所有LED灯
MOV A,#0FEH //传递数值设置P0.0亮
AAA: MOV P0,A //P0.0点亮
LCALL DELAY //跳转到DELAY延时子程序
JNB P1.3,BBB //判断P1.3是否为0,如果为0则跳转到BBB标签实现逆向跑马灯
RL A //A寄存器的数值循环左移一位,即FE左移1位后是FD
AJMP AAA //直接跳转到AAA标签,即实现LED灯从P0.0向P0.7正向跑马灯
BBB: MOV A,#7FH //传递数值设置P0.7亮
CCC: MOV P0,A //P0.7点亮
LCALL DELAY //跳转到DELAY延时子程序
JNB P1.0,START //判断P1.0是否为0,如果为0则跳转到START标签实现正向跑马灯
RR A //A寄存器的数值循环右移一位,即7F右移1位后是BF
AJMP CCC //直接跳转到CCC标签,即实现LED灯从P0.7向P0.0逆向跑马灯

DELAY: MOV R7,#250 //延时子程序第三层250*100*10次循环
DL1: MOV R6,#100 //延时子程序第二层100*10次循环
DL2: MOV R5,#10 //延时子程序第一10次循环
DJNZ R5,$ //R5减1,不为0则继续减
DJNZ R6,DL2 //R6减1,不为0则转到DL2标签
DJNZ R7,DL1 //R7减1,不为0则转到DL1标签
RET //子程序返回(至于延时多长时间得看硬件决定)
//12Mhz C51的话,延时500毫秒多一点点[(250*100*10+2+2)*2微秒]
//DJNZ MOV RET都是双周期指令
END //汇编结束标识

JNB P1.3,BBB //JNB就是判断位,判断P1.3位是否为0,如果为0则跳转到后面BBB标签对应的地址,否则执行下面一行指令。

JNB P1.0,START //判断P1.0位是否为0,如果为0则跳转到后面START标签对应的地址,否则执行下面一行指令。

P1.3外接一个按钮,按钮按一下时执行逆向跑马灯,P1.0同样外接一个按钮,按钮按一下时执行正向跑马灯。如果两个按钮都按下时就打架P0.0和P0.7轮流亮。

RL A //这个RL是循环左移位操作,就是把A寄存器里面的数值二进制位左移一位再保存到A寄存器里面。比如A=11111110B(0xFE)时,左移一位后A=11111101B(0xFD),再左移一位后变成A=11111011B(0xFB)。

热心网友 时间:2022-06-26 01:20

JNB(jump not bit)是一条跳转指令,功能是(就你这个程序而言)P1.3不为零则跳转,跳转到哪? 就是跳转到P1.3后面的操作数所指的ROM地址,只不过这里用BBB(标号)表示了;应该够清楚了!如果不懂可以去网上找找汇编语法的资料看看!记得评分哦!我等着升级呢!呵呵

热心网友 时间:2022-06-26 01:21

P1.3是外接控制信号的,可能是个对地的按键或开关,用来选择左移还是右移;
JNB XX,YY的意思是当XX不为1时跳转到YY地址行;
RL A是把累加器(A)中的各个位循环左移一次,下面的RR A是循环右移。
因为开始A赋值了0xFE,即二进制1111 1110,执行循环移位就可以逐次移动那个0,使对应输出端口的LED点亮(一般接法是电源--限流电阻--LED--地,低电平点亮)。

热心网友 时间:2022-06-26 01:21

JNB P1.3,BBB(这个为什么是P1.3? JNB语句是什么作用?“JNB XX,YY”是什么意思?)
RL A(这个操作怎么改变地址?)
P1.3 这个端口是用来控制流水灯的流动方向的,比如 P1.3为低电平时流水灯向左移, P1.3为高时向右移。
JNB这个好像是如果不为0 就跳转,比如JNB XX,YY,应该是如果 XX为0就跳到YY的标号外。在这里我不大记得这个指令的条件是为0还是非0了,你查一下手册吧,不过这肯定是一个跳转指令。
RL A 这个操作不改变地址,只是对寄存器 A进行了移位操作,使 A向左移一位。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
vivo y18l 死机卡在开机界面 vivoy18l手机频繁黑屏死机怎么办? vivo y18l 死机了怎么办 vivoY18l黑屏死机解决办法 vivo y18l刷机很久都开不了机怎么? 湖北自考专升本会有学籍吗? 湖北自考专升本后可以考研吗 湖北自考申请毕业证的时间在什么时候 湖北自考专升本学历怎么查询 湖北自考专升本为什么没有学籍 本人想读对外汉语在职研究生,不知道深圳有没有好的大学有开在职研究生班?? 本科生毕业在银行上班,读什么类型的在职研究生好 在国内读研究生好还是到马来西亚读好? 新加坡国立大学研究生申请 澳门方言濒临消失,方言在现代社会为何越来越走灭亡? 北京大学外国语言文学德国系研究生毕业就业方向? 有谁能告诉我有关英语教育研究类的书籍或杂志或文章。 在职硕士读完后想读博士,国外哪里读博士学费低,时间少 双证硕士跟在职单证硕士区别大么? 暨南大学有在职博士吗 有去国外读在职博士的吗 请问大师兄留学网说能申请只寒暑假去的博士靠谱吗? 昌都市唇毛怎么去除,有清楚 开脸能不能永久? 开脸器线的缠绕方法? 布偶猫开脸一边有色一边没色 开脸手法的视频 民勤挽面:和面为什么加入蒿籽和堿水 古代的时候开脸是什么意思? 脸上汗毛刮过几次,会越来越长吗,会变成故意吗? 黑执事人物里的名言 镜音双子三大悲剧是什么??请把每个系列的歌写出,谢谢、 黑执事的经典句子 安装影子系统时出现问题 螃蟹身上的什么部位不能吃?怎么找出来 梦见自己退学了整理衣服,旧书 我做梦梦见自己在整理工作上的资料,然后弄乱了,后来眼睛怎么也睁不开,正打 轮滑教练证书怎么考 轮滑教师资格证去哪报名 百家号后台上传视频后下方的标签可以自己建立吗? 关于影子系统安装的问题 滴滴出租车比一般出租车同价吗? 教师资格证怎么考啊? 腾讯文档接龙怎么接提交 怎么来制造情侣之间的惊喜来增进感情 滴滴打车中,同样的路程,费用是‘快车’贵还是‘出租车’贵? 现在滴滴打车 快车是不是比出租车还要贵 滴滴打车贵吗?? word文档怎么接龙 滴滴搭车的专车贵还是出租车