广工微机原理课程报告

上传人:工**** 文档编号:507646946 上传时间:2023-11-08 格式:DOCX 页数:17 大小:530KB
返回 下载 相关 举报
广工微机原理课程报告_第1页
第1页 / 共17页
广工微机原理课程报告_第2页
第2页 / 共17页
广工微机原理课程报告_第3页
第3页 / 共17页
广工微机原理课程报告_第4页
第4页 / 共17页
广工微机原理课程报告_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《广工微机原理课程报告》由会员分享,可在线阅读,更多相关《广工微机原理课程报告(17页珍藏版)》请在金锄头文库上搜索。

1、(基于PEL的课程报告)微机原理及应用C、项目的背景及意义:防潮、防霉是仓库日常管理工作的重要内容,直接影响到储备物资的使用 寿命和工作可靠性。为保证日常工作的顺利进行,首要问题是加强仓库内温度与 湿度的监测工作。但传统的方法是用湿度表、毛发湿度表、双金属式测量计和湿 度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通 风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及 湿度误差大,随机性大。基于以上存在的问题,我们决定设计一种集温湿度测量、 显示、报警于一体的高精度的测量仪器,用于仓储管理,减轻仓储的人力物力支 出。该测量仪器,成本低,方便好用,能够很

2、好地进入市场。本次课程设计主要基于AT89C51单片机,开发环境温度及湿度检测及控制系 统。该系统采用AT89C51单片机作为控制器,DS18B20作为温度传感器,HS1101 作为湿度传感器。系统主要功能如下:1)对温度、湿度进行测量;2)温度及湿度的显示;3)设定预期温度与湿度值并显示。4)高低温报警关键词:AT89C51,温度及湿度检测,LCD显示,温度报警。二、系统设计总体方案:本系统采用AT89C51单片机作为微处理器,DS18B20作为温度传感器对温度 进行检测,HS1101作为湿度传感器与NE555组成湿度测量模块,使用LCD1602 对测得的温度及湿度值进行显示,使用按键对温度

3、及湿度的设定值进行修改。温度检测范围:-20C-+70C测量精度:土 0.5 C湿度检测范围:10%-100%RH检测精度:土 1%RH显示方式:1602液晶报警方式:蜂鸣器报警、LED灯警示系统主要有温度测量模块、湿度测量模块、显示模块、按键模块、蜂鸣器报 警模块、高低温报警指示灯模块,其原理框图如下图所示:DS18B20温度测量I 1602液晶显示当7./前温湿度HS1101湿度测量AT89C51;LED灯高低温报警按键调整蜂鸣器报警整体程序流程图:整体电路图:本系统采用AT89C51单片机作为微处理器,DS18B20作为温度传感器对温度进行检测,HS1101作为湿度传感器与NE555组成

4、湿度测量模块,使用LCD1602对测得的温度及湿度值进行显示,使用按键对温度及湿度的设定值进行修改。部分电路图:实现功能:DS18B20实时检测环境温度,将信息显示于1602上,当环境的温度 高于70C时,蜂鸣器报警,高温报警灯闪烁;当温度低于-20C时,蜂鸣器报警, 低温报警灯闪烁。通过按键K4,显示设置的高低极限温度值,按下K1,进入低 温调节界面,每按一次,温度降低1C,按下K2,每按一次,温度升高1C。按 下K3,进入高温调节界面,升降温步骤同上。课程难点:1、如何正确地选用湿度传感器并用其实时检测湿度:湿度传感器HS1101:全互换性、在标准环境下不需校正、长时间饱和下快 速脱湿、可

5、以自动化焊接,包括波峰焊或水浸、高可靠性与长时间稳定性、固态 聚合物结构、可用于线性电压或频率输出、反应时间快速。基于以上优点,选用 HS1101湿度传感器测量湿度。HS1101电容传感器,在电路构成中等效于一个电 容器件,其电容量随着所测空气湿度的增大而增大。涉及如何将电容的变化量准 确地转变为计算机易于接受的信号时,常用两种方法:一是将HS1101置于运放与 阻容组成的桥式振荡电路中,所产生的正弦波电压信号经整流、直流放大、再A/D转换为数字信号;另一种是将HS1101置于555振荡电路中,将电容值的变化 转为与之呈反比的电压频率信号,可直接被计算机所采集。在此设计中,我们采 用第二种方法

6、,实现数据的采集。R73DCNE555&5 g909kU349-9kC4卄168pFR6576KJ此电路为典型的555非稳态电路HS1101/HS1100作为电容变量接在555的TRIG 与THRES两引脚上,引脚7用作电阻R7的短路。等量电容HS1101/HS1100通过R6与R7充电到门限电压(约0.67Vcc),通过R6 放电到触发电平(约0.33Vcc),然后R7通过引脚7短路到地。传感器由不同的 电阻R7与R6充放电,555电路的非平衡电阻R5是做内部温度补偿,目的是为 了引入温度效应,使它与HS1101/HS1100的温度效应相匹配。R5必须象所有的R-C时钟电阻的要求一样,1%的

