#include
#include
#include "uart.h"
#include
#include "12864.h"
#include "tcs_resource.h"
unsigned char hour = 23;
unsigned char mnt = 59;
unsigned char sec = 50;
sbit KEY1 = P1^0;
sbit KEY2 = P1^1;
void delay(uint ms);
void button();
void Delay10ms(uchar u);
void Timer0Init(void);
void show(void);
void main(void)
{
num=0;
TMOD=0x01;
EA = 1; //开总中断
ES = 1; //串口中断标志位
Timer0Init();
UartInit();
choose12864(2); //选择为全屏操作
init12864(); //初始化12864
clear12864(); //清屏
while(1)
{
show();
button();
}
}
void show(void)
{
char j = 0;
play8(0,0,2,letter[13]);
play8(0,1,2,letter[20]);
play8(0,2,2,letter[22]);
play8(0,3,2,fuhao[0]);
play8(0,4,2,Number[Number1/10]);
play8(0,5,2,Number[Number1%10]);
play8(1,0,2,letter[22]);
play8(1,1,2,letter[15]);
play8(1,2,2,fuhao[0]);
play8(1,3,2,Number[num/10]);
play8(1,4,2,Number[num%10]);
//显示时分秒
play8(0,3,1,Number[hour/10]);
play8(0,4,1,Number[hour%10]);
play8(0,5,1,fuhao[1]);
play8(0,6,1,Number[mnt/10]);
play8(0,7,1,Number[mnt%10]);
play8(1,0,1,fuhao[1]);
play8(1,1,1,Number[sec/10]);
play8(1,2,1,Number[sec%10]);
}
void button()
{
if(KEY1==0)
{
delay(5);
if(KEY1==0)
{
Number1++;
num=Number1-1;
choose12864(2); //选择为全屏显示
init12864(); //初始化12864
clear12864();
Delay10ms(1);
while(KEY1==0);
send();
}
}
}
void delay(uint ms)
{
uint i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void Delay10ms(uchar u)
{
unsigned char i, j;
i = 108;
j = 145;
while(u--)
{
do
{
while (--j);
} while (--i);}
}
void Timer0Init(void) //62毫秒@11.0592MHz
{
TMOD |= 0x01;
ET0 = 1;
TR0 = 1; //定时器0开始计时
}
void T0ISR() interrupt 1
{
static char n = 0;
TH0=(65536-62500)/256;//在65.536ms定时器允许的最大范围内取最大值,1000/n=62.5ms,n=16
TL0=(65536-62500)%256;
n++;
if(n>15)
{
n = 0;
sec++;
if(sec>59)
{
sec = 0;
mnt++;
if(mnt>59)
{
mnt = 0;
hour++;
if(hour>23)
hour = 0;
}
}
}
}