ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:266.36KB ,
资源ID:16868437      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16868437.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(温度采集与显示系统Word文件下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

温度采集与显示系统Word文件下载.docx

1、3)将ALE由低电平置为高电平,从而将ADDAADDC送进的通道代码锁存,经译码后通道0的模拟量送给内部转换单元。4)给START一个正脉冲。当上升沿时,所有内部寄存器清零。下降沿时,开始进行A/D转换;在转换期间,START保持低电平。5)EOC为转换结束信号。在上述的A/D转换期间,可以对EOC进行不断测量,当EOC为高电平时,表明转换结束。否则,表明正在进行A/D转换. 6)当A/D转换结束后,将OE设置为1,这时D0D7的数据便可以读取了。OE0,D0D7输出端为高阻态,OE1,D0D7端输出转换的数据.3、数据处理部分-查表和线性插值法热敏电阻为一种阻值随温度变化的电阻,按其变化关系

2、可分为两类:正温度系数(简称PTC)和负温度系数(简称NTC)。PTC元件的阻值随温度的上升而上升,NTC元件的阻值随温度的上升而下降.本模块中使用的为NTC型热敏电阻,在常温(25)下其阻值为10K,其阻值与温度的关系、阻值与电压的关系、电压值与电压AD值得关系如下表所示:温度()-302010102025304050阻值(K)176.096。2954。8532.4119。8012.4710。008.0665。3423。618电压(V)0。26881720470411130.771010021.178967221.677852342.225189142。5767629802590275067

3、161110电压AD142439608611412814216718870901001101201301401505021。7631.2650.922668340.51580.394230480.238218813.999360104.250616334.438526404。5776646568015800754749994.81037501852107754.8836709590768641205218228235240244247249250252在上面列的表格中,温度与阻值的关系是已知的,电压是根据式3-1得出的,电压的AD值是根据式21得出的。 电压V与电压AD的关系: (21)4 电

4、压AD值与温度关系折线图根据图2。4可用线性插值法在线性区间建立函数关系,随着电压的改变输出温度值.三、硬件电路图图3。1 热敏电阻温度采集电路图图3.1中J1、J2、J3分别对应于模块上的V1、Vzero、Vout插孔,R3对应与 ZERO电位器,用于偏置电压调节;R9对应于GAIN电位器,用于增益调节. 使用时,可先将电路增益调节为1,具体做法如下:调节ZERO电位器,使Vzero=0V,用万用表分别测量V1、Vout端电压,调节GAIN电位器,使V1=Vout,此时电路增益为1。由此可得出电压与电阻之间的关系: (3-1)四、程序设计流程图图4。1 主函数程序流程图2 LCD显示流程图3

5、 A/D转换流程图3 中断服务程序五、问题和不足出现的问题及解决方法:在数据处理部分,之前是建立电压值V与温度值T的关系来显示温度,发现再怎么细分线性部分,输出的温度误差还是很大,而且显示的温度值一直在跳变。于是决定找电压值AD与温度之间的关系,这样减小了误差,显示的温度值也几乎不再跳变了。不足之处:实验台提供的可调输出电压的范围是0-4.5V,正确来说显示的温度范围应为-35至90。这样选定的线性区间才能较小误差,更趋近与表格提供的数值.所以,更细分的取线性部分得到的数值会更好。六、总结通过此次实习,使我对所学知识进行了实践。掌握了A/D转换芯片性能及编程方法、单片机系统中扩展LCD显示的方

6、法以及温度传感器和LCD的工作原理及综合应用。在数据处理部分学会了线性插值法。在编写程序时,也发现对一些程序中的函数的处理不够合理,在自己的多次运行下,还是能够实现温度监控的功能.本次单片机实训让我很有成就感,并对以前所学的单片机知识做了一个小结。附件include reg51。hinclude stdio.h#include #include absacc.hdefine uchar unsigned char #define ulong unsigned long #define uint unsigned int #define Port_address XBYTE0X0CFA0sbit

7、 REQ=P35; /请求信号,高电平有效sbit BUSY=P34; /忙检测sbit EOC=P32;/转换结束信号,EOC=1转换结束,EOC=0正在转换void delay1ms(uint time) /延迟子程序1 uint ii; uint jj; for (ii=0;iitime;ii+) for(jj=0;jj=0) qian=date/1000; bai=date1000/100; shi=date%1000%100/10; ge=date10; write_ASCII_8x16(10,16,0x2b); /显示正号+ write_ASCII_8x16(11,16,0x30+

8、qian);write_ASCII_8x16(12,16,0x30+bai); write_ASCII_8x16(13,16,0x2E); /显示小数点 write_ASCII_8x16(14,16,0x30+shi);write_ASCII_8x16(15,16,0x30+ge); if(date0) date=-date; qian=date/1000; bai=date1000/100; shi=date1000%100/10; ge=date10; write_ASCII_8x16(10,16,0x2d); /显示负号 write_ASCII_8x16(11,16,0x30+qian)

9、; write_ASCII_8x16(12,16,0x30+bai); write_ASCII_8x16(13,16,0x2E); write_ASCII_8x16(14,16,0x30+shi); write_ASCII_8x16(15,16,0x30+ge);/*中断初始化函数*/void config(void) IT0=1; /INT0下降沿中断 EX0=1; /允许INT1中断 EA=1;void AD_init(void) Port_address=0x00; /虚写一次,启动通道0/*AD转换函数*/uchar AD(void) uchar ad_date; /保存经AD转换后的

10、数据 ad_date=Port_address; return ad_date; /返回数据/*温度处理函数*/int deal_wendu() int v,t; uint da; da=AD(); v=da*195; if(da=14&da=167&=188) t=48da4000; if(da=188&=209) t=da*595341; if(da=209da=248) t=46*da-3341; t=15000; return t;void main() int r=0; uint v,da; config(); /中断初始化 lcd_init(); /显示屏初始化 AD_init()

11、; /启动通道0 delay(700); clear_lcd(); delay(700); write_chinese(0,0,46,34); /显示温度采集系统 write_chinese(1,0,22,40); write_chinese(2,0,18,41); write_chinese(3,0,28,15); write_chinese(4,0,47,21); write_chinese(5,0,45,19); while(1) if(r=0) v=da*195; display_voltage(v); display_digit(da); display_temperature(deal_wendu();void int0(void) interrupt 0 int r=1; EX0 = 0; EX0 = 1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1