PIC单片机16F877A跑马灯程序,课设用

如题所述

rg 0000h ;开始
ajmp loop
org 0080h ;到0030h处避开00-30的敏感地址
loop:
mov p0,#0ffh ;关闭所有灯
clr p0.0 ;点亮灯p0.0
lcall delay ;延时一段时间?
clr p0.1 ;点亮灯p0.1
lcall delay
clr p0.2 ;点亮灯p0.2
lcall delay
clr p0.3 ;点亮灯p0.3
lcall delay
clr p0.4 ;点亮灯p0.4
lcall delay
clr p0.5 ;点亮灯p0.5
lcall delay
clr p0.6 ;点亮灯p0.6
lcall delay
clr p0.7 ;点亮灯p0.7
lcall delay
AJMP LOOP ;到最开始loop处重新运行
delay: mov r5,#20 ;延时。
d1: mov r6,#40
d2: mov r7,#248
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
end
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-17
你说的是不是流水灯,以下是流水灯的,
#inclide "pic.h"
void dms(unsigned int ms)
{ int j;
for(;ms>0;ms--)
{ for(j=0;j<272;j++)
{;}
}
}

void main()
{ TRISD=0;

PORTD=0X00;
int i;
while(1)
{
for(i=0;i<7;i++)
{ PORTD=0X00;
PORTD<<I;dms(1000);
if(i==7)
{i=0;
PORTD=0x00;
}
}
}
}本回答被提问者采纳
第2个回答  2011-10-18
我有啊,可一做实物,百度名就是q