燕山大学本科生毕业设计(论文)
变高,转换结果锁存在输出数据寄存器中,待下一个I/O周期输出。I/O周期和转换周期交替进行,从而可减小外部数字噪声对转换精度的影响[11]。A/D转换流程图如图4-2所示。
Y 采集数据 发送通道号 初始化 开始 N N 采集结束?
所有通道采集结束? Y
关A/D设备 图4-2 A/D转换功能程序流程图
4.1.3 LCD显示的实现
本设计中LCD显示部分是为了在A/D转换结束之后,检测转换的数据而加入的。在这里,把数据进过计算以十进制的形式显示出来,更加直观的看到转换的数据。系统上电后,采集模块对变阻器进行电压的采集,然后将模拟信号转换成数字信号,之后,开始对LCD1602进行初始化设置,由于本设计将LCD1602的8个数据位接入了P0口,所以控制P0口就可以控制LCD1602所显示的内容。初始化结束后,LCD1602开始接受来自单片机的
26
第4章 系统软件分析
数据,LCD1602有自己的控制指令,每一个指令对应一个字符,从而将数据一位一位的显示出来,当一个通道显示结束后,接着转换其他通道,直到所有通道显示完成,本设计在程序编写时通过开关控制来选择通道。此模块程序如图4-3所示。
Y
Y
结束 图4-3 LCD显示功能程序流程图
所有通道都显示完成? 一个通道的数据显示完成? 显示数据及字符 读取A/D转换数据 LCD1602初始化 开始 N N LCD1602液晶模块内部的控制器共有11条控制指令,根据这些控制字,我们可以编写LCD1602的初始化程序,使LCD1602读取要显示的数据,改
27
燕山大学本科生毕业设计(论文)
变光变位置,从而控制LCD1602的显示,使其正常显示。其控制指令如下表4-2所示。
表4-2 控制器的11条控制指令
指令 清屏 光标返回 输出模式 显示控制 光标/字符移位 功能 置字符发生器地址 置数据存储器地址 读忙标志和地址 写数据到指令7,8所设地址 从指令7,8所设的地址读数据 RS 0 0 0 0 0 0 0 0 0 1 RW 0 0 0 0 0 0 0 0 1 0 D7 0 0 0 0 0 0 0 1 BF D6 0 0 0 0 0 0 1 D5 0 0 0 0 0 1 D4 0 0 0 0 0 DL D3 0 0 0 1 DL N D2 0 0 1 D R/L F D1 0 1 I/D C * * D0 1 * S B * * 字符发生存储器地址 显示数据存储器地址 计数器地址 要写的数据 1 1 读出的数据 4.2 系统运行结果
4.2.1 TLC2543与LCD1602在Proteus上的仿真
本设计中,在电路的设计和程序完成后采用了Proteus仿真,用来修改电路图并调试程序。Proteus软件是英国Labcenter Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Proteus软件提供了三十多个元器件库、数千种元器件,涉及电阻、电容、二极管、三级管、MOS管、变压器、继电器、各种放大器、各种激励源、各种微控制器、各种门电路和各种终端等。在Proteus软件包中提供的仪表有交直流电压表、交直流电流表、逻辑分析仪、定时/计时器和信号发生器等。而且Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形方式实时显
28
第4章 系统软件分析
示出来,其作用与示波器相似。Proteus提供了丰富的测试信号用于电路测试,这些测试信号包括模拟信号和数字信号的。本设计应用Proteus软件进行TLC2543与LCD1602液晶显示的仿真,由于这个仿真用于修改电路和调试程序,所以只采用了3路信号的采集、A/D转换和LCD的显示。这3路信号以5K的滑向变阻器接入电路,改变阻值时,输入的电压随之变化,电压是模拟信号,这样就实现了3路电压的模拟信号输入、模数转换并显示。这个电路中,采用了3个开关,分别接入单片机的P1.5、P1.6和P1.7,然后通过软件控制单片机的这三个I/O口,将这三个I/O口分别置0,来控制LCD1602显示的通道号。为了显示数据更加明显,将滑向变阻器阻值的改变设置成不同的值,这样显示时会明显看到在切换通道时数据的变化。而且仿真时在滑向变阻器两端加入了一个电压表,用来观察显示的数据与真实的数据是否一致,确保A/D转换程序和LCD1602的正常工作。仿真电路的连接与结果如图4-4,图4-5,图4-6所示。
图4-4 通道1
29
燕山大学本科生毕业设计(论文)
图4-5 通道2
图4-6 通道3
4.2.2 PC上数据的显示
本设计不仅将TLC2543转换的数据在LCD1602液晶显示器上显示,并将数据通过串口传送给PC,在PC上通过串口调试助手以十六进制的形式显示从串口接收到的数据。首先,在PC上打开串口调试助手,选择端口号,
30