(毕业设计):数据采集系统设计_第1页
(毕业设计):数据采集系统设计_第2页
(毕业设计):数据采集系统设计_第3页
(毕业设计):数据采集系统设计_第4页
(毕业设计):数据采集系统设计_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、论文题目:数据采集系统设计论文题目:数据采集系统设计 2 摘摘 要要 数据采集技术是以模拟信号处理、数字化、数字信号处理和计算 机等高科技为基础而形成的一门综合技术,是联系模拟世界和数字世 界的桥梁。 数据采集系统的核心部分主要是靠单片机来实现的,在任何单片 机测控制系统中,都是从尽量快速、尽量准确、尽量为完整地获得数 字形式的数据开始的,因此,数据采集系统作为沟通模拟域与数字域 的必不可少的桥梁起着非常重要的作用。 本系统是运用 vb 编制上位机数据处理及显示程序,上位机通过 命令可以控制下位机进行连续数据采集和单次数据采集,并可以通过 命令停止下位机的数据采集。 本文是 atmega851

2、5 单片机的一种应用,其主要功能就是实现一 路模拟量从一个终端到另一个终端的采集、传输,这种系统在工业控 制,智能仪表中广泛应用。 关键词:单片机关键词:单片机 数据采集系统数据采集系统 模拟量模拟量 i abstract data collection technology is analog signal processing, digital, digital signal processing and high-tech computer-based form of an integrated technology, it is a bridge which contacts simu

3、lated world and the digital world. data acquisition system core microcontroller is mainly achieved in single-chip computer test control system, it begins from completing access to the data in digital form as rapid and as accurately as possible, data acquisition system as a communication with the dig

4、ital domain simulation domain of the essential bridge plays a very important role. the system is compiled using vb pc data processing and display program, pc can be ordered through the machine under the control of continuous data acquisition and single data collection, and can be ordered to stop und

5、er-machine data acquisition. keywords : single-chip computer data acquisition system analog 目目 录录 第一章第一章 绪论绪论.- 1 - 第二章第二章 系统总体设计方案系统总体设计方案.- 4 - 2.1 系统设计要求.- 4 - 2.2 系统总体方案.- 4 - 第三章第三章 系统硬件电路设计系统硬件电路设计.- 5 - 3.1 atmega8515 单片机最小系统 .- 5 - 3.1.1 atmega8515 简介.- 5 - 3.2 显示器接口电路.- 9 - 3.3 键盘接口电路.- 13

6、- 3.4 a/d 转换器接口电路.- 14 - 3.5 d/a 转换器接口电路.- 16 - 3.6 串口通信接口电路.- 18 - 第四章第四章 系统软件设计系统软件设计.- 20 - 4.1 下位机软件设计 .- 20 - 4.2 上位机软件设计.- 32 - 结结 论论.- 37 - 参考文献参考文献 .- 37 - 致致 谢谢.- 39 - - 1 - 第一章第一章 绪论绪论 数据采集系统正如名字所暗示的,是一种用采集信息成文件 或分析一些现象的产品或过程,在最简单的形式中,技术人员将 烤箱的温度记录在一张纸上就是数据采集。随着技术的发展,通 过电子设备,这个过程已经得到简化和变得比

7、较精确。数据采集 系统在工业测控以及试验室研究方面的应用非常广泛,随着科学 技术的发展,数据采集技术被普遍认为是现代科学研究和技术发 展的一个重要方面。数据采集系统向高精度、高速度、稳定可靠 和集成化的方向发展,在多个领域有着广泛的应用。它是工业、 农业控制系统中至关重要的一环,在医药、化工、食品、等领域 的生产过程中,往往需要随时检测各生产环节的温度、湿度、流 量及压力等参数。同时,还要对某一检测点任意参数能够进行随 机查寻,将其在某一时间段内检测得到的数据经过转换提取出来, 以便进行比较,做出决策,调整控制方案,提高产品的合格率, 产生良好的经济效益。 随着工农业的发展,多路数据采集势必

8、将得到越来越多的应用,为适应这一趋势,作这方面的研究就显 得十分重要。 数据采集系统一般由数据采集、数据处理、处理结果的实现 与保存三个部分构成。数据采集指被测信号经过放大、滤波、 a/d 转换,并将转换后的数据送入计算机。这里要考虑干扰抑制、 带通选择、转换准确度、采样/保持及与计算机接口等问题。数 据处理指由计算机系统根据不同的要求对采集的原始数据进行各 种数学运算。处理结果的实现与保存指处理后的结果在 x-y 绘 图仪、电平记录器或 crt 上浮现出来,或者将数据存入磁盘形 成文件保存起来,或通过线路送到远地。 数据采集技术是以模拟信号处理、数字化、数字信号处理和 计算机等高科技为基础而

