智能温度控制器_第1页
智能温度控制器_第2页
智能温度控制器_第3页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、智能温度控制器系别:电子信息工程专业:计算机控制技术班级:姓名:控制 ( 一) 班 网学号:482011 年 11 月 29 日数字温控器课程设计任务书1. 设计要求(1) 基本范围-50 C -110 °C(2) 精度误差小于0.1 C(3) LED数码直读显示2. 扩展功能(1) 实现语音报数(2) 可以任意设定温度的上下限报警功能3. 设计内容 (1)画出电路原理图,正确使用逻辑关系;(2) 确定元器件及元件参数;(3) 进行电路模拟仿真;(4) SCH文件生成与打印输出;4. 编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会5. 答辩在规定时间内,完成叙述并回答问

2、题(一)引言(二)关键字(三)设计的题目(四)课程设计的基本要求(五)方案设计( 六 ) 系统设计方案及框图( 七 ) 数据信号的采集和处理( 八) 系统硬件电路( 九 ) 系统软件、引言随着科技的不断发展,二十一世纪已经进入电子信息时代的轨道。为 了能够更好的适应社会的发展和需要,学好电子方面的知识对于我们这些 二十一世纪的大学生是尤为重要的,单片机更是如此。如此同时,设计新 的电子产品对我们学校所学知识的一种掌握和巩固。许多情况下需要测量温度参数。 通常测温系统的主要器件是热敏电阻, 由于它体积小、重复性好、测量方法简单,所以在测温系统中广泛应用。 但采用热敏电阻的测温系统需要 A/D 转

3、换,而且测量温度不高。我们可以 利用学习过的知识设计一个智能温度控制器。二、关键字单片机Lmo16L晶显示器、AT89C5係列芯片、ADC0808系列芯片三、设计题目智能温度控制器四、课程设计的基本要求1 熟悉任务,分析课程要求,熟悉温度控制的原理,进行方案设计; 掌握系统设计要领。2完成温度测控的设计。3相关知识:单片机原理、电子技术、数字( A/D )转换电路。4完成硬件电路设计和装调,编写程序实现其他功能;撰写课程设计 报告。五、方案设计课程设计方法根据实验的要求设计出一套较为科学合理的实验方案,初步 确定嫖和预期的结果,画出一份较为完整实验原理电路图,这也是实验前 期的预备阶段。这一阶

4、段的主要任务是准备好实验所需求的元件功能资料,其包括: 画出方框图,查阅有关芯片的功能及引脚图;搞清楚各个元件的功能,画 出实验草图。将各种方案进行可行性论证,然后确定实验方案。此次题目设计中的显示方式:利用 LCD液晶进行相关数据的输 显示。传感器选择:利用热敏电阻经过 A/D转换后进行数据处理六、系统设计方案及框图系统设计采用AT89C51单片机控件,LCD液晶显示当前温度和时间。ADC 数字温度传感器负责把温度变化转换成控制器可以识别的数字量,然后通 过芯片内部的总线上传给控制器。控制器将表征当前温度值的数字量处理 后通过直观的LCD进行温度显示,同时可以通过键盘控制进行相应的操作, 如

5、设温度的上下限值等。AT89S5伪核心、DS18B2C为温度传感元件。只要在所设定的上下温度 界限内,就会在显示设备中精确的显示出来,如果温度超过了所设定的温 度上下限,就会自动发出报警信号。另外此温度控制器操作简单,灵敏度 高,测温范围宽,一般能满足日常测温的需求。总体设计方框图如图所示七、数据信号的采集和处理数据、温度信号的采集和处理,各引脚的功能如下所示:LCD液晶显示引脚功能表引符号功能说明脚1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生 鬼影”使用时可以通过一个 10K的电位器调整对比度)。4RSR

6、S为寄存器选择,高电平 1时选择数据寄存器、低电平 0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6ENE(或EN)端为使能(enable)端,下降沿使能。7D0D7数据线8VEE对比度的调节寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01都busy flag ( DB7 ),以及读取位址计数器 (DB0DB6 )值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据注:关于E=H脉冲一一开始时初始化E为0,然后置E为1,再清0.busy flag ( DB7 ):在此位为被清除为 0时,LCD将无法再处理其他的指

