您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机pic16f877a c语言时钟程序 正文
pic16f877a c语言时钟程序

pic16f877a c语言时钟程序

点击数:7778 次   录入时间:03-04 11:51:34   整理:http://www.55dianzi.com   PIC单片机
        }
        else
        {
            led = 1;
            PR2 = PWM_period/2;    //    set pwm period
            CCPR1L = PWM_DC/2;    //    set pwm duty cycle
            //CCP1CON = PWM_off;
        }
    }
    Alarm1Cnt++;
    Alarm2Cnt++;
    if (BackLightEn == 0)
        if (((BackLightTimer++)>=60) & (Alarm1Alarm == false) & (Alarm1Alarm == false))
            BackLightEn = 1;    //    dISAble backlight
    PORTC = PORTC_MAP;
    //TMR1IF = 0;
    //PIR1 = PIR2 = 0x00;
    CCP2IF = 0;
 }

 //    -------------------------------------------------------
 unsigned char get_key(void)
 {
    unsigned char key_in,tmp;
    TRISC = 0x03;
    KeyLine = 0xf0;
    PORTC = KeyLine | PORTC_MAP;
    #asm
        nop
        nop
        nop
    #endasm
    if ((PORTA & 0x0f) != 0)
    {
        tmp = 0x10;
        for (KeyLine = tmp;KeyLine!=0;KeyLine = tmp)
        {
            PORTC = KeyLine | PORTC_MAP;
            tmp = KeyLine <<1;
            #asm
                nop
                nop
                nop
            #endasm
            key_in = PORTA & 0x0f;
            if (key_in != 0)
            {
                return (key_in | KeyLine);
            }
        }
        return 0;
    }
    else
        return 0;
 }

 //    -------------------------------------------------------
 void set_mode(void)
 {
    if (CurrentMode == mode_set_alarm2)
        CurrentMode = mode_time;
    else
    {
        CurrentMode++;
        adjust_item = 0;
    }
    lcd_write_inst(0x01);    //    clear LCD display
    lcd_write_inst(time_start_addr);    //    set LCD line1
    if (CurrentMode == mode_set_time)
    {
        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’);
        pStr = StrSetTime;
    }
    else if(CurrentMode == mode_set_date)
    {
        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’);
        pStr = StrSetDate;
    }
    else if(CurrentMode == mode_set_alarm1)
    {
        lcd_write_data(AlarmTime1.hourh + ’0’);
        lcd_write_data(AlarmTime1.hourl + ’0’);
        lcd_write_data(’:’);
        lcd_write_data(AlarmTime1.minuteh + ’0’);
        lcd_write_data(AlarmTime1.minutel + ’0’);
        lcd_write_data(’:’);
        lcd_write_data(AlarmTime1.secondh + ’0’);

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]  下一页


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