EasyManua.ls Logo

STC micro STC8A8K64D4 Series - Page 203

Default Icon
901 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
STC8A8K64D4 Series Manual
-
- 187 -
TMOD = 0x00;
TL0 = (65536 - (MAIN_Fosc / 500));
TH0 = (65536 - (MAIN_Fosc / 500)) >> 8;
TR0 = 1;
ET0 = 1;
EA = 1;
//Initialize LCD memory
for(i=0; i<8; i++) LCD_buff[i] = 0;
P2n_push_pull(0xf0);
P1n_push_pull(0xff); //segment is set as push-pull output mode
LCD_SET_2M; //Display hour-minute division interval:
LCD_SET_4M; //Display minute-second division interval:
LoadRTC(); //Display time
while (1)
{
PCON |= 0x01; //Enter Idle mode, wake up and exit by Timer0 2ms
_nop_();
_nop_();
_nop_();
if(B_2ms) //2ms beat
{
B_2ms = 0;
if(++cnt_500ms >= 250) //reach to 500ms
{
cnt_500ms = 0;
// LCD_FLASH_2M; //Flashing hour-minute interval:
// LCD_FLASH_4M; //Flashing minute-second interval:
B_Second = ~B_Second;
if(B_Second)
{
if(++second >= 60) //reach to 1 minute
{
second = 0;
if(++minute >= 60) //reach to 1 hour
{
minute = 0;
if(++hour >= 24) hour = 0; //reach to 24 hours
}
}
LoadRTC(); //Display time
}
}
if(!INT0) //key is pressed, ready to sleep
{
LCD_CLR_2M; //Display hour-minute division interval:
LCD_CLR_4M; //Display minute-second division interval:
LCD_load(1,DIS_BLACK);
LCD_load(2,DIS_BLACK);
LCD_load(3,0);
LCD_load(4,0x0F);
LCD_load(5,0x0F);
LCD_load(6,DIS_BLACK);
while(!INT0) delay_ms(10); //Waiting for the key to be released

Table of Contents

Related product manuals