自动温控系统设计(微机原理三级项目)_第1页
自动温控系统设计(微机原理三级项目)_第2页
自动温控系统设计(微机原理三级项目)_第3页
自动温控系统设计(微机原理三级项目)_第4页
自动温控系统设计(微机原理三级项目)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

,自动温控系统,指导老师:司菁菁,时间:2016年12月,CONTENTS,目录,直流电机,总体设计方案,显示温度,温度传感器,A/D转换器,微处理器,降温控制,数码管,喇叭,二极管,声光报警,温度采集,需要利用实验箱中的ADC0809、DAC0832、8253、8255等芯片设计并实现一个自动温度采集、显示、报警、控制降温设备的应用系统,首先,需要查阅资料,了解现实生活中常用的芯片及可实现的具体功能。经过各部分的比较,选择合适的方案。但实验箱上可提供的器件有限,所以需要根据已有条件进行可行性分析,并得出最后的方案。,方案选择,方案二AD590温度采集电路原理图,V1,V2,(2.73+T/100)V,Vo,T/10,输出电压接AD转换器,那么AD转换输出的数字量就和摄氏温度成线性比例的关系,核心芯片:ADC0809典型的8位8通道逐次逼近式A/D转换器,可实现8路模拟信号的分时采集,其转换时间为100s左右。,ADC0809的主要引脚功能D7D0:输出数据线(三态)EOC:转换结束状态输出IN0IN7:8通道(路)模拟输入OE:输出允许(打开输出三态门)ADDA、ADDB、ADDC:通道地址CLK:时钟输入(10KHz1.2MHz)ALE:通道地址锁存START:启动转换,1.根据AD590及转换电路的原理,已知0V对应的温度为0,5V对应的温度为102.4,易求得比例因数Kt0.0488V/,从而可得,2.由ADC的单极性输入电压与转换后的数字的关系,3从而得到温度T与转换后的数字的关系,温度与十六进制数的关系,如何由N得到温度的十位、个位和小数点?,1.因为除法指令只能除以整数,将数字量N倍乘4,,2,利用即除以100,即可得到T的十位数字,3,将的余数除以10,商即为T的个位数字,余数为小数位,start1:movdx,io0809aoutdx,al启动0809进行转换movcx,0ffhdelay1:loopdelay1等待0809inal,dxandah,0pushaxpushcxmovcx,2shlax,cx;数字量N倍乘4movdi,offsetbuffermovbl,64hdivblmovdi+2,al;存放温度的十位moval,ahandax,00ffhmovbl,0ahdivblmovdi+1,al;存放温度的个位movdi,ah;存放温度的小数位,L0L1L2,PC24,01,02,03,04,输入温度,将温度采集模块采集到的温度输入进来。,判断温度范围,根据判断结果决定是否点亮相应二极管,T80度,根据判断结果决定是否使蜂鸣器发声,当温度从96度开始降低时过程相反,依次解除报警。通过观察二极管点亮的数目以及听蜂鸣器发出的音调,可以判断处于哪个温度范围。,当温度从0开始升高时当温度低于40度时,二极管均不亮且蜂鸣器不发声;当温度高于40度低于60度时,一个二极管点亮,蜂鸣器发出较低音调的声音;当温度高于60度低于80度时,第二个二极管点亮,此时共有两个二极管亮,蜂鸣器发出较高音调的声音;当温度高于80度时,第三个二极管点亮,此时共有三个二极管点亮,蜂鸣器发出更高音调的声音。,声光报警器(Audibleandvisualalarm)又叫声光警号,是为了满足客户对报警响度和安装位置的特殊要求而设置。同时发出声、光二种警报信号。产品专用领域:钢铁冶金、电信铁塔、起重机械、工程机械、港口码头、交通运输、风力发电、远洋船舶等行业;是工业报警系统中的一个配件产品。,效果明显,安装成本和使用成本都较高,方便简单成本低,不能用于电路实验箱,优缺点,Vout=-(D/28)VREF,callshowpopaxcmpal,0C8h;大于80度,跳转k3jak3cmpal,96h;大于60度,跳转k2jak2cmpal,64h;大于40度,跳转k1jak1jmpk0;控制报警模块,降温模块的开闭k0:callsoundoff;关闭报警系统callcooloff;关闭降温系统jmpstart1;继续测量温度k1:movbuf1,2000hmovbuf2,0200h;控制电机转速movbuf3,1908h;控制开启报警喇叭movbuf4,03h;控制开启报警灯jmpjj,k2:movbuf1,2000hmovbuf2,0400hmovbuf3,1276hmovbuf4,07hjmpjjk3:movbuf1,2000hmovbuf2,0800hmovbuf3,954hmovbuf4,1fhjmpjjjj:callcoolon;开启降温系统callsoundon;开启报警系统jmpstart1,;灯光报警模块与降温模块跳转子程序soundonprocnearmovdx,io8254amovax,buf3outdx,al;低八位输出moval,ahoutdx,al;高八位输出movdx,io8255c;8255c端口输出movax,buf4outdx,axretsoundonendpsoundoffprocnearmovdx,io8255cmoval,00h;关闭报警outdx,alretsoundoffendp,coolonprocnearmoval,80hmovdx,io0832aoutdx,almovcx,buf1delay3:loopdelay3;低电平延迟moval,0ffhmovdx,io0832aoutdx,almovcx,buf2delay4:loopdelay4;高电平延迟retcoolonendpcooloffprocnearmoval,80hmovdx,io0832a;0832输出低电平outdx,al;关闭降温系统retcooloffendp,显示模块选择,(实验箱配备),设计流程及电路结构,8255A端口选择表,之,8255A的端口选择及连接,循环次数*更改此处更改刷新频率*loop1:pushdimovbh,01hmm:movbyteptrbz,bhmovsi,offsetled;si为显示代码的偏移地址movbl,di;bl为要显示的数andbh,0;置led数码表偏移地址siaddsi,bx;求出对应的led数码si为显示数的代码movdx,io8255b;自8255的A口输出moval,byteptrbz;位码outdx,alcmpal,02hjnzmm1moval,byteptrsioral,80h;点亮小数点jmpmm2,mm1:moval,byteptrsimm2:movdx,io8255aoutdx,alpushcxmovcx,200;延时delay2:loopdelay2popcxincdi;di+moval,00houtdx,almovbh,byteptrbzshlbh,1cmpbh,08hjnzmm;若bh不等于08h,继续mm循环popdi;若bh为08h,向下执行,dl出栈looploop1showendp,子程序:,之,程序代码的实现,procnearmovcx,0600h;循环次数loop1:pushdimovbh,01hmm:movbyteptrbz,bhmovsi,offsetledmovbl,di;bl为要显示的数andbh,0;置led数码表偏移地址为SIaddsi,bx;求出对应的led数码movdx,io8255b;自8255A的口输出moval,byteptrbz;使相应的数码管亮outdx,alcmpal,02hjnzmm1moval,byteptrsioral,80h;使DP置1,点亮小数点jmpmm2,之,程序代码的实现,mm1:moval,byteptrsimm2:movdx,io8255aoutdx,alpushcxmovcx,200;延时delay2:loopdelay2popcxincdi;di自加1moval,00houtdx,almovbh,byteptrbzshlbh,1;bh右移一位cmpbh,08hjnzmm;若bh不等于08h,继续mm循环popdi;若bh为08h,向下执行,di出栈looploop1showendp;显示结束,为了检测该自动温度系统的声光报警和降温控制功能,而实际实验温度在30摄氏度以下,并不会达到报警温度,所以,直接利用用直流电压作为ADC0809的输入,通过05V的电压来模拟温度采集模块的电压输出,从而测试该自动温控系统的所有功能。,附录程序,;初始化datasegmentio8255aequ288hio8255bequ289hio8255cequ28ahio8255dequ28bhio8254aequ280hio8254dequ283hio0832aequ290hio0809aequ298hleddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;段码0-9bufferdb0,0,0bzdw?buf1dw0buf2dw0buf3dw0buf4dw0dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmoval,80hmovdx,io8255d;设置8255abc输出outdx,almovdx,io8254dmoval,00110110b;计数器0先低后高读入,方式三(自动填充),二进制outdx,al,;温度采集start1:movdx,io0809aoutdx,al启动0809进行转换movcx,0ffhdelay1:loopdelay1等待0809inal,dxandah,0pushaxshlax,2movdi,offsetbuffermovbl,64hdivblmovdi+2,al;将百位放在D2moval,ahandax,00ffhmovbl,0ahdivblmovdi+1,al;将十位放在d1movdi,ah;调用和跳转代码callshowpopaxcmpal,0C8h;大于80度,跳转k3*更改此处更改对应关系*jak3cmpal,96h;大于60度,跳转k2jak2cmpal,64h;大于40度,跳转k1jak1jmpk0;控制报警模块,降温模块的开闭,k0:callsoundoff;关闭报警系统callcooloff;关闭降温系统jmpstart1;继续测量温度k1:movbuf1,2000hmovbuf2,0200h;控制电机转速movbuf3,1908;控制开启报警喇叭movbuf4,03h;控制开启报警灯jmpjjk2:movbuf1,2000hmovbuf2,0400hmovbuf3,1276movbuf4,07hjmpjjk3:movbuf1,2000hmovbuf2,0800hmovbuf3,954movbuf4,1fhjmpjjjj:callcoolon;开启降温系统callsoundon;开启报警系统jmpstart1,;数码管显示代码showprocnearmovcx,01F4h;循环次数*更改此处更改刷新频率*loop1:pushdimovbh,01hmm:movbyteptrbz,bhmovsi,offsetled;si为显示代码的偏移地址movbl,di;bl为要显示的数andbh,0;置led数码表偏移地址siaddsi,bx;求出对应的led数码si为显示数的代码movdx,io8255b;自8255的A口输出moval,byteptrbz;位码outdx,alcmpal,02hjnzmm1moval,byteptrsioral,80h;点亮小数点jmpmm2mm1:moval,byteptrsimm2:movdx,io8255aoutdx,alpushcxmovcx,200;延时delay2:loopdelay2popcxincdi;di+moval,00houtdx,almovbh,byteptrbzshlbh,1cmpbh,08hjnzmm;若bh不等于08h,继续mm循环popdi;若bh为08h,向下执行,dl出栈looploop1showendp,;灯光报警模块与降温模块跳转子程序soundonprocnearmovdx,io8254amovax,buf3outdx,al;低八位输出moval,ahoutdx,al;高八位输出movdx,io8255c;8255c端口输出movax,buf4outdx,axretsoundonendpsoundoffprocnearmovdx,io8255cmoval,00h;关闭报警outdx,alr

温馨提示

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

评论

0/150

提交评论