温控自动风扇系统论文(3)
4.2 子程序
4.2.1温度数据显示处理函数
首先使用DS18B20进行温度数据采集,经过处理后的数据在由4个数码管进行数据显示。其中要进行温度值正负判断,负温度求补码,标志位置1等问题。
void tem_deal(uint tem) {
/*************温度数据处理*****************/ if(!flag) {
if(tem>6348) // 温度值正负判断
{tem=65536-tem;flag1=1;} // 负温度求补码,标志位置1 Dis_play[4]=tem&0x0f; // 取小数部分的值 Dis_play[3]=ditab[Dis_play[4]]; // 存入小数部分显示值
Dis_play[4]=tem>>4; // 取中间八位,即整数部分的值 Dis_play[0]=Dis_play[4]/100; // 取百位数据暂存 Dis_play[2]=Dis_play[4]0; // 取后两位数据暂存 Dis_play[1]=Dis_play[2]/10; // 取十位数据暂存 Dis_play[2]=Dis_play[2]; // 取个位数据暂存 if(!Dis_play[0]) // 最高位为0都不显示 {
Dis_play[0]=0x0a; // 先判断百位是否为0 if(!Dis_play[1]) {
Dis_play[1]=0x0a; // 再判断十位是否为0 } }
// if(flag1) // {
// Dis_play[3]=0x0b; // 为负数时,最高位显示 \ // } } }
/******************************************/ /* 温度数据显示 */ /******************************************/ void display() {
char k;
11
for(k=0;k<4;k++) //4位LED扫描控制 { Disdata=table[Dis_play[k]]; //数据显示 if (k==2){DIN=0;} //小数点显示 discan=scan_con[k]; //位选 delay(90); //延时 discan=0x0; } }
4.2.2超温报警可控程序
程序设定好三个按键来用来设定用户预想设定的报警值,和BS18B20采集过来的温度数据进行对比,如果超出了原来预定设的值时,就会立刻调用程序执行报警命令。
void Annu(void) { uchar temp,tim; temp=Dis_play[1]*10+Dis_play[2]; if(KEY1==0) { delay(5000); if(KEY1==0) { while(!KEY1) display(); flag3=0; display(); flag++; BUZ=0; BUZ1=1; if(flag==3) { flag3=1; flag=0; } } } if(flag==1) { DC1=0; if(KEY2==0) { delay(5000);
12
if(KEY2==0) { while(!KEY2) display(); tem1++; } }
if(KEY3==0) { delay(5000); if(KEY3==0) { while(!KEY3) display(); tem1--; } } }
if(temp>tem1) { if(!flag) { BUZ=1; BUZ1=0; } } else { BUZ=0; BUZ1=1; }
if(tem1==-1) tem1=50; if(tem1==51) tem1=0;
if(flag==2) { if(KEY2==0) { delay(5000); if(KEY2==0) { while(!KEY2)
13
{ display(); DC_change(tim); } tem2++; } }
if(KEY3==0) { delay(5000); if(KEY3==0) { while(!KEY3) { display(); DC_change(tim); } tem2--; } } Dis_play[1]=tem2/10; Dis_play[2]=tem2; Dis_play[3]=0; if(!Dis_play[1]) Dis_play[1]=0x0a; // 再判断十位是否为0 display(); if(tem2==0) { DC_clos(); } if(tem2==1) { flag3=1; tim=50; DC_change(tim); } if(tem2==2) { flag3=1; tim=125; DC_change(tim); } if(tem2==3) {
14
flag3=1; tim=200; DC_change(tim); } if(tem2==4) { DC_max(); } if(tem2==5) tem2=0; if(tem2==-1) tem2=4; }
// BUZ=0; if(flag==1) { Dis_play[1]=tem1/10; Dis_play[2]=tem1; Dis_play[3]=0; if(!Dis_play[1]) { Dis_play[1]=0x0a; // 再判断十位是否为0 } display(); } }
4.2.3定时器0函数
设置好定时器0的工作方式。 void timer0_int(void) interrupt 1 {
TR0=0; TH0=(65536-100)/256; TL0=(65536-100)%6; TR0=1; timer++; }
15
…… 此处隐藏:340字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




