日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀] 利用51單片機構(gòu)成計數(shù)器,計數(shù)的上限,做的大一些,也不難,幾千幾萬都可以。下面的電路,小了一點,是個兩路兩位的計數(shù)器。用來記錄乒乓球比賽,還算可以,用于籃球比賽,分數(shù)超過99,這個電路就不夠用

利用51單片機構(gòu)成計數(shù)器,計數(shù)的上限,做的大一些,也不難,幾千幾萬都可以。


下面的電路,小了一點,是個兩路兩位的計數(shù)器。


用來記錄乒乓球比賽,還算可以,用于籃球比賽,分數(shù)超過99,這個電路就不夠用了。




電路圖中,用的是共陽數(shù)碼管;還設(shè)置了六個按鍵,用途,都已經(jīng)標出。


用C語言編寫驅(qū)動程序,是比較簡單的,全部代碼如下:


#include

unsignedcharn1,n2;

//-----------------------------------------------

voiddelay(unsignedinti)//1ms延時程序

{

unsignedcharj;

while(i--)for(j=0;j<115;j++);

}

//-----------------------------------------------

voiddisp(void)

{

unsignedcharcodeSEG[]={

0xc0,0xf9,0xa4,0xb0,0x99,//0-4

0x92,0x82,0xf8,0x80,0x90};//5-9


P0=SEG[n1/10];P1=1;delay(2);P1=0;

P0=SEG[n1%10];P1=2;delay(2);P1=0;

P0=SEG[n2/10];P1=4;delay(2);P1=0;

P0=SEG[n2%10];P1=8;delay(2);P1=0;

}

//-----------------------------------------------

voidmain(void)

{

unsignedchark,t;

n1=n2=0;

while(1){

disp();

if(~(P2|0xc0)){

disp();

if(~(P2|0xc0)){

k=~(P2|0xc0);

while(~(P2|0xc0))disp();

if(k==1){n1++;if(n1==100)n1=0;}

elseif(k==2){n1--;if(n1==-1)n1=99;}

elseif(k==4){n2++;if(n2==100)n2=0;}

elseif(k==8){n2--;if(n1==-1)n2=99;}

elseif(k==16){n1=n2=0;}

elseif(k==32){t=n1;n1=n2;n2=t;}

}}}

}

//-----------------------------------------------


是不是很簡單?


用匯編語言來編程,就顯得長多了。


和上述C語言功能相同的匯編語言程序,全部代碼如下:


ORG0000H

JMPMAIN

ORG0030H

;-------------------------

MAIN:

CALLDISP

MOVA,P2

CJNEA,#0FFH,KEY

CLR00H

JMPMAIN

;-------------------------

KEY:

JNB00H,A_ADD1

JMPMAIN

;----------------------

A_ADD1:

SETB00H

JBP2.0,A_SUB1

MOVA,R0

ADDA,#01H

DAA

MOVR0,A

JMPMAIN

;----------------------

A_SUB1:

JBP2.1,B_ADD1

MOVA,R0

ADDA,#99H

DAA

MOVR0,A

JMPMAIN

;----------------------

B_ADD1:

JBP2.2,B_SUB1

MOVA,R1

ADDA,#01H

DAA

MOVR1,A

JMPMAIN

;----------------------

B_SUB1:

JBP2.3,CLR_0

MOVA,R1

ADDA,#99H

DAA

MOVR1,A

JMPMAIN

;----------------------

CLR_0:

JBP2.4,EXCH

MOVR0,#00H

MOVR1,#00H

JMPMAIN

;----------------------

EXCH:

JBP2.5,END_K

MOVA,R0

XCHA,R1

MOVR0,A

JMPMAIN

END_K:

CLR00H

JMPMAIN

;-------------------------

DISP:

MOVDPTR,#BG

MOVA,R0

SWAPA

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

SETBP1.0

CALLDELAY

CLRP1.0

;----------------------

MOVA,R0

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

SETBP1.1

CALLDELAY

CLRP1.1

;----------------------

MOVA,R1

SWAPA

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

SETBP1.2

CALLDELAY

CLRP1.2

;----------------------

MOVA,R1

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

SETBP1.3

CALLDELAY

CLRP1.3

RET

;-------------------------

DELAY:

DJNZR7,$

DJNZR7,$

DJNZR7,$

DJNZR7,$

RET

;-------------------------

BG:

DB0C0H,0F9H,0A4H,0B0H,99H

DB92H,82H,0F8H,80H,90H

;-------------------------

END


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