//#include\"DS18B20_3.H\" #define uint unsigned int #define uchar unsigned char
uchar a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp,key4n;//sheding为调节打铃时间时显示
//flag用于读取头文件中的温度值,和显示温度值 uchar code
Seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf}; unsigned int s_1,s_2,s_3,s_4,s_5,s_6;
#define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)
#define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)
uchar flag_xs=0,flag_m,flag_m1,flag_f,flag_f1,flag_s,flag_s1; uchar flag_n,flag_n1,flag_y,flag_y1,flag_r,flag_r1,flag_mb; uint numt;
//液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口) //DS1302时钟芯片与C51之间的引脚连接定义 sbit IO=P1^1; sbit SCLK=P1^0; sbit RST=P1^2; sbit ACC0=ACC^0; sbit ACC7=ACC^7;
sbit nyr=P3^1; sbit sfm=P3^0;
/************************************************************ ACC累加器=A ACC.0=E0H
ACC.0就是ACC的第0位。Acc可以位寻址。
累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,
是单片机中一个非常关键的单元,很多运算都要通过ACC来进行。以后在学习指令时,
常用A来表示累加器。但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字。
一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址。 ***************************************************************/
//校时按键与C51的引脚连接定义 sbit key1=P1^4; //设置键 sbit key2=P1^5; //加键 sbit key3=P1^6; //减键 sbit key4=P1^3; //秒表
/**************************************************************/
void delay(uint xms)//延时函数,有参函数 {
uint x,y;
for(x=xms;x>0;x--) for(y=110;y>0;y--); }
void write_sfm(uchar com,uchar miao) {
uchar ge,shi; sfm=1; nyr=0; // P3=0;
shi=miao/10; ge=miao%10; P2=com; P0=Seg[ge]; delay(3); P2=com>>1; P0=Seg[shi]; delay(3); }
void write_sfm_(uchar com) {
P2=0; nyr=0; sfm=1; P2=com; P0=Seg[10]; delay(2); P2=com>>3; P0=Seg[10]; delay(2); }
void write_nyr(uchar com,uchar dat) {
uchar ge,shi; P2=0; nyr=1; sfm=0;
shi=dat/10; ge=dat%10; P2=com; P0=Seg[ge]; delay(3); P2=com>>1; P0=Seg[shi]; delay(3); }
void write_nyr_(uchar com) {
P2=0; nyr=1; sfm=0; P2=com; P0=Seg[10]; delay(2); P2=com>>3; P0=Seg[10]; delay(2); }
因篇幅问题不能全部显示,请点此查看更多更全内容