版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电路图电热水器自动控温系统的设计和实现下位机#include math.h#include reg51.#include INTRIN#define N 4S.Hsbit adcstartale = sbit adc_con=P2 sbit adcoe= sbit key1=P sbit key2=P =PP3710;11;3;P37;6sbit key4=P sbit int_0=P32;sbit int_1=P33; sbit P15=P15;=P16;void delay(); void delay1();void inituart(voi unsigned cha void fillb
2、uff();void shooid r gbu void led(); ;); ettemper();void keyproc void filter();void send_char();ledtab/ 段码le=0 x0-9,-deco ledtable1 码 0.-9. unsigned unsigned unsigned unsignedg;ess() ;unsigned/ 键值/ 是否按键按下图 1-2 下位机电路图,0 x80/ 主函数void main()EX1=1; / 允许 INT1 中断EA=1; / 中断总允许IT1=1; / INT1 边沿触发方式level=0; /
3、初始键值levelflag=0;/ 无键按下标志temperflag=0; / 键值temper=0; /adc 初始值P16=0;inituart();/ 串口初始化while(1)filter();delay1();showbuff(); / 显示温度值led();if(levelflag|temperflag)send_char();/ 如果有按键按下或者采集到的值和前一刻不相同 时,将 / 温度或档位发给上位机/ 延时函数void delay()int i,j;for(i=0;i50;i+) for(j=0;j1;j+);void delay1()int i,j;for(i=0;i15
4、0;i+) for(j=0;j25;j+);/ 检测void led()if(level=1) if(video_buff3=level)|(video_buff3=level+1)&(video_buff 4=0) P16=0;else P16=1;/ 如果有按键按下或者采集到的值和前一刻不相同时,将温 度或档位发给上位机else if(video_buff3=level)&(video_buff4!=0)|(video_buff3= =level+1)&(video_buff4=0) P16=0;else P16=1; / 如果有按键按下或者采集到的值和前一刻不相同时,将温 度或档位发给上
5、位机/ 得到采样值unsigned char gettemper() unsigned char adcdata;EA=0; adc_con=0; adcstartale=0; adcstartale=1;P0=0 xff; while(int_0=0); adcoe=0; adcdata=P0; adcoe=1;/ 采样时关闭所有中断_nop_();_nop_();/ 启动 A/D 转换,下降沿有效/ 等待转换完成/ 允许读 ADC0808/ 将转换后的数据送单片机的 P0 口/ 不允许读 ADC0808if(temper!=adcdata) temperflag=1; / 相 邻 两 次
6、采 样 值 不 同 时 , temperflag 置 1EA=1; / 打开所有中断return adcdata;/ 处理采样值,填充显示缓冲区 void fillbuff()unsigned int tmp;tmp=temper*1.96078; video_buff0=level; / video_buff1=10; video_buff2=10;video_buff3=tmp/100; tmp=tmp%100; video_buff4=tmp/10; tmp=tmp%10; video_buff5=tmp;填充档位/ 填充 -/ 填充 -/ 填充十位/ 填充个位/ 填充小数点位/ 将档位
7、、温度值显示在数码管上void showbuff()unsigned char ii,j,k;2unsigned char p=0 x1;unsigned char xdata *i;P15=0;for(ii=0;ii6;ii+) i=0 xfff3; / 控制口地址 *i=0 x80; / 控制写入控制口 j=video_buffii;if(ii=4) k=ledtable1j; else k=ledtablej;i=i-3;/ 位码地址*i=p;/ 送位码到 PA 口i=i+1;/ 段码地址*i=k;/ 送段码到 PB 口p=1;/ 从左向右依次点亮数码管delay();P15=1;/ 键
8、盘中断处理程序unsigned char i; for(i=0;i30;i+); if(int_1) return; / if(!key1)level=1; / if(!key2)level=2; / if(!key3)level=3; / if(!key4)level=4; / levelflag=1; video_buff0=level;void keyprocess() interrupt 2 当 INT1=1 时,无中断,无按键按下 如果 key1=0,则 1 键按下 如果 key21=0,则 2 键按下 如果 key3=0,则 3 键按下 如果 key4=0,则 4 键按下/ 有按键
9、按下/ 均值滤波void filter() / 对四次采样进行求平均 , 考虑到实际中温度的变化是一个比 较缓慢的过程,/ 相邻的几次采样变化幅度不大,且为计算简便, N 取值为 4int sum=0,count;for (count=0;count=1&level=4)video_buff0=level; / 将接收到的档位值填写显示缓冲区if(TI=1) / 如果 TI=1 ,发送完数据TI=0; / 软件清零/ 串口初始化void inituart()SCON=0X50 ;/ / 方式 1,8 位数据,允许接收 sm0 sm1 sm2 ren tb8 rb8 ti riTMOD=0X20
10、/; 设置 timer1 ,方式 2 (方式 2,自动重装入初值的 8 位计数 器, 串行通信时用)TH1=0XFD; / 初始值TL1 = 0 xfd;TR1=1; / 启动 timer1 ,开始计时ES=1; /开启串口中断/ 向上位机发送档位、温度void send_char()if(!TI)if(temperflag=1) / 温度有变化SBUF=video_buff3+0 x30; while(TI=0);SBUF=video_buff4+0 x30; while(TI=0);SBUF=.; while(TI=0);SBUF=video_buff5+0 x30; while(TI=0);SBUF=-;while(TI=0); temperflag=0;if(levelflag=1)levelflag=0;SBUF=video_buff0+0 x30; while(!TI);SBUF=-; while(TI=0);/ 发送十位给上位机/ 等待发送完 ,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 涉及打胎的孕妇离婚协议书(2025年版)6篇
- 二零二五版居民内地与香港离婚登记手续全程辅导合同3篇
- 2025年度个人养老贷款保证担保合同样本4篇
- 二零二五美容院美容师形象设计与推广服务合同4篇
- 2025年度个人沙石加工及销售一体化合同4篇
- 2025年度虚拟现实内容制作与版权保护合同3篇
- 2025年度露营装备租赁与售后服务合同范本3篇
- 二零二五年度高端U盘定制销售合同范本2篇
- 二零二五版模具制造设备租赁及质量控制协议4篇
- 郑州电力职业技术学院《色彩学》2023-2024学年第一学期期末试卷
- 垃圾处理厂工程施工组织设计
- 天疱疮患者护理
- 2025年蛇年新年金蛇贺岁金蛇狂舞春添彩玉树临风福满门模板
- 四川省成都市青羊区石室联中学2024年八年级下册物理期末学业水平测试试题含解析
- 门诊导医年终工作总结
- 新生物医药产业中的人工智能药物设计研究与应用
- 损失补偿申请书范文
- 压力与浮力的原理解析
- 铁路损伤图谱PDF
- 装修家庭风水学入门基础
- 移动商务内容运营(吴洪贵)任务二 社群的种类与维护
评论
0/150
提交评论