基于单片机饮水机智能控制系统 - 图文 联系客服

发布时间 : 星期二 文章基于单片机饮水机智能控制系统 - 图文更新完毕开始阅读7da10cf2e518964bce847c07

数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。

DS18B20的读时序:

(1)针对DS18B20的读时序分为读1时序与读0时序两个阶段。

(2)针对DS18B20的读时隙是单总线被从主机拉低之后,又在十秒左右立刻释放单总线,以让DS18B20把数据传输到单总线上。DS18B20最起码需要60us才能完成一个完整的读时序过程。

DS18B20的写时序:

(1)针对DS18B20的写时序同样可以分为写1时和写0时序序两个阶段。

(2)对于DS18B20写1时序和写0时序的规定不同,当要写1时序时,单总线被拉低之后,至多15us就得释放单总线,当要写0时序时,单总线要被拉低最少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平。 系统程序设计主要包括三部分: 读出温度子程序如图2.14 温度转换命令子程序如图2.15 显示温度子程序如图2.16

程序代码为: GET_TEMPER:

SETB

DQ ;

LCALL INIT_1820 ; JB FLAG1,TSS2 RET ;

;

TSS2: MOV A,#0CCH MOV A,#44H ;

LCALL WRITE_1820 LCALL DISPLAY ;

LCALL INIT_1820; LCALL WRITE_1820

;

;

WRITE_1820 READ_18200;

MOV A,#0CCH ;

MOV A,#0BEH LCALL LCALL

RET

图2.14 读取温度DS18B20模块的流程图

20

2.2.3键盘扫描处理流程

此流程为键盘扫描处理,CPU通过检测各数据线的状态(0或1)就能知道是否有按键闭合以及哪个按键闭合。键盘管理程序的功能是检测是否有按键闭合,如果有按键闭合,消除抖动,根据键号转到相应的键处理程序,按键流程图如2.16所示。

图2.15 键盘扫描子程序流程图

2.2.4 报警处理流程

运行程序后,温度传感器DS18B20即可对环境进行温度采集,并送LED数码管显示。我们可以在程序里设定温度上限值,当采集到的外界温度高于当前所设定温度上限值时,程序就会进入报警子程序,触发蜂鸣器进行报警,其程序流程图如2.17所示。

21

图2.16 显示温度子程序流程图

3系统调试

一个单片机系统经过总体设计,完成了硬件设计和软件设计开发。元器件安装后,在系统的程序存储器中下载编好的应用程序,系统即可运行。但是一次性成功几乎是不可能的,多少会出现一些硬件、软件上的错误,这就需要调试来发现错误并加以改正。AT89S52单片机虽然功能很强,但只是一个芯片,一个完整的控制系统还包括很多功能模块,因此,进行调试时,需要逐个逐项仔细的进行。

一项设计到实现具体功能与软件和硬件的联合调试密不可分,因为硬件要通过软件来实现,软件要通过硬件来体现。只有从实际的观察效果中分析,配合好软、硬件协调工作,安排好相应的工作时序才能达到理想的效果,实现设计。所以,整体调试是从设计到实现的关键一步。在良好的设计基础之上,调试过程的好坏直接决定了我们的设计成果。在任何一个设计中电路调试这部分内容是最关键,难度最大,最考验人的工作。整个设计的成败全系于此。同时它也能够检验设计的方案的可行性和正确性。在这个过程中可能要遇到在设计中所没有考虑到的地方,通过调试使设计得到更好的补充。

调试工作包括硬件检查,软件调试,软硬件联通调试三部分。硬件检查主要是针对电路板的具体电路连接是否正确,测量各电路的电压、电流等是否达到要求的值等;软件调试主要是针对语法错误,即能否正确编译、单步运行时逻辑上是否正确;软硬联调就是:硬件在软件的“控制”下完成所需要的功能,这一部分是最关键的环节,也是难度最大的部分。

22

3.1硬件电路检查

本设计按照其功能模块的不同,其硬件电路的检查包括:温度采集电路、A/D转换电路、显示电路、键盘电路、报警电路、控制电路六部分。 3.1.1 温度采集电路检查

温度采集部分电路的检查是比较复杂的,原因是这部分电路的器件比较多,而且电位器的调节存在误差,而且放大电路得到的放大倍数往往不能达到所期望的值。由于温度传感器AD590是将温度值转换成电流信号输出,因此,调试时,采用一个电流源来代替,而放大电路是由三级运放构成的,要实现该电路的功能就要进行繁琐的调试。要先调第一级运放使其输入和输出相同,然后调整第二级运放使其差放值是2.73,同时第二级也是一个反相器,这样输出的电压就是2.73减去输入的电压值,最后调第三级运放,使其放大倍数为5倍。 3.1.2 A/D转换电路检查

这部分电路的检查主要是对器件ADC0809的检查,刚开始检查时,并没有发现问题,通电后用万用表测量其管脚电压时,发现其11、12脚不是5V,而28脚电压是5.0V,后来,经过检查管脚发现,是管脚接错了,把左下管脚14脚接地,右上管脚28脚接电源了,而ADC0809的管脚的接地脚和接电源脚跟其它的芯片不一样,11脚 Vcc和12脚REF(+)应接+5V,而13脚GND和16脚REF(-)接地。这主要是在焊接器件时疏忽大意所致,最后,按要求连接后,问题也就解决了。 3.1.3 显示电路检查

在通电后,发现右边数码管的对应的B段不亮,经检查,连接B段脚的线断开了,焊接上后显示仍有问题,再仔细检查,发现连接左边数码管Vcc脚的三极管B、E接反了,从新改过后显示正常。为了进一步保证这部分电路的正常,又进行了下一步的检测,先是下载了一个99秒倒记时的程序到AT89S52芯片上,通电后,数码管从99秒逐个减小变化到0秒,然后再反复循环。这说明这部分电路正常。 3.1.4 键盘电路检查

这部分的设计主要由四个按键跟四个电阻组成。通电后,每个按键下的时候,数码管的显示值没有变化,经检查,四个按键连在一起但没有接地,接地后,S2按下时,对应数码管显示值加一,S2键正常,S3键下时,数值无变化,问题出在软件编程上,经修改程序后,四个按键都正常。 3.1.5 报警电路检查

这部分主要由蜂鸣器和发光二极管组成。经检查调试,结果没有问题,二极管亮,蜂鸣器有声,虽然蜂鸣器的声音偏小,但不影响报警电路的正常工作。 3.1.6 控制电路检查

这部检查主要是在通电后,检查固态继电器开关的通与断,通电后发现开关没有动静,检查硬件没有任何问题,判断是器件有问题或程序有问题,经过修改程序,器件工作正常。

23