《单片机实时数据采集显示系统设计学士学位论文.doc》由会员分享,可在线阅读,更多相关《单片机实时数据采集显示系统设计学士学位论文.doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、南 阳 理 工 学 院 本科生毕业设计(论文)学 院: 电子与电气工程学院 专 业: 电气工程及其自动化 学 生: 赵晓婷 指导教师: 朱清慧 完成日期 2014 年 5 月南阳理工学院本科生毕业设计(论文) 单片机实时数据采集显示系统设计 Design of Real Time Data Acquisition and Display System Using MCU总 计: 29 页表 格: 2 个插 图: 18 幅单片机实时数据采集显示系统设计南 阳 理 工 学 院 本 科 毕 业 设 计(论文)单片机实时数据采集显示系统设计Design of Real Time Data Acquis
2、ition and Display System Using MCU学 院: 电子与电气工程学院 专 业: 电气工程及其自动化 学 生 姓 名: 赵晓婷 学 号: 1209614012 指 导 教 师(职称): 朱清慧(教授) 评 阅 教 师: 完 成 日 期: 南阳理工学院 Nanyang Institute of Technology单片机实时数据采集显示系统设计电气工程及其自动化专业 赵晓婷摘 要 本文介绍了单片机控制的实时数据采集系统的硬件和软件设计与仿真过程。硬件部分设计采用单片机AT89C51、字符液晶显示器(HD44780控制器)、图形液晶显示器(KS0108控制器)以及A/D转
3、换器AD1674等组成一个完整的单片机控制系统,并且使用8255A芯片对AT89C51的I/O口进行了扩展。系统程序采用模块化的编程思路,通过C语言进行编程设计,主要程序为A/D转换模块和液晶显示模块。最后,在Proteus平台上进行了软件与硬件交互仿真,实现了系统各项性能指标要求。关键字 实时数据采集;AT89C51;液晶显示;C语言II Design of Real Time Data Acquisition and Display System Using MCUElectrical Engineering and Automation Specialty ZHAO Xiao-tingA
4、bstract: This paperintroduces the design andsimulationof hardware andsoftwareof real time data acquisition system controlled by single chip microcomputer. The hardware design uses a single chip AT89C51, character liquid crystal display (HD44780 controller), LCD display (KS0108 controller) and A/D co
5、nverter AD1674 to form a complete microcomputer control system, and using the 8255A chip has expanded the AT89C51 I/O port. System uses a modular design concept, through the C programming language, the main program for the A/D conversion module and liquid crystal display module. Finally, system cond
6、ucts the software and hardware simulation on the Proteus platform, realizing therequirementsofperformance indicators about the system.Key words:Real time data acquisition;AT89C51;LCD;C language 目 录1引 言12 系统方案设计22.1 系统设计框图22.2 器件的选择23 系统硬件组成及接口电路设计33.1 系统硬件组成33.2 系统接口电路设计43.2.1 AD1674与AT89C51的接口电路43.
7、2.2 8255A与AT89C51的接口电路73.2.3 KS0108与8255A的接口电路83.2.4 HD44780与8255A的接口电路104 系统软件设计114.1 系统主程序114.2 AD1674转换程序124.3 LCD12864显示程序124.3.1 温度曲线显示程序124.3.2 汉字显示程序134.4 LCD1602字符显示程序145系统仿真145.1 软件介绍145.2 Proteus仿真15结束语17参考文献18附录19致谢291引 言数据采集系统起始于20世纪中期,在过去的几十年里,随着信息领域各种技术的发展,在数据采集方面的技术也取得了长足的进步,采集数据的信息化是
8、目前社会的发展主流方向。各种领域都用到了数据采集,在科学实验、地震数据采集等领域已经得到应用。 我国的数字地震观测系统主要采用TDE-124C型TDE-224C型地震数据采集系统。近年来,又成功研制了动态范围更大、线性度更高、兼容性更强、低功耗可靠性的TDE-324C型地震数据采集系统。该数据采集对拾震计输出的电信号模拟放大后送至A/D数字化,A/D采用同时采样,采样数据经DSP数字滤波处理后,变成数字地震信号。该数据采集系统具备24位A/D转化位数,采样频率有50Hz、100Hz、200Hz。由美国PASCO公司生产的“科学工作室”是将数据采集应用于物理实验的崭新系统,它由三部分组成:(1)
9、传感器:利用先进的传感技术可实时采集物理实验中各物理量的数据;(2)计算机接口:将来自传感器的数据信号输入计算机,采样速率最高为25万次每秒;(3)软件:中文及英文的应用软件。同时工业生产控制系统中离不开显示,而液晶显示控制器的应用越来越广泛。此课题结合工业控制系统中常用的几种液晶显示控制器,用单片机对其进行控制。以Proteus为设计和仿真平台,对字符液晶显示器和图形液晶显示器进行各种显示控制设计,目的在于扩展单片机控制系统知识,熟练掌握几种常用的液晶显示器的控制原理和使用方法,为日后综合控制系统中液晶显示器的使用打下坚实基础。本设计分为A/D转换部分和LCD液晶显示部分两部分设计:A/D转
10、换部分是通过选择一路模拟通道输入,进入A/D转换器进行转换,转换后送入单片机进行处理,同时通过滑动变阻器进行数值的变换。LCD液晶显示部分分曲线图显示部分和数值字符显示部分,通过其控制器与单片机的接口编程实现正确显示。 而本设计具体的技术要求如下:l 双液晶屏显示,一个显示数值字符,一个实时绘图(二维),温度用一位小数和两位整数表示,并能显示负值; l 要求A/D转换器的精度在12位;l 单片机采用AT89C51,在Keil中用汇编或C语言进行编程;l 在Proteus对系统进行仿真并调试出结果。要做到以上要求就需要对设计需要的每一个元件其作用十分清楚,进行正确的单片机接口电路的设计,再通过软
11、件编程实现实时数据的显示。2 系统方案设计2.1 系统设计框图系统设计框图如图1所示。I/O 扩展单片机A/D转换器LCD显示字符采集信号LCD显示图形图1 系统设计框图系统是以单片机为核心器件,控制LCD进行图形和字符的显示。采用A/D转换器将输入的模拟信号转换成数字信号后送入单片机进行处理,后由单片机送出,通过I/O 扩展芯片将采集转换后的数据分别送入字符液晶显示器和图形液晶显示器进行显示。当然两个液晶显示器的一些引脚还要受单片机的控制,这样不断改变采集数值,实现实时采集系统的设计。2.2 器件的选择 (1)单片机的选择单片机是一种面向大规模的集成电路芯片,是微型计算机中的一个重要的分支。
12、此系统是由CPU、随即存取数据存储器、只读程序存储器、输入输出电路(I/O口),还有可能包括定时/计数器、串行通信口、显示驱动电路(LCD和LED驱动电路)、脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一个单块芯片上,构成了一个最小但完善的计算机系统。单片机要使用特定的组译和编译软件编译程序,再用Keil C把程序下载到单片机内。考虑到应用的灵活性,方便性,在此设计中选择AT89C51单片机1。(2)A/D转换器的选择A/D转换器根据需要有8位、10位、12位、16位等,位数越多分辨率越高,价格也就越昂贵,因此就有了以下几种分类:l 逐次逼近型: 它是一种速度快、精度较高、成本较低的
13、直接式转换器,其转换时间在几微秒到几百微秒之间。l 积分型:此类型其优点是用简单电路就能获得高分辨率,但缺点是由于转换精度依赖于积分时间,因此转换速率极低。l 并行比较型:此类型采用多个比较器,仅作一次比较而实行转换,又称Flash(快速)型。由于转换速率极高,n位的转换需要2n-1个比较器,因此电路规模也极大,一般情况下不建议使用。根据以上几种分类的介绍以及所了解的实际应用情况,在此采用逐次逼近型的。又考虑到设计所需要的精度要求在此选择了12位A/D转换器AD1674。(3)LCD显示器的选择由于设计技术的要求和应用广泛性的要求在此选择了采用LGM12641BS1R (KS0108控制器)进
14、行汉字和图形的显示,采用LM016L(HD44780控制器)进行数值字符的显示,即为温度数值的显示。这部分采用8255A芯片来扩展单片机的输入输出口,从而实现将同一数据进行字符和图形的显示,同时显示的汉字和图形所用的代码是通过点阵取模软件获得的。3 系统硬件组成及接口电路设计3.1 系统硬件组成本设计中采用单片机AT89C51、12位A/D转换器AD1674、字符液晶显示器(HD44780控制器)LM016L、图形液晶显示器(KS0108控制器)LGM12641BS1R、可编程扩展I/O口芯片8255A、74LS373地址锁存器,74LS138译码器等器件组成。通过对各自的控制,实现系统的设计
15、。系统硬件接线原理图见附录所示。AT89C51是硬件电路组成的核心器件,所有的器件都要通过它来工作,所以在此先简单介绍一下。 AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统。片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。主要性能参数:l 4k字节可重擦写Flash闪速存储器;l 1000次擦写周期;l 全静态操作:0Hz24MHz;l 1288字节内部RAM;l 32个可编程I/O口:P
16、0P3,每一个I/O口都有8位;l 2个16位定时/计数器;l 5个中断源;l 可编程串行UART通道;l 低功耗空闲和掉电模式;除此之外它本身具有振荡器和时钟电路,掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位;空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作2。AT89C51引脚结构图如图2所示。图2 AT89C51引脚结构图如图所示它共有40个引脚,其中40和20引脚分别为VCC和GND,在此隐藏了。P0口是一组8位漏极开路型双向I/O口,也是地址/数据总线复用口;P1、P2和P3全是内部带上拉电阻的8位双向I/O口
17、;P3口除了作为一般的I/O口线外,还可以作控制端口;在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据;RST:复位输入;ALE:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节; :程序储存允许输出,是外部程序存储器的读选通信号;:外部访问允许使能端;XTAL1:反相振荡放大器及内部时钟发生器的输入端;XTAL2:反相振荡放大器的输出端。3.2 系统接口电路设计3.2.1 AD1674与AT89C51的接口电路AD1674 是美国AD 公司推出的一种12 位带并行微机接口的逐次逼近型模/数转换芯片。该芯片内部自带采样保持器
18、(SHA)、10伏基准电压源、时钟源以及可和微处理器总线直接接口的暂存/三态输出缓冲器3。AD1674的基本特点和参数如下:l 采样频率为100kHz;l 转换时间为10s;l 具有1/2LSB的积分非线性(INL)以及12位无漏码的差分非线性(DNL);l 满量程校准误差为0.125%;l 内有+10V基准电源,也可使用外部基准源;l 四种单极或双极电压输入范围分别为5V,10V,0V10V和0V20V;l 数据可并行输出,采用8/12位可选微处理器总线接口;l 采用双电源供电:模拟部分为12V/15V,数字部分为+5V;l 使用温度范围: AD1674A/B为-4085(I级);l 采用2
19、8脚密封陶瓷DIP封装形式。AD1674的引脚结构图如图3所示。图3 AD1674的引脚结构图12/:数据输出位选择输入端。当该端输入为低时,数据输出为双8位字节;当该端输入为高时,数据输出为单12位字节;CS:片选信号输入端;CE:操作使能端;输入为高时,芯片开始进行读/转换操作;STS:转换状态输出端。输出为高时表明转换正在进行;输出为低时表明转换结束。VCC:+12V/+15V模拟供电输入;VEE:-12V/-15V模拟供电输入;AGND:模拟接地端; R/:读/转换状态输入端。在完全控制模式下,输入为高时为读状态;输入为低时为转换状态;在独立工作模式下,在输入信号的下降沿时开始转换。A
20、0:位寻址/短周期转换选择输入端。在转换开始时,若A0为低,则进行 12位数据转换;若A0为高,则进行周期更短的8位数据转换;当R/=1且12/=0时,若A0为低,则在高8位(DB4DB11)作数据输出;若A0为高,则在DB0 DB3和DB8DB11作数据输出,而DB4DB7置零;DB11DB8:在12位输出格式下,输出数据的高4位;在8位输出格式下,A0为低时也可输出数据的高4位;10VIN:10V范围输入端,包括0V10V单极输入或5V双极输入;20VIN:20V范围输入端,包括0V20V单极输入或10V双极输入REF IN:基准电压输入端,在10V基准电源上接50电阻后连于此端;REF
21、OUT:+10V基准电压输出端;BIP OFF:双极电压偏移量调整端,该端在双极输入时可通50电阻REF OUT端相连。AD1674控制逻辑真值表如表1所示3。表1 AD1674控制逻辑真值表CECSR/12/A0执行操作0无操作1无操作1000启动12位数据转换1001启动8位数据转换1011允许12位并行输出10110允许高8位并行输出10101允许低4位并行输出 在本次设计中采用的是双极性输入模式,其与单片机的接口电路如图4所示。图4 AD1674与AT89C51的接口电路图中显示采用的是双极性接法,所以加了正负电源,模拟输入采用量程为10V即为双极5V双极输入。电压偏移量调整端在双极输
22、入时通过50电阻与REF OUT端相连。DB0 DB11为12位数据输出端,转换过后通过控制A0的状态来控制输出,此位由单片机的P3.1来控制。为了实现分两次送出正确的的数据到达单片机,P1口加了上拉电阻。同时也为了防止单片机发热引起的可靠性降低,使得最终显示状态发生问题,从而加入排阻,也因此得出如上图的连接4。3.2.2 8255A与AT89C51的接口电路8255A是一种可编程的I/O接口芯片,可以与MCS-51系统单片机以及外设直接相连,广泛用作外部并行I/O扩展接口。8255A引脚结构图如下图5所示。 图5 8255A引脚结构图(1)8255A引脚功能:D0-D7:数据总线共8条,用于
23、传送CPU和8255A间的数据、命令和状态字;RESET:复位线,高电平有效;:片选线,低电平有效;、:为读命令线,为写命令线,皆为低电平有效;A0、A1:地址输入线:用于选中PA、PB、PC口和控制寄存器中哪一个工作;PA7PA0:A组,支持工作方式0、1、2,常作数据端口;PB7PB0:B组,支持工作方式0、1常作数据端口;PC7PC0:C组,仅支持工作方式0,可作数据、状态和控制端口,分两个4位每位可独立操作控制最灵活,最难掌握;(2)8255A控制字和状态字8255A通过控制字可设定为3种工作模式:方式0,方式1,方式2。工作方式0为基本的输入/输出工作方式;方式1为选通输入/输出工作
24、方式,在这种工作方式下,选通信号与输入/输出数据一起传送,由选通信号对数据进行选通;方式2为带选通双向总线I/O方式,所以方式2又称为双向传输方式2。控制字有两个,一个是工作方式控制字,用于8255A的初始化;另一个是C口位控制字,用于C口的位操作。这两个控制字使用同一口地址,由最高位D7区分,若D7为1,此控制字为8255A的工作方式控制字;若D7为0,此控制字为8255A的C口的位控制字。方式控制字用于设定8255A三个端口工作于什么方式,是输入还是输出方式。C口置位/复位控制字可以使C口各位单独置位或复位,以实现某些控制功能。(3)8255A与单片机AT89C51的接口电路连接如图6所示
25、。图6 8255A与单片机AT89C51的接口电路单片机AT89C51的P0口做输出口时,需要加上拉电阻,从而得图中连接;同时8255A作I/O口扩展时需要加锁存器和译码器,此决定8255A芯片选通,并决定其输出口PA、PB、PC哪路输出数据。这样可将同一数据同时送于不同的液晶显示器进行显示,除此之外利用译码器可以选择哪路数据选通,当外接电路较复杂时,任务分配较清晰,控制方便2。3.2.3 KS0108与8255A的接口电路KS0108是一种点阵液晶图形显示控制器,具有512字节的显示RAM和8位并行数据总线。Proteus中内置KS0108控制器的12864图形液晶显示器如图7所示。图7 K
26、S0108控制器的液晶显示器结构图中,图形液晶显示器共有18个引脚,其中DB0DB8为8位并行数据总线,- Vout为负电压输出,与调压输入端Vo及滑动变阻器一起连接,作为LED背光调压使用。是低电平复位端。E为使能端,R/W、DI分别为读/写选择端和命令/数据选择端,VCC(4.5V5.5V)和GND为电源端。CS1和CS2分别为左右半屏的片选信号,高电平有效5。KS0108控制器的指令汇总如以下表2所示。指令名称控制状态指令代码DIR/WD7D6D5D4D3D2D1D0显示开关设置000011111D显示起始行设置0011L5L4L3L2L1L0页面地址设置0010111P2P1P0列地址
27、设置0001C5C4C3C2C1C0读取状态字01BUSY0ON/OFFRESET0000写显示数据10 数据读显示数据11 数据表2 KS0108控制器的指令表(1)BUSY=1表示KS0108正在处理计算机发来的指令或数据;BUSY=0表示KS0108 接口控制电路已处于“准备好”状态,等待计算机的访问。(2)ON/OFF:表示当前显示状态,为1表示关显示状态,为0表示开显示状态。(3)RESET:表示当前KS0108的工作状态,即反映RST端的电平状态。当RST为低电平状态时,KS0108处于复位工作状态,RESET=1;当RST为高电平状态时,KS0108处于正常工作状态,RESET=
28、0。(4)L5L0为显示起始行的地址,取值在03FH(164)范围内。(5)P2P0确定当前所要选择的页面地址,取值在07H,代表18页。(6)C5C0=03FH(164)代表某一页面上的某一单元地址,随后的一次读或写 数据将在这个单元上进行。KS0108控制器与8255A的接口电路如图8所示6。图8 KS0108控制器与8255A的接口电路DB0DB8与PB0PB7相连接送数据,用8255A的PC2来选通此控制器,让其进行工作,用PC1和PC0分别控制读/写选择端和命令/数据选择端。CS1和CS2控制屏的显示范围,这里有单片机的引脚进行控制。3.2.4 HD44780与8255A的接口电路H
29、D44780是一种点阵液晶显示控制器,用来控制字符液晶显示器,目前应 用比较广泛。它有以下特点:l 内置CGROM字符发生器,含192个固定字符,可供用户显示调用;l 内置CGRAM字符发生器,用户通过编程设计最多8个自定义字符,存放其中,供显示调用;l 内置DDRAM显示数据存储器,可以存放最多80个显示字符,把CGROM或CGRAM中的显示数据调入DDRAM,便可在显示屏上显示,DDRAM中的单元和显示屏的位置存在一一对应关系;l 自动复位上电功能;l 双向8位或4位总线接口;l 丰富的控制指令:清显存、光标位置设置、数据输入时光标或数据移位设置、开或关显示屏等;l HD44780模块有两
30、个寄存器,一个用来输入指令,另一个用来读写数据。指令用来告诉模块怎样存放或哪里存放数据6。Proteus中内置HD44780控制器的字符液晶显示器如下图9所示。图9 HD44780控制器的字符液晶显示器RS: 命令或数据选择端,当RS=0时,总线上传送的是命令;当RS=1时,总线上传送的是数据。RW:读/写选择端,当RW=0时,为写操作;当RW=1时,为读操作。D0D7:总线数据,可以传送命令,也可以传送数据,由RS来控制。HD44780控制器与8255A的接口电路如图10所示。图10 HD44780控制器与8255A的接口电路由于8255A 在此设计中只用到了A口和B口用作数据端口, 因而C
31、口就作了控制端口,从而有图可知HD44780控制器的使能端E和命令或数据选择端RS受8255A的PC5和PC7控制。D0D7与PA0PA7相连接,将数据送入显示器进行显示。4 系统软件设计4.1 系统主程序软件设计时,需要先搞清楚总体的设计方案,从而用流程图来展示主程序。当信号输入时,主程序启动,根据内部设定的条件逐步运行,达到设计目的。主程序执行的流程图如下图11所示。图11 主程序执行流程图由上的流程图可知,程序先从主函数开始即main() 函数。在主函数中进行变量的定义和赋值,以及子函数的调用指令,即所谓的初始化。之后进行定义数组,将所要显示的设定值赋予此数组,这样一上电就可显示设定值,
32、也就定义了显示范围。此后调用A/D转换子函数,进行模/数转换,由于单片机只能处理8位数据,所以要进行两次数据的送入单片机,即所谓的数值处理。12位转换值通过8255A进行I/O扩展,后同时送入液晶显示器进行温度曲线图和温度数值的实时显示7。 4.2 AD1674转换程序AD1674是12位AD转换器,AT89C51只能一次接收8位数据,所以要分两次转换。首先要对其进行初始化,使得CE=0关闭数据采集,后令CE=1,CS=0,RC=1,12/=1,A0=0,允许高八位数据并行输出,读取转换结果的高8位,后送入P1口,使CE = 0,芯片使能关闭。再令CE=1,CS=0,RC=1, 12/=0,A
33、0=1,允许低四位数据并行输出,再读取转换结果的低4位,关闭芯片,再对读取的数据进行整合成12位数据。之后对数值进行判断,进行正确的显示。由此得出流程图如图12所示。图12 AD1674转换流程图4.3 LCD12864显示程序4.3.1 温度曲线显示程序温度曲线显示程序流程图如图13所示。图13 温度曲线显示程序流程图执行此程序前先要检查LCD是否在忙,若忙不执行,不忙执行写指令,准备数据的写入,有了写命令后,进行数据的写入。数据写入之后,此控制器要读取其值以便进行显示,所以执行读指令和读数据。数据读入正确后,执行坐标函数,进行描点,之后可得显示图形。LCD12864的读/写依靠控制端CS1
34、和CS2进行控制,而CS1和 CS2是由单片机的P3.4和P3.5进行控制,此端口控制屏的显示范围。其最主要的是坐标函数,需要规定首行和首列,以及页码。规定好后进行描点,而点的代码通过点阵取模软件绘图获得8。4.3.2汉字显示程序汉字显示程序流程图如图14所示。图14 汉字显示函数流程图此部分程序主要是执行汉字显示函数void show(),在这显示之前,先需要对要显示的汉字进行初始化,之后执行LCD12864写指令,后再设定汉字的页码,因而在此设定显示首页地址为0xb8,首列地址为0x40,列地址会自动加1,执行后执行曲线图点阵代码,即所获得需要的汉字,后执行显示函数,这样得以实现曲线图的显
35、示功能,从而完成此部分设计8。4.4 LCD1602字符显示程序此部分程序包括对1602的初始化函数、写命令函数、写数据函数和LCD1602的实时显示函数几部分组成,所以可得流程图如图15所示。图15 LCD1602字符显示流程图由流程图可知要想显示数值,首先要定义变量,之后进入主函数main()。接下来要规定哪一行进行显示,在这里选择第一行,占用前16个字节进行温度值的显示,这就是1602的初始化。定义好预设值后要进行显示这就需要取值,每一位显示什么,这需要对采集转换好的数值进行处理,将每一位取出来,综合后实时显示。完成之后要先执行1602写命令和写数据函数,当打开屏幕时,通过判断温度标志位
36、为1还是0,进行正确数值的显示,当标志位为0时显示负温度值,为1时显示正温度值,这样完成显示。5系统仿真5.1 软件介绍进行系统仿真之前首先要完成硬件和软件两部分,在此之前先要了解一些软件。(1)C51集成开发软件Keil C此软件是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,因此使用起来十分方便9。(2)Proteus软件Proteus是由LabcenterElectronics开
37、发的功能强大的单片机仿真软件,与其他的仿真软件相比较,在下面的优点:l 能仿真模拟电路、数字电路、数模混合电路;l 能绘制原理图、PCB图;l 几乎包括实际中所有使用的仪器其最大的亮点在于能够对单片机进行实物级的仿真。从程序的编写,编译到调试,目标版的仿真一应俱全。支持汇编语言和C语言的编程,还可配合Keil C实现程序的联合调试,将Proteus中绘制的原理图作为实际中的目标板,而用Keil C集成环境实现对目标板的控制,与实际中通过硬件仿真器对目标板的调试几乎完全相同,并且支持多显示器的调试5。(3)点阵取模软件此软件是为了进行液晶显示而设计的,只要输入所需要的图片或汉字,点击取模方式,就
38、可得到所需要的点阵代码,之后写入LCD模块中指定的位置执行显示函数就可以实现所需要的功能。例如将其显示汉字“赵”字,这样需要先在输入口输入此字,后选择输出格式,从而获得所需代码,获取图如图16所示8。图16 取字代码获取图5.2 Proteus仿真打开 Proteus ISIS,进入Proteus ISIS编辑环境,将所需要的元器件调用出来后进行正确连接,连接好后进行保存。在点阵取模软件中绘制所需要的图形和汉字,之后选择取模方式,在这里选择C51方式获得点阵代码。在KeilVision4编程软件中进行C语言程序的编写,然后在Keil 中生成的“*.hex”程序文件。步骤是选择工程管理窗口的Ta
39、rget1,再选择Project-Option for TargetTarget1,打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率。选择Output选项卡,然后选中Create HEX File,其它选项卡内容一般可取默认值。工程设置后按F7键(或点击编译工具栏上相应图标)进行编译生成“*.hex”十六进制的目标文件。HEX文件生成窗口如图17所示1011。图17 HEX文件生成窗口将在Keil C中生成的.hex文件加载入Proteus ISIS中的AT89C51中,点击开始进行仿真,手动调节滑动变阻器可改变数值,实现在一定范围内的数值显示,仿真结
40、束后点击其左下角的stop键结束仿真,系统仿真结果图如图18所示12 13。图18 系统结果仿真图如图所示显示的温度值为负值,数值为12.6度,即小数点后一位数。实时温度曲线图就正如LCD1所示,调节图中的滑动变阻器可以更改数值,这样不停地改变实现实时数据的更新与显示,从而完成温度数值范围在-30+30之间的显示13。30结束语 本论文主要介绍了如何将采集到的温度值进行实时显示,这里主要包括数值和曲线显示。在此设计采用的只是一种方案,还有多种方案可以采用,比如:在设计的过程中采用的12位并行A/D转换器可以换成12位串行的,或者直接采用DS18B20温度传感器进行设计等等。在此设计的过程中元器
41、件的选取要合适且控制方便,因而选择了最基础的且最常用的单片机型号,这样在设计时就方便了很多。设计存在的缺陷:(1)在设计显示模块时选用了LCD显示,没能很好地解决功耗问题。在技术方面还显得很落后;(2)显示数值不够精确,在这方面对数值的处理有待提高;(3)LCD显示部分只做了最基础的显示,还可以进行较丰富的显示,在这方面可以有更深的思考和研究。 本设计的目的在于对液晶显示模块的应用,因此在设计的过程中就需要更加深刻的认识此种设计思路,分模块进行研究,从而实现更广范围的应用。参考文献1 周国运.单片机原理及应用(C语言版)M.北京:中国水利水电出版社,2009.2 胡汉才.单片机原理及其接口技术
42、M.北京:清华大学出版社,2005.11.3 杨振江.A/D、D/A转换器接口技术M.西安:西安电子科技大学出版社,1996:55-62.4 刘孝赵,吴振磊,柳承钢.基于Proteus 软件的单片机仿真实例J.科技广场,2013,(5):140-143.5 朱清慧.Proteus显示控制系统设计与实例M.北京:清华大学出版社,2011:284-308.6 胡力刚,陈宁.单片机在液晶显示器系统中的应用J.信息科学技术,2005,(16):12-15.7 王晓闽,刘浩.多模块程序设计的关键技术模块接口J.山东建筑工程学院学报,2004,(5):140-143.8 黄海宏,王海欣.液晶显示汉字的字模
43、提取新方法J.液晶与显示,2005,3(19):88-91.9 刘克成,张凌晓,邵艳玲.C语言程序设计M.北京:中国铁道出版社,2006.3.10 胡伟,季晓衡.单片机C程序设计及应用实例M.北京:人民邮电出版社,2003:35-50.11 Guiyun Tian.Foundation and Application of MicrocontrollerM.Higher Education Press (HEP),2004:32-40.12 Wilson R P,Lam M S.Efficient context-sensitive pointer analysis for C Languag
44、e Design and ImplementationJ.La Jolla,CA,1995,4(15):51-55.13 唐晓慧,韦萍萍.基于Proteus 软件的单片机软硬件仿真实验J.毕节学院学报,2012,30(19): 97-99.附录附录一 系统硬件接线原理图系统硬件接线原理图附录二 系统程序#include#include /通过此头文件定义的宏来访问绝对地址#define uchar unsigned char #define uint unsigned int#define addo (10.0/4095.0)/转换进率,12位精度(212-1=4095),满量程为10V#define A XBYTE0x3fFC