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

📄 main.h

📁 基于PIC单片机
💻 H
字号:
/*****************************************************************************
功能:函数声明及部分宏的定义

创建时间:06.11.29
*****************************************************************************/
#define uchar unsigned char
#define uint  unsigned int
//波特率设定
#define fosc 8000000           //晶振为8MHZ
#define baud 19200	           //波特率为19200
//每页显示的节点数目
#define num1 16   
#define num2 8
#define num3 4
//485收发选择
#define cs_485_receive()  PORTE|=0x04
#define cs_485_send()     PORTE&=0xFB

#define xtal  11.0592                                    //延时函数用

/****************GAL门的片选地址的定义***************************/
#define GAL1ADDR  (*(volatile unsigned char *)0x6000)
#define GAL2ADDR  (*(volatile unsigned char *)0x2000)
#define GAL3ADDR  (*(volatile unsigned char *)0x3000)
#define GAL4ADDR  (*(volatile unsigned char *)0x4000)
#define GAL5ADDR  (*(volatile unsigned char *)0x5000)
/*****************************************************************/

/*****************************函数声明***************************************/
//mcu相关的函数
void wdr(void)  ;  //max705
void mcu_ok(uchar i);  //系统正常灯
void uart0_init(void);
void uart1_init(void);
void spi_init(void);
void port_init(void);
void init_devices(void);
void timer1_init(void) ;
void usart_transmit_char(uchar c);   //发送
//void watchdog_init(void);

//熄灭系统故障,及报警灯函数  
//void lit_gz_det(void) ;
void fault(void);     //故障
void unit_common(void)  ;  //浓度单位判断

/***********显示函数***************/
void zhuanhuan1(void);
void zhuanhuan2(void);
void zhuanhuan3(void);
void zhuanhuan4(void);
void zhuanhuan5(void);
void zhuanhuan6(void);
void zhuanhuan7(uchar temp1,uchar temp2);
void zhuanhuan(void);
void zbzj(void); 
void zbjs(void);  
void zong(uchar temp);                //综合设置
void clear(uchar temp);                //清屏
void colour(uchar temp1,uchar temp2,uchar temp3);  //颜色配置
void sound(uchar temp1);
void xtzb(uchar temp1,uchar temp2,uchar temp3,uchar temp4);       //系统坐标
void zfjj(uchar temp);                 //字符间距
void fdbs(uchar temp);                 //放大倍数
void juxing(uchar x1h,uchar x1l,uchar y1h,uchar y1l,uchar x2h,uchar x2l,uchar y2h,uchar y2l);//画矩形
void ltjx(uchar x1h,uchar x1l,uchar y1h,uchar y1l,uchar x2h,uchar x2l,uchar y2h,uchar y2l);  //立体矩形
void xszf(uchar x,uchar y);         //显示字符集1到4
void init_lcd(void);
void line( uchar x1h,uchar x1l,uchar y1h,uchar y1l,uchar x2h,uchar x2l,uchar y2h,uchar y2l);    //画直线
void xianshi(uint num);     //显示变量
void xstx(uchar x,uchar y,uchar z);   //显示"画面存储器"中的BMP图像
void menu(void);                         //菜单
void kong(uchar temp1,uchar temp2);          //空格
void bank1(void);            //列表界面中第一行
void bank2(void);            //报警界面中第一行
void bank3(void);            //故障界面中第一行
void bank4(void);            //开关机界面中第一行
void bank5(void);            //控制外部设备界面中第一行
void bank6(void);            //节点设置界面中第一行
void bank7(void);            //实时界面中的首报信息显示
void bank8(void);            //实时记录的第一行显示
void button_page(void);      //翻页按钮
void button_can(void);       //转换器按钮
void button2(void);      
void button3(void);  
void button_print(void);    //打印按钮
void background(void);      //背景    
void num_conversion(void);           //转换器编号  
uchar Read1(uint addr,uchar num);  //从内部E2中读取转换器使用情况
uchar Read2(uint addr,uchar num); //从内部E2中读取节点使用情况
uchar Read3(uint addr);            //从内部E2中读取节点探测器和联动的选择情况
//uchar Read4(uint addr);
void chroma_disp(void);            //浓度显示 
void unit_disp(void);              //浓度单位显示
void state_disp(void);             //状态显示
void clarm(void);                  //报警显示
void fault(void);                  //故障显示
void open_close(void);             //开关机显示
void real_disp(void);              //实时显示
void ram_erase(void);              //清除外部RAM实时记录
void jiemian1(void);  //列表状态界面
void jiemian2(void);  //报警记录界面
void jiemian3(void);  //故障记录界面
void jiemian4(void);  //开关机记录界面
void jiemian5(void);       //系统设置界面
void jiemian6(void);       //节点设置界面
void jiemian7(uchar temp);       //探测器界面
void jiemian8(void);       //联动界面
void jiemian9(void);  //控制外部设备界面
void jiemian10(void);   //修改地址界面
void jiemian11(void);   //报警实时显示界面
void jiemian12(void);   //故障实时显示界面
void jiemian13(void);   //本地关联界面
void denglu1(void);
void denglu2(void);
void choice1(void);  //"查看"菜单
void choice2(void);  //登录前"设置"菜单
void choice3(void);  //登录后"设置"菜单
void choice4(void);  //"控制"菜单
void self_check(void);  //自检
void reset(void);     //复位
void renew(void);    //恢复出厂设置
void gong(void);      //界面底部显示共用部分函数
void passage_det(uint addr1,uchar temp1,uchar temp2);   //检测输出通道与探测器关联情况
void transfer(void);      //将内部E2中的关联信息转到外部RAM中
void local_relate(void);  //本地关联函数
void high_trans(void);    //高报浓度进制转换
void low_trans(void);     //低报浓度进制转换
void sound(uchar temp1);         //按键音
void pass_proc1(void);           //密码判断
void pass_proc2(void);           //密码判断
void det_disp(void);             //探测器选择
void det_choice(uchar temp);     //探测器选择
void link_disp(void);            //联动选择
void link_choice(uchar temp);    //联动选择
void non_use(void);                        //不使用
void nouse_choice(uchar temp);             //不使用选择
void trans1(void);
void trans2(void);
void save1(uint addr,uchar num);     //转换器使用存入
void save2(uint addr,uchar num);    //节点使用存入以及使用探测器存入
void save3(uint addr1,uchar temp1,uchar temp2);  //存储关联情况
void save4(uint addr,uchar num);     //转换器不使用存入
void save5(uint addr,uchar num);     //节点的不使用存入
void save6(uint addr,uchar num);      //使用联动模块存入
void save7(uint addr,uchar num);      //使用探测器存入
void state_node(void);     //节点设置中节点状态显示函数
void type_choice(void);    //气体类型选择函数
void unit_choice(void);    //浓度单位选择函数
//void share1(uchar temp);
void judge1(uchar temp);   //界面8中输入条件判断
void share2(void);
void judge2(void);         //界面8中退格条件判断
void gbxs(uchar x1h,uchar x1l,uchar y1h,uchar y1l,uchar x2h,uchar x2l,uchar y2h,uchar y2l); //光标显示
//void same1(uchar temp);
void common1(uchar temp1);   //显示键盘数字
void common2(void);
void same2(uchar temp1,uchar temp2,uchar temp3,uchar temp4);
void common3(void);        //实现Tab键的功能
void common4(uchar temp2);   //显示数字功能函数
void common5(void);        //一页显示16个编号
void common6(void);        //一页显示8个编号
void common7(void);        //退格功能函数
void common8(void);        //"退格"按键功能函数
void common9(void);        //一页4个编号
void common10(void);       //显示can编号
void common11(uchar temp);  //在探测器界面或联动界面显示can和485的编号
void send(uchar temp1,uchar temp2,uchar temp3,uchar temp4,uchar temp5,uchar temp6,uchar temp7,uchar temp8);//发送
void receive(uchar temp1,uchar temp2,uchar temp3,uchar temp4,uchar temp5,uchar temp6,uchar temp7,uchar temp8);//接收
void keyboard(void);       //键盘
/*********触摸屏函数***********/
uchar pbAN(uint Xzb,uint Yzb);       //判别按键
jccmp(void);               //触摸屏检测
void keyproc(void);        //按键检测

