PH值检测硬件设计(5)

2019-09-01 20:58

第三章控制器软件设计

第三章控制器软件设计

3.1软件设计

3.1.1 程序设计

(1)主程序是整个软件的灵魂,起主导作用。主程序设计的正确与否,影响整个设计的正确率与进程。在主程序里主要是通过调用子程序,来完成控制命令的。通过软件控制语句,函数数据结构,全局变量控制设定等,将这些子程序链接起来,便组成了整个软件的骨架。

在本课题中,pH值单片机控制器程序主要实现的功能有:数据采集,A/D转换,D/A输出,计算和输出控制量、LED显示。

(2)在主程序运行之前需要进行一系列的初始化工作,主要包括对堆栈、I/O口、定时计数器等特殊功能寄存器的设置。程序初始化是对系统中所使用到的模块进行初始设置,其目的就是为了让硬件模块符合在控制软件中的使用要求。同时还需要对单片机的一些外围电路进行初始化设置。

另外还要对系统的空间进行分配,用来存储各参数的报警极限值和采集过程中的各参数。使用Keil C51对单片机编程可以根据需要制定程序变量的存储区,并通过程序控制存储区的使用。把使用的全局变量放在DATA区。不常用的放在IDATA区。当系统掉电时存入单片机RAM的数据会丢失,所以在本设计中pH值参数,参数的报警值等数据都存入外部扩展的24C02芯片,它存取速度虽然比DATA区慢,但由于24C02的数据存储在EEPROM中,当系统断电时,存储在其中的数据不会丢失。

(3)在A/D采样子程序中,数据采集模块主要是对输入信号进行采样,首先把要采集的模拟信号采集过来,然后单片机通过计算获得参数值后,将其存入相应的存储单元,对该参数值与其报警上限和下限值进行比较,如果该参数值超过系统所设置报警范围,则发出报警信息。

(4)D/A子程序主要完成控制量的输出,通过D/AC0832将数字量转换为模拟量,由输出调节电路转换为标准的输出信号来驱动执行器进行工作,本课题是关于pH值的控制系统,只输出pH这一路的控制量。输出更新采用直接更新输出的方法。由于DAC操作很快,几个周期内便可完成更新操作,DAC不需要中断也就是说,DAC没有相应的中断处理。DAC数据寄存器为双重缓冲,它的锁存器存放DAC控制输出值。输出一次后锁存起来,使输出结果保存。

15

淮安信息职业技术学院毕业设计论文

(5)显示子程序主要完成显示系统当前pH值以及设定值,单片机自检和复位信息的显示。

数码管实现采用的是动态扫描的方法,在主程序中轮流调用数码管显示子程序。用六个数码管把单片机采集到的的实时pH值和设定的pH值显示出来,显示的pH值精确到0.1。

(6)本控制器中键盘处理程序只在系统调试、定期或不定期检查中才使用。按键的识别主要靠软件来实现,需要编写相应的键盘扫面程序。键盘处理程序采用编程扫描工作方式对按键进行处理,在主程序中每循环一次主程序就判断一次“是否有按键按下”的条件。当查询有键按下时,程序按以下方法进行处理:在第一次检测到有键按下时,先执行一段延时子程序,延时时间为10ms,然后再读取键值,若结果一致则判断有键按下,否则放弃此键值。在确认有键按下的条件下,通过扫描方式求取键值,根椐不同键值转向不同功能的键处理程序,键闭合一次进行一次键功能操作。假设已经有键按下,并引发了相应的按键程序:

#include

#define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,}; void delay(uint x) {

uchar i,j;

for(i=x;i>0;i--) for(j=110;j>0;j--); }

void display(uchar num) { P0=table[num] ; dula=1; dula=0; }

void matrixkeyscan()

16

第三章控制器软件设计

{

uchar temp,key; P3=0xfe; temp=P3;

temp=temp&0xf0; if(temp!=0xf0) { delay(10) ; temp=P3;

temp=temp&0xf0; if(temp!=0xf0) { temp=P3; switch(temp)

{ case 0xee: key=0; break; case 0xde: key=1; break; case 0xbe: key=2; break; case 0x7e: key=3; break; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } display(key) ; } }

P3=0xfd; temp=P3;

temp=temp&0xf0; if(temp!=0xf0)

17 淮安信息职业技术学院毕业设计论文

{ delay(10) ; temp=P3;

temp=temp&0xf0; if(temp!=0xf0) { temp=P3; switch(temp) { case 0xed: key=4; break; case 0xdd: key=5; break; case 0xbd: key=6; break; case 0x7d: key=7; break; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } display(key) ; } }

P3=0xfb; temp=P3;

temp=temp&0xf0; if(temp!=0xf0) { delay(10) ; temp=P3;

temp=temp&0xf0; if(temp!=0xf0) {

18

第三章控制器软件设计

temp=P3; switch(temp) { case 0xeb: key=8; break; case 0xdb: key=9; break; case 0xbb: key=10; break; case 0x7b: key=11; break; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } display(key) ; } }

P3=0xf7; temp=P3;

temp=temp&0xf0; if(temp!=0xf0) { delay(10) ; temp=P3;

temp=temp&0xf0; if(temp!=0xf0) { temp=P3; switch(temp) { case 0xe7: key=12; break;

19


PH值检测硬件设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:风险管理组织职能体系[1]

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: