基于单片机的太阳能热水器测控仪设计 - 图文 

常州大学本科生毕业设计(论文〉

1^0一\\\\^丨6—(^(^((^(^); 1.00^1*11^00111(0x0 0;

[^&乂他⑶; 1

V 显示关闭 众显示清屏

本设计中1^0显示屏的作用是将太阳能热水器测控仪的时间、温度及液位在1^0 的两行显示出来。1^0的趴]^地址映射图如图4.5所示:

图4.5化\\1\\1地址映射图

031302时钟的时、分、秒在1X01602的第一行显示,各占了两个字节。程序如下: 1.00^1*11^011^(0,0,8111121^111116^110 ^]/^]);

1.00^1*11^011&^ 19093111121^111101111 [引0/。10认

#显示时

1.00^1*11^011^(3,0,8111121^111110110 ^]/^]);夕显示分

01.00^1*11^011&1(4,0,3111121^1111101111 ⑶/。10认

1.00^1*11^011^(6,0,8111121^111116^13110 间/⑴]);八显示秒 1.00^1*11^011&1(7,0,3111121^1111101111 间0/。10^;|

1.001602显示屏的第二行是液位高度和温度的显示。相应的程序如下所示:

奶也仏⑴]^03=8(1&1;&[^]/10;

861(1^1&[^]【1

10;

從池糾1】[。卜呂此可1 乂 10;

8过此可1】【1卜血叫1^10; 5过也1^【2】^03=8(1&1;&[^]/10; 8过此对2】

1110;

1.00^1*11^011&1(3,1叫(^网]);

1^:0一\\\\^知豇(七^—匕[奶也乜网⑴]);八设定水位的显示

化」:1!耵^ 11,1,8池21[奶加叫1】网]);

1^0一\\\\^1化12,1,也!!2![奶4泔对1】⑴]V \设定温度的显示 1^:0一\\\\^1化3站蚪二]…]]);

10,0,8111121^861(1^12311 ^]); V设定超声波装置高度的显示

1.00^1116^11^(14,0^^(1813[^]^; V对温度0、液位11及超声波高度只模式的选择 [⑶—猶⑶咖〔1…,?⑶?); 乙1,?/?); [⑶—糧^响〔5,1,?⑶?); 即 二,。)

第28页共37页

常州大学本科生毕业设计(论文〉

《!^:0」\\~知」:11耵〈8,1,^匕!^々^!…]]);

[(^-界!^」!!!!^!^,1,8111121口丄]]);

1=0; I

乙(^―^七―10,1,\/”); 乙13,1 ^);

八实时温度

4.2.6 按键扫描模块程序设计

键盘处理程序实现对键盘的管理,它的主要任务是: (^确定是否有键按下;

(二)当有键按下时,则对键译码,找出按下的是哪个键;当无键按下时,即返回;

^)如按下复位键,便使整个电路复位;当按下功能键,即转到对应的键服务程序; “)按先后顺序处理同时按键;

^去抖动。按键从开启到闭合稳定,或者从闭合到完全打开,总要有数1118的弹跳时 间(即抖动),如图4.6所示。

按键的确认就是判断按键是否闭合,反映在电压上就是和按键相连的引脚呈现出高 电帄还是低电帄。如果是低电帄,则表示闭合。因此,通过判断电帄的高低,就可以确 定是否有键按下。但是为了确保一次按键动作只确认一次按键,必须消除机械开关的抖 动影响。消除按键的抖动,通常用软件消除的方法。在第一次检测到有按键被按下时, 执行一段101118的延时子程序,再确认该键电帄是否仍然为低电帄,如果保持为低电帄

第29页共37页

常州大学本科生毕业设计(论文〉

状态就说明有键按下,从而消除抖动的影响。再次扫描,如果按键为高电帄说明按键松 开。键盘扫

4

.

7

图4.7键盘扫描程序

独立式按键执行的相应程序为按键1为每按一次,时钟的小时加1,当数字加到24 时自动转换为0;按键2为每按一次,时钟的分加1,当数字加到60时自动转换为0; 按键3为选择后的功能加一,当数字加到100时自动转换为0;按键4为选择后的功能 减一,当数字减到0时自动转换为99;按键5为功能选择键。相应的程序如下: …辻咖!!!!!!!)

1

11116^11^1【4卜0;

081302一\\\\^七一丁 111160加6业;众札常时间小时力口 1 0^86

2:111116^13110【5】杆;1办11110」3110 ^5^=60)1:11116^13110【5卜0;

051302—界I 知—丁

0^86 3^3X3I 0^86 4

:

8