9、形成的一门综合技术,是联系模拟世界 和数字世界的桥梁。它在许多领域得到了广泛的应用。数字技术 促进了上述这些领域的发展,而反过来又对数据采集系统提出了 - 2 - 愈来愈高的要求。 数据采集系统的核心部分主要是靠单片机来实现的,在任何 单片机测控制系统中,都是从尽量快速、尽量准确、尽量完整地 获得数字形式的数据开始的,因此,数据采集系统作为沟通模拟 域与数字域的必不可少的桥梁起着非常重要的作用。 由于计算机技术的飞速发展,单片机的发展也十分飞速, 其在各个领域中的应用也日益广泛,随着测控系统技术的猛烈发 展,以嵌入式计算机为核心的数据采集系统已经在测控领域中占 到了统治地位。 1、单片机与嵌入

10、式系统 嵌入式系统源于计算机的应用,早期嵌入式系统为通用计算 机经改装后嵌入到对象体系中的各种电子系统,如舰船的自动驾 驶仪,轮机监测系统等。嵌入式系统首先是一个计算机系统,其 次它被嵌入到对象体系中、在对象体系中实现对象要求的数据采 集、处理、状态显示、输出控制等功能,由于嵌入在对象体系中, 嵌入式系统的计算机没有计算机的独立形式及功能。单片机完全 是按照嵌入式系统要求设计的,因此单片机是最典型的嵌入式系 统。早期的单片机只是按嵌入式应用技术要求设计的计算机单芯 片集成,故名单片机。随后,单片机为满足嵌入式应用要求不断 增强其控制功能与外围接口功能,尤其是突出控制功能,因此国 际上已将单片机

11、正名为微控制器(mcu,microcontroller unit)。 2、单片机构成的现代电子系统将成为主流电子系统 单片机是器件级计算机系统,它可以嵌入到任何对象体系 中去,实现智能化控制。小到微型机械,如手表、助听器。集成 器件级的低价位,低到几元、十几元,足以使单片机普及到许多 民用家电、电子玩具中去。单片机构成的现代电子系统已深入到 各家各户,正改变我们的生活,如家庭中的音响、电视机、洗衣 机、微波炉、电话、防盗系统、空调机等。单片机革新了原有电 子系统,如微波炉采用单片机控制后,可方便地进行时钟设置、 程序记忆、功率控制;空调机采用单片机后不但遥控参数设置方 - 3 - 便,运行状态

12、自动变换,还可实现变频控制。目前许多家用电器 如 vcd、dvd 只有单片机出现后才可能实现其功能。 3、嵌入式系统带动了整个电子产业 目前电子元器件产业除了微处理器、嵌入式系统器件外,大 多是围绕现代电子系统配套的元器件产业,例如满足人机交互用 的按键,led/lcd 显示驱动、led/lcd 显示单元、语音集成器 件等,满足数据采集通道要求的数字传感器、adc、数据采集模 块、信号调理模块等,满足伺服驱动控制的 dac、固体继电器、 步进电机控制器、变频控制单元等,满足通信要求的各种总线驱 动器、电平转换器等。 世界电子元器件在嵌入式系统带动下,沿着充分满足嵌入式 应用的现代电子系统要求发

13、展。嵌入式的应用涉及金融、航天、 电信、网络、信息家电、医疗、工业控制以及军事各个领域,以 至一些学者断言嵌入式技术将成为后 pc 时代的主宰。 本课题主要是通过 a/d 转换器 tlc0832 将模拟量采集到单 片机内部,通过处理之后将数据在 lcd 显示器上显示出来,运 用 max232 将采集的数据传送到上位机,并通过专用的软件将 数据显示出来;同时,通过键盘可以控制将 a/d 转换之后的数 据再通过 d/a 转换器 tlc5620 还原出来,用以驱动外部器件。 - 4 - 第二章第二章 系统总体设计方案系统总体设计方案 2.1 系统设计要求系统设计要求 1、a/d 转换器 tlc083

14、2 与 atmega8515 的接口电路; 2、lcd 显示器 12232f 与 atmega8515 的接口电路; 3、键盘接口电路; 4、d/a 转换器 tlc5620 与 atmega8515 的接口电路; 5、通过键盘可以控制模拟量数据的单次采集和连续数据采 集,并将采集的 数据在 lcd 显示器上显示出来,同时,通过键盘控制可以将采 集到的数据发送到上位机; 6、运用 vb 编制上位机数据处理及显示程序; 7、上位机通过命令可以控制下位机进行连续数据采集和单 次数据 采集,并可以通过命令停止下位机的数据采集。 2.2 系统总体方案系统总体方案 本方案是以 atmega8515 单片机

