附录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 int
void 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()
//EN=0;//上电液晶屏禁能
EA=1;//开所有中断
ET0=1;//开定时器0
TH1=0Xfa;//设置波特率为9600b/s
TL1=0Xfa;
TH0=0x3c;
TL0=0xb0;
SCON=0xd0;//设置串口位方式3
PCON=0X80;//波特率加倍
RI=0;
TI=0;
cou2=0;
flag2=0;
//========开机动态提示========== LCD_Ini(); //LCD初始化
WARN=0; //系统启动提示
msec(200);
WARN=1;
EX1=1;//开外部中断1
TR0=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.控制 ");去离子水ph
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]);
cdkl5基因突变 // 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;