新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 89C51單片機40s倒記時數碼管動態顯示

        89C51單片機40s倒記時數碼管動態顯示

        作者: 時間:2016-11-30 來源:網絡 收藏
        此程序已經通過測試,電路連接是:一個2位的共陰數碼管,位選是P3.6,P3.7口,段選是P0口,還有如下3個按鍵

        sbit buzz = P2^2;
        sbit clear = P2^0;
        sbit start = P2^1;
        分別是喇叭,清除和開始 與gnd相連即可.

        #include < reg51.h >
        #include < intrins.h >

        本文引用地址:http://www.104case.com/article/201611/324036.htm

        const unsigned char LED7Code[]={
        0xC0, // 0
        0xF9, // 1
        0xA4, // 2
        0xB0, // 3
        0x99, // 4
        0x92, // 5
        0x82, // 6
        0xF8, // 7
        0x80, // 8
        0x90, // 9
        0x88, // A
        0x83, // B
        0xC6, // C
        0xA1, // D
        0x86, // E
        0x8E // F
        };

        sbit buzz = P2^2;
        sbit clear = P2^0;
        sbit start = P2^1;

        unsigned char count = 0;
        unsigned char timer1s_flag;
        unsigned char hw,lw;
        unsigned char flag;

        unsigned char clear_flag;
        unsigned char start_flag;
        //函數申明
        void key_scna(void);
        /*********************************************************/
        void main()
        {
        TMOD=0x01 ;
        TH0=0xed ;
        TL0=0xff ;
        EA=1;
        ET0=1;
        TR0=1 ;

        while(1)
        {
        if(timer1s_flag>=200){
        timer1s_flag = 0;

        if((count>0)&&(count<=40)){
        //count--;
        hw=count/10;
        lw=count%10;
        P0=0XFF;
        buzz=0;
        }
        else if(count==0){
        hw=count/10;
        lw=count%10;
        count=42;
        P0=0X00;
        buzz=1;
        }
        count--;

        }//500ms
        //key_scan();
        }
        }

        /*********************************************************/
        // 定時器0中斷服務程序.
        /*********************************************************/
        void timer0() interrupt 1 using 2
        {
        TH0=0xee ;
        TL0=0x04 ;

        timer1s_flag++;

        if(flag==0){
        P3=0X40;
        P1=LED7Code[hw];
        flag = 1;
        }
        else{
        P3=0X80;
        P1=LED7Code[lw];
        flag = 0;
        }
        }
        /*********************************************************/
        //按鍵掃描程序.
        /*********************************************************/
        void key_scna(void)
        {
        ;
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 射洪县| 张家界市| 东城区| 古田县| 黔西| 阳朔县| 互助| 万州区| 徐州市| 成武县| 江油市| 从化市| 自贡市| 昆明市| 电白县| 宁乡县| 柘荣县| 缙云县| 城市| 翁牛特旗| 宁都县| 霍林郭勒市| 青神县| 濉溪县| 侯马市| 塘沽区| 电白县| 金山区| 北海市| 洞头县| 余庆县| 辛集市| 柘城县| 贡嘎县| 延寿县| 佛山市| 沾益县| 龙陵县| 治多县| 馆陶县| 鄂尔多斯市|