15、为核心,通过 tlc0832 对模 拟信号进行模数转换,转换后的数字信号输入到单片机内部,处 理、送显并通过 max232 将数据传输到系统微机之中,系统微 机之中通过专用的软件对数据进行处理并显示出来;同时通过键 盘控制可以将采集的模拟数据运用 d/a 转换器 tlc5620 还原出 来,系统的总体设计框图如图 2.1 所示: - 5 - 图 2.1 系统总体框图 第三章第三章 系统硬件电路设计系统硬件电路设计 3.1 atmega8515 单片机最小系统单片机最小系统 3.1.1 atmega8515 简介简介 在二十世纪九十年代初,atmel 公司推出全新的精简指令 集单片机,简称 av

16、r 其具有高性能、低功耗、非易失性存储器、 数字集成电路、e2prom 电可擦除技术、闪速存储技术等优秀品 质。与其相比,采用复杂指令集的单片机在效率、速率在指令格 式上都比较简洁,更适和在嵌入式系统中使用。近几年来,随着 avr 单片机不断改进并持续推出新的品种现以形成系列产品。 其性价比更高,在国内外都有广阔的前景。 atmega8515 具有以下特点: 8k 字节 flash,256/512 字节 e2prom,256/512 字节 sram; 32 个通用 i/o 口,32 个通用工作寄存器; 具有比较模式的灵活的定时器/计数器; - 6 - 内外中断源可编程的 uart; 可编程的看

17、门狗定时器; spi 口以及两种可通过软件选择的省电模式工作于空闲 模式。工作于省电模式时,cpu 将停止运行,而寄存器、定时 器/计数器、看门狗和中断系统继续工作,掉电模式时振荡器停 止工作,所有功能都被禁止,而寄存器内容得到保留,只有外部 中断或硬件复位才可以退出此状态5。 器件是以atmel的高密度非易失性内存技术生产的,片内 flash可以通过spi接口或通用编程器多次编程。通过将增强的 risc 8位cpu与flash集成在一个芯片内,atmega 8515为许多 嵌入式控制应用提供了灵活而低成本的方案,具有一整套的编程 和系统开发工具宏汇编调试/仿真器在线仿真4。 在 avr 单片

18、机中,用 32 个通用寄存器代替累加器,从而避 免了传统的累加器和存储器之间的数据传送造成的瓶颈现象。 在 avr 单片机中,在前一条指令执行的时候就取出现行的 指令,然后以一个周期执行指令。在其它的 cisc 以及类似的 risc 结构中,外部振荡器的时钟被分频降低到传统的内部执行 周期,这种分频最大达 12 倍。avr 单片机使用一个时钟周期执 行一条指令,在 8 位单片机中它是第一种真正的 risc 单片机。 avr 单片机具有良好的性能价格比。由于 avr 单片机是采 用 harvard 结构的,故它们的地址总线和数据总线是分开的。 3.1.2 avr 单片机引脚说明单片机引脚说明 a

19、tmega8515 引脚与 mcs-51 系列单片机 8x51/8x52 的引脚 兼容,仅复位电平不同,avr 低电平复位,mcs-51 高电平复位, 这给用 avr 单片机替代 mcs-51 单片机硬件电路带来了方便5, 其引脚图如图 3.1 所示。 - 7 - 图 3.1 atmega8515 引脚图 vcc:为供电引脚,连接到正电源。 gnd:为接地引脚,连接到电源地。 a 口(pa7pa0):a 口为一个 8 位双向 i/o 口,每一引 脚内部都有上拉电阻。a 输出口的缓冲器可以吸收 20ma 的电流, 因而能直接驱动 led 显示器。当 a 口被用于输入且内部上拉被 触发时,如果外部

20、被拉低,则会输出电流。 b 口(pb7pb0):b 口为一个 8 位双向 i/o 口,每一个 引脚内都有上拉电阻。b 口的输出缓冲器可以吸收 20ma 的电流。 当 b 口被用于输入且内部上拉被触发时,如果外部被拉低,则 会输出电流。b 口也提供后面列出的 at90 系列单片机许多特殊 功能。 c 口(pc7pc0):c 口为一个 8 位双向 i/o 口,每一个 引脚内都有上拉电阻。c 口的输出缓冲器可以吸收 20ma 的电流。 - 8 - 当 c 口被用于输入且内部上拉被触发时,如果外部被拉低。 d 口(pd7pd0):d 口为带有内部拉高的 8 位 i/o 口。 d 口的输出缓冲器可以吸收

21、 20ma 的电流。当 d 口被用于输入且 内部上拉被触发时,如果外部被拉低,则会输出电流。d 口也提 供后面列出的 at90 系列单片机许多特殊功能。 reset:reset 为复位输入。当晶振运行时,引脚上一 个周期的低电平可对器件进行复位。 xtal1:xtal1 为晶振反向放大器的输入端和内部时钟 操作电路的输入端。 xtal2:xtal2 为晶振反向放大器的输出端。 icp:icp 是定时器/计数器 1 的输入捕获功能的输入引脚。 ocib:ocib 是定时器/计数器 1 的输出比较功能 b 的输 出引脚。 ale:ale 是使用外部存储器时的地址锁存触发端。ale 选通门被用于在第

