📄 header.h
字号:
#ifndef uchar
#define uint unsigned int
#define uchar unsigned char
#endif
#define COMM 0
#define DATT 1
unsigned char KeyT,KeyT2;
unsigned char NextRingNum,NextRingTime[3];
unsigned char RingFlag,RingST,RingET;
uchar key,key_flag,tc=0;
uchar t_1ms=0;
uchar Com_flag,Com_count,Com_buff[128],In_flag,Com_over;
uchar Tp[]="xx.x度";
uchar str_date[]="xxxx年xx月xx日";
uchar str_day[]="星期一";
uchar str_time[]="xx:xx:xx";
uchar str_dayx[][2]={"一","二","三","四","五","六","日"};
uchar serial[128];
uchar MenuCount[]={3,3,4};
uchar str_Menu[][4][17]={
{"====系统菜单====","1.添加打铃时间","2.修改系统时间","f"},
{"====没有记录====","1.添加打铃时间","2.退出"," "},
{"====选择操作====","1.修改打铃时间","2.添加打铃时间","3.删除记录"}
};
//uchar code powerOnPhoto [] = { //开机画面
/*-- 宽度x高度=64x32 --*
/*
0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0xB0,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0xA0,0x00,0x00,0x90,0x00,0x00,0x00,0x05,
0x80,0x00,0x00,0x00,0x30,0x00,0x00,0x01,0x80,0x01,0x00,0x00,0x00,0x20,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x40,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x01,
0x00,0x3C,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x2C,0x00,0x00,0x00,0x00,0x80,
0x00,0x46,0x06,0x00,0x80,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x20,0x00,
0x20,0x00,0x40,0x00,0x00,0x00,0x00,0x10,0x04,0x00,0x41,0x08,0x20,0x00,0x00,0x00,
0x00,0x02,0x09,0x00,0x80,0x00,0x00,0x00,0x00,0x20,0x82,0x31,0x0A,0x01,0x00,0x00,
0x00,0x00,0x20,0x01,0x00,0x04,0x00,0x10,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x00,
0x00,0x24,0x22,0x80,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x20,0x00,0x00,
0x08,0x00,0x11,0x08,0x80,0x80,0x80,0x00,0x00,0xA3,0x0A,0x97,0xB0,0x00,0x04,0x00,
0x80,0x0B,0x81,0x9A,0x6B,0x80,0x00,0x01,0x80,0x2A,0x02,0x17,0xC4,0x80,0x00,0x01,
0x80,0x0A,0x94,0x2B,0xAA,0x80,0x00,0x01,0x80,0x00,0x00,0x06,0xB7,0x80,0x00,0x01,
0xA0,0x00,0x00,0x04,0x10,0x28,0x14,0x05,0xB0,0x00,0x00,0x00,0x38,0x00,0x00,0x0D,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0xFF
};
*/
sbit SPI_CS=P2^3;
sbit LCD_BK=P3^3;
sbit Beep=P3^7;
void delay_us(unsigned char us);
void delay_ms(unsigned int ms);
/*********** 菜单号定义 ************/
#define SYSMENU 0
#define NORECORD 1
#define SCANMENU 2
#define RECORDVIEW 3
/*****************************************/
/*********** DS1307时钟芯片定义 ************/
#define DS1307_Addr 0xd0 //最后一位为读写位,为0时写,为1时读
#define Second 0x00 //秒地址
#define Minute 0x01 //分钟地址
#define Hours 0x02 //小时地址
//#define Hours_format 0x00 //小时格式,bit6为12/24小时制选择位,bit6=1为12小时制
//在12小时制情况下bit5为AM/PM指示位,bit5=1表示PM
//24小时制时,bit5和bit4一起存放小时的十位,默认24小时制
#define Day 0x03 //星期地址
#define Date 0x04 //日期地址
#define Month 0x05 //月份地址
#define Year 0x06 //年份地址
#define Yearh 0x08 //年份高地址
/*****************************************/
//*********** 93C46 指令定义 ***********
#define ERASE 0xC0 //11AAAAAA,清除以A5~A0为地址的单元的数据,全部用'1'填充
#define ERAL 0x20 //0010XXXX,清除芯片内存中的所有数据,全部用'1'填充
#define EWDS 0x00 //0000XXXX,清除或写操作禁止
#define EWEN 0x30 //0011XXXX,清除或写操作允许
#define READ 0x80 //10AAAAAA,读以A5~A0为地址的单元内容,一次读取两个字节(16位)数据
#define WRITE 0x40 //01AAAAAA D15~D0,将D15~D0 两个字节(16位)数据写入以A5~A0为地址的内存单元
#define WRAL 0x10 //0001XXXX D15~D0,用D15~D0 两个字节(16)位数据填满所有存储单元
//***************** END *****************
//*********** 按键键值对照表 ***********
//#define KEY_0 0xE7
//#define KEY_1 0xEE
//#define KEY_2 0xDE
//#define KEY_3 0xBE
//#define KEY_4 0xED
//#define KEY_5 0xDD
//#define KEY_6 0xBD
//#define KEY_7 0xEB
//#define KEY_8 0xDB
//#define KEY_9 0xBB
#define KEY_ENT 0xD7
#define KEY_ESC 0xB7
#define KEY_FUNC 0x7E
#define KEY_RST 0x7D
#define KEY_UP 0x7B
#define KEY_DOWN 0x77
//***************** END *****************
//========================== 键盘模块子函数 ==========================
unsigned char ScanKey(void);
//-------------------------- end --------------------------
//========================== 液晶模块子函数 ==========================
void LCD_init(void); //液晶模块初始化
void LCD_Busy_Check(void); //检测液晶模块是否空闲
void LCD_set_position( uchar x, uchar y ); //设置游标位置
void LCD_write(uchar wdat,uchar mode); //向液晶模块写数据
void LCD_write_string(uchar X,uchar Y,uchar *s); //从Y行X列开始显示字符串,以 NULL 结束
void LCD_set_pic_position(unsigned char x,unsigned char y); //设置图形坐标
//void DrawPicture(unsigned char x,unsigned char y,unsigned char weith,unsigned char height,unsigned char *p);
//图形显示函数, x,y为图片显示坐标(16,63),weith,heignt为图片的宽度和高度(16*64),*p为图片数据地址
void LCD_Convert(unsigned char x,unsigned char y,unsigned char weith,unsigned char mode); //反白某一行
void LCD_clr_pic(); //清除图形显示数据
//-------------------------- end --------------------------
//========================== 时钟模块子函数 ==========================
void DS1307_Write(unsigned char Addr,uchar wdata);
unsigned char DS1307_Read(unsigned char Addr);
//-------------------------- end --------------------------
//========================== 93C46存储模块子函数 ==========================
void SPI_SendByte(unsigned char SDATA); //SPI总线发送字节
void SPI_Start();
void Mem_EnWrite();
void Mem_Clrall();
void WeitReady(); //复位93C46,清除其中的所有数据
void Mem_Write(unsigned char Addr,unsigned char MData); //向Addr地址写入两字节数据
unsigned char Mem_Read(unsigned char Addr); //从Addr地址读取两字节数据
unsigned char Read_RingTime(unsigned char RingNum,unsigned char *p); //读取打铃时间
void Write_RingTime(unsigned char RingNum,unsigned char *p);
void Ring_Paixu();
unsigned char DelRing(unsigned char Num);
//-------------------------- end --------------------------
//========================== 18b20测温模块子函数 ==========================
void delay_us(unsigned char us);
unsigned char _18b20_init(void);
unsigned char _18b20_read();
void Read_Temperature(unsigned char *p);
void _18b20_write(unsigned char commond);
//-------------------------- end --------------------------
//========================== 串口模块子函数 ==========================
void COM_Send(unsigned char cdat);
void COM_SendAll();
//-------------------------- end --------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -