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单片机