22、一个访问周期中将低位地址锁存到地址锁存器 中,而 pd0pd7 在第二个访问周期中被用作数据。 3.1.3 atmeg8515 最小系统最小系统 atmeg8515 最小系统如图 3.2 所示,其中 k1、 k2 、k3 和 k4 为上拉电阻,st 为 8mhz 的晶振,j1 为单片机 i/o 口引 出连接器。 在本系统设计中,atmeg8515 微控制器的引脚功能分配如下: pc0pc7 和 pa0-pa2 为 lcd 控制端; - 9 - pa3pa6 为 tlc5620 控制端; rxd、txd 为串行数据接收端和发送端; pb0pb7 为键盘输入端; pd4pd7 为 tlc0832

23、控制端。 - 10 - 图 3.2 atmega8515 最小系统 3.2 显示器接口电路显示器接口电路 显示器有 lcd 和 led 显示器,系统中选用 lcd 显示器 12232f。其特点如下: 12232f 汉字图形点阵液晶显示模块,可显示汉字及图形, 内置 8192 个中文汉字(1616 点阵) ,128 个字符(816 点阵) 及 64256 点阵显示 ram。12232f 有内置电压,无需负压。它 还配置 led 背光,与 mcu 的接口是并行或串行,系统中选用 并行接口。 12232f 具有以下特点: 文本显示 ram 可以显示三种显示 cgrom、hcgrom 与 cgram

24、的字型, st7920a 提供硬件游标及闪烁控制电路,由地址计数器 (address counter)的值来指定 ddram 中的游标或闪烁位置。 3.2.1 模块引脚说明模块引脚说明 12232f 液晶模块引脚说明如表 3-1 所示。 表 3-1 rt128x64 的引脚说明 引脚号引脚名称方向功能说明 1vss-模块的电源地 2vcc-模块的电源正端 3v0-对比度调整 4rs(cs)h/l并行的指令/数据选择信号;串行的片选 信号 5r/w(sid)h/l并行的读写选择信号;串行的数据口 6e(clk)h/l并行的使能信号;串行的同步时钟 - 11 - 7db0h/l数据 0 8db1h

25、/l数据 1 9db2h/l数据 2 10db3h/l数据 3 11db4h/l数据 4 12db5h/l数据 5 13db6h/l数据 6 14db7h/l数据 7 15bl+vdd背光电源正 16bl-vss背光电源负 3.2.2 接口时序接口时序 12232f 液晶模块有并行和串行两种连接方法。8 位并行连接, mpu 写资料到模块时序图如图 3.3 所示。 图 3.3 mpu 写资料到模块时序图 8 位并行连接,mpu 从模块读出资料时序图如图 3.4 所示。 - 12 - 图 3.4 mpu 从模块读出资料时序图 串行连接时序图如图 3.5 所示。 图 3.5 串行连接时序图 串行数

26、据传送共分三个字节完成: 第一字节:串口控制格式 11111abc a 为数据传送方向控制:h 表示数据从 lcd 到 mcu,l 表 示数据从 mcu 到 lcd - 13 - b 为数据类型选择:h 表示数据是显示数据,l 表示数据是 控制指令 c 固定为 0 第二字节:(并行)8 位数据的高 4 位格式 dddd0000 第三字节:(并行)8 位数据的低 4 位格式 0000dddd lcd 模块与 mpu 的通信接口设计可以采用直接或间接的访 问方式。前者使用 mpu 的读写和地址信号综合生成时序控制信 号;后者使用软件模拟 lcd 模块时序控制多根数字 i/o 端口输 出的方法控制信

27、号。 12232f lcd 模块直接通过 i/o 口与 atmega8515 进行并行接 口,atmega8515 工作频率在 8mips 时,用软件模拟其工作时序, 系统设计的接口电路框图如图 3.6 所示。在 3.6 图中,12232f lcd 模块的 8 位数据线直接与 atmega8515 的 8 位 i/o 口连接, 使能信号 e 和读写信号 r/w 由 atmega8515 的 i/o 口直接控制。 12232f lcd 显示器分为两行,初始化时,第一行显示“采集数据: 单次”,第二行显示“控制命令:等待”。当下位机进行单次数据 采集时,第一行用于显示单次采集的数据;当下位机进行连