7、令要求。八、系统硬件电路1 控制器内部结构本次采用 51系列,具体型号为AT89C51,为8们 微处理器CPU。拥有数据存储器RAM和功能寄存器SFR和内部程序存 储器ROM。如下图:单片机的引脚图及各引脚的功能。(ALE):地址索存U5卜 XTAL1XTAL229M31一 123 45 678RSTPSENALEEAP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7PO.O/ADOP0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A

8、13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39v3735f33f3224243262281022一16仃一(PSEN非):程序存储允许输出端 (EA非):程序存储地址允许输入端(RST):复位信号输入端 (XTAL1 ):接外部石英晶体和微调电容的一端(XTAL2 ):接外部石英晶体和微调电容的另一端。P0P3是4个寄存器,也称为4个端口,是80C51单片机与外界联系的 4个8位双向并行I/O 口。P0 口:是一个8位的准双向I/O 口。P1、P2 口 :是一个带内部上拉电阻的

9、 8位准双向I/O 口。P3 口:也是一个带内部上拉电阻的 8位准双向I/O 口。具有第二功能 (WR/RD不用时当I/O 口用,发送和接收端)2 控制器具体电路整个系统的控制部分主要完成对温度感应模块数据的读取和处 理。如图所示,其中包含微控制器、LCD接口电路、端口上拉电阻、 温度传感器模块接口电路。18XTAL2293031 RSTALE= 1.0P3.0/RXDP3.3/INT1J1 5P1 /R4lkR5 I 'SW2SW-SPSTP1.1P1 2P3.6/WRP3.7/RDP3.4/T0P3.5/T1P3.1/TXDP3.2/INT01P3.3/INT1P3.1/TXDP3

10、.2/INT0 IP3.6/WRP3.7/RDRESPACK-8LCD1LM016LPQ.Q/ADuP0.1/AD1P0.2/AD2P0.3/AD3P0.6/AD6P0.7/AD721U2(CLOCK)U21026CLOCKIN0P0.4/AD4P0.5/AD5U2(CLOCK)U21026CLOCKIN0P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13STARTSTARTIN1IN2P2.7/A15P2.6/A14EOCR32121EOCOUT1OUT1OUT2OUT2OUT3OUT3OUT4OUT5OUT6OUT7OUT8OEADC0808IN3

11、+ 12V+ 12VR31U4:A300I N3I N4IN4IN5IN5IN6I N6IN7I N7ADD AADD BADD CALEVREF( + )VREF(-)25R2R15kD1300LED-RED1K-UPIUCUUPLER-NPN+ 12V1212+ 12V+ 12V+ 12VOJ-SH-112DMD2-ED-REDR71.2kRL1引脚结构ADCU8U8具有8路模拟量输入通道IN0IN7,通过3位地址输入端 C、B、A(引脚23、24、25)进行选择。引脚 22为地址锁存控制端 ALE,当输入为高 电平时,C、B、A引脚输入的地址锁存与 ADCU8U8内部的锁存器中,经内部

12、译码电路译码选中相应的模拟通道。引脚6为启动转换控制端 START,当输入一个2 us宽的高电平脉冲时,就启动 ADCU8U8开始对输入通道的模拟量进行 转换。引脚7为A/D转换的结束信号 EOC。ADCU8U8为逐次比较型 A/D转换 器,当开始转换时,EOC信号为低电平,经过一定时间,转换结束,转换结束 信号EOC输出高电平,转换结果存放与ADCU8U8内部的输出数据锁存器中。引脚9为A/D转换数据输出允许控制端 OE,当OE为高电平时,存放与输出数 据存储器中的数据通过 ADCU8U8的数据线D0D7输出。ADC0808的内部逻辑结构九、系统软件1.画图图2主程序流程图图3 A/D转换子

