你用的什麼單晶片?
看你說的應該是跑馬燈,給你一個最常見的,51單晶片,跑馬燈C程式。
若有需要可以給你更多,本人硬體開發工程師。
望採納。
例,這是一個51單晶片的跑馬燈C程序,已經在PROTEUS軟體上模擬通過
#include
void delay(int);
void main()
{
int i;
P0=0x01;
delay(500);
while(1)
{
for(i=0;i
{
P0
delay(500);
}
P0=0x01;
delay(500);
}
}
void delay(intx)
{
int i,j;
for(i=x;i>0l;i--)
for(j=110;j>0;j--);
}
:
#include
void delay(int);
void main()
{
int i;
P0=0x01;
delay(500);
while(1)
{
for(i=0;i
{
P0
delay(500);
}
P0=0x01;
delay(500);
}
}
void delay(intx)
{
int i,j;
for(i=x;i>0l;i--)
for(j=110;j>0;j--);
}
//==============
#define count 11
char TAB[]={ 0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x83,0xf8,0x80,0x98,
0xff};
char disp[11][4]={ {10,10,10,10},
{1,10,10,10},{10,1,10,10},{10,10,1,10},{10,10,10,1},
{2,10,10,1},{10,2,10,1},{10,10,2,1},
{3,10,2,1},{10,3,2,1},
{4,3,2,1}};
void delay1ms(int);
void scanner(char);
//================
main()
{ char i=0;
while(1)
{
if(i==0) { for(i=0;i scanner(i); } else { for(i=10;i>=0;i--) { scanner(i); if(i==0)break;} #} } } //================
for(i=0;i
{ char i,j,scan,BCD;
delay1ms(4);
}
#include
sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit LED4 = P1^3;
sbit LED5 = P1^4;
sbit LED6 = P1^5;
sbit LED7 = P1^6;
sbit LED8 = P1^7;
void Delay()
{
unsigned char i,j;
for(i=0;i
for(j=0;j }void main()
{
while(1)
{
P1 = 0xff;
LED1 = 0;
Delay();
LED2 = 0;
LED1 = 1;
Delay();
LED3 = 0;
LED2 = 1;
Delay();
LED4 = 0;
LED3 = 1;
Delay();
LED5 = 0;
LED4 = 1;
Delay();
LED6 = 0;
LED5 = 1;
Delay();
LED7 = 0;
LED6 = 1;
Delay();
LED8 = 0;
LED7 = 1;
Delay();
}
單晶片跑馬燈程式
org 0000h
ajmp start
org 0030h
start:
mov a,#0ffh ;#clr c ;
mov r2,#08h ;循環八次。
loop: rlc a ;帶進位左移。
mov p1,a ;輸出到P1口。
call delay ;延時一段時間
djnz r2,loop ;反覆循環#mov r2,#07h ;再往回迴圈。
loop1: rrc a ;帶進位右移
mov p1,a ;輸出到P1口。
call delay ;延時一段時間
djnz r2,loop1 ;反覆循環
jmp start ;重新開始
delay: mov r3,#20 ;延時子程式
d1: mov r4,#20
d2: mov r5,#248
djnz r5,$
djnz r4,d2
djnz r3,d1
ret### ###end###
以上是編寫控制單晶片LED燈閃爍週期的按鍵教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!