bit flag_200ms = 1 ;
uchar guangxian; //光线的显示变量 uchar set_gx; uchar value;
uchar flag_alarm; //报警变量
uchar miao = 55,fen = 44,shi;
uchar xuexi_start; //开始学习标志位 uchar menu_1;
/******************把设置温度数据保存到单片机内部eepom中******************/ void write_eepom_12() { }
/******************把数据从单片机内部*****************/ void read_eepom12() {
set_d = byte_read(0x2001);
eepom
中读出来
SectorErase(0x2000);
byte_write(0x2000, set_d % 256); byte_write(0x2001, set_d / 256); byte_write(0x2002, set_gx); byte_write(0x2057, value);
//设置光线的强弱的变量
31
}
set_d =set_d * 256 + byte_read(0x2000); set_gx = byte_read(0x2002); value = byte_read(0x2057);
/**************开机自检eepom初始化*****************/ void init_eepom() { }
/********************************************************************
* 名称 : delay()
* 功能 : 延时,延时时间大概为5US。 * 输入 : 无 * 输出 : 无
***********************************************************************/
read_eepom12(); if(value != 2) {
set_d = 300; value = 2; set_gx = 50; write_eepom_12();
//先读
//新的单片机初始单片机内问EEPOM
}
32
void delay_uint(uint q) { }
/********************************************************************
* 名称 : bit Busy(void)
* 功能 : 这个是一个读状态函数,读出函数是否处在忙状态 * 输入 : 输入的命令值 * 输出 : 无
***********************************************************************/ bit busy(void) { }
/********************************************************************
* 名称 : write_com(uchar com)
bit busy_flag = 0; rs = 0; rw = 1; e = 1;
delay_uint(3);
busy_flag = (bit)(P1 & 0x80); e = 0;
return busy_flag; while(q--);
33
* 功能 : 1602命令函数 * 输入 : 输入的命令值 * 输出 : 无
***********************************************************************/
void write_com(uchar com) { }
/********************************************************************
* 名称 : write_data(uchar dat) * 功能 : 1602写数据函数 * 输入 : 需要写入1602的数据 * 输出 : 无
***********************************************************************/
void write_data(uchar dat)
while(busy()); e=0; rs=0; rw=0; P1=com; delay_uint(3); e=1;
delay_uint(25); e=0;
34
{ while(busy()); e=0; rs=1; rw=0; P1=dat; delay_uint(3); e=1;
delay_uint(25); e=0;
}
/***********************lcd1602上显示两位十进制************************/
void write_sfm2(uchar hang,uchar add,uchar date) { if(hang==1) write_com(0x80+add); else
write_com(0x80+0x40+add);
write_data(0x30+date/10); write_data(0x30+date);
}
/***********************lcd1602上
显
示
超
声
波
距
************************/
void write_sfm_csb(uchar hang,uchar add,uint date)
35
数
离