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