28、续数 据采集时,lcd 显示器上显示采集的数据;第二行显示上位机 发出的控制命令,当上位机没有发送控制命令时,显示“等待”, 当上位机发送命令后,显示命令。 - 14 - 图 3.6 12232f 与 atmega8515 并行接口框图 3.3 键盘接口电路键盘接口电路 键盘有独立式键盘和矩阵式键盘,系统中选用独立式键盘。 系统中独立式键盘直接与 atmeg8515 的 pb0pb7 口相连接, 接口电路如图 3.7 所示。s0 启动单次数据采集并将采集到的数据 显示在 lcd 显示器上;s1 启动单次数据采集并将采集到的数据 显示在 lcd 显示器上,同时将采集到的数据通过串口发送给上 位机

29、;s2 启动连续数据采集并通过 max232 将数据传输给上位 机,同时将数据在 lcd 显示器上显示;s3 启动连续数据采集并 通过 max232 将数据传输给上位机,同时将数据在 lcd 显示器 上显示并通过 d/a 转换器将采集到的数据还原成模拟信号;s4 位停止数据采集,k5 为上拉电阻排。 图 3.7 键盘接口电路 3.4 a/d 转换器接口电路转换器接口电路 系统采用 德州仪器公司(ti)推出的 tlc0832,它是广泛 应用的 8 位 a/d 转换器。tlc0832 是双通道输入,并且可以软 件配置成单端或差分输入。串行输出可以方便的和标准的移位寄 - 15 - 存器及微处理器接

30、口相连10。 其特点如下: (1)8 位转换结果 (2)简单的微处理器接口 (3)单通道或多通道可配置单端及差分输入 (4)转换时间在 flock=250khz 时为 32us (5)5v 供电时输入范围:05v (6)输入输出完全兼容 ttl 和 cmos 电路 (7)全部非校准误差:1lsb (8)单+5v 供电 (9)工作温度范围:070 tlc0832 的引脚图如图 3.8 所示。 图 3.8 tlc0832 引脚图 tlc0832 的引脚功能如下: (1)为片选端; (2)ch0 为通道 0; (3)ch1 为通道 1; (4)gnd 为电源地; (5)di 为串行数据输入端; (6

31、)do 为 a/d 转换结果的三态串行输出端; (7)clk 为工作时钟; (8)vcc/ref 为电源和参考电压。 tlc0832 与 atmega8515 的接口电路如图 3.9 所示,其中 - 16 - pd4pd7 为单片机的 i/o 口,通过单片机 i/o 口模拟 tlc0832 的控制时序;in0、in1 为模拟量输入端。 图 3.9 tlc0832 与 atmega8515 的接口电路 3.5 d/a 转换器接口电路转换器接口电路 tlc5620 是美国德州仪器公司生产、单电源供电的串联型 8 位 d/a 转换器(dac) ,其特点如下: 它有四路各自独立的电压输出 d/a 转换

32、器,具备各自独 立的基准源; 其输出还可编程为 2 倍或 1 倍; +5v 单电源供电; 高阻抗基准输入; 内部上电复位; 低功耗; 内部缓冲输出; 串行接口; 在控制 tlc5620 时,只要对该芯片的 data、clk、ldac、load 端口进行操作即可。 tlc5620 的引脚图如图 3.10 所示。 - 17 - 图 3.10 tlc5620 的引脚图 tlc5620 的引脚功能如表 3.2 所示: 表 3.2 tlc5620 引脚功能 引脚名称引脚功能 clk7串行接口时钟,数据在负沿送入 daca12dac a 模拟输出 dacb11dac b 模拟输出 dacc10dac c

33、模拟输出 dacd9dac d 模拟输出 data6串行接口数字数据输入 gnd1电源地 ldac13dac 更新锁存控制 load8串行接口装载控制 refa2dac a 基准电压输入 refb3dac b 基准电压输入 refc4dac c 基准电压输入 refd5dac d 基准电压输入 vdd14电源 tlc5620 命令字为 11 位,其中 8 位是数字量,另 2 位是 dac 通道选择,1 位是增益选择。其内部寄存器具有双缓冲器, - 18 - 在更新各通道的数据量后,其输出通过 ldac 控制,可同时将 其命令格式更新成第一位、第二位为 a1、a0,第三位为 rng 即可编程序放

34、大输出倍率,第四位到第 11 位分别为 8 位数据, 最高位在前,最低位在后。转换器的通道取决于 a1、a0 的值, 如表 3-3 所示: 表 3.3 通道译码 a1a0所更新的 dac 00daca 01dacb 10dacc 11dacd tlc5620 与 atmega8515 的接口电路如图 3.11 所示,其中 pa3pa5 为单片机的 i/o 口,通过单片机 i/o 口模拟 tlc5620 的控制时序;其中 pa3pa6 为单片机的 i/o 口, daca、dacb、dacc 和 dacd 为 d/a 转换器 tlc5620 的模 拟两输出端。 图 3.11 tlc5620 与 a