7、精度,最大的温度效应应该小于lOOppm。2、如何正确地选用温度传感器并用其实时检测湿度:温度传感器的种类众多,在应用于高精度、高可靠性的场合时DALLAS (达拉斯) 公司生产的DS18B20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干 扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。在此设计中,我们采 用DS18B20作为温度传感器。全数字温度转换及输出、先进的单总线数据通信、最高12位分辨率,精度可达 土 0.5摄氏度、12位分辨率时的最大工作周期为750毫秒、可选择寄生工作方 式、检测温度范围为- 55C +125C (-67F +257F)、内置EEPROM,限 温

8、报警功能、64位光刻ROM,内置产品序列号,方便多机挂接、多样封装形式, 适应不同硬件系统。DS18B20只需要接到控制器(单片机)的一个I/O 口上,如要采用寄生工作方式, 只要将VDD电源引脚与单总线并联即可。每一次通信之前必须进行复位,复位的 时间、等待时间、回应时间应严格按时序编程。DS18B20读写时间隙:DS18B20的数据读写是通过时间隙处理位和命令字来确认信息交换的。写时间隙:写时间隙分为写“0”和写“1”,时序如图7。在写数据时间隙的前15uS总线 需要是被控制器拉置低电平,而后则将是芯片对总线数据的采样时间,采样时间 在1560uS,采样时间内如果控制器将总线拉高则表示写“

9、1”,如果控制器将 总线拉低则表示写“0”。每一位的发送都应该有一个至少15uS的低电平起始位, 随后的数据“0”或“1”应该在45uS内完成。整个位的发送时间应该保持在60 120uS,否则不能保证通信的正常。在通信时是以8位“0”或“1”为一个字节,字节的读或写是从高位开始的,即 A7到A0.字节的读写顺序也是如图2自上而下的。对于数字传感器DS18B20,为了实现其功能,需要严格按照其技术手册中提供的 时序图编程,否则,有可能由于响应时间太短而无法正常工作。三、总结:小组此次此次选择的是比较普通的温湿度测量,主要应用于仓库的温湿度检 测和控制,在设计的系统方案中,设置了按键可以调节报警的

10、温湿度阈值,便于 该设计应用于不同的仓库,顾客可以根据自己仓储的物品,调节合适的温湿度, 起到预防报警的作用。在报警形式的设置上,我们同时应用了蜂鸣器和LED灯报 警,使检测到的温湿度情况能够快速的显现出来。这虽然只是一个比较简单的设 计,但在实际的设计仿真过程中还是出现了很多问题,例如程序编译成功,但烧 录到芯片中,显示不了预期的效果,这是我们只能先检查硬件电路的设计是否合 理,再进一步烧录程序,一步一步地慢慢调试,一步一步地找问题,解决问题, 这过程却是收获很大,感觉知识知识理论上了,如果能够真正地应用的话,那才 是真正地掌握了。总而言之,此次课程作业,收获良多。程序清单:#include

11、vreg51.h#define uchar unsigned char#define uint unsigned intsbit DQ=P3人3;/DS18B20与单片机连接口sbit RS=P2A0;/LCD1602控制端与单片机的连接 sbit RW=P2A1;sbit EN=P2A2;sbit K1=P1A0;/按 键接口sbit K2=P1A1;sbit K3=P1A3;sbit K4=PM4;sbit K5=P1A7;sbit beef=P3A7;uchar code str1=Current Temp:;uchar code str2=TEMP: ;uchar data disda

12、ta16;uchar data disdata24;uint tvalue;/温 度值uchar tflag;/温度正负标志uint tem0,tem1;uint temp0,temp1;uint f=0;int hhhh=0;int tsheding=-20; 设置温度值/int hsheding=70; 设置湿度值void zhongd0() interrupt 0外部中断 0 :加设置if(K1=1)tsheding+; 温度值加 1/* if(K2=1)hsheding+; 湿度值加 1*/void zhongd1() interrupt 2夕卜部中断 1 :减设置if(K1=1)ts

13、heding-; 温度值减 1/*if(K2=l) hsheding-; /湿度值减 1*/void timer0() interrupt 1/TO 定时中断TR0=0;TR1=0;TL0=0xB0;重装值,定时 50000usTH0=0x3C; tem0=TL1;读数 tem1=TH1;TL1=0x00;计数器1清零 TH1=0x00;TR0=1;TR1=1;void timer1() interrupt 3 /T1 计数中断TR0=0;TR1=0;TL0=0xB0;重装值,定时 50000usTH0=0x3C;TL1=0x00;计数器1清零 TH1=0x00;TR0=1;TR1=1;void init_timer()TMOD=0x51;TL0=0xB0;定时器0初值定时50000usTH0=0x3C;TL1=0x00;定时器1清零TH1=0x00;TR0=1;/T0开始计时TR1=1;/T1开始计数 void delay1ms(uint m

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号