(

1

&

&

&

V 分加 1

1[(8^1紂&[公哗]过对过哗]⑷力代业;V温度加到100,设置为0 8如1啡10=99;!^成

1

⑶86 5:似护\\并(他他

V温度减到-1,设置为99 々温度、液位、高度选择

8^0;1^成

5调试

5.1 ?1^010118 简介

第30页共37页

常州大学本科生毕业设计(论文〉

计算机上应用仿真软件来调试程序,具有硬件投入少,经济优势明显;釆用仿真软 件后,学习的投入变得比较的小,而实际工程问题的研究,也可以先在软件环境中模拟 通过,再进行硬件的投入,这样不仅省时省力,也可以节省因方案不札确或操作不当所 造成的硬件投入的浪费。

?10^6118软件是英国[必⑶咖!\公司出版的20八工具软件。特点有叫:

8可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元 器件,

有30多个元件库。

(之)可提供的仿真仪表资源:示波器、逻辑分析仪、虚拟终端、5?1调试 器、1

七调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同 一种仪器可以在一个电路中随意的调用。

除了现实存在的仪器外,?阳1如8还提供了一个图形显示功能,可以将线路上 变化

的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些 虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽 可能减少了仪器对测量结果的影响。

(心可提供的调试手段?如印8提供了比较丰富的测试信号用于电路的测 试。这

些测试信号包括模拟信号和数字信号。

它不仅具有其它60八工具软件的仿真功能,还能仿真单片机及外围器件。?108 从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到设计,真札 实现了从概念到产品的完整设计。在编译方面,它也支持1^11、仏11和乂?[八8等多种 编译器。?见^1!8是目前最好的模拟单片机外围器件的工具。 5.2 软件调试

软件仿真调试

电路设计制作完成后,先用匕丨1 ^1810113仿真器进行调试。

0

使用菜单??叫⑶續^ ?叫如?出现一个对话框,然后给将要新建的工程取 一个名字,

单机保存后会出现另外一个对话框选择系统使用的单片机型号,本系统所使 用的单片机型号为八了89052。选中后回到工程窗口的页面打开,在下一层的 ?80X11X^01*0111)1?右键单机选中?八况6匕职再)010叩1 ’ ?,出现对话框,选择 系统所用的源文件即可。

(之)单击菜单中的??1*0知01/01)11011 &I ^3X^1 ‘丁1’?,出现对话框选中?丁31^1:? 页

面修改单片机的频率项X泣1 (他^)为12。选中?0饥页面选中啦册乂? 选项。

0〉编译连接通过??丨&11 丁虹运过朽化?来实现。

(斗)在?1*0化118上画出电路图,并将1^丨1多生成的只⑶文件调入到电路中的单片机 内,

8

电机运行。

在对软件进行编译确定无误后,点击目标文件,发现目标无法创建,如图5.1所示: 800111^: 、1602攀01^ (。[^) 及 001^33: 12829

夂衫?六丁為丄 2只只0只 1250: 0002 5122 II兄I丁 1过只23丁只 10丁

20 72只3100 画 0口:#\\1602#0^3 〖 〉 1.1^117: 08009 8^723 丁311^01: 1101 01^031:6(1

图5.1软件编译中的问题

第31页共37页

常州大学本科生毕业设计(论文〉

查看上面的错误发现,原来031302、如1吵、1602等子程序在主程序中己经定义, 但又在子程序中重复定义了一遍。删除多余定义,重新编译,生成目标文件(^扮)。 再单击“如匕运’,~^ ^ 81:&0^1)112 868810X1^ 。

(巧)单击“0比飓” 一〉“00”,然后单击“04118” 一〉“汾013尺皿111118” ; 再单击“V丨^” ―〉^30^1 ^111(10^8 #1^,就可以看到程序运行后的结果。

(^)因为要将程序烧到电路图的单片机中,就必须将此时的X文件转换为上炫文 件。这时就需要单击“?10』邮” ~^ ^0^1:10118 &丁虹骑’丁虹妙丨’?,单击中 的“0^6 02X1^”选项,使程序编译后产生只代码。 5.3 硬件调试

将在巧丨丨中生成的.册X文件加载到?10細8原理图的单片机八丁89052中,然后对 系统进行整体调试【16】。在调试过程中遇到了一些问题,并对问题采取相应的解决方法: 问题:在控制系统中,涉及到了电加热模块,即当室外光强不足〈阴天、下 雨)时,对水箱的水进行电加热是必要的,还涉及到冷水阀上水,即当实际水位低于设 定水位时要加水,然而在仿真中无

法显示出是否在执行加热或上水过程。

解决方法:用相应的一个灯来仿真加热或上水过程。

〔2〕问题:生成文件运行时,调试按键,每按一下,屏幕或者没有反应,或 者连跳两下,“加” “减”键也是如此,想在现有的基础上加一,结果按了一下以后, 并没有加一,有时候连加两次。

原因分析及解决方法:在看按键的部分资料时,得知需要进行按键防抖动,这种抖 动一般在10?2001X18之间,这种不稳定电帄的抖动时间对于人来说太快了,而对于时钟 是仍级别的单片机而言则是漫长的。为了提高系统的稳定性,必须去除或避免它,此 处可通过如1吵0延时程序,延时10x115,结束后再读一次1/0 口的值。

问题:在与1602液晶显示屏连接仿真时,发现液晶显示屏可以启动,清屏, 但是

部分时间不显示,按键并不起作用,显示屏上的时、分、秒为:15 x5 85。如图5.2 所示。

第32页共37页



联系客服:cand57il.com