35、tmega8515 的接口电路 3.6 串口通信接口电路串口通信接口电路 atmega8515 具有一个全双工的 8 位片内异步串行口,可以 - 19 - 完成主 cpu 与 atmega8515 之间或两个 atmega8515 器件之间的 串行数据通信,该串行口的一帧发送/接收数据由 10 或 11 位组 成,其中最低位为起始位,中间 8 位有效,后随 1 或 2 个停止位, 发送或接收数据都采用双缓冲方式。本系统采用 max232 作为 通信中的电平转换电路,其特性如下: (1) max232 的工作温度范围为 0至 70。 (2) 单 5v 电源供电。 (3) linbicmos 工艺

36、技术。 (4) 两个驱动器及两个接收器。 (5) 30v 输入电平。 (6) 低电源电流:典型值是 8ma。 (7) 符合甚至优于 amsi 标准 e1a/t1a-232-e 及 1tu 推荐 标准 v.28。 (8) 可与 maxin 公司的 max232 互换。 (9) 保护大于 mil-std-883(方法 3015)标准的 2000v。 max232 的引脚如图 3.12 所示: 图 3.12 max232 引脚图 max232 与 atmega8515 的接口电路如图 3.13 所示,其中 txd、rxd 分别与 atmega8515 的 pd0 和 pd1 引脚相接,tx 和 rx

37、 与 pc 机相连接。 - 20 - 图 3.13 max232 和 atmega8515 的接口电路图 第四章第四章 系统软件设计系统软件设计 4.1 下位机软件设计下位机软件设计 4.1.1 显示程序设计显示程序设计 系统上电之后,首先初始化液晶,然后在液晶上按照一定的 格式显示信息,程序根据按键的不同修改相应的显示缓存区,以 此来修改显示信息。 atmega8515 对 12232f 的写命令/数据程序流程图如图 4.1 所 示。atmega8515 首先对系统进行初始化,设置 i/o 口的输入/输 出状态,之后初始化液晶,对液晶的显示功能进行设置,通过写 命令字控制写入数据地址14。

38、- 21 - 图 4.1 12232f 的控制程序流程图 - 22 - 图 4.2 动态修改显示代码程序流程图 根据时序图,12232f 液晶的写指令子程序如下: void wcommand(int command) delay(30); cbi(porta,rs); sbi(porta,rw); cbi(porta,e); delay(30); cbi(porta,rw); portc=command; sbi(porta,e); - 23 - delay(30); cbi(porta,e); 根据时序图,12232f 液晶的写数据子程序如下: void wdata(int data) de

39、lay(30); sbi(porta,rs); cbi(porta,e); sbi(porta,rw); delay(30); cbi(porta,rw); outp(data, portc); sbi(porta,e); cbi(porta,rw); delay(30); cbi(porta,e); 系统要求,通过键盘控制可动态的修改液晶上显示的字符或 汉字, 这只需要改变显示缓存区的显示字符或汉字代码即可,动态修改 显示代码程序流程图如图 4.2 所示。 其程序如下所示: void show(int adr,int data) wcommand(adr); delay(30); wdata

40、(0 xa3); delay(30); wdata(data); - 24 - delay(30); 4.1.2 键盘程序设计键盘程序设计 键盘实质上是一组按键开关的集合,它是最简单的输入设备, 可以通过按键控制来实现简单的人机对话。键盘有矩阵式键盘和 独立式键盘,系统中采用独立式键盘,键盘处理程序流程图如图 4.3 所示。 /键盘扫描 int scan(void) int scancode; scancode=pinb; scancode= scancode; if (scancode!=0) return 1; else return 0; - 25 - 图 4.3 键盘程序流程图 4.1

41、.3 串行口波特率发生器设置串行口波特率发生器设置 通用同步和异步串行接收器和转发器 (usart)是一个高度 灵活的串行通讯设备12。主要特点为: 全双工操作(独立的串行接收和发送寄存器); 异步或同步操作; 高精度的波特率发生器; 支持 5,6,7,8,或 9 个数据位和 1 个或 2 个停止位; 硬件支持的奇偶校验操作; 数据过速检测; 帧错误检测; 三个独立的中断:发送结束中断 ,发送数据寄存器空中断, - 26 - 以及接收结束中断; 多处理器通讯模式; 倍速异步通讯模式。 时钟产生逻辑为发送器和接收器产生基本时钟。 usart 支 持 4 种模式的时钟:正常的异步模式,倍速的异步模

