智能照明控制系统源代码_第1页
智能照明控制系统源代码_第2页
智能照明控制系统源代码_第3页
智能照明控制系统源代码_第4页
智能照明控制系统源代码_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

附录 4 软件设计源程序 题 目 教学楼智能照明控制系统软件设计 学生姓名 李鑫 专业班级 电子信息工程 04 级 2 学 号 204401030222 院 系 电气信息工程学院 指导教师 曹祥红 完成时间 2008 年 6 月 10 日 1 主机程序 include include include include include 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 msec 1000 开机延时 EN 0 上电液晶屏禁能 EA 1 开所有中断 ET0 1 开定时器 0 TMOD 0 x21 设置 T1 为方式 2 TH1 0Xfa 设置波特率为 9600b s TL1 0Xfa TH0 0 x3c TL0 0 xb0 SCON 0 xd0 设置串口位方式 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 控制 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 0 x01 清屏并归零地址计数器 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 room buf cou1 7 key buf if key buf 13 room buf cou1 7 0 room disbuf cou1 0 x30 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 if RI 1 JSRS disbuf 9 rec es 0 x30 JSRS disbuf 10 rec es 0 x30 JSRS disbuf 11 rec es 0 x30 GXDJ disbuf 9 rec es 0 x30 ZMKG rec es LCD WrCommand 0 x01 清屏并归零地址计数器 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 0 x01 清屏并归零地址计数器 msec 1 LCD Wrchar 0 通信失败 显示通信失败 LCD Wrchar 16 该从机不存在或者 LCD Wrchar 8 连接故障 while key buf 15 选功能菜单 1 if key buf 2 LCD WrCommand 0 x01 清屏并归零地址计数器 msec 1 LCD Wrchar 0 1 当前时间设定 LCD Wrchar 16 2 开灯时间设定 LCD Wrchar 8 3 关灯时间设定 key buf 0 while key buf 15 清屏并归零地址计数器 msec 1 LCD Wrchar 0 时间设定 显示通信失败 LCD Wrchar 16 time disbuf cou1 0 key buf 0 flag1 0 while key buf 11 if key buf 13 time disbuf cou1 0 x30 if cou1 4 cou1 0 else if cou1 0 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 子功能 1 if key buf 2 LCD WrCommand 0 x01 清屏并归零地址计数器 msec 1 LCD Wrchar 0 开灯时间设定 显示通信失败 LCD Wrchar 16 KDSJ disbuf cou1 0 key buf 0 flag1 0 while key buf 11 if key buf 13 KDSJ disbuf cou1 0 x30 if cou1 4 cou1 0 else if cou1 0 else if cou1 1 cou1 2 LCD Wrchar 16 KDSJ disbuf msec 50 key buf 0 flag1 0 功能 2 子功能 2 if key buf 3 LCD WrCommand 0 x01 清屏并归零地址计数器 msec 1 LCD Wrchar 0 关灯时间设定 显示通信失败 LCD Wrchar 16 GDSJ disbuf cou1 0 key buf 0 flag1 0 while key buf 11 if key buf 13 GDSJ disbuf cou1 0 x30 if cou1 4 cou1 0 else if cou1 0 else if cou1 1 cou1 2 LCD Wrchar 16 GDSJ disbuf msec 50 key buf 0 flag1 0 功能 2 子功能 3 功能菜单 2 if key buf 3 LCD WrCommand 0 x01 清屏并归零地址计数器 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 0 x01 清屏并归零地址计数器 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 0 x01 清屏并归零地址计数器 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 0 x01 清屏并归零地址计数器 msec 1 LCD Wrchar 0 提示 操作提示 LCD Wrchar 16 指令已发送 LCD Wrchar 8 所有分机已复位 while key buf 15 key buf 0 功能菜单 3 if key buf 4 LCD WrCommand 0 x01 清屏并归零地址计数器 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 0 x01 清屏并归零地址计数器 msec 1 LCD Wrchar 0 本系统为 2008 显示通信失败 LCD Wrchar 16 年郑州轻工业学院 LCD Wrchar 8 毕业设计题目 LCD Wrchar 24 教学楼智能智能控 key buf 0 if key buf 16 LCD WrCommand 0 x01 清屏并归零地址计数器 msec 1 LCD Wrchar 0 制系统 显示通信失败 LCD Wrchar 16 学生 李鑫 LCD Wrchar 8 LCD Wrchar 24 key buf 0 功能菜单 4 if key buf 12 LCD WrCommand 0 x01 清屏并归零地址计数器 msec 1 LCD Wrchar 0 当前时间 key buf 0 while key buf 0 LCD Wrchar 8 time disbuf 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 显示时间子功能 key buf 0 main 延时子程序 说明 函数传递的数值即延时时间 单位为 ms 创建日期 2008 5 10 入口参数 X void msec uint x unsigned char k while x for k 0 k 125 k 发送串行数据 void sent es uchar schar SBUF schar while TI 0 TI 0 接收串行数据 uchar rec es void uchar recnum while RI 0 recnum SBUF RI 0 return recnum void getkey void interrupt 2 取键值服务程序 TR0 0 EX1 0 if TR0 0 key buf ZLG7290 GetKey WARN 0 msec 10 WARN 1 EX1 1 flag1 1 TR0 1 void time0 void interrupt 1 TH0 0 x3c TL0 0 xb0 cou2 if cou2 20 cou2 0 if time disbuf 7 0 x39 time disbuf 7 0 x30 if time disbuf 6 0 x35 time disbuf 6 0 x30 if time disbuf 4 0 x39 time disbuf 4 0 x30 if time disbuf 3 0 x35 time disbuf 3 0 x30 if time disbuf 1 0 x39 time disbuf 1 0 x30 time disbuf 0 else if time disbuf 1 0 x33 time disbuf 1 0 x30 else time disbuf 1 else time disbuf 3 else time disbuf 4 flag2 1 com2 time disbuf 0 0 x30 1000 time disbuf 1 0 x30 100 time disbuf 3 0 x30 10 time disbuf 4 0 x30 com3 KDSJ disbuf 0 0 x30 1000 KDSJ disbuf 1 0 x30 100 KDSJ disbuf 3 0 x30 10 KDSJ disbuf 4 0 x30 com4 GDSJ disbuf 0 0 x30 1000 GDSJ disbuf 1 0 x30 100 GDSJ disbuf 3 0 x30 10 GDSJ disbuf 4 0 x30 if com2 com3 sent es 2 if com2 com4 sent es 3 else time disbuf 6 else time disbuf 7 2 从机主程序 include reg52 h include math h include VIIC C51 h define uchar unsigned char define uint unsigned int void led scan void 函数声明段 void delay ms uint x void key scan void void ad convert uchar channel void pass dis uchar dis void sent es uchar schar uchar rec es void void time dis void sbit keyin P1 7 sbit adc flag P3 2 sbit buzzer P3 4 sbit relay P3 5 sbit HW1 P1 2 sbit HW2 P1 3 uchar data dis buf 6 0 x14 0 x14 0 x14 0 x14 0 x14 0 x14 定义显示缓冲区 uchar data time buf 6 0 x19 0 x17 0 0 0 0 时间缓冲区 uchar data gx buf 6 0 x20 0 x17 0 x17 0 x17 0 x17 0 时间缓冲区 uchar data rs buf 6 0 x1b 0 x18 0 x17 0 0 0 时间缓冲区 uchar data room buf 3 uchar data JSRS 教室人数 uchar data GXDJ 光线等级 uchar data wink con 闪烁控制位 uchar data key buf 定义键值缓冲区 uchar data wink speed 闪烁速度 值越小闪烁速度越快 uchar data wink spbuf uchar data GXJC cou 光线检测定时 uchar data key cou 键盘扫描定时 unsigned long data CSXS cou 参数显示定时 unsigned long data QZKD cou 强制开灯时间 uchar data menu num 菜单号 uchar data es buf 通用变量 bit bdata ZMKG 照明开关 bit bdata KDYX 开灯允许标志 bit bdata off flag key 开关标志位 uchar data adc buf AD 转换值缓冲 uchar code class number 6 0 x0c 0 x21 0 x17 0 x06 0 x00 0 x05 教室号 uchar code l on 6 0 x13 0 x17 0 x17 0 x17 0 0 x21 uchar code l off 6 0 x13 0 x17 0 x17 0 0 x0f 0 x0f uchar code dis code 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 1 2 3 4 5 00H 01H 02H 03H 04H 05H 0 x82 0 xf8 0 x80 0 x90 0 x88 0 x83 6 7 8 9 A b 7DH 07H 08H 09H 0AH 0BH 0 xc6 0 xa1 0 x86 0 x8e 0 x8c 0 xc1 C D E F P U 0CH 0DH 0EH 0FH 10H 11H 0 x89 0 xc7 0 xbf 0 x91 0 x00 0 xff H L y ON OFF 12H 13H 14H 15H 16H 17H 0 x92 0 xce 0 x8b 0 xaf 0 xa3 0 xa1 S T h r o d 18H 19H 1AH 1BH 1CH 1DH 0 xf0 0 x87 0 xc2 0 xc8 0 xa3 0 xa1 S t G N o d 1EH 1FH 20H 21H 22H 23H void main void start GXJC cou 100 QZKD cou 0 KDYX 1 key cou 12 key buf 0 menu num 0 ZMKG 1 上电关的灯 buzzer 1 delay ms 400 开机延时 200MS 初始化定时器 TMOD 0 x21 定时器 0 工作在方式 1 定时器 1 为方式 2 EA 1 开总中断 ET0 1 开定时器 0 TH0 0 xec TL0 0 x78 TR0 1 开定时器 0 配置串口 TH1 0Xfa 设置波特率为 9600b s TL1 0Xfa SCON 0 xd0 设置串口位方式 3 PCON 0X80 波特率加倍 RI 0 TI 0 闪烁控制 wink spbuf 25 wink speed wink spbuf wink con 0 xFF delay ms 500 pass dis class number delay ms 500 显示初始化 pass dis rs buf delay ms 500 pass dis gx buf delay ms 500 pass dis l off delay ms 500 pass dis time buf delay ms 500 TR1 1 定时器 1 开始计数 while 1 if HW1 0 while HW2 1 while HW2 0 if JSRS 0 if key buf 0 rs buf 3 JSRS 100 rs buf 4 JSRS rs buf 3 100 10 rs buf 5 JSRS rs buf 3 100 rs buf 4 10 pass dis rs buf CSXS cou 400 delay ms 300 if HW2 0 while HW1 1 while HW1 0 if JSRS 1 if JSRS 0 rs buf 3 JSRS 100 rs buf 4 JSRS rs buf 3 100 10 rs buf 5 JSRS rs buf 3 100 rs buf 4 10 pass dis rs buf CSXS cou 400 delay ms 300 key scan if key buf 5 if menu num0 menu num else menu num 4 if menu num 0 pass dis time buf if menu num 1 pass dis class number if menu num 2 pass dis rs buf if menu num 3 pass dis gx buf if menu num 4 if ZMKG 0 pass dis l on else pass dis l off key buf 0 CSXS cou 400 if key buf 4 强制开灯 ZMKG 0 pass dis l on CSXS cou 400 QZKD cou 4000 key buf 0 if RI 1 有串口中断 es buf rec es if es buf 1 room buf 0 rec es room buf 1 rec es room buf 2 rec es if room buf 0 class number 3 delay ms 2 sent es rs buf 4 delay ms 2 sent es rs buf 5 delay ms 2 sent es gx buf 5 delay ms 2 if ZMKG sent es 0 else sent es 1 delay ms 2 else delay ms 2 if es buf 5 time buf 2 rec es 0 x30 time buf 3 rec es 0 x30 time buf 4 rec es 0 x30 time buf 5 rec es 0 x30 pass dis time buf if es buf 2 KDYX 1 if GXDJ0 ZMKG 0 if es buf 3 KDYX 0 ZMKG 1 if es buf 4 goto start RI 0 relay ZMKG 显示子程序 函数名称 void led scan void 入口参数 dis buf 6 说明 将显示缓冲区的内容显示一遍 创建日期 2008 5 15 void led scan void uint i j uchar xdata po1 定义外部数据指针 uchar data px 0 x20 片选初值 for i 0 i 1 右移 j dis buf i 读取要显示的数据 po1 0 x9fff 显示内容地址 po1 dis code j 查表 delay ms 1 调用延时 po1 0 x7fff 显示位的地址 po1 px 送显示内容 函数名称 void pass dis uchar dis 入口参数 dis 说明 送指定的显示内容到显示缓冲区 创建日期 2008 5 6 void pass dis uchar dis uchar data com7 for com7 0 com7 6 com7 dis buf com7 dis dis 检测光强 函数名称 void light check void 入口参数 无 说明 自动检测光强并显示 创建日期 2008 5 7 void light check void ad convert 0 if adc buf150 if GXDJ gx buf 5 gx buf 5 GXDJ pass dis gx buf CSXS cou 400 if GXDJ0 else ZMKG 1 relay ZMKG GXJC cou 100 键盘扫描

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论