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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于单片机的数字温度计的设计报告Word文档格式.docx

1、当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)P2口:P2口是一个具有内

2、部上拉电阻的8位双向I/O 口,P2 输出缓冲器能驱动4个TTL逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O 口,对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。P3口亦作为AT8

3、9C51特殊功能(第二功能)使用,如表1所示。表1 AT89C51引脚号第二功能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2 INT0(外部中断0)P3.3 P3.4 T0(定时器0外部输入)P3.5 T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)RST:复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出69个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(AL

4、E)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。1.2 ADC0804简介1.2.1 ADC0804简介A/D 转换就是将模拟信号

5、输换成数字信号。A/D 转换器就是用来实现这一功能的器件。信号输入端常常是传感器或相应电路的模拟输出,由ADC器件转换成数字信号再提供给微处理器,以便用作显示等后期信号处理。ADC0804是属于连续渐进式(Successive Approximation Method)的A/D转换器,这类型的A/D转换器除了转换速度快(几十至几百us)、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上。本次使用8 位 COMS依次逼近型的 ADC0804转换器.。三态锁定输出;存取时间:135US;分辨率:8 位;转换时间:100US;总误差:正负 1LSB;工作温度:ADC0804LCN-07

6、0 度。1.2.2 引脚图及定义引脚图如图2所示。图2 ADC0804引脚图/CS:芯片选择信号。/RD:外部读取转换结果的控制输出信号。为高时,DB0DB7 处理高阻抗;/RD 为低时,数字数据才会输出。/WR:用来启动转换的控制输入,相当于ADC 的转换开始(/CS=0 时);当/WR由高变为低时,转换器被清除;当/WR 回到高时,转换正式开始。/CLKR:时钟输入或接振荡无件(R,C)频率约限制在100KHZ1460KHZ,如果使用RC电路则其振荡频率为1/(1.1RC)。/INTR:中断请求信号输出,低地平动作。VIN(+)、VIN(-) :差动模拟电压输入。输入单端正电压时, VIN

7、(-)接地;而差动输入时,直接加入VIN(+)、VIN(-)。AGND、DGND:模拟信号以及数字信号的接地。VREF:辅助参考电压。DB0DB7:8位的数字输出。 电源供应以及作为电路的参考电压.2 系统设计2.1 设计方案选用AT89C51型单片机作为主控制器件,用电位器模拟温度传感器,把转换的温度值的模拟量送入ADC0804的其中一个通道进行A/D转换,将转换的结果进行温度值变换之后送入数码管显示。2.2 总体设计框图温度计电路设计总体设计方框图如图3所示。图3 电路设计总体设计方框图3 系统硬件软件设计3.1 硬件设计3.1.1 主板电路主板电路原理图如图4所示。电路图中包括AT89C

8、51单片机、时钟电路和复位电路、液晶显示模块、ADC0804转换器、电位器和电压表。图4中的电位器可以调节输入电压的大小,并联接在电位器上的电压表可实时显示当前电压。电位器有最大值和最小值,转换为温度显示时,限定为温度的最大值和最小值。液晶显示屏与AT89C51单片机连接,单片机输出的数据会实时显示在该屏幕上,能直观的读出当前温度值。ADC0804转换器将电位器输出的模拟信号转换为单片机可以接收的数字信号,然后通过与单片机的接口将数字信号输入到单片机中。图4 主板电路原理图3.1.2 温度监测模块电位器和ADC0804转换器代替温度传感器DS18B20作为温度监测元件模块,该模块及ADC080

9、4转换器与单片机的连接方式如图5所示。图5 测温模块及连接3.2 软件设计3.2.1 程序设计流程图程序设计流程图如图6所示。图6 程序设计流程图3.2.2 程序设计根据大体程序设计思路,将程序设计具体如下:#include Unsigned char code seg7 code10= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /显示段码 sbit int0=P32; /定义管脚功能 sbit wr=P36; /写端口sbit rd=P37; /读端口void Delay(unsigned int tc) /显示延时程序 while

10、( tc != 0 ) unsigned int i; for(i=0; i100; i+); tc-; unsigned char adc0804( void ) /读AD0804子程序 unsigned char addata,i; rd=1; wr=1; int0=1; /读ADC0804 前准备 P0=0xff; /P1全部置一准备 wr=0; /启动ADC0804开始测电压 while(int0=1); /查询等待A/D转换完毕产生的INT(低电平有效)信号 rd=0; /开始读转换后数据 i=i; i=i; /无意义语句,用于延时等待ADC0804 读数完毕 addata=P0;

11、/读出的数据赋与addate /读数完毕 return(addata); /返回最后读出的数据 unsigned int datpro(void) /ADC0804 读出的数据处理 unsigned char x; unsigned int dianyax; /用于存储读出数据 unsigned int dianya=0; /存储最后处理完的结果 注意数据类型 for(x=0;x10;x+) /将 10次测得的结果存储在dianya中 dianya=adc0804()+dianya; dianya=dianya/10; /求平均值 dianya=dianya*3.922; return(dia

12、nya); /返回最后处理结果 void Led() unsigned int date; date=datpro(); /调用数据处理最后结果 P1=P1&0x7f; P2=seg7codedate/1000; /输出百位 Delay(8); P1=P1|0xf0;0xbf; P2=seg7codedate%1000/100 ; /输出十位 Delay(8);0xdf; P2=seg7codedate%100/10|0x80 ; /输出个位及小数点 0xef; P2=seg7codedate%10; /输出小数点后第一位 void main() while(1) Led( ); /只需调用显

13、示函数 4 Proteus仿真4.1 Proteus仿真操作将编写好的程序在keil软件中进行编译,然后生成“.hex”文件。打开制作完成的电路原理图,双击单片机,将“.hex”文件加载到单片机中,然后即可进行仿真。4.2 Proteus仿真对加载程序后的电路进行仿真操作,仿真后可看到电路图显示相应的温度数值,可通过改变电位器的大小值,显示不同的温度数值。具体仿真显示图如图7所示。图7 电路仿真显示图5 测量数据分析仿真后得出各电压值所对应温度的测量值,采样其中十组数据与真实值进行分析比对,计算出所设计的数字温度计的精度。数据分析表如表2所示。表2 数据分析表电压值/V0.000.501.00

14、1.502.002.503.003.504.004.505.00真实值/0.010.020.030.040.050.060.070.080.090.0100.0测量值/9.829.849.969.889.8由数据表中数据,得 最大绝对误差为:0.2 引用误差为:0.2100*100%=0.2%该数字温度计的精度为:0.2经计算可知,所设计的数字温度计符合设计要求。参考文献:1 丁向荣,谢俊,王彩申.单片机C语言编程与实践M.北京:电子工业出版社,2009.2 阎石.数字电子技术基础M.北京:高等教育出版社,2006.5.3 龚尚福,贾澎涛,靳玉萍.C/C+语言程序设计M.徐州:中国矿业大学出版社,2006.4 皮大能,南光群,刘金华.单片机课程设计指导书M.北京:北京理工大学出版社,2010.7.5 陈涛.单片机应用及C51程序设计M.北京:机械工业出版社,2010.9.6 楼然苗,李光飞.单片机课程设计指导M.北京:北京航空航天大学出版社,2012.1.

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

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