Rumah > Artikel > tutorial komputer > Tutorial menulis butang untuk mengawal kitaran berkelip lampu LED mikropengawal
Apakah mikropengawal yang anda gunakan?
Saya rasa anda bercakap tentang marquee. Saya akan memberikan anda yang paling biasa, mikropengawal 51 dan program marquee C.
Saya boleh memberi anda lebih jika perlu, saya seorang jurutera pembangunan perkakasan.
Semoga dapat mengamalkannya.
Sebagai contoh, ini ialah program marquee C untuk 51 mikropengawal, yang telah disimulasikan pada perisian PROTEUS
#include
batalkan kelewatan(int);
void main()
{
int i;
P0=0x01;
kelewatan(500);
sementara(1)
{
untuk(i=0;i
{
P0
kelewatan(500);
}
P0=0x01;
kelewatan(500);
}
}
batalkan kelewatan(intx)
{
int i,j;
untuk(i=x;i>0l;i--)
untuk(j=110;j>0;j--);
}
:
#include
batalkan kelewatan(int);
void main()
{
int i;
P0=0x01;
kelewatan(500);
sementara(1)
{
untuk(i=0;i
{
P0
kelewatan(500);
}
P0=0x01;
kelewatan(500);
}
}
batalkan kelewatan(intx)
{
int i,j;
untuk(i=x;i>0l;i--)
untuk(j=110;j>0;j--);
}
//==============
#include
#takrifkan kiraan 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}};
batalkan kelewatan1ms(int);
pengimbas kosong(char);
//================
utama()
{char i=0;
sementara(1)
{
jika(i==0)
{ untuk(i=0;i pengimbas(i); } lain { untuk(i=10;i>=0;i--) { pengimbas(i); jika(i==0)pecah;} } } } //================ batalkan kelewatan1ms(int x ) { int i,j; untuk(i=0;i untuk(j=0;j
} // ====================== pengimbas kosong(char x) {char i,j,scan,BCD; untuk(i=0;i
{ imbasan=1; untuk(j=0;j
{ P0=0xff; P2=~imbasan; BCD=disp[x][j]; P0=TAB[BCD]; kelewatan1ms(4); imbas
} } } #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; batalkan Kelewatan() { tak bertandatangan char i,j; untuk(i=0;i
untuk(j=0;j
} void main() { sementara(1) { P1 = 0xff; LED1 = 0; Lewat(); LED2 = 0; LED1 = 1; Lewat(); LED3 = 0; LED2 = 1; Lewat(); LED4 = 0; LED3 = 1; Lewat(); LED5 = 0; LED4 = 1; Kelewatan(); LED6 = 0; LED5 = 1; Lewat(); LED7 = 0; LED6 = 1; Lewat(); LED8 = 0; LED7 = 1; Lewat(); } } org 0000j ajmp mula org 0030h mula: mov a,#0ffh ; clr c ; mov r2,#08h ; gelung: rlc a ; beralih ke kiri dengan membawa. mov p1,a ; kelewatan panggilan;kelewatan untuk tempoh masa djnz r2, gelung berulang kali mov r2,#07h ; gelung1: rrc a ; beralih ke kanan dengan membawa mov p1,a ; kelewatan panggilan;kelewatan untuk tempoh masa djnz r2,gelung1; gelung berulang kali jmp mula;mula semula kelewatan: mov r3,#20; subrutin kelewatan d1: mov r4,#20 d2: mov r5,#248 djnz r5,$ djnz r4,d2 djnz r3,d1 kembali akhirCara membuat marquee dengan mikropengawal
Program marquee MCU
Atas ialah kandungan terperinci Tutorial menulis butang untuk mengawal kitaran berkelip lampu LED mikropengawal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!