42、式,主机 同步模式,以及从机同步模式。 usart 控制位 umsel 和状 态寄存器 c (ucsrc)用于选择异步模式和同步模式。倍速模式 (只适用于异步模式)受控于 ucsra 寄存器的 u2x。使用同步模 式 (umsel = 1)时,xck 的数据方向寄存器(ddr_xck)决定时 钟源是由内部产生(主机模式)还是由外部生产(从机模式)。仅在 同步模式下 xck 有效。 倍速工作模式(u2x):通过设定 ucsra 寄存器的 u2x 可以使传输速率加倍。该位只对异步工作模式有效。当工作在同 步模式时,设置该位为 0”。 设置该位把波特率分频器的分频值从 16 降到 8,使异步通 信的

43、传输速率加倍。此时接收器只使用一半的采样数对数据进行 采样及时钟恢复,因此在该模式下需要更精确的系统时钟与更精 确的波特率设置。发送器则没有这个要求。 外部时钟:同步从机操作模式由外部时钟驱动出通过一个 边沿检测器,然后应用于发送器与接收器。这一过程引入了两个 cpu 时钟周期的延时,因此外部 xck 的最大时钟频率由以下公 式限制: 4 osc xck f f 同步时钟操作:使用同步模式时 (umsel = 1)xck 引脚 被用于时钟输入 (从机模式 )或时钟输出 (主机模式 )。时钟的 边沿、数据的采样与数据的变化之间的关系的基本规律是:在改 变数据输出端 txd 的 xck 时钟的相反

