找回密碼
         注冊(cè)會(huì)員
        搜索附件  
        MCU資訊論壇 附件中心 單片機(jī)論壇 51單片機(jī)論壇 5_111576_0049a83f4c7d0d3.jpg

        5_111576_0049a83f4c7d0d3.jpg

         

        基于51單片機(jī)的LED旋轉(zhuǎn)顯示器(旋轉(zhuǎn)時(shí)鐘):
        程序如下:#include<reg52.h>

        unsigned char code shuzi_0[8]={0x82,0x7C,0x7C,0x7C,0x7C,0x7C,0x82,0xfe};/*"0",0*/
        unsigned char code shuzi_1[8]={0xfe,0x7e,0x7a,0x00,0x7e,0x7e,0xfe,0xfe};/*"1",1*/
        unsigned char code shuzi_2[8]={0x3a,0x3c,0x5c,0x5c,0x6c,0x6c,0x72,0xfe};/*"2",2*/
        unsigned char code shuzi_3[8]={0xba,0x7c,0x7c,0x6c,0x6c,0x6c,0x92,0xfe};/*"3",3*/
        unsigned char code shuzi_4[8]={0x9e,0xae,0xb6,0xba,0x00,0xbe,0xbe,0xfe};/*"4",4*/
        unsigned char code shuzi_5[8]={0xa0,0x6c,0x6c,0x6c,0x6c,0x6c,0x9c,0xfe};/*"5",5*/
        unsigned char code shuzi_6[8]={0x82,0x6c,0x6c,0x6c,0x6c,0x6c,0x9a,0xfe};/*"6",6*/
        unsigned char code shuzi_7[8]={0xfc,0xfc,0xfc,0x0c,0xf4,0xf8,0xfc,0xfe};/*"7",7*/
        unsigned char code shuzi_8[8]={0x92,0x6c,0x6c,0x6c,0x6c,0x6c,0x92,0xfe};/*"8",8*/
        unsigned char code shuzi_9[8]={0xb2,0x6c,0x6c,0x6c,0x6c,0x6c,0x82,0xfe};/*"9",9*/
        unsigned char code fuhao_A[8]={0xfe,0xfe,0xba,0xba,0xfe,0xfe,0xfe,0xfe};/*":",10*/
        /*******************************************************************************************************************************/
        unsigned char code hanzi_a[2][16]={0xf7,0x37,0x47,0x70,0x17,0x73,0xb7,0xbd,0xdd,0xdd,0xed,0xe5,0xc9,0xdd,0xbf,0xff,
        0xf7,0xe7,0xf7,0xf7,0x00,0xfb,0xbb,0xbd,0xbd,0xbd,0x81,0xbd,0xbc,0x9d,0xbf,0xff};/*輕*/
        unsigned char code hanzi_b[2][16]={0xff,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0x03,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xff,0xff,
        0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xc0,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xff};/*工*/
        unsigned char code hanzi_c[2][16]={0xfb,0xcb,0x3d,0xfb,0x3b,0xc3,0xdf,0xef,0xf0,0x17,0xf7,0xf7,0xd7,0xe7,0xff,0xff,
        0xef,0xf7,0xf9,0xfe,0x7d,0x73,0xbf,0xcf,0xf3,0xfc,0xf3,0xef,0x9f,0x3f,0xbf,0xff};/*歡*/
        unsigned char code hanzi_d[2][16]={0xbf,0xbd,0xbb,0x37,0xff,0x03,0xfb,0xfd,0x7d,0x03,0xfb,0xfb,0xfb,0x01,0xfb,0xff,
        0xff,0xbf,0xdf,0xe0,0xdf,0xb8,0xbd,0xbe,0xbf,0x80,0xbf,0xbd,0xbb,0x9c,0xdf,0xff};/*迎*/
        unsigned char code hanzi_e[2][16]={0xbf,0xdf,0xef,0x03,0xdc,0xef,0x73,0x98,0xfb,0x0b,0xfb,0xbb,0x6b,0x73,0xff,0xff,
        0xbf,0xcf,0xff,0x88,0x7f,0x7e,0x77,0x6d,0x4b,0x7c,0x7f,0x1f,0xff,0xee,0x9f,0xff};/*您*/

        //unsigned char bt=0; //定時(shí)器1中斷計(jì)數(shù)
        unsigned int Tcz=600,s=0,bt=0;//s表示中斷次數(shù) ,Tcz表示定時(shí)器TO的初值
        unsigned char iDex=0,hiDex; //8列控制,把旋轉(zhuǎn)一周的180個(gè)顯示位置分成22.5塊。一塊為一個(gè)顯示單位
        unsigned char Hour=10,Minute=15,Second=45,Hour_Flag=0,buffer=0;
        void hanzi_Show(unsigned char m);
        void Time_Show(unsigned char m); //數(shù)字0-9加:顯示函數(shù)
        void Time_Amend(); //時(shí)間邏輯控制函數(shù)
        void Hour_Display(); //小時(shí)顯示函數(shù)
        void Minute_Display(); //分鐘顯示函數(shù)
        void Second_Display(); //秒鐘顯示函數(shù)
        void A_Display(); //“:”顯示函數(shù)
        void Init(); //初始化函數(shù)
        int k=0; //校正值
        void INT00(void)interrupt 0 //外部中斷服務(wù)函數(shù),用于定位和定時(shí)器0初值校正
        { //k為校正值,當(dāng)定時(shí)中斷過快,K 變大,Tcz同時(shí)變大,定時(shí)器初值變大,中斷變慢;
        k=s-180;
        Tcz=Tcz+k;
        iDex=0;
        hiDex=0;
        s=0; //定時(shí)器中斷次數(shù)清零,顯示第二周
        }
        void kjp_test(void)interrupt 1 //定時(shí)器中斷0中斷服務(wù)程序。
        { TH0=(-Tcz)/256;
        TL0=(-Tcz)%256;
        if(buffer==0) //buffer 用來控制顯示模式
        {
        if(hiDex>=16){hiDex=0;} //顯示模式選擇,1為數(shù)字式,這個(gè)我想的是用遙控起來控制顯示模式
        if(iDex>=8){iDex=0;}
        if(s==(Second*3)) //秒鐘
        {
        P0=0X00;P1=0X00;
        }
        else
        {
        P0=0XFE;P1=0XFF;
        }

        if(s==(Minute)*3) //分
        {
        P0=0XF0;P1=0X00;
        }
        else
        {
        P0=0XFE;P1=0XFF;
        }

        if(s==(Hour*15+Minute/4)) //時(shí)
        {
        P0=0XFF;P1=0X00;
        }
        else
        {
        P0=0XFE;P1=0XFF;
        }

        }
        s++;

        }

        void Time_luoji()interrupt 3
        { TH1=(65535-20000)/256; //定時(shí)器1初值定為20毫秒
        TL1=(65535-20000)%256;
        bt++;
        if(bt==50) //就是這里有問題,我定50次應(yīng)該是秒數(shù)自加一,
        { // 但是實(shí)際卻很快,所以我定的500次
        bt=0;
        Second++;
        Time_Amend();

        }
        }
        void Time_Show(unsigned char m)
        {
        switch (m)
        {
        case 0 :P0=0xff; P0=shuzi_0[iDex];iDex++;P2=0xff;break;
        case 1 :P0=0xff; P0=shuzi_1[iDex];iDex++;P2=0xff;break;
        case 2 :P0=0xff; P0=shuzi_2[iDex];iDex++;P2=0xff;break;
        case 3 :P0=0xff; P0=shuzi_3[iDex];iDex++;P2=0xff;break;
        case 4 :P0=0xff; P0=shuzi_4[iDex];iDex++;P2=0xff;break;
        case 5 :P0=0xff; P0=shuzi_5[iDex];iDex++;P2=0xff;break;
        case 6 :P0=0xff; P0=shuzi_6[iDex];iDex++;P2=0xff;break;
        case 7 :P0=0xff; P0=shuzi_7[iDex];iDex++;P2=0xff;break;
        case 8 :P0=0xff; P0=shuzi_8[iDex];iDex++;P2=0xff;break;
        case 9 :P0=0xff; P0=shuzi_9[iDex];iDex++;P2=0xff;break;
        case 10 :P0=0xff; P0=fuhao_A[iDex];iDex++;P2=0xff;break;
        }
        }
        void hanzi_Show(unsigned char m)
        {
        switch (m)
        {
        case 0 :P0=0xff; P0=hanzi_a[0][hiDex];P2=0xff;P2=hanzi_a[1][hiDex];hiDex++;break; //輕
        case 1 :P0=0xff; P0=hanzi_b[0][hiDex];P2=0xff;P2=hanzi_b[1][hiDex];hiDex++;break; //工
        case 2 :P0=0xff; P0=hanzi_c[0][hiDex];P2=0xff;P2=hanzi_c[1][hiDex];hiDex++;break; //歡
        case 3 :P0=0xff; P0=hanzi_d[0][hiDex];P2=0xff;P2=hanzi_d[1][hiDex];hiDex++;break; //迎
        case 4 :P0=0xff; P0=hanzi_e[0][hiDex];P2=0xff;P2=hanzi_e[1][hiDex];hiDex++;break; //您
        }
        }


        void A_Display()
        {
        Time_Show(10);
        }

        void Hour_Display()
        { //顯示小時(shí)
        unsigned char m=0,n=0;
        m=Hour/10;
        n=Hour%10;
        if(s<8)
        Time_Show(m);
        else
        Time_Show(n);
        }

        void Minute_Display()
        {
        unsigned char m=0,n=0; //顯示分
        m=Minute/10;
        n=Minute%10;
        if(s<32)
        Time_Show(m);
        else
        Time_Show(n);
        }

        void Second_Display()
        {
        unsigned char m=0,n=0; //顯示秒
        m=Second/10;
        n=Second%10;
        if(s<56)
        Time_Show(m);
        else
        Time_Show(n);
        }

        void Time_Amend()
        {
        if(Second>=60) //時(shí)間邏輯控制
        {
        Second=0;
        Minute++;
        if(Minute>=60)
        {
        Minute=0;
        Hour++;
        if(Hour>=24)
        Hour=0;
        }
        }
        }

        void Init()
        {
        // TMOD|=0x01;
        // TMOD&=0xfd; //定時(shí)器/計(jì)數(shù)器的方式控制字。將T0設(shè)為方式2
        // TMOD|=0x10;
        // TMOD&=0xdf; //定時(shí)器/計(jì)數(shù)器的方式控制字。將T1設(shè)為方式2
        TMOD=0x11;
        EA=1; //中斷允許控制
        ET0=1; //定時(shí)器/計(jì)數(shù)器T0的中斷允許位
        ET1=1; //定時(shí)器/計(jì)數(shù)器T1的中斷允許位
        TH0=(65535-600)/256; //定時(shí)初值,5MS
        TL0=(65535-600)%256;
        TH1=(65535-50000)/256; //定時(shí)器1初值
        TL1=(65535-50000)%256;
        TR0=1; //定時(shí)器/計(jì)數(shù)器T0的啟動(dòng)
        TR1=1;
        EX0=1;
        // EX1=1; //INT0中斷允許控制位
        IT0=1;
        IT1=1; //控制寄存器TCON
        PT1=1; //設(shè)置定時(shí)器T1中斷先級(jí)為高,防止T0中斷中出現(xiàn),不處理T1中斷服務(wù)程序
        // PX1=1;
        }

        void main()
        {
        Init();
        while(1)
        {
        ;
        }
        }



        [ 此帖被tanghua718在2010-12-10 15:22重新編輯 ]



        5_111576_0049a83f4c7d0d3.jpg

        QQ|手機(jī)版|MCU資訊論壇 ( 京ICP備18035221號(hào)-2 )|網(wǎng)站地圖

        GMT+8, 2025-5-5 11:45 , Processed in 0.043417 second(s), 8 queries , Redis On.

        Powered by Discuz! X3.5

        © 2001-2025 Discuz! Team.

        返回頂部
        人人妻人人澡人人爽欧美精品| 亚洲午夜成人精品电影在线观看| 国产高清精品在线| 国产精品丝袜一区二区三区| 国产精品多人p群无码| 国产伦精品一区二区三区| 国产麻豆精品久久一二三 | 国产精品亚洲精品观看不卡| 99香蕉国产精品偷在线观看| 久久久精品一区二区三区| 国产精品自产拍在线观看花钱看| 国产乱人伦偷精品视频| 亚洲精品黄色视频在线观看免费资源| www.88av.com最新网址| 国产成人精品日本亚洲18图| 大胸国产精品视频| 日本不卡一区二区| 国产精品91av| 亚洲精品国精品久久99热| 国产精品自在线拍国产| 国产亚洲曝欧美不卡精品| 国产丝袜精品丝袜一区二区三区| 成人区人妻精品一区二区不卡视频| 国产精品 一区 在线| 黄页免费视频播放在线播放| 国语自产拍精品香蕉在线播放| 人精品影院| 日韩精品中文字幕无码一区| 999久久久免费国产精品播放| 亚洲国产精品一区二区三区久久| 精品乱码一区二区三区四区| 久草欧美精品在线观看| 国产精品看高国产精品不卡| 尤物国产在线精品福利一区| 一本久久精品一区二区| 999国产精品视频| 正在播放国产精品每日更新| 国产精品一二二区| 日本不卡一区高清二区三区中文字幕| 高清在线亚洲精品国产二区| 亚洲欧美日韩国产精品影院 |