子流程图B 显示定时时间 DT!=OFF DT=? 18 13 14 15 16 其他 Menu=1 Rom加1 Rom减1 Rom加5 Rom减5 Menu=0 Rom>24且rom<100 Rom=0 Rom>200 Rom=24 2402初始化 清空DT
图4-3 系统流程图3
21
子流程图1 MENU=99(帮助菜单) DT!=0XFF DT=0X2F DT=0X1D I++ i>6时i=0 i=0 menu=0 2402初始化 清空DT 子流程图2 Menu=11 显示时间 0-9按下 SET+ SET- AV键 调用写时间程序 I++ i— i<1是i=6 Menu=0(主界面) I=6 清屏刷新显示 延时 清空DT 一体函数 图4-4 系统流程图4
22
子流程图3 (定时菜单)menu=12 显示定时时间 0-9按下 SET+ SET- AV键 调用定时时间程序 I++ i— i<1是i=6 Menu=0(主界面) I=6 清屏刷新显示 延时 清空DT 一体函数
图4-5 系统流程图5
4.3系统主程序
系统主程序
/********************************************************************************************
//系统主程序 // 菜单切换 //main()
*********************************************************************************************/ void main (void){ beep_a();
keyboard_int ();
LCM2402_Init();//LCM2402初始化
Init_1302();//检测时钟芯片是否未被初始化 CgramWrite();
print(0x80,\print(0xc2,\DelayS(5000);
LCM2402_Init();//LCM2402初始化 Bell_Out=1;
23
while(1){//主线程//
//---------------------------------------------------------------------0 主显示 if(menu == 0){
RealTime_Display(); //在第一行显示时间部分 print(0xc6,\ print2(0xca,\
print(0xcb,\
print2(0xd3,alarm_con/16+0x30); print2(0xd4,alarm_con+0x30); print(0xd5,\
search_time();//定时值校对&处理函数 if (DT != 0xff){
if(DT>=0x00 && DT <0x0a){ uint16 i;
uint8 n=0,x=0xff,y=0xff;
LCM2402_Init();//LCM2402初始化 for(i=0;i<500;i++){
print(0x83,\ print(0xc3,\ print(0xcd,\ if(DT>=0x00 && DT <0x0a){ switch (n){
case 0: x = DT;n++;i=0;break;// case 1: y = DT;n--;i=0;break;// }
print2(0xcb,x+0x30); print2(0xcc,y+0x30);
DelayS250(); DT = 0xff; }
if(DT == 0x4C){
print(0xca,\
//ALARMing(i);//** 闹钟和无线遥控的键值处理 **
DelayS250();DT = 0xff; } } }
if(DT>0x12 && DT <0x17){//当按定时加减查看的几个键时会进入定时查看菜单
24
menu = 2; }
switch (DT){
case 0x1c: menu = 1;break;// case 0x2F: menu =99;break;//
default:DT = 0xff;break; }
LCM2402_Init();//LCM2402初始化 DT = 0xff; } }
//-----------------------------------------------------------------1 是否调时? if(menu == 1){
print(0x80,\ print(0xc5,\ if (DT != 0xff){ switch (DT){
case 0x1D: menu = 0;break;// case 0x1B: menu = 11;break;// default:DT = 0xff;break; }
LCM2402_Init();//LCM2402初始化 DT = 0xff; } }
//-------------------------------------------------------------------2 定时查看 if(menu == 2){
alarm_Display(); //在第一行显示定时部分 print(0xc3,\
print2(0xc8,0x30+rom/10); print2(0xc9,0x30+rom); print(0xce,\ if (DT != 0xff){ switch (DT){
case 0x18: menu = 12;break;// case 0x13: rom++;break;// case 0x14: rom--;break;// case 0x15: rom=rom+5;break;// case 0x16: rom=rom-5;break;// case 0x1D: menu = 0;break;// default:DT = 0xff;break;
25