当前位置:文档之家› 智能照明控制系统源代码

智能照明控制系统源代码

附录4软件设计源程序题目教学楼智能照明控制系统软件设计学生姓名李鑫专业班级电子信息工程04级2学号 2院(系)电气信息工程学院指导教师曹祥红完成时间 2008年 6月 10 日1主机程序#include <reg52.h>#include <math.h>#include <VIIC_C51.H>#include <zlg7290.H>#include <LCD12864.H>#define uchar unsigned char#define uint unsigned intvoid msec(uint x);uchar rec_es(void);void sent_es(uchar schar);sbit KEY_INT = P3^3; //键盘中断sbit WARN = P3^4; //报警控制uchar data key_buf; //定义键值寄存器uchar idata room_disbuf[16]={"教室号:000 "}; uchar idata JSRS_disbuf[16]={"当前使用:000 "}; uchar idata GXDJ_disbuf[16]={"光线等级:0 "}; uchar idata time_disbuf[16]={"00:00:00 "}; uchar idata KDSJ_disbuf[16]={"00:00 "}; uchar idata GDSJ_disbuf[16]={"00:00 "};uchar data ZMKG;uchar data room_buf[3];uchar data cou1,cou2;long int data com1,com2,com3,com4;bit bdata flag1,flag2;uchar code ZMK_disbuf[16]={"照明: 开"}; uchar code ZMG_disbuf[16]={"照明: 关"};main(){ msec(1000); //开机延时//EN=0;//上电液晶屏禁能EA=1;//开所有中断ET0=1;//开定时器0TMOD=0x21;//设置T1为方式2TH1=0Xfa;//设置波特率为9600b/sTL1=0Xfa;TH0=0x3c;TL0=0xb0;SCON=0xd0;//设置串口位方式3PCON=0X80;//波特率加倍RI=0;TI=0;cou2=0;flag2=0;//========开机动态提示==========LCD_Ini(); //LCD初始化WARN=0; //系统启动提示msec(200);WARN=1;EX1=1;//开外部中断1TR0=1;TR1=1;//定时器1开始计数//==============================//====LCD初始化及开机提示=======LCD_Wrhz(0, "郑州轻工业学院"); //系统加载完毕界LCD_Wrhz(16," 毕业设计");LCD_Wrhz(8, "教学楼智能照明");LCD_Wrhz(24," 控制系统");KEY_INT=1;while(KEY_INT);key_buf=0;while(1){LCD_Wrchar(0, "1.查看教室状态"); //显示主菜单LCD_Wrchar(16,"2.设置");LCD_Wrchar(8, "3.控制");LCD_Wrchar(24,"4.关于本系统");msec(10);if(flag2){sent_es(5);msec(10);sent_es(time_disbuf[0]);msec(2);sent_es(time_disbuf[1]);msec(2);sent_es(time_disbuf[3]);msec(2);sent_es(time_disbuf[4]);flag2=0;}if(key_buf==1){ LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(16,"输入教室号");LCD_Wrchar(8,room_disbuf);key_buf=0;flag1=0;while(key_buf!=15){ cou1=7;while(key_buf!=11&&key_buf!=15){if(flag1&&key_buf!=11&&key_buf!=15){if(key_buf<10&&key_buf>0){room_disbuf[cou1]=key_buf+0x30;room_buf[cou1-7]=key_buf;}if(key_buf==13){room_buf[cou1-7]=0;room_disbuf[cou1]=0x30;}if(cou1==9)cou1=7;else cou1++;LCD_Wrchar(8,room_disbuf);msec(50);//key_buf=0;flag1=0;}}if(key_buf==11){sent_es(1);//发读教室状态指令msec(10);//等待从机判断sent_es(room_buf[0]);//发送教室号msec(2);sent_es(room_buf[1]);msec(2);sent_es(room_buf[2]);// msec(20);//等待从机判断教室号com1=0;while(com1<1000&&RI==0){com1++;}if(RI==1){JSRS_disbuf[9]=rec_es()+0x30;JSRS_disbuf[10]=rec_es()+0x30;JSRS_disbuf[11]=rec_es()+0x30;GXDJ_disbuf[9]=rec_es()+0x30;ZMKG=rec_es();LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(0,room_disbuf);//显示主菜单LCD_Wrchar(16,JSRS_disbuf);LCD_Wrchar(8,GXDJ_disbuf);if(ZMKG==1){LCD_Wrchar(24,"照明: 开");}else LCD_Wrchar(24,"照明: 关");}else{LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(0," 通信失败");//显示通信失败LCD_Wrchar(16,"该从机不存在或者");LCD_Wrchar(8,"连接故障");}while(key_buf!=15);}}}//选功能菜单1if(key_buf==2){LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(0,"1.当前时间设定");LCD_Wrchar(16,"2.开灯时间设定");LCD_Wrchar(8,"3.关灯时间设定");key_buf=0;while(key_buf!=15&&key_buf!=11){if(key_buf==1){LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(16,time_disbuf);cou1=0;key_buf=0;flag1=0;while(key_buf!=11&&key_buf!=15){if(flag1&&key_buf!=11&&key_buf!=15){if(key_buf<10&&key_buf>0){time_disbuf[cou1]=key_buf+0x30;}if(key_buf==13){time_disbuf[cou1]=0x30;}if(cou1==4)cou1=0;else if((cou1>=0&&cou1<1)||(cou1>=3&&cou1<4))cou1++;else if(cou1==1)cou1+=2;LCD_Wrchar(16,time_disbuf);msec(50);//key_buf=0;flag1=0;}if(key_buf==11){sent_es(5);msec(10);sent_es(time_disbuf[0]);msec(2);sent_es(time_disbuf[1]);msec(2);sent_es(time_disbuf[3]);msec(2);sent_es(time_disbuf[4]);flag2=0;}}}//功能2子功能1if(key_buf==2){LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(16,KDSJ_disbuf);cou1=0;key_buf=0;flag1=0;while(key_buf!=11&&key_buf!=15){if(flag1&&key_buf!=11&&key_buf!=15){if(key_buf<10&&key_buf>0){KDSJ_disbuf[cou1]=key_buf+0x30;}if(key_buf==13){KDSJ_disbuf[cou1]=0x30;}if(cou1==4)cou1=0;else if((cou1>=0&&cou1<1)||(cou1>=3&&cou1<4))cou1++;else if(cou1==1)cou1+=2;LCD_Wrchar(16,KDSJ_disbuf);msec(50);//key_buf=0;flag1=0;}}}//功能2子功能2if(key_buf==3){LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(0,"关灯时间设定");//显示通信失败LCD_Wrchar(16,GDSJ_disbuf);cou1=0;key_buf=0;flag1=0;while(key_buf!=11&&key_buf!=15){if(flag1&&key_buf!=11&&key_buf!=15){if(key_buf<10&&key_buf>0){GDSJ_disbuf[cou1]=key_buf+0x30;}if(key_buf==13){GDSJ_disbuf[cou1]=0x30;}if(cou1==4)cou1=0;else if((cou1>=0&&cou1<1)||(cou1>=3&&cou1<4))cou1++;else if(cou1==1)cou1+=2;LCD_Wrchar(16,GDSJ_disbuf);msec(50);//key_buf=0;flag1=0;}}}//功能2子功能3}}//功能菜单2if(key_buf==3){LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(0,"1.允许照明");//显示通信失败LCD_Wrchar(16,"2.照明关闭");LCD_Wrchar(8,"3.所有分机复位");key_buf=0;while(key_buf!=15){if(key_buf==1){sent_es(2);//发读教室状态指令msec(10);//等待从机判断LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(0,"提示:");//操作提示LCD_Wrchar(16,"指令已发送");LCD_Wrchar(8,"全局照明允许开");while(key_buf!=15);key_buf=0;}if(key_buf==2){sent_es(3);//发读教室状态指令msec(10);//等待从机判断LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(0,"提示:");//操作提示LCD_Wrchar(16,"指令已发送");LCD_Wrchar(8,"全局照明允许关");while(key_buf!=15);key_buf=0;}if(key_buf==3){sent_es(4);//发读教室状态指令msec(10);//等待从机判断LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(0,"提示:");//操作提示LCD_Wrchar(16,"指令已发送");LCD_Wrchar(8,"所有分机已复位");while(key_buf!=15);key_buf=0;}}}//功能菜单3if(key_buf==4){ LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(0," 本系统为2008");//显示通信失败LCD_Wrchar(16,"年郑州轻工业学院");LCD_Wrchar(8,"毕业设计题目:");LCD_Wrchar(24,"教学楼智能照明控");while(key_buf!=15){if(key_buf==14){LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(0," 本系统为2008");//显示通信失败LCD_Wrchar(16,"年郑州轻工业学院");LCD_Wrchar(8,"毕业设计题目:");LCD_Wrchar(24,"教学楼智能智能控");key_buf=0;}if(key_buf==16){LCD_WrCommand(0x01);//清屏并归零地址计数器msec(1);LCD_Wrchar(0,"制系统。

相关主题