//code void (code * keyproctab[])() =
{nokey,k0,k1,k2,k3,k4,k5,k6,k7 }; //读取键值并执行对应函数
void send(uint tem) {
while(BUSY); P1 = tem; STOBE = 1; while(!BUSY); STOBE = 0; }
void key_work() {
if(key == 0){ k0();}
21
if(key == 1){ k1();} if(key == 2){ k2();} if(key == 3){ k3();} if(key == 4){ k4();} if(key == 5){ k5();} if(key == 6){ k6();} if(key == 7){ k7();} }
void main() {
init(); //全部功能初始化 lcd_disp_hanzhi(4,0,33,85); lcd_disp_hanzhi(5,0,28,50); lcd_disp_hanzhi(6,0,19,41);
22
// lcd_disp_hanzhi(7,0,28,68);
while(1) {
if(XBYTE[0xCFE9]&0x07) {
ReadKey(); key=key-192; Display(key);
// ( * keyproctab[ReadKey()])(); key_work(); delay(10); } } }
23
//执行按键对应的功能
void Time0(void) interrupt 1 using 0 //中断函数服务子程序 {
count++; if(count >= 20) {
scan_tim();//一秒时间到 //显示时间 count = 0; }
TH0=(65536-46083)/256; TL0=(65536-46083)%6; }
24
void scan_tim() //时间记录函数 {
scond++;
disp_time(s_site_x,s_site_y,scond); if(scond == 60) {
scond = 0; min ++;
disp_time(s_site_x,s_site_y,scond); disp_time(m_site_x,m_site_y,min); if(min == 60) {
min = 0; hour ++;
disp_time(m_site_x,m_site_y,min); disp_time(h_site_x,h_site_y,hour);
25