Rumah  >  Artikel  >  tutorial komputer  >  Tutorial menulis butang untuk mengawal kitaran berkelip lampu LED mikropengawal

Tutorial menulis butang untuk mengawal kitaran berkelip lampu LED mikropengawal

WBOY
WBOYke hadapan
2024-01-22 17:18:06756semak imbas

Tutorial menulis butang untuk mengawal kitaran berkelip lampu LED mikropengawal

Ajar cara menulis program untuk mengawal kitaran berkelip lampu LED mikropengawal melalui butang

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--);

}

Program pintu pusingan MCU

//==============

#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

}

}

}

Cara membuat marquee dengan mikropengawal

#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();

}

}

Program marquee MCU

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

akhir

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!

Kenyataan:
Artikel ini dikembalikan pada:docexcel.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam