中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        00-99計數器

        作者: 時間:2011-02-27 來源:網絡 收藏

        1.實驗任務

        利用AT89S51來制作一個手動計數器,在AT89S51P3.7管腳接一個輕觸開關,作為手動計數的按鈕,用P2.0P2.7接一個共陰數碼管,作為0099計數的個位數顯示,用單片機的P0.0P0.7接一個共陰數碼管,作為0099計數的十位數顯示;硬件電路圖如圖19所示。

        2.電路原理圖

        4.10.1

        3.系統(tǒng)板上硬件連線

        (1. 把“單片機系統(tǒng)”區(qū)域中的P0.0/AD0P0.7/AD7端口用8芯排線連接到“四路靜態(tài)數碼顯示模塊”區(qū)域中的任一個ah端口上;要求:P0.0/AD0對應著a,P0.1/AD1對應著b……,P0.7/AD7對應著h。

        (2. 把“單片機系統(tǒng)”區(qū)域中的P2.0/A8P2.7/A15端口用8芯排線連接到“四路靜態(tài)數碼顯示模塊”區(qū)域中的任一個數碼管的ah端口上;

        (3. 把“單片機系統(tǒng)”區(qū)域中的P3.7/RD端口用導線連接到“獨立式鍵盤”區(qū)域中的SP1端口上;

        4.程序設計內容

        (1. 單片機對按鍵的識別的過程處理

        (2. 單片機對正確識別的按鍵進行計數,計數滿時,又從零開始計數;

        (3. 單片機對計的數值要進行數碼顯示,計得的數是十進數,含有十位和個位,我們要把十位和個位拆開分別送出這樣的十位和個位數值到對應的數碼管上顯示。如何拆開十位和個位我們可以把所計得的數值對10求余,即可個位數字,對10整除,即可得到十位數字了。

        (4. 通過查表方式,分別顯示出個位和十位數字。

        5.程序框圖

        4.10.2

        6.匯編源程序

        Count EQU 30H

        SP1 BIT P3.7

        ORG 0

        START: MOV Count,#00H

        NEXT: MOV A,Count

        MOV B,#10

        DIV AB

        MOV DPTR,#TABLE

        MOVC A,@A+DPTR

        MOV P0,A

        MOV A,B

        MOVC A,@A+DPTR

        MOV P2,A

        WT: JNB SP1,WT

        WAIT: JB SP1,WAIT

        LCALL DELY10MS

        JB SP1,WAIT

        INC Count

        MOV A,Count

        CJNE A,#100,NEXT

        LJMP START

        DELY10MS: MOV R6,#20

        D1: MOV R7,#248

        DJNZ R7,$

        DJNZ R6,D1

        RET

        TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

        END

        7.C語言源程序

        #include AT89X51.H>

        unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,

        0x6d,0x7d,0x07,0x7f,0x6f};

        unsigned char Count;

        void delay10ms(void)

        {

        unsigned char i,j;

        for(i=20;i>0;i--)

        for(j=248;j>0;j--);

        }

        void main(void)

        {

        Count=0;

        P0=table[Count/10];

        P2=table[Count%10];

        while(1)

        {

        if(P3_7==0)

        {

        delay10ms();

        if(P3_7==0)

        {

        Count++;

        if(Count==100)

        {

        Count=0;

        }

        P0=table[Count/10];

        P2=table[Count%10];

        while(P3_7==0);

        }

        }

        }

        }

        51單片機相關文章:51單片機教程


        塵埃粒子計數器相關文章:塵埃粒子計數器原理


        評論


        相關推薦

        技術專區(qū)

        關閉