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

求个51单片机 汇编语言设计的LED跑马灯的程序

发布网友 发布时间:2022-04-26 08:02

我来回答

4个回答

热心网友 时间:2022-06-25 14:57

给个你参考
*******
/* 实验目的:初步了解单片机I/O口的工作原理,进一步掌握51单片机的汇编指令。
* 实验内容:用汇编指令对单片机I/O口进行编程,控制8个发光二极管的流水亮灭。
*/
/* 程序详细功能介绍:
*做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P0.0-P0.7接口上,
*输出“0”时,发光二极管亮,开始时P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→┅→P0.0亮,重复循环。
*/
ORG 0000H
LJMP START
ORG 0030H
START:
MOV R2,#8 ;左移次数
MOV A,#0FEH ;A的初始值,即 P0.0的L0 点亮
SETB C
LOOP: MOV P0,A
LCALL DELAY
RLC A ;左移流水灯(带进位的左移),即亮点向P0口的高位移动
DJNZ R2,LOOP

MOV R2,#8 ;右移次数
LOOP1: RRC A ;右移流水灯
MOV P0,A
LCALL DELAY
DJNZ R2,LOOP1
LJMP START

DELAY: MOV R5,#10 ;延时子程序,改变R5,R6,R7 的值,可以改变延时的时间,从而改变流水灯移动速度
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END

热心网友 时间:2022-06-25 14:57

C语言程序如下,已经经过了仿真,符合要求.
#include <reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int

uchar t1 = 0;
//-------------------------------
void TIME0()interrupt 1
{
TH0 = 0xD8; //初值.
TL0 = 0xF0; //10ms @ 12MHz
t1++;
}
//-------------------------------
void main() //主函数.
{
uchar i, aaa = 0xfe;
TMOD = 0x01; //定时器0
TH0 = 0xD8; //初值.
TL0 = 0xF0; //10ms @ 12MHz
TR0 = 1;
ET0 = 1;
EA = 1;
P0 = 0x00; //全亮.
while (t1 != 200); //等待2000ms
t1 = 0;
aaa = 0xfe;
P0 = aaa; //P1.0发光.
while (1) {
for (i = 0; i < 7; i++) {
while (t1 != 50); //等待500ms
t1 = 0;
aaa = _crol_(aaa, 1);//左移一位.
P0 = aaa;
} //左移位7次,P0.7发光.
for (i = 0; i < 7; i++) {
while (t1 != 50); //等待500ms
t1 = 0;
aaa = _cror_(aaa, 1);//右移一位.
P0 = aaa;
} //右移位7次,P0.0发光.
}
}

热心网友 时间:2022-06-25 14:58

这活我接了
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 跑马灯 ;
;2010.1.12 ball ;
;P0口为流水灯,低电平点亮 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0000H ;起始地址
LJMP MAIN ;转入主函数
ORG 000BH ;定时中断0入口地址
LJMP PE ;转入中断程序

ORG 0100H ;主程序入口
MAIN: ;
MOV TMOD,#01H ;设置定时中断0的工作方式
MOV TL0,#0EFH ;添加初值
MOV TH0,#0D8H ;
SETB EA ;开总中断
SETB ET0 ;开定时中断
SETB TR0 ;开始计时
MOV P0,#00H ;点亮所有灯
MOV R0,#0C8H ;设定定时次数,两百次10ms*200=2s
QUAN: ;
MOV A,R0 ;
JNZ QUAN ;

MOV A,#0FEH ;
PAOMA: ;点亮第一个灯
MOV P0,A ;
MOV R0,#32H ;设定定时次数50次。10ms*50=0.5s
HJ:
CJNE R0,#00H,HJ ;定时器重复50次,延时0.5秒
RL A ;循环左移进行跑马灯
LJMP PAOMA ;

PE: ;定时器
MOV TL0,#0EFH ;
MOV TH0,#0D8H ;
DEC R0 ;用R0决定定时次数
RETI ;
END ;over

利用定时器10ms的定时
200次循环定时器=2s延时
100次循环定时器=0.5s延时
利用循环左移实现跑马灯

热心网友 时间:2022-06-25 14:58

用c还是汇编写?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑lol突然很卡怎么办啊电脑玩lolfps低怎么解决 危化品仓库有什么设备 香港中文大学2021-2022在河北,重庆最低录取分数线 ChaCheer 洽洽 南瓜子 盐焗味 500g-适用对象 老闫家小粒香南瓜子-适用对象 洽洽盐焗味南瓜子-适用对象 盐焗南瓜子里有添加明矾吗 老街口盐焗味南瓜子500g*2袋量大优惠休闲零食 一天走多少步可以减肥每天走多少步可以减肥 肉炖土豆需要炖多久时间 新化有什么好吃的 名字用英语怎么读? 请问律师这个行业有没有底薪 律师事务所关于律师收入的提成制度 新化最有名的小吃是什么? 什么是提成律师 用西门子PLC300设计流水灯,跑马灯的程序是什么? 新化油炸粑粑的做法 独立的提成制律师如果自己找不到案子,一般律师事务所会给提供案源吗? 闪电侠和绿箭侠互换是哪一集? 受薪律师和提成律师之间有什么区别 律师都是按提成拿吗? 平衡车闪电侠是什么牌子 律师事务所 提成制度 有没有闪电侠第二季资源? 关于做提成律师和坐班律师,请律师朋友们发表一下个人意见! 为什么我看日本动漫的时候别人交换电子邮箱好像很高级两手机对一下就可以了。然后我看闪电侠。一女的直接 执业第一年就成为提成律师是什么体验? 求 闪电侠 第一季 百度网盘免费资源链接,谢谢 为什么 正义联盟里 闪电侠扮演者换了 提成制律师与律师事务所之间是劳动关系还是合作关系? 实现跑马灯:第一个灯亮,隔0.5s第二个灯亮,依次的每个灯亮下去,时间间隔均为0.5s 律师待遇怎么样? 名字的英语怎么读? 求会单片机的人! c程序完成跑马灯从左向右亮,间隔1s,从右向左亮,间隔0.5s,从左向右八个灯交 律所为什么要推广无底薪公共计时授薪制 孩子属羊取名叫肖春?好呢 作为初学者,如何学习PLC?请高人帮助 长沙哪里有新化菜馆? AT89C51跑马灯程序 律师事务所分红和提成有啥区别? 湖南小时候的回忆一种油炸食品梅花型的糯米粉炸的麻花吧!有人知道叫什么吗? 卖炸鸡都是现炸的吗?我有个店想做炸鸡,但不能让顾客等太久,想知道能否... 律师要向律所缴纳多少钱?律所对律师有什么好处? 求个LED跑马灯的程序 律师执业的工作时间是多少? 关于51单片机的跑马灯设置问题 油炸的小吃怎么做啊 汇编语言跑马灯问题,逆时针改顺时针 s7200中断连接(ATCH)指令的运用