📄 3208_v4.01.00.c
字号:
while(T[y] != 0x99){//显示开机画面“ALARM”
Ledplay[bn] = T[y];//将二维数组中的一组数据放入显示缓冲区
y++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
switch (a){//显示设置项的说明
case 1:
putin(read_clock(0x8d)/16);//显示年(十位)
putin(read_clock(0x8d)%16);//显示年(个位)
putin(20);//显示“年”表示
break;//
case 2:
putin(read_clock(0x89)/16);//显示(十位)
putin(read_clock(0x89)%16);//显示(个位)
putin(21);//显示“月”表示
break;//
case 3:
putin(read_clock(0x87)/16);//显示(十位)
putin(read_clock(0x87)%16);//显示(个位)
putin(22);//显示“日”表示
break;//
case 4:
putin(23);//显示“周”表示
putin(read_clock(0x8b)+9);//显示(个位)
break;//
case 5:
putin(read_clock(0x85)/16);//显示(十位)
putin(read_clock(0x85)%16);//显示(个位)
putin(24);//显示“时”表示
break;//
case 6:
putin(read_clock(0x83)/16);//显示分(十位)
putin(read_clock(0x83)%16);//显示分(个位)
putin(25);//显示“分”表示
break;//
}
Set_time(a,0);
MENUexit ();
if(OK_Key == 0){
DelayM(20);//去抖
if(OK_Key == 0){
key_off ();//等待键放开
Beep_set();//调时提示音
a++; if(a>6){ a = 1;}
}
}
}
/**********************************************************************************************/
if(MENU == 8){//正点报时设置 V4.0----(8)
bn = 0;a=0;
clearRAM();//清空显示缓冲区数据
while(POINT[a] != 0x99){//显示开机画面“POINT”
Ledplay[bn] = POINT[a];//将二维数组中的一组数据放入显示缓冲区
a++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
MENUadd1 ();//菜单加1
MENUexit ();
if(OK_Key == 0){
DelayM(20);//去抖
if(OK_Key == 0){
key_off ();//等待键放开
Beep_set();//调时提示音
MENU = 101;
a = 0;
}
}
}
/**********************************************************************************************/
if(MENU == 101){//正点报时 设置项
uchar y = 0;
bn = 0;//显示位累加寄存器清零(从头开始写入显示缓冲区)
clearRAM();//清空显示缓冲区数据
while(Pp[y] != 0x99){//显示
Ledplay[bn] = Pp[y];//将二维数组中的一组数据放入显示缓冲区
y++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
write_clock(0x8e,0x00);//允许写操作
switch (a){//显示设置项的说明
case 0: break;
case 1: write_clock(0xc2,0x07);write_clock(0xc4,0x19);break;//设置正点报时为>7 <19,即8到18点
case 2: write_clock(0xc2,0x07);write_clock(0xc4,0x20);break;//
case 3: write_clock(0xc2,0x07);write_clock(0xc4,0x21);break;//
case 4: write_clock(0xc2,0x07);write_clock(0xc4,0x22);break;//
case 5: write_clock(0xc2,0x07);write_clock(0xc4,0x23);break;//
case 6: write_clock(0xc2,0);write_clock(0xc4,0x23);break;//
case 7: write_clock(0xc2,0);write_clock(0xc4,0);break;//
}
write_clock(0x8e,0x80);//禁止写操作
putin(read_clock(0xc3)%16);//显示开始时间
putin(18);//
putin(read_clock(0xc5)/16);//显示结束(十位)
putin(read_clock(0xc5)%16);//显示结束(个位)
MENUexit ();
if(OK_Key == 0){
DelayM(20);//去抖
if(OK_Key == 0){
key_off ();//等待键放开
Beep_set();//调时提示音
a++; if(a>7){ a = 1;}
}
}
}
/**********************************************************************************************/
if(MENU == 9){//闹钟总开关 V4.0-----(9)
bn = 0;a=0;
clearRAM();//清空显示缓冲区数据
while(ONOFF[a] != 0x99){//显示
Ledplay[bn] = ONOFF[a];//将二维数组中的一组数据放入显示缓冲区
a++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
MENUadd1 ();//菜单加1
MENUexit ();
if(OK_Key == 0){
DelayM(20);//去抖
if(OK_Key == 0){
key_off ();//等待键放开
Beep_set();//调时提示音
MENU = 102;
}
}
}
/**********************************************************************************************/
if(MENU == 102){//闹钟总开关
bn = 0;a=0;
clearRAM();//清空显示缓冲区数据
if(read_clock(0xc7) == 1){
while(Aon[a] != 0x99){//显示
Ledplay[bn] = Aon[a];//将二维数组中的一组数据放入显示缓冲区
a++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
}else{
while(Aoff[a] != 0x99){//显示
Ledplay[bn] = Aoff[a];//将二维数组中的一组数据放入显示缓冲区
a++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
}
if(OK_Key == 0){
DelayM(20);//去抖
if(OK_Key == 0){
key_off ();//等待键放开
Beep_set();//调时提示音
write_clock(0x8e,0x00);//允许写操作
if(read_clock(0xc7) == 1){
write_clock(0xc6,0);
}else{
write_clock(0xc6,1);
}
write_clock(0x8e,0x80);//禁止写操作
}
}
MENUexit ();
}
/**********************************************************************************************/
if(MENU == 10){//------V4.0新增功能-流动速度
bn = 0;a=0;
clearRAM();//清空显示缓冲区数据
while(SPEED[a] != 0x99){//显示
Ledplay[bn] = SPEED[a];//将二维数组中的一组数据放入显示缓冲区
a++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
MENUadd1 ();//菜单加1
MENUexit ();
if(OK_Key == 0){
DelayM(20);//去抖
if(OK_Key == 0){
key_off ();//等待键放开
Beep_set();//调时提示音
MENU = 103;
}
}
}
/**********************************************************************************************/
if(MENU == 103){//流动显示项
uchar temp;
bn = 0;a=0;
clearRAM();//清空显示缓冲区数据
while(LEVEL[a] != 0x99){//显示
Ledplay[bn] = LEVEL[a];//将二维数组中的一组数据放入显示缓冲区
a++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
temp=read_clock(0xc3+7*6);
putin(temp);
if(Add_Key == 0 || Add2_Key == 0){
DelayM(20);//去抖
if(Add_Key == 0){
temp++;
Beep_key();//调时提示音
if(temp >9){//速度分为9级。//减少两组闹钟,增加三个功能,menu由11改为12
temp = 1;
}
}
if(Add2_Key == 0){
temp--;
Beep_key();//调时提示音
if(temp <1){
temp = 9;
}
}
key_off ();//等待键放开
}
write_clock(0x8e,0x00);//允许写操作
write_clock(0xc2+7*6,temp);//使用原第七组闹钟的RAM
write_clock(0x8e,0x80);//禁止写操作
MENUexit ();
}
/**********************************************************************************************/
if(MENU == 11){//V4.0新增功能-时间校准
bn = 0;a=0;
clearRAM();//清空显示缓冲区数据
while(TIMEADJ[a] != 0x99){//显示
Ledplay[bn] = TIMEADJ[a];//将二维数组中的一组数据放入显示缓冲区
a++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
MENUadd1 ();//菜单加1
MENUexit ();
if(OK_Key == 0){
DelayM(20);//去抖
if(OK_Key == 0){
key_off ();//等待键放开
Beep_set();//调时提示音
MENU = 104;
}
}
}
/**********************************************************************************************/
if(MENU == 104){
uchar temp;
temp=read_clock(0xc3+7*6+2);
if((temp>0)&&(temp<26)){ //
bn = 0;a=0;
clearRAM();//清空显示缓冲区数据
while(VAL_DEC[a] != 0x99){//显示
Ledplay[bn] = VAL_DEC[a];//将二维数组中的一组数据放入显示缓冲区
a++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
putin((26-temp)/10);//26-temp:让本来+2.+1.+0.-25.-24...变成+2.+1.+0.-1.-2...
putin((26-temp)%10);
}
if((temp>=26)&&(temp<52)){ //
bn = 0;a=0;
clearRAM();//清空显示缓冲区数据
while(VAL_INC[a] != 0x99){//显示
Ledplay[bn] = VAL_INC[a];//将二维数组中的一组数据放入显示缓冲区
a++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
putin((temp-26)/10); //调整显示为实际纠正值。
putin((temp-26)%10);
}
if(Add_Key == 0 || Add2_Key == 0){
DelayM(20);//去抖
if(Add_Key == 0){
temp++;
Beep_key();//调时提示音
if(temp >51)//速度分为9级。
{//减少两组闹钟,增加三个功能,menu由11改为12
temp = 1;
}
}
if(Add2_Key == 0){
temp--;
Beep_key();//调时提示音
if(temp <1){
temp = 51;
}
}
key_off ();//等待键放开
}
write_clock(0x8e,0x00);//允许写操作
write_clock(0xc2+7*6+2,temp);//写入校准值到DS1302
write_clock(0x8e,0x80);//禁止写操作
MENUexit ();
}
/**********************************************************************************************/
if(MENU == 12){//V4.0新增功能-显示方式
bn = 0;a=0;
clearRAM();//清空显示缓冲区数据
while(DISMODE[a] != 0x99){//显示
Ledplay[bn] = DISMODE[a];//将二维数组中的一组数据放入显示缓冲区
a++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
MENUadd1 ();//菜单加1
MENUexit ();
if(OK_Key == 0){
DelayM(20);//去抖
if(OK_Key == 0){
key_off ();//等待键放开
Beep_set();//调时提示音
MENU = 105;
}
}
}
/**********************************************************************************************/
if(MENU == 105){
uchar temp;
bn = 0;a=0;
clearRAM();//清空显示缓冲区数据
while(DIS[a] != 0x99){//显示
Ledplay[bn] = DIS[a];//将二维数组中的一组数据放入显示缓冲区
a++;//换下一个提取字节
bn++;//换下一个显示缓冲字节
}
temp=read_clock(0xc3+7*6+4);
putin(temp);
if(Add_Key == 0 || Add2_Key == 0){
DelayM(20);//去抖
if(Add_Key == 0){
temp++;
Beep_key();//调时提示音
if(temp >3)//显示有3种方式。
{//减少两组闹钟,增加三个功能,menu由11改为12
temp = 1;
}
}
if(Add2_Key == 0){
temp--;
Beep_key();//调时提示音
if(temp <1){
temp = 3;
}
}
key_off ();//等待键放开
}
clearBuf();//清待显缓冲,避免切换到其它显示方式时有乱码出现。
write_clock(0x8e,0x00);//允许写操作
write_clock(0xc2+7*6+4,temp);//使用原第七组闹钟的RAM
write_clock(0x8e,0x80);//禁止写操作
MENUexit ();
}
}
}
/**********************************************************************************************/
//DoYoung.net 杜洋个人空间 分享精制与创意!
/**********************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -