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

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

点击数:7643 次   录入时间:03-04 11:39:06   整理:http://www.55dianzi.com   PIC单片机
            #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');
        lcd_write_data(AlarmTime1.secondl + '0');
        lcd_write_data(' ');
        lcd_write_data('O');
        if (Alarm1Enable)
        {
            lcd_write_data('n');
        }
        else
        {
            lcd_write_data('f');
            lcd_write_data('f');
        }
        pStr = StrAlarm1;
        Alarm1Cnt =0;
    }
    else if(CurrentMode == mode_set_alarm2)
    {
        lcd_write_data(AlarmTime2.hourh + '0');
        lcd_write_data(AlarmTime2.hourl + '0');
        lcd_write_data(':');
        lcd_write_data(AlarmTime2.minuteh + '0');
        lcd_write_data(AlarmTime2.minutel + '0');
        lcd_write_data(':');
        lcd_write_data(AlarmTime2.secondh + '0');
        lcd_write_data(AlarmTime2.secondl + '0');
        lcd_write_data(' ');
        lcd_write_data('O');
        if (Alarm2Enable)
        {
            lcd_write_data('n');
        }
        else
        {
            lcd_write_data('f');
            lcd_write_data('f');
        }
        pStr = StrAlarm2;
        Alarm2Cnt = 0;
    }
    lcd_write_inst(0xc0);    //    set LCD line2
    if (CurrentMode != mode_time)
    {
        for (;*pStr!=0;pStr++)
        {                        //    write hint message
            lcd_write_data(*pStr);
        }
        lcd_write_inst(0x0f);    //    LCD cursor on
        lcd_write_inst(time_start_addr);    //    move cursor to start
    }
    else    //    time mode,write date to second line
    {
        lcd_write_inst(0x0c);        //    LCD sursor off
/*        lcd_write_inst(0xc0 + 3);    //    set date start address
        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('/');

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


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