Tutorial menulis butang untuk mengawal kitaran berkelip lampu LED mikropengawal

WBOY
Lepaskan: 2024-01-22 17:18:06
ke hadapan
770 orang telah melayarinya

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!

sumber:docexcel.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan