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

pic16f877a c语言时钟程序

点击数:7778 次   录入时间:03-04 11:51:34   整理:http://www.55dianzi.com   PIC单片机
    unsigned char minuteh;    //    minute,0~59
    unsigned char minutel;
    unsigned char secondh;    //    second,0~59
    unsigned char secondl;
    };
 struct mTime CurrentTime = {1,2,0,0,0,0};
 struct mTime AlarmTime1 = {0,7,0,0,0,0};    //    07:00:00
 struct mTime AlarmTime2 = {1,3,3,0,0,0};    //    13:30:00
 unsigned char AlarmStatus;
 #bit Alarm1Enable = AlarmStatus.0
 #bit Alarm2Enable = AlarmStatus.1
 #bit Alarm1Alarm = AlarmStatus.2
 #bit Alarm2Alarm = AlarmStatus.3
 unsigned char Alarm1Cnt;    //    alarm1 second count
 unsigned char Alarm2Cnt;
 unsigned char CurrentMode;
 #define mode_time 0
 #define mode_set_time 1
 #define mode_set_date 2
 #define mode_set_alarm1 3
 #define mode_set_alarm2 4
 unsigned char adjust_item;
 struct mDate {
    unsigned char year1;    //
    unsigned char year2;
    unsigned char year3;
    unsigned char year4;
    unsigned char monthh;
    unsigned char monthl;
    unsigned char dayh;
    unsigned char dayl;
 };
 struct mDate CurrentDate = {2,0,0,3,0,1,0,1};
 unsigned char *pStr;

 //    -------------------------------------------------------
 unsigned char lcd_read_addr()
 {
    unsigned char ch;
    lcd_dir = 0xff;    //    read from lcd
    lcd_rs = 0;
    lcd_rw = 1;    //    inst
    lcd_e = 1;
    #asm
        nop
        nop
        nop
    #endasm
    ch = lcd_bus;
    lcd_e = 0;
    lcd_dir = 0x00; //  set write to lcd
    return ch;
 }

 //    -------------------------------------------------------
 unsigned char lcd_write_data(unsigned char ch)
 {
    while (lcd_busy)
    {    restart_wdt();    }
    lcd_rs = 1;    //    data
    lcd_rw = 0;    //    write
    lcd_bus = ch;    //    write out
    lcd_e = 1;
    #asm
        nop
        nop
        nop
    #endasm
    lcd_e = 0;
    return ’Y’;
 }

 //    -------------------------------------------------------
 unsigned char lcd_write_inst(unsigned char ch)
 {
    while (lcd_busy)
    {    restart_wdt();    }
    lcd_rs = 0;    //    inst
    lcd_rw = 0;    //    write
    lcd_bus = ch;
    lcd_e = 1;
    #asm
        nop
        nop
        nop
    #endasm
    lcd_e = 0;
    return ’Y’;
 }


 //    -------------------------------------------------------
 unsigned char lcd_read_data()
 {
    unsigned char ch;
    while (lcd_busy)
    {    restart_wdt();    }
    lcd_dir = 0xff;    //    read from lcd
    lcd_rs = 1;    //    data
    lcd_rw = 1;    //    read
    lcd_e = 1;
    #asm
        nop
        nop
        nop
    #endasm
    ch = lcd_bus;    //    read in
    lcd_e = 0;
    lcd_dir = 0x00; //  set write to lcd
    return ch;
 }

 //    -------------------------------------------------------
 void lcd_init()
 {
    unsigned char Tempch;
    lcd_addr = 0;
    delay_ms(100);
    Tempch = 0x38;    //    1-line mode,5x8 dots
    lcd_write_inst(Tempch);    //    Function set
    Tempch = 0x0f;    //    lcd on,cursor on,blink on
    lcd_write_inst(Tempch);    //    Display on/off
    Tempch = 0x06;    //    Increment mode,Entire shift off
    lcd_write_inst(Tempch);
    Tempch = 0x01;    //    clear display
    lcd_write_inst(Tempch);
    delay_ms(3);
 }

 //    -------------------------------------------------------

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


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