永发信息网

广告灯左移右移的单片机程序

答案:2  悬赏:0  手机版
解决时间 2021-04-13 14:14
广告灯左移右移的单片机程序
最佳答案

八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环,晶振12M:


这是汇编:


ORG 0


START: MOV R2,#8


MOV A,#0FEH


SETB C


LOOP: MOV P1,A


LCALL DELAY


RLC A


DJNZ R2,LOOP


MOV R2,#8


LOOP1: MOV P1,A


LCALL DELAY


RRC A


DJNZ R2,LOOP1


LJMP START


DELAY: MOV R5,#20 ;


D1: MOV R6,#20


D2: MOV R7,#248


DJNZ R7,$


DJNZ R6,D2


DJNZ R5,D1


RET


END


当然,还可以用C语言来编写:


#include <reg52.h>
#include <intrins.h>//包含位移函数
#define uint unsigned int
#define uchar unsigned char
uchar temp,i; //数据类型unsigned char为8位
void delay(uint);
void main()
{
temp=0xfe;
P1=temp;
while(1)
{
for(i=0;i<8;i++)


{
temp=_cror_(temp,1); //右移一位
delay(800); //设置延时的时间
P1=temp;


}


for(i=0;i<8;i++)


{
temp=_crol_(temp,1); //左移一位
delay(800); //设置延时的时间
P1=temp;


}


}


}
void delay(uint z) //延时程序
{
uint y;
for(;z>0;z--)
for(y=248;y>0;y--) ;


}

全部回答

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:MOV P0,#0FEH;第一个亮(广告灯接在P0口的,其它口也可以,自已改)

MOV A,P0

RL A ;左移

LCALL DELAY;这是隔多少时间移位一次

MOV P0,A

JB P0.7 MAIN

RIGHT:RR A ;右移

MOV P0,A

LCALL DELAY

JNB P0.0 MAIN

LJMP RIGHT

END

我也不是很熟,也是刚学

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
台式电脑有线上网资费怎么计?
安徽省立医院生殖中心怎么预约挂号
出狱要给狱警交钱才能出狱吗?
—Have you heard news that over 10,000 pe
咋用命令指示符?
我好象喜欢他耶!怎么办、
我长了青春豆,是不是雄性激素过多.整样才能
荷锄而立是什么意思,什么对什么
凌晨5点半到达上海南站,早上7点半必须到达苏
这个季节去哪旅游
山东泰安有几家哎呀呀?
神之墓地2.6c素菜魔道诸神无CD有限蓝Z版怎么
每年的12月5日,是国际志愿者日。这天,志愿
这样的男朋友,你会选择和他分手吗?
如何装胶片 富士拍立得相机hello kitty
推荐资讯
脚扭了到现在有2星期了 正常走路了 可脚踝还
湖州那边滴滴快车生意好吗?
短篇美文,带赏析…
甘南地图导航
小禾里在什么地方啊,我要过去处理事情
分手快十年的恋人为什么还是会梦到
三星J708刷机后能刷出什么功能
不到移动大厅直接在手机上补卡可以吗
关于黄金价格
帮忙找一下洗冤录第一部的第一集
使用WQSG却打不开ISO文件是怎么回事?
单选题She sat at the desk&
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?