13、程序流程图A/D转换子程序用于对 ADC0808的输入模拟电压进行 A/D转换,并将转换的数值存为 相应的存储单元中,如图 3所示2.清单RSP1.2RWP1.1EP1.0(D0D7)P0 口LED P1.4KZ P1.3ON0OFF1KEY0 P1.6KEY1 P1.7START、ALE P3.5EOCp3.3显示开关及光标设置: ( 初始化 )0000 1DCR显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)0000 01NS N=1 (读或写一个字符后地址指针加 1 &光标加 1),N=0(读或写一个字符后地址指针减1 &光标减1),S=1 且 N=1 ( 当写

14、一个字符后,整屏显示左移 )s=0 当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0); 02H(显示回车,数据指=0) 写指令 0cH 显示开及光标设置3. 程序设计分析#include<reg51.h> #include<intrins.h>#define uchar unsigned char #define uint unsigned int#define ON 0#define OFF 1void delay_nms(int); / 延

15、时 bit LCD_busy();/LCD判断void LCD_write_cmdata(uchar); /LCD 写命令void LCD_write_wodata(uchar); /LCD 写数据 void LCD_Init();/LCD初始化void chartoasc2(uchar ss); / void uinttoasc2(uint ss); / void timeadd(void);/uchar ad(uchar td);/ADfloat bdbhv(uchar ad_dat); / float bdbht(uchar ad_dat); / void tkz(); / uchar

16、rkey();/void gnkey();/void timedir();/void addir();/AD字节(无符号字符)型数据转 ASC2吗 无符号整型数据转ASC2吗 时间进位程序转化程序 标度变换:转电压 标度变换:转温度 温度测控 键扫描,返回键号 键处理 时间显示数据显示void vin dir();/电压显示void tdir();/温度显示void thdir();/温度上限设定值显示/端口设置sbit LCD RS=P1A2;/LCD数据/命令sbit LCD RW=P1A1;/LCD读/写sbit LCD EA=PM0;/LCD使吏能sbit LCD BF=P0A7;/L

17、CD忙sbit AD_ST=P3A5;/AD启动sbit AD_OE=P3A4;/AD读sbit AD_EOC=P3A3;/AD转换结束sbit LED=P1A4;sbit KZ=P1A3;sbit KEY0=PM6;sbit KEY仁 P1A7;/指示灯 温度测控端 键uchar b1,b2,b3,b4;/中间变量uchar sec, min ,hour;uchar AD DAT;/AD转换结果ui nt TH,TL;/温度上下限int n;/时间系数uchar disl=:"WELCOME TO "uchar dis2=" wo de che ng xu &q

18、uot;uchar dis3=:"WELCOME TO "uchar dis4="zz tao xiao shou"/延时函数void delay_ nm s(i nt mS) uchar i; while(ms-) for(i=0;i<250;i+)_nop_();_nop_();_nop_();_nop_();/检查LCD是否忙bit LCD_busy() _bit flag;LCD_RS=0; / 写命令LCD_RW=1;/读选择端LCD_EA=1; if(LCD_BF=1) flag=1;else flag=0;LCD_EA=0; retu

