📄 main.c
字号:
#include <stdio.h>
#include "ds1302.h"
#include "iic.h"
#include "lcd.h"
#include "system.h"
#include "checktime.h"
#include "checkmeasure.h"
#include "measure.h"
#include "ads1100.h"
//idata uchar buf[120];
code SystemParam SysParam =
{
0x30,//0 0 B 1 W/S M2 M1 M0
0x87,//WF 0 0 0 0 FX
0x07,//0 0 0 0 FY
0x27,//C/R
0x42,//TC/R
0xf0,//L/F
0x28,//APL
0x00,//APH
};
code DisplayParam DispParam =
{
0x00,//saddr1lo;
0x00,//saddr1hi;
0xf0,//sl1;
0x00,//saddr2lo;
0x40,//saddr2hi;
0xf0,//sl2;
0x00,//saddr3lo;
0x80,//saddr3hi;
0x00,//saddr4lo;
0x00//saddr4hi;
};
void initsystem()
{
TMOD = 0x21;
TH1 = 0xe8;
TH0 = 55535%256;
TL0 = 55535/256;
SCON = 0x50;
TR0 = 1;
TR1 = 1;
ET0 = 1;
EA = 1;
TI = 1;
}
void idle()
{
clear(0x0000);
clear(0x4000);
printstring32(0,6,6,"欢迎使用水专家");//
printstring32(0,10,12,"系列浊度仪");//
printstring16(0,28,24,"按1进入测量");//
printstring16(0,28,26,"按2进入校验");//
printstring16(0,28,28,"按3进入校时");//
}
void initclock()
{
writesecond(0x00);
writeyear(0x05);
writemonth(0x01);
writedate(0x01);
writehour(0x00);
writeminute(0x00);
writesecond(0x00);
}
unsigned char bcd2digit(unsigned char tmp)
{
unsigned char hi,lo;
hi = (tmp>>4)&0x0f;
lo= tmp&0x0f;
return (hi*10+lo);
}
void checkclock()
{
uchar tmp;
tmp = readyear();
if(bcd2digit(tmp) > 99)
writeyear(0x05);
tmp = readmonth();
if(bcd2digit(tmp) > 12 || bcd2digit(tmp) == 0)
writemonth(0x01);
tmp = readdate();
if(bcd2digit(tmp) > 31 || bcd2digit(tmp) == 0)
writedate(0x01);
tmp = readhour();
if(bcd2digit(tmp) > 23)
writehour(0x00);
tmp = readminute();
if(bcd2digit(tmp) > 59)
writeminute(0x00);
tmp = readsecond();
if(bcd2digit(tmp) > 59)
writesecond(0x00);
}
int main()
{
uchar key,refresh=1;
delay(200);
initsystem();
initds1302();
initlcd();
setdisplayon(0,0x04);
clear(0x0000);
clear(0x4000);
readiic(0x20,&key);
if(key != 0x55)
initclock();
initdisplay(&SysParam);
setdisplayparam(&DispParam);
setcursorform(1,0x07,0x07);
// setoverlay(0x0f);
setoverlay(0x0d);
sethdot(0x00);
// setdisplayon(1,0x77);
setdisplayon(1,0x04);
checkclock();
resetads1100();
writeads1100(0x8c);
while(1)
{
idle();
do
{
printtime();
key = readkey();
delay(100);
} while(key != KEY_1 && key != KEY_2 && key != KEY_3);
switch(key)
{
case KEY_1:
measure();
break;
case KEY_2:
checkmeasure();
break;
case KEY_3:
checktime();
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -