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

📄 header.h

📁 智能打铃系统(MCU)端程序
💻 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 + -