您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机用PIC16F877的c语言写的一个时闹钟程序(转贴) 正文
用PIC16F877的c语言写的一个时闹钟程序(转贴)

用PIC16F877的c语言写的一个时闹钟程序(转贴)

点击数:7643 次   录入时间:03-04 11:39:06   整理:http://www.55dianzi.com   PIC单片机
                    KeyNew = 1;
                else if(KeyNew == key_2)
                    KeyNew = 2;
                else if(KeyNew == key_3)
                    KeyNew = 3;
                else if(KeyNew == key_4)
                    KeyNew = 4;
                else if(KeyNew == key_5)
                    KeyNew = 5;
                else if(KeyNew == key_6)
                    KeyNew = 6;
                else if(KeyNew == key_7)
                    KeyNew = 7;
                else if(KeyNew == key_8)
                    KeyNew = 8;
                else if(KeyNew == key_9)
                    KeyNew = 9;
                else if (KeyNew == key_mode)        //    MODE key pressed
                    set_mode();
                else if (KeyNew == key_cancel)        //    cancel buzzy
                {
                    led = 0;
                    CCP1CON = PWM_off;
                    BackLightEn = 1;
                    BackLightTimer = 0;
                }
                if (CurrentMode == mode_set_time)
                {
                    set_time();
                }
                else if (CurrentMode == mode_set_date)
                {
                    set_date();
                }
                else if (CurrentMode == mode_set_alarm1)
                {
                    set_alarm1();
                }
                else if (CurrentMode == mode_set_alarm2)
                {
                    set_alarm2();
                }
            }
            do        //    wait for key released
            {
                delay_ms(30);
                KeyNew = get_key();
                restart_wdt();
                BackLightTimer = 0;        //    key pressed yet
            }while ((KeyNew& 0x0f) != 0x00);
            KeyOld = KeyNew = 0x00;
        }
        if ((CurrentMode == mode_set_time) | (CurrentMode == mode_time))
        {    //    refresh time display,bacause int_timer1 dosn't do this
            lcd_addr = lcd_read_addr() & 0x7f;    //    save cursor location
               lcd_write_inst(time_start_addr);    //    set LCD line1
            lcd_write_data(CurrentTime.hourh + '0');
            lcd_write_data(CurrentTime.hourl + '0');
            lcd_write_data(':');
            lcd_write_data(CurrentTime.minuteh + '0');
            lcd_write_data(CurrentTime.minutel + '0');
            lcd_write_data(':');
            lcd_write_data(CurrentTime.secondh + '0');
            lcd_write_data(CurrentTime.secondl + '0');
            lcd_write_inst(lcd_addr | 0x80);            //    resume cursor location
        }
        if (CurrentMode == mode_time)
        {    //    refresh date display
            lcd_addr = lcd_read_addr() & 0x7f;    //    save cursor location
            lcd_write_inst(0xc0 + 3);            //    set LCD line2
            lcd_write_data(CurrentDate.year1 + '0');
            lcd_write_data(CurrentDate.year2 + '0');
            lcd_write_data(CurrentDate.year3 + '0');
            lcd_write_data(CurrentDate.year4 + '0');
            lcd_write_data('/');
            lcd_write_data(CurrentDate.monthh + '0');
            lcd_write_data(CurrentDate.monthl + '0');
            lcd_write_data('/');
            lcd_write_data(CurrentDate.dayh + '0');
            lcd_write_data(CurrentDate.dayl + '0');

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]  下一页


本文关键字:程序  C语言  PIC单片机单片机-工控设备 - PIC单片机