⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 本人开发的测量水的浊度的仪器
💻 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 + -