没什么实质的区别只是各人说法不一样,像流水灯程序也有人叫跑马灯,说个简单的例子,比方说一个亮点不断的左循环就叫流水灯。从中间亮两个点,从左右两边流动就叫花样。查询方式:ORG,AJMPMAINMAIN:MOVP,#MOVR,#MOVA,P,XU:RLAMOVP,AACALLDELAYDJNZR,XUAJMPMAINDELAY:MOVR,#FHONE:MOVR,#FHTWO:MOVR,#THE:DJNZR,THEDJNZR,TWODJNZR,ONE(将近,)RETEND中断方式:org。
因为LED是低平驱动的,初始值,FE二进制为,,也就是最后一个值为,灯亮左移一位变成,,同样是为,灯亮,依次移动_crol_是左移哦。//P,接,LED,低电平发光.//下列程序在PROTEUS中仿真成功include//—voiddelay_ms(unsignedints){unsignedintx;for(s;s>,s–){x=,while(x–);}}//—voidmain(){chari,j;while({for(j=,j<。
includevoiddelay(unsignedinta){unsignedinti,j;for(i=,i<a;i )for(j=,j<,j );}main(){unsignedchari,led;led=,fe;while({P,led;delay(;P,,ff;delay(;led=(led<<,|,,if(led==,ff)led=。我给你一个程序,单片机为STC,晶振为,Hz。跑马灯采用查表法,定时用查询式定时器,时间为,s;I/O口用,引脚,P,P,P,用,,P,P,程序用C语言。为了取得一个较好的观赏效果,对你的要求作了少许修改,你可以用PROTEUS仿真观看效果。程序已仿真调试通过。
就是把speed的“–”变“ ”,初值由“变“嘛,然后来回切换。defineucharunsignedchardefineuintunsignedintincludesbitP,=P,,sbitP,=P,,sbitP,=P,,sbitP,=P,,bitldelay=,bitacc=,ucharspeed=,num。片机是单片机接触最早的,下边这个程序希望能帮到你。(只有主函数,就不进行硬件什么定义以及头文件包含什么的了)voiddelay(inttimes){//延时函数,times控制延时时间inti,j;for(i=,i<times;i )for(j=,j<,j );}intmain(void){unsignedchardata。
51单片机双向跑马灯汇编
顺序编程,分支编程,循环编程,子程序调用:;p,八个灯作跑马灯。org,ajmpstartorg,start:mova,#fh;clrc;movr,#;循环八次。loop:rlca;带进位左移。movp,a;输出到P,。calldelay;延时一段时间djnzr,loop;反复循环movr。程序没问题呀。。。你把电路图好好弄弄,把灯换个模型,LED-BIRG试试,把电阻去掉试试。
如果电路是P,控制LED,高电平灯亮:include
感谢您的来访,获取更多精彩文章请收藏本站。

暂无评论内容