44、边沿对数据输入端 rxd 进行采样。 - 27 - 波特率发生器:内部时钟用于异步模式与同步主机模式 usart 的波特率寄存器 ubrr 和降序计数器相连接,一起构成 可编程的预分频器或波特率发生器。降序计数器对系统时钟计数, 当其计数到零或 ubrrl 寄存器被写时,会自动装入 ubrr 寄 存器的值。当计数到零时产生一个时钟,该时钟作为波特率发生 器的输出时钟,输出时钟的频率为。发生器对波) 1/(ubrrfsoc 特率发生器的输出时钟进行 2、8 或 16 的分频,具体情况取决 于工作模式。波特率发生器的输出被直接用于接收器与数据恢复 单元。数据恢复单元使用了一个有 2、8 或 16

45、个状态的状态机, 具体状态数由 umsel、u2x 与 ddr_xck 位设定的工作模式 决定。 系统选用异步正常模式(u2x = 0),波特率为 9600bps,1 位 起始位, 1 位停止位,8 位数据位,无奇偶校验位,接收完数据产生中断, 发送完数据产生中断,波特率计算公式如下: ) 1(16 ubrr f baud osc 即:1 16 baud f ubrr osc 251 960016 4 mhz ubrr 串口初始化程序如下: void uart_init(void) /wizard_map(uart) /interial rc clock:4mhz / baud rate: 9

46、600 / character size: 8-bit / mode: asynchronous - 28 - / parity: disabled / stop bit: 1-bit ubrrl = 0 x19; ubrrh = 0 x00; ucsra = 0 x00; ucsrc = 0 x86; ucsrb = 0 xd8; /wizard_map(uart) 4.1.4 a/d 转换器程序设计转换器程序设计 系统中选用的 a/d 转换器为 tlc0832,系统中采用单片机 的 i/o 口模拟 tlc0832 的时序,程序如下: int adconvert(void) /cs-7,cl

47、k-4,do-5,di-6 int i,bittest,addata; addata=0; sbi(portd, cs); delay(2); cbi(portd, cs); cbi(portd,clk); sbi(portd,di); /di=1,起始位,在 clk 上升沿移 入 delay(2); sbi(portd,clk); delay(2); cbi(portd,clk); - 29 - sbi(portd,di); /di=10,选择 0 通道,此时 di=1 delay(2); sbi(portd,clk); delay(2); cbi(portd,clk); delay(2);

48、 cbi(portd,di); /此时 di=0 delay(2); sbi(portd,clk); delay(2); cbi(portd,clk); /clk 的第三个时钟上升沿结束 delay(2); sbi(portd,clk); delay(10); for(i=0;i8;i+) sbi(portd,clk); delay(2); cbi(portd,clk); delay(10); bittest=pind if(bittest=0x20) addata=(addata1)|0 x1; else addata=(addata1)|0 x0; delay(2); return add

49、ata; - 30 - 4.1.5 d/a 转换器程序设计转换器程序设计 系统中选用的 d/a 转换器为 tlc5620,系统中采用单片 机的 i/o 口模拟 tlc5620 的时序,程序如下: void tlc5620(int data) int i,temporary; sbi(porta,spiloac); /load,loac 初始化 为高 sbi(porta,spiload); for(i=0;i3;i+) cbi(porta,spidata); /选择通道 0 sbi(porta,spiclk); cbi(porta,spiclk); for(i=0;i8;i+) /da 转换 t

50、emporary=(datai) if(temporary=0 x80) sbi(porta,spidata); else cbi(porta,spidata); sbi(porta,spiclk); cbi(porta,spiclk); cbi(porta,spiload); cbi(porta,spiloac); - 31 - 4.1.6 下位机总体程序设计下位机总体程序设计 系统初始化之后,在主程序之中,反复的调用键盘程序,同 时等待串口发送中断或接收中断,串口数据发送和接收采用中断 方式设计。根据按键的不同执行相应得功能,同时检测是否有接 收中断产生,如果有接收中断,根据接收命令执行相

51、应的功能, 系统总程序流程图如图 4.4 所示。 - 32 - 图 4.4 主程序流程图 - 33 - 4.2 上位机软件设计上位机软件设计 vb 全称 visual basic,是微软公司推出的基于 basic 语言的 可视化编程环境,以其简单易学功能强大而倍受广大电脑爱好者 的青睐。随着 windows 在国内的普及,特别是 windows95 的推 出,越来越多的微机用户转向了 windows 操作系统。要开发一 个功能强、界面美观的应用软件,其编程和调试的工作量是非常 大的,许多并非搞软件出身的工程技术人员对 windows 编程望 而生畏。 然而使用微软的 visual basic

52、来开发这些方面的 windows 应 用软件就十分方便,一般工程技术人员易于掌握,设计软件界面 非常方便。编程工作量相对较小,只需进行主要应用功能的编程 和少量界面控制的编程。visual basic 更加简化了 windows 程序 接口的设计工作,只需要极少量的代码,就能实现标准 windows 应用程序的接口。基于以上优点,pc 机采用 vb 编程设计界面。 4.2.1 串口初始化串口初始化 上位机串口初始化程序如下:.inputlen = 10 设置 input 一次从接收缓冲读取字节数为 10 mscomm1.inputmode = 1 设置接收数据的类型是二进制类 型数据 msco

53、mm1.inputlen = 8 一次性从接收缓冲区中读取所有数据(8 个 字节为一组) mscomm1.inbuffercount = 0 清空接收缓冲区 mscomm1.outbuffercount = 0 清空发送缓冲区 mscomm1.sthreshold = 0 不触发 oncomm()事件 mscomm1.rthreshold = 1 接收 1 个字节数据触发 oncomm()事 - 34 - 件 mscomm1.settings = 9600,n,8,1 mscomm1.commport = 1 mscomm1.portopen = true 4.2.2 通讯协议通讯协议 由于系

54、统可以通过 pc 来控制下位机进行数据采集,这就会 涉及到双机通讯的问题,为解决控制得的准确性以及数据传输的 正确性,需要采取一系列的通讯协议。 1.双机通讯协议控制字 aa:进行单次数据采集并将采集的数据在 lcd 上显示,同 时传输给上位机; ab:进行连续数据采集并将采集的数据在 lcd 上显示,同 时传输给上位机; ac:进行连续数据采集并将采集的数据在 lcd 上显示,同 时启动 da 转换将采集的数据还原病将采集的数据传输给上位机; ad:停止数据采集。 4.2.3 上位机控制程序流程图上位机控制程序流程图 上位机控制程程序流程图如图 4.5 所示。 - 35 - 4.5 上位机控

55、制程程序流程图 - 36 - 4.2.4 系统界面以及数据处理系统界面以及数据处理 设计用户操作界面的主要目的是为了方便用户操作,良好的 用户界面对提高应用系统的运作效率、减少误操作和保证操作人 员的使用轻松、方便等方面起着十分重要的作用,系统界面如图 4.6 所示: 图 4.6 系统界面 由于采集到的数据用 text 文本显示不能留住历史记录,用 列表框(listbox)显示虽然可以查找历史数据,但效果很差。本设 计选择 msflexgrid 控件进行列表显示采集到的数据, msflexgrid 控件的一个主要特性是它能显示层次结构记录集, 以层次结构方式显示关系表,另外,它可以显示网格数据

56、,也可 以对其进行操作。它提供了高度灵活的网格排序、合并和格式设 置功能,网格中可以包含字符串和图片。 与 msflexgrid 控件有关的程序说明如下: 数据表格属性设置: dim vbi as integer - 37 - dialog2.msflexgrid1.cols = 5 dialog2.msflexgrid1.rows = 513 dialog2.msflexgrid1.colwidth(0) = 1000 for vbi = 1 to 512 dialog2.msflexgrid1.col = 0 dialog2.msflexgrid1.row = vbi dialog2.msflexgrid1.text = vbi next vbi dialog2.msflexgrid1.colwidth(1) = 1400 dialog2.msflexgrid1.col = 1 dialog2.msflexgrid1.row = 0 dialog2.msflexgrid1.text = 编号 dialog2.msflexgrid1.colwidth(2) = 1400 dialog2.msflexgrid1.col = 2 dialog2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论