//实时时钟显示函数
void clock_deal(uchar temp) ;             //时钟处理函数
void clock_disp(void)   ;          //显示

/*****************************/
RAMread(uint temp);
E2read(uint temp);
/***************打印函数****************/
void write_print(uchar cmd);   //写打印函数
void cha_print(uchar temp1,uchar temp2);   //命令打印函数
void int_prt(void);   //初始化打印机
//void test_print(void);      //测试用
void kong_print(uchar temp);   //空格打印函数
void gas_choice(void);     //气体类型选择
void unit_judge(void);     //浓度单位选择
void print1(uint num);     //打印格式1
void date_print(uchar temp);  //时间处理打印函数
void num_print(uchar temp);   //编号打印
void clarm_print(void);        //报警记录打印
void fault_print(void);        //故障记录打印
void opclo_print(void);        //开关机记录打印

/****************************************************************************/

void common10(void);       //显示can的编号

void type_choice(void);                    //气体类型选择
void unit_choice(void);                    //气体浓度单位选择

/**************************************************************************************/
                    
/*****************************************************/
//和can有关的函数
void reset_MCP(void);
void write_MCP(unsigned char adress, unsigned char value);
unsigned char read_MCP(unsigned char adress);
void bit_modify(unsigned char adress,unsigned char cc, unsigned char value);
void send_box_0(void);
void init_can(void);
void fill_msg_box_0(void);
void remotesend(uchar id_addr);            //数据包请求函数

void atuo_search(void);

//延时函数
void delay_1us(void);
void delay_nus(unsigned int n);
void delay_1ms(void);
void delay_nms(unsigned int n);


//485相关函数
void Usart_Transmit_Data(uchar data,uchar i);
void usart_transmits(unsigned char n, unsigned char *p);
uchar Usart_Receive_Data(void);
uchar Usart2_Receive_Data(void);
void  lunxun485(void);
//对轮循的数据进行处理
void proc485(void);
void detuse_auto_search(void);   //485模式自动搜索
void conv_auto_search(void);

//片内E2PROM读写函数
void EEPROM_write(unsigned int address,unsigned char data);
unsigned char EEPROM_read(unsigned int address);

//TWI相关函数
void TWI_Master_Initialise( void );
uchar byte_revert(uchar data);   //字节高低位全部翻转
uchar I2cRead(uchar device_wt,uchar device_rd, uchar addrhi,uchar addrlo,uchar num);
uchar I2cWrite(uchar *msg,uchar num);

//时间设定函数
void timeset(void);
void time_trans(void);        //设置时间格式转换函数
uchar clock_wt(uchar *msg,uchar num);
uchar clock_rd(uchar command,uchar num);

//开关机记录函数
void poweron_off_record(void);

//实时关机记录函数
void realtime_off_record(void);
//void chongdian(void);   //充电故障检测


//界面底部显示函数
void state_bottom(void);
void alarm( unsigned char type);

//接受到的数处理
void canrx_process(void);
void save_real_fault(uchar temp);
//void save_can_fault(void);
void save_can_fault(uchar temp);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -