新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機電子時鐘程序

        單片機電子時鐘程序

        作者: 時間:2016-11-29 來源:網絡 收藏
        /*****************************************************
        數碼驅動部分
        *****************************************************/
        void delay(unsigned char z)
        {
        unsigned char x,y;
        for(x=0;x {y = 100;
        while(--y);}
        }
        /****************************************************
        595 驅動
        ****************************************************/
        void _74hc595(unsigned char dat)
        {
        unsigned char n;
        sh=0;
        st=0;
        for(n=0;n<8;n++)
        {
        if(dat&0x80)ds=1;
        else ds=0;
        sh=1;
        dat<<=1;
        sh=0;
        }
        st=1;
        }
        /******************************************************
        掃描部分
        ******************************************************/
        void sanf_display(void)
        {
        static unsigned char n;
        unsigned char scanf_dat_temp[4];
        if((menu_button2_down ==1)&&(time.mode==0))
        {
        if(button2_length_whack_flag)
        {
        Alarm_on_off = ~Alarm_on_off;
        button2_length_whack_flag = 0;
        time.delaycount = Alarm_switch_on_off_ms;
        }
        scanf_dat[0] = time.AlarmHou;
        scanf_dat[1] = time.AlarmMin;
        // Alarm_on_off_display = 1;
        }
        // else Alarm_on_off_display = 0;
        if((menu_button3_down ==1)&&(time.mode==0))
        {
        scanf_dat[0] = time.mon;
        scanf_dat[1] = time.day;
        }
        scanf_dat_temp[0] = P_leab_led_7[scanf_dat[0]/10];
        scanf_dat_temp[1] = P_leab_led_7[scanf_dat[0]%10];
        scanf_dat_temp[2] = P_leab_led_7[scanf_dat[1]/10];
        scanf_dat_temp[3] = P_leab_led_7[scanf_dat[1]%10];
        // if(Alarm_on_off_display)
        // {
        if(Alarm_on_off)
        {
        //scanf_dat_temp[0] &= 0x7f;
        //scanf_dat_temp[1] &= 0x7f;
        //scanf_dat_temp[2] &= 0x7f;
        scanf_dat_temp[3] &= 0xf7;
        // }
        }
        if(time.count>=50&&time.mode==0&&menu_button3_down ==0&&menu_button2_down ==0)scanf_dat_temp[1] &= 0xf7;
        if(menu_button2_down||menu_button3_down) flash_control = 0;
        if(flash_control)
        {
        if(time.mode&0x01){scanf_dat_temp[0] = 0xff; scanf_dat_temp[1] = 0xff;}
        else {scanf_dat_temp[2] = 0xff; scanf_dat_temp[3] = 0xff;}
        }
        for(n=0 ;n<4;n++)
        {
        _74hc595( scanf_dat_temp[n]);
        switch(n)
        {
        case 0:led0=1;led1=0; led2=0; led3=0;break;
        case 1:led0=0;led1=1; led2=0; led3=0;break;
        case 2:led0=0;led1=0; led2=1; led3=0;break;
        case 3:led0=0;led1=0; led2=0; led3=1;break;
        default :led0=0;led1=0; led2=0; led3=0;break;
        }
        delay(5);
        _74hc595(0xff);
        led0 = 0; led1 = 0; led2 = 0; led3 = 0;
        delay(1);
        }
        }
        /**********************************************************
        加載顯存
        **********************************************************/
        void proces_start(void)
        {
        unsigned char temp[6];
        unsigned int dattemp;
        if(time.mode==0) //時間顯示
        {
        scanf_dat[0] = time.hou;
        scanf_dat[1] = time.min;
        }
        else if(time.mode==1)//秒表顯示
        {
        if(time.stopwatch[2]>0)
        {
        scanf_dat[0] = time.stopwatch[2];
        scanf_dat[1] = time.stopwatch[1];
        }
        else
        {
        scanf_dat[0] = time.stopwatch[1];
        scanf_dat[1] = time.stopwatch[0];
        }
        }
        else if(time.mode<4)//
        {
        scanf_dat[0] = time.hou;
        scanf_dat[1] = time.min;
        }
        else if(time.mode<6)
        {
        scanf_dat[0] = time.mon;
        scanf_dat[1] = time.day;
        }
        else if(time.mode<8)
        {
        scanf_dat[0] = time.year[1];
        scanf_dat[1] = time.year[0];
        }
        else if(time.mode<10)
        {
        scanf_dat[0] = time.AlarmHou;
        scanf_dat[1] = time.AlarmMin;
        }
        else
        {
        dattemp = time.cymometer[1];
        dattemp = dattemp<<8;
        dattemp+=time.cymometer[0];
        temp[1] = dattemp%10000/100;
        temp[0] = dattemp%100;
        scanf_dat[0] = temp[1];
        scanf_dat[1] = temp[0];
        }
        if((time.AlarmHou==time.hou)&&(time.AlarmMin==time.min)&&(Alarm_on_off==1))
        {
        buzzer = 1;
        }
        else buzzer=0;
        }
        /*****************************************************************************
        系統初始化
        *****************************************************************************/
        void syster_init(void)
        {
        time.sec = 0;
        time.min = 59;
        time.hou = 23;
        time.day = 28;
        time.mon = 2;
        time.year[0] = 13;
        time.year[1] = 20;
        time.AlarmHou = 6;
        time.AlarmMin = 30;
        time.mode = 0;
        time.stopwatch[0]=0;
        time.stopwatch[1]=0;
        time.stopwatch[2]=0;
        Time_Count0_Init();
        }
        main()
        {
        syster_init();
        while(1)
        {
        button3_proces();
        button2_proces();
        proces_start();
        sanf_display();
        }
        }
        下面為hex文件內容:1007CB0012070E1207B712078A1202E812000E80E8
        :0107DB00F22B
        :10073400000A00FA004C006800B800290009007A99
        :10074400000800281F1D1F1E1F1E1F1F1E1F1E1F07
        :10077300758951758CD8758AF0D2A9D28CD288D25A
        :07078300A8758B05D2AF221F
        :10039A00E53524FEB4080040030204479003B4750F
        :1003AA00F003A4C58325F0C583730203CC0203D9E5
        :1003BA000203E602040702041402042102042E02C4
        :1003CA00043B0526E526D3943B4072E4F526220534
        :1003DA0027E527D394174065E4F527220528E52960
        :1003EA00B40209E528D395384002800DE529900723
        :1003FA004793FFE528D39F4044752801220529E544
        :10040A0029D3943B4037E4F52922052AE52AD394D7
        :10041A0063402AE4F52A22052BE52AD39463401D7A
        :10042A00E4F52B22052CE52CD3943B4010E4F52C63
        :0E043A0022052DE52DD3943B4003E4F52D2241
        :10044800E53524FEB4080040030204F59004627503
        :10045800F003A4C58325F0C5837302047A020488D7
        :100468000204960204B10204BE0204CC0204DA02B9
        :1004780004E8E526D39400400315262275263B227E
        :10048800E527D3940040031527227527172215283E
        :10049800E528C394015056E529B40204853828227A
        :1004A800E52990074793F528221529E529C39401E2
        :1004B800503B75290C22E52AD394004003152A22C3
        :1004C800752A6322E52AD394004003152B22752B45
        :1004D8006322E52CD394004003152C22752C3B2273
        :0E04E800E52DD394004003152D22752D17220B
        :03000B0002017F70
        :0D017F00C0E0C0F0C083C082C0D075D008C1
        :10018C00758CD8758AF0B2B7AF2B7E007C007D647D
        :10019C001206A7E52A2FFFEC3EEF540360057538D5
        :1001AC001C800375381D12062B1204F61205A3E5EC
        :1001BC003564017037AF39EFC4131313540130E0B9
        :1001CC002BAF21EF54FBF521052EE52EC394644093
        :1001DC0005752E00052FE52FC3943C4005752F00A7
        :1001EC000530E530C3943C4003753000AF21EF136C
        :1001FC0013543F30E009752E00752F00753000AF99
        :10020C0021EFC4540F30E008D28E858D32858B31AE
        :10021C00AF21EFC413540730E016D28ED53311C280
        :10022C008E858D32858B31753364758B00758D00A1
        :10023C00E535D39401402CE535940A50260534E578
        :10024C003494284025753400AF39EF13131354013F
        :10025C00F4540133333354F8FFAE39EE54F74FF501
        :10026C00398007AF39EF54F7F5390524E524C394E9
        :10027C006440057524000525E525C3943C400575AF
        :10028C0025000526E526C3943C4005752600052768
        :10029C00E527D3941740057527000528E529B402F6
        :1002AC0009E528D395384014800DE529900747932C
        :1002BC00FFE528D39F40057528010529E529D3942E
        :1002CC000C4005752901052AE52AD39463400205E3
        :0102DC002BF6
        :0B02DD00D0D0D082D083D0F0D0E0322F
        :030003000207A150
        :1007A100C0E0C0D075D018753764AF39EF4402F599
        :0607B10039D0D0D0E03287
        :10062B00AF39EF30E01B20B20BD53615E4F536753C
        :10063B0035028006E4F536753501AF39EF54FEF51A
        :10064B0039AF39EFC31330E0521537E537646270B9
        :10065B004A20B247E535700CAF39EF4401F53975D7
        :10066B0036648029E535B40105E4F535801FE535A1
        :10067B00C3940A500E0535E4F534AF39EF54FEF54B
        :10068B0039800AE4F535AF39EF54FBF539AF39EF63
        :0C069B0054EFF539AF39EF54FDF539226A
        :10078A00AF39EFC4540F20E00D20B30AAF39EF445C
        :07079A0010F53975366422E9
        :1004F600AF39EFC4540F30E07620B3621536E536D7
        :100506006462704AE535B4011BAF39EFC4131313A7
        :100516005401F45401C43333335480FFAE39EE54DE
        :100526007F4FF539E535640A7021AF21EFC45401D8
        :10053600F45401C454F0FFAE21EE54EF4FF521E41C
        :10054600F58BF58DAF21EF54DFF52112039AE536D1
        :10055600701D75360AAF39EF4420F5398011AF3971
        :10056600EF54EFF53975360AAF39EF54DFF539AF89
        :1005760039EFC413540730E023E535D39401401C0A
        :10058600AF39EF54DFF53912039AC28EE4F531F52F
        :0D0596008DF532F58BAF21EF54EFF52122EA
        :1007B700AF21EF20E00D20B40AAF21EF4401F5216E
        :0407C70075366422FD
        :1005A300AF21EF30E05620B4421536E53664627071
        :1005B3002AE535B40107AF21EF4404F521E535B44D
        :1005C3000A16AF21EF4420F521753364E4F58BF56A
        :1005D3008DAF39EF547FF539120448E536701D7538
        :1005E300360AAF21EF4402F5218011AF21EF54FE0B
        :1005F300F52175360AAF21EF54FDF521AF21EFC385
        :100603001330E023E535D39401401CAF21EF54FDB3
        :10061300F521120448C28EE4F531F58DF532F58BE0
        :08062300AF21EF54DFF52122A5
        :0E07DC00E4FEEEC39F50077D64DDFE0E80F448
        :0107EA0022EC
        :10075400C297C296E4FEEF30E704D2958002C295B8
        :0E076400D297EF25E0FFC2970EBE08EAD296AC
        :010772002264
        :10000E00AF39EFC4540F30E037E5357033AF39EF09
        :10001E00C413540730E023AF39EFC413135401F463
        :10002E005401C4333354C0FFAE39EE54BF4FF539CB
        :10003E00AF39EF54DFF5397536FA852D22852C232D
        :10004E00AF21EF30E00AE535700685292285282399
        :10005E00E52275F00A8425E02434F582E43407F5B0
        :10006E0083E4740193F510E52275F00A84E5F0251A
        :10007E00E02434F582E43407F583E4740193F5113A
        :10008E00E52375F00A8425E02434F582E43407F57F
        :10009E0083E4740193F512E52375F00A84E5F025E7
        :1000AE00E02434F582E43407F583740193F513AF3D
        :1000BE0039EFC41313540330E0035313F7E524C38D
        :1000CE0094324016E5357012AF21EF20E00CAF39B7
        :1000DE00EFC4540F20E0035311F7AF39EFC4540FA0
        :1000EE0020E006AF21EF30E007AF39EF54F7F539D6
        :1000FE00AF39EF131313541F30E013E53530E0081A
        :10010E007510FF7511FF80067512FF7513FFE4F56C
        :10011E002074102520F8E6FF120754E52014600E17
        :10012E001460111460182403701ED292801CC292A7
        :10013E00D2938018C292C293D294C2918012C2926C
        :10014E00C293C294D2918008C292C293C294C291B9
        :10015E007F051207DC7FFF120754C292C293C2942E
        :10016E00C2917F011207DC0520E520C3940440A153
        :01017E00225E
        :1002E800E53570028023E535B40117E530D3940075
        :1002F8004008853022852F23807D852F22852E2357
        :100308008075E535C3940450088527228526238007
        :1003180066E535C394065008852922852823805729
        :10032800E535C394085008852B22852A238048E5A3
        :1003380035C3940A5008852D22852C238039AB3289
        :10034800EB7B00FAEB2531FBE43AFA7C277D10AF12
        :1003580003FE1206B97E007F64CFCDCFCECCCE127D
        :1003680006B98F11AE02AF037C007D641206B98D09
        :1003780010851122851023E52DB52713E52CB52608
        :100388000EAF39EFC41313540330E003D29022C2E6
        :0103980090D4
        :010399002241
        :10070E00E4F52575262675271275280B75290875AB
        :10071E002A0C752B14752D06752C1EF535F52EF538
        :06072E002FF530020773F5
        :030000000207EB09
        :0C07EB00787FE4F6D8FD7581390207CB59
        :1006A700EF8DF0A4A8F0CF8CF0A428CE8DF0A42E67
        :0206B700FE2221
        :1006B900BC000BBE0029EF8DF084FFADF022E4CC25
        :1006C900F875F008EF2FFFEE33FEEC33FCEE9DECEE
        :1006D900984005FCEE9DFE0FD5F0E9E4CEFD22ED34
        :1006E900F8F5F0EE8420D21CFEADF075F008EF2F7E
        :1006F900FFED33FD4007985006D5F0F222C398FD6F
        :050709000FD5F0EA220B
        :00000001FF
        上一頁 1 2 3 下一頁

        關鍵詞: 單片機電子時

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 阳高县| 龙山县| 宾川县| 宁晋县| 西昌市| 天镇县| 琼结县| 根河市| 盖州市| 新余市| 云龙县| 加查县| 景洪市| 河间市| 图木舒克市| 济南市| 阿城市| 祁阳县| 长兴县| 宽甸| 嘉禾县| 阳新县| 永和县| 雅江县| 宝应县| 西青区| 邵阳市| 故城县| 安丘市| 库尔勒市| 全南县| 仁布县| 英吉沙县| 瑞昌市| 习水县| 甘肃省| 敦煌市| 溧阳市| 霍山县| 抚顺市| 翁牛特旗|