19、r n flag;II开使能II数据满II标志位置1II 关使能II写命令void LCD_write_cmdata(uchar cmdata)/while(LCD_busy();LCD_RS=0;LCD_RW=0;LCD_EA=1;P0=cmdata;LCD_EA=0; _II写数据void LCD_write_wodata(uchar wodata)IIIIII/等待空闲 写命令 写选择端 开使能关使能/II等待空闲 写数据 II写选择while(LCD_busy();LCD_RS=1;LCD_RW=0;LCD_EA=1;P0=wodata;LCD_EA=0;/LCD初始化 void LC

20、D_I nit()LCD_write_cmdata(0x3c); delay_ nm s(1);LCD_write_cmdata(0x0e);II显示设置II延时II显示开关与光标设置delay_ nm s(1);LCD_write_cmdata(0x06);delay_ nm s(1);Void chartoasc2(uchar ss)|b1=ssI100;b2=(ss-b1*100)I10;b3=(ss-b1*100-b2*10);b仁 b1+0x30;b2=b2+0x30;b3=b3+0x30;Void chartoasc2(uchar ss)b仁ss/1000;b2=(ss-b1*10

21、00)/100;b3=(ss-b1*1000-b2*100)/10;b4=(ss-b1*1000-b2*100-b3*10);b1=b1+0x30;b2=b2+0x30;b3=b3+0x30;b4=b4+0x30;void timeadd()sec+;if(sec>=60)sec=0;mi n+;if(mi n>=60)mi n=0;hour+;if(hour>=24) hour=0;void timedir()LCD_write_cmdata(0xc0); chartoasc2(hour); LCD_write_wodata(b2); delay_ nm s(1);LCD_

22、write_wodata(b3); delay_ nm s(1);LCD_write_wodata( :');delay_nms(1);chartoasc2(min);LCD_write_wodata(b2); delay_nms(1); LCD_write_wodata(b3); delay_nms(1); LCD_write_wodata( : ' ); delay_nms(1);chartoasc2(sec); LCD_write_wodata(b2); delay_nms(1); LCD_write_wodata(b3); delay_nms(1);uchar ad(u

23、char td)uchar AD_DAT;/ P3=td;AD_EOC=1;AD_ST=1;_nop_() ;_nop_() ;_nop_() ;AD_ST=0;while(AD_EOC=0);AD_OE=1;_NOP_() ;_NOP_() ;AD_DAT=P2;AD_OE=0; return(AD_DAT);void addir()LCD_write_cmdata(0x80); chartoasc2(AD_DAT); LCD_write_wodata(b1); delay_nms(1) LCD_write_wodata(b2); delay_nms(1); LCD_write_wodata

24、(b3); delay_nms(1);float bdbhv(uchar ad_dat)float vin;vin=(float) ad_dat;vin=vin/51;return(vin);float bdbht(uchar ad_dat)float vin;vin=(float) ad_dat;vin=vin/2.55;return(vin);void vindir()float f1; f1=bdbhv(AD_DAT)*100;LCD_write_cmdata(0x84); uinttoasc2(f1); LCD_write_wodata(b2); delay_nms(1); LCD_w

25、rite_wodata(b2); delay_nms(1);LCD_write_wodata( . ' ); delay_nms(1); LCD_write_wodata(b3); delay_nms(1); LCD_write_wodata(b4); delay_nms(1);LCD_write_wodata( v' ); delay_nms(1);void tdir()float f1; f1=bdbht(AD_DAT)*10; LCD_write_cmdata(0x8a); uinttoasc2(f1); LCD_write_wodata(b1);delay_nms(1)

26、;LCD_write_wodata(b2); delay_nms(1);LCD_write_wodata(b3); delay_nms(1);LCD_write_wodata( . ' ); delay_nms(1);LCD_write_wodata(b4); delay_nms(1);LCD_write_wodata( c' ); delay_nms(1);void tkz()if(bdbht(AD_DAT)>= TH) KZ=OFF;LED=ON;elseKZ=OFF;LED=OFF;Uchar rkey()uchar k;k=0;if(KEY0=0) k=1;els

27、eif(KEY1=0) k=2; return(k);void gnkey()switch(rkey() case 0:break;case 1:TH+;if(TH>100) TH=100; break;case 2:TH-;if(TH<0) TH=0; break;default:break;void thdir()LCD_write_cmdata(0xcd); chartoasc2(TH);LCD_write_wodata(b1); delay_nms(1); LCD_write_wodata(b2); delay_nms(1);LCD_write_wodata(b3); de

28、lay_nms(1);void scom()float f1;f1=bdbht(AD_DAT)*10;uinttoasc2(f1);SBUF=b1;while(TI=0);TI=0;SBUF=b2;while(TI=0);TI=0;SBUF=b3;while(TI=0);TI=0;SBUF= ' . ' ;while(TI=0);TI=0;SBUF=b4;while(TI=0);TI=0;SBUF= ' ;while(TI=0);TI=0;void t0_int() interrupt 1TF0=0;TH0=60;TLO=176;timeadd();/ n+;/ if(n>=20) n=0; timeadd(); timedir();/ 主函数void main() uchar m;uchar ss;LCD_Init();TMOD=0X21;TH0=60;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论