3、电平转换集成电路MAX232功能
可实现89C52单片机与PC机的RS-232之间的电平转换,89C52单片机输入输出电平为TTL电平而PC机配置的是RS-232标准串行口,二者之间的电气规范不一致 ,对应关系如表2.1所示。
表2.1 电气规范对照表
数字值 TTL电平 232电平
1 +5v -3v ~-15v
0 0v +3v~+15v
P3.1(TXD)接MAX232的T2IN引脚,MAX232的T2OUT接DB-9的2引脚(RXD),串行接口电路如图2.12所示。
图2.12 串行口电路原理图
21
3 软件部分设计
软件部分设计主要针对于软件部分的程序进行分析介绍,对应各个模块首先介绍程序部分设计思路,然后对流程图进行详细的讲解。
3.1 主程序工作流程
主程序主要完成程序的初始化、按键程序及报警程序的判断,首先进入main函数对定时器0进行初始化设置,设置定时方式1,定时50ms中断一次,累计40次后为2S也就是用来定时2S,2S后通过标志位使标志显示界面变量加1,同时显示相应界面。主程序流程图如图3.1所示。
图3.1 主程序流程图(1)
22
图3.1 主程序流程图(2)
3.2 A/D转换子程序
利用ADC0809转换四路模拟量,首先选择需转换四路模拟量中的一路,然后启动转换,在其转换过程中一直判断其转换是否完成,如果未完成则继续转换,如果已完成转换则发出读允许信号,使其转换完成的数据可供单片机使用,A/D转换程序流程图如图3.2所示。
图3.2 A/D转换程序流程图
23
3.3 数字滤波及标度变换程序设计
数字滤波技术是指在软件中对采集到的数据进行消除干扰的处理。在软件中进行数字滤波的处理,以消除附加在数据中的各式各样的干扰,使采集到的数据能够真实的反映现场的工艺实际情况。数字滤波最简单和最常用的一种,方法是在某时刻对信号进行连续多次多样,对采样值进行算术平均,作为该时刻的信号值,连续采样的次数视具体情况而定。算术平均值滤波对抑制周期性干扰和随机干扰有良好效果。
设计中采用的数字滤波方法为最值算数平均值滤波,它是平均值滤波的改进,它认为最值是一个野值,应该剔除。对余下的值再做平均值滤波。
标度变换:测量时,先将外界信号转换成电信号,然后用A/D转换器将模拟量转换为数字量,经一系列变换后得到的数码值它仅仅对应于参数值相对量的大小,故必须把它转换成带有量纲的数值后才通过运算和显示。由于设计中参数值与A/D转换结果成线性关系,标度变换时采用线性变换公式Y=(Ymax-Ymin)(X-Nmin)/(Nmax-Nmin)+Ymin,Y为测量值、Ymax和Ymin为测量值的最大最小值、X为Y经过A/D后的值、Nmax和Nmin分别为Ymax和Ymin经过A/D后的值。在编写程序时Ymax、Ymin、Nmax、Nmin都是已知的。数字滤波及标度变换程序流程图如图3.3所示。
图3.3 数字滤波及标度变换程序流程图
24
3.4 显示程序设计
LCD1602的控制指令 1、基本操作
⑴状态与读操作——输入:RS=0(低电平)、R/W=1(高电平)、E=1,输出:D0~D7的状态字。
⑵数据读操作——输入:RS=1、R/W=1、E=1,输出:D0~D7的数据。 ⑶指令写入操作——输入:RS=0、R/W=0、E=1,无输出。 ⑷数据写入操作——输入:RS=1、R/W=0、E=1,无输出。 2、LCD1602的控制指令
LCD1602内部控制器的控制指令共有11条。其指令集如表3.1所示。
表3.1 LCD1602指令集
序号 1 2 3 4 5 6 7 8 9
指令 清屏显示 光标返回 设置输入模式 显示开/关控制 光标或字符移位
设置功能
设置字符发生存贮器地址 设置数据存贮器地址 忙标志位和数据指针
RS R/W D7 D6 D5 D4 D3 D2 D1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 1 BF
0 0 0 0 0 0 1
0 0 0 0 0 1
0 0 0 0 1 DL
0 0 0 1
0 0 1 D
0 1 I/D C * *
D0 1 * S B * *
S/C R/L N
F
字符发生存贮器地址 显示数据存贮器地址
计数器地址 要写的数据内容 读出的数据内容
10 数到CGRAM或DDRAM) 1 11 CGRAM(DDRAM)读数 1
指令1:清屏显示,指令代码0X01,使所有指针和所有的显示清零,使其光标复位。 指令2:光标返回,指令代码0X20。显示回车,即数据指针清零,使光标返回到0X00。
指令3:设定输入模式。I/D(光标和显示设置)。I/D=1,光标右移(光标加1);I/D=0,光标左移。当S=1,在写一个字符时,整屏显示左移(I/D=1)或右移(I/D=0);当S=0,当写一个字符时,整屏的显示都不移动。
25