用单片机AT89S52设置智能电子秤

来源:本站
导读:目前正在解读《用单片机AT89S52设置智能电子秤》的相关信息,《用单片机AT89S52设置智能电子秤》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《用单片机AT89S52设置智能电子秤》的详细说明。
简介:本系统采用单片机AT89S52为控制核心,实现电子秤的基本控制功能。系统的硬件部分包括最小系统板,数据采集、人机交互界面三大部分。最小系统部分主要是扩展了外部数据存储器,数据采集部分由压力传感器、信号的前级处理和A/D 转换部分组成。人机界面部分为键盘输入和128 64点阵式液晶显示,可以直观的显示中文,使用方便。

第1章绪论

1.1称重技术和衡器的发展

随着科学技术和经济的发展,出售商品品种的增加,需要称量物品的设备也需要更新换代,人们对称重装置的要求也越,电子称重装置推广,从而进入到传感器,电子学和微处理机领域、使得称重装置变成为电子仪器。它的特点是:精确、智能、方便、明了、可靠,克服了传统的杆秤、盘秤不精确、速度慢、不能计价、易作弊等缺点,在商业领域应用越来越多。

称重技术的突破是微处理机的应用。称重技术的这种发展是由于不仅要求获得静态称重数据,而且进一步要求称重工作的自动化,实现快速称量,以及测量各种动态参数,提高测量精度和各种数据的及时处理。这些精度、速度、性能和功能方面的要求是传统的机械测量系统无法满足的。也就是说,这种技术发展中的突破是必然的结果。

电子称重装置出现于80年代初,随着电子元器件集成化的迅速发展,随着微处理机,单片机的发展和计算机软件的开发,产品价格的下降、电子称重装置在技术上的优势;多功能、高精度、操作方便等,使得不仅实验室的传统称量装置已被电子称重装置所取代,这种趋势已经扩展到工业和其他领域。本系统是针对自动称重、计算价格进行了研究的。讲述了用单片机控制A/D转换、键盘输入和数据显示,对如何实现键盘中断、A/D采样进行研究。着重讨论了数据处理问题,结果表明利用软件实现一系列功能使的性能价格比达最优。设计特别适用于测量精度要求较高的场合,具有较高的实用价值和推广价值。

本课题本着电子秤向高精度、高可靠方向研究,而且向多种功能的方向发展的思想,主要对电子秤一些简单功能进行了研究。主要通过强大软件功能实现电子秤的多种功能、特殊的数据处理功能、多种计算和数据处理功能, 以满足多种使用的要求。

今后,随着电子高科技的飞速发展, 电子秤技术的发展定将日新月异。同时, 功能更加齐全的高精度的先进电子秤将会不断问世, 其应用范围也会更加拓宽。本文中第一章讲述了电子秤的发展情况,第二章讲述了电子秤的工作原理,第三章讲述了电子秤的硬件电路组成部分。第四章是本文的重点部分,详细介绍了电子秤的软件设计,及各部分功能实现的软件设计。

1.2智能电子秤系统的概况

随着自动化测量技术的不断发展,传统的称重系统在功能、精度、智能化、性价比等方面越来越难以满足人们的需要,尤其对一些微小质量的测量更显得力不从心。为了实现高智能化的微小质量测量,以及商业流通领域中经常进行各种精度范围的重量测量,传统的秤砣加秤盘模式已经很难适应现代商业零售的需要。同时商品种类的繁多和对服务更高的要求也促使电子秤的功能进一步扩展,而成为集度量、结算于一体的商业销售终端。

本着这些思想,本商用电子秤系统设计由传感器、A/D转换、单片机和LED显示器等组成,具有结构简单,成本低,精度高等优点。

1.2.1 电子秤的发展史

早在20世纪80年代,美国、德国等工业发达国家,就开始了数字式称重传感器和数字称重系统的预先研究和初期开发工作,经过十余年的努力,推出了多种数字式智能称重传感器及其称重系统,在电子称重领域备受瞩目,有力的推动了电子衡器数字化和数字称重系统的发展。

我国数字式智能称重传感器的研究开发始于20世纪90年代中后期,在短短几年时间里,研制出安装在模拟式称重传感器内部的小型数字化单元,完成了模拟信号与数字信号之间的转换,变模拟式称重传感器为数字化称重传感器,并应用于大型电子汽车衡和电子配料秤等小型称重系统中,取得了较好的测试结果。近年来,又在数字化称重传感器的基础上,研究与实践数字式智能化电路,数字补偿技术与数字补偿工艺,开发整体型数字式智能称重传感器和分离型模块化数字称重传感器系统,已经取得了阶段性成果。可以预计,很快就会在电子衡器数字化和数字称重系统中,见到国产的数字式智能称重传感器和模块化数字式称重传感器系统。

1.2.2 智能电子秤应用范围

随着科学技术和经济的发展,出售商品品种的增加,需要称量物品的设备也需要更新换代,人们对称重装置的要求也越来越高。智能电子秤正是利用它精确、智能、方便、明了、可靠的特点,广泛应用在商业、企业、日常生活等各个领域。

1.2.3 智能电子秤的研究动态

称重技术的突破是微处理机的应用。称重技术的这种发展是由于不仅要求获得静态称重数据,而且进一步要求称重工作的自动化,实现快速称量,以及测量各种动态参数,提高测量精度和各种数据的及时处理。这些精度、速度、性能和功能方面的要求是传统的机械测量系统无法满足的,也就是说、这种技术发展中的突破是必然的结果。

第2章电子秤方案设计

2.1设计要求

设计一个实用电子称电路,要求用仿真软件对电路进行验证,使其满足:能用简易键盘设置单价,对采集到的代表重量的信号能同时显示重量、金额和单价;重量显示的单位为公斤,最大称重为4.99斤。单价和总价的单位为元,最大金额数值为9999.99元,具有购买功能和总额合计计算功能。自拟10种商品名称,能显示购物清单,清单内容包括:商品名称,数量,单价,金额,具有中文显示功能。

根据设计要求,首先要实现电子秤的称重基本功能,需要通过重量传感器采集到的重量信号,经处理后由模数转换转换成数字量,因此每一数字量就对应着一个物体的重量(在一定精度范围内),所以只要将转换的数字量与物体重量建立映射的关系即可完成称重的要求。而其他功能这可通过程序运算来实现。

总体结构框图如下:

用单片机AT89S52设置智能电子秤

图2-1总体结构框图

2.2 设计方案 2.2.1控制器部分

本系统基于51系列单片机来实现,因为系统需要大量的控制液晶显示和键盘。不宜采用大规模可编程逻辑器件:如CPLD 、FPGA 来实现。(因为大规模可编程逻辑器件一般是使用状态机方式来实现,即所解决的问题都是规则的有限状态转换问题。本系统状态较多,难度较大。)另外系统没有其它高标准的要求,我们最终选择了AT89S52 通用的比较普通单片机来实现系统设计,其内部带有8KB的程序存储器,可以满足系统设计需求。

2.2.2数据采集部分

1、传感器

电阻应变式传感器是将被测量的力,通过它产生的金属弹性变形转换成电阻变化的元件。由电阻应变片和测量线路两部分组成,电阻应变片产生的误差,主要来源于温度的影响,本设计主要在实验室内进行,温度的影响暂不处理。

用单片机AT89S52设置智能电子秤

图2-2电阻应变式传感器原理图

要达到设计的性能要求,传感器的精度起着决定性作用。本设计选用应用于称重系统90%以上的高精度电阻应变式传感器。电阻应变传感器是将被测量的力通过它所产生的金属弹性变形转换成电阻变化的敏感元件。题目要求称重范围 5Kg ,重量误差不大于 +0.005Kg ,考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重即5KG。在电桥测量电路中,将一对变化相反的应变片接入电桥一臂,另一臂接两个相同的阻值作为基准值;当桥臂电阻初始值R1=R2=R3=R4=350时平衡,其变化值为ΔR1=ΔR2=ΔR3=ΔR4=d时,其桥路输出电压Uout与d成正比。我们选择的是电阻应变型传感器,量程 5Kg ,精度为0.01%,满量程时误差 0.02Kg ,以满足本系统的精度要求。其原理如下图所示:

用单片机AT89S52设置智能电子秤

图2-3电桥平衡原理图

称重传感器主要由弹性体、电阻应变片电缆线等组成,内部线路采用惠更斯电桥,当弹性体承受载荷产生变形时,输出信号电压可由下式给出:

用单片机AT89S52设置智能电子秤

用单片机AT89S52设置智能电子秤

图2-4压力传感器主要技术指标

2、前级放大器部分

压力传感器输出的电压信号为毫伏级,所以对运算放大器要求很高。 我们考虑可以采用专用仪表放大器OP07,OP07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。OP07引脚电路如下图所示:

用单片机AT89S52设置智能电子秤

图2-5 OP07引脚图

2.2.3 A/D转换器

经过放大电路的信号是模拟信号即模拟量,需要把它变成数字量才能送入单片机控制系统受理,所以需要有A/D转换电路。本次试验选用ADC0832作为A/D转换器,

1、ADC0832具有以下特点:

(1)、8位分辨率;

(2)、双通道A/D转换;

(3)、输入输出电平与TTL/COMS相兼容;

(4)、5伏电源供电时输入电压在0~5V之间;

(5)、工作频率为250KHZ,转换时间为32μs;

(6)、一般功耗仅为15mW;

(7)、8P、14P—DIP(双列直插)、PICC多种封装;商用级芯片温度为0℃~70℃,工业级芯片温度为-40℃~85℃;

2、引脚结构如下:

用单片机AT89S52设置智能电子秤

图2-6 ADC0832引脚图

3、芯片接口说明:

(1)、CS_ 片选使能,低电平芯片使能;

(2)、CH0 模拟输入通道0,或作为IN+/-使用;

(3)、CH1 模拟输入通道1,或作为IN+/-使用;

(4)、GND 芯片参考0电位;

(5)、DI 数据信号输入,选择通道控制;

(6)、DO 数据信号输出,转换数据输出;

(7)、CLK 片选始终输入;

(8)、VCC/REF 电源输入及参考电压输入(复位);

ADC0832为8为分辨率A/D转换芯片,其最高分辨率可达256级,可以适应一般的模拟量转换要求。其内部电源和参考电压的复位,使得芯片的模拟电压输入在0~5V。芯片转换时间仅为32μs,具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性强,独立的芯片使能输入,使多器件挂接和处理器控制变得更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。

2.2.4单片机对ADC0832的控制

正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI.但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。

当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意,当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换结束,此时芯片开始转换工作,同时由芯片处理器向芯片始终输入端CLK输入始终脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第一个时钟脉冲下沉之前DI端必须是高电平,表示启示信号,在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能。其功能项如下表:

用单片机AT89S52设置智能电子秤

图2-7 ADC0832时序图

如图所示,当此2位数据位“1” “0”时,只对CH0进行单通道转换。当2位数据位“1”“1”时,只对CH1进行单通道转换,当2位数据为“0”“0”时,将CHO作为正输入端IN+,CH1作为负输入端IN-进行输入。当2位数据为“0”“1”时,将CHO作为负输入端IN-,CH1作为正输入端IN+进行输入。

到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。

2.3 键盘与显示 2.3.1 键盘输入

键盘输入是人机交互界面中最重要的组成部分,它是系统接受用户指令的直接途径。在电子计价秤中,带有16个按键矩阵组设置,其中0—9数字键用于输入单价及商品代码,推出即推出电子秤称重模式,模式用于切换现有模式,购买用于确认购买此种商品,合计即总金额,确认用于计算重量与单价的结构,返回即返回电子秤称重模式。

用单片机AT89S52设置智能电子秤

图2-8 键盘按键说明

单片机P1口直接与键盘相接,省去了多芯片操作的烦恼,操作简单,控制容易。

2.3.2 显示输出

由于设计题目要求中文显示,而数码管无法满足,只能考虑用带有中文字库的液晶显示器。由于可以分页显示,无需太大屏幕,我们选择了点阵式128×64型LCD。CA12864C是一种图形点阵液晶显示器。它主要采用动态驱动原理由行驱动—控制器和列驱动器两部分组成了128(列)×64(行)的全点阵液晶显示。此显示器采用了COB的软封装方式,通过导电橡胶和压框连接LCD,使其寿命长,连接可靠。

显示特性:

(1)、工作电压为+5V±10% ,可自带驱动LCD所需的负电压。

(2)、全屏幕点阵,点阵数为128(列)×64(行),可显示8(列)×4(行)个(16×16 点阵)汉字,也可完成图形,字符的显示。

(3)、与CPU接口采用6条位控制总线和8位并行数据总线输入输出,适配M6800系列时序。

(4)、内部有显示数据锁存器。

(5)、简单的操作指令显示开关设置,显示起始行设置,地址指针设置和数据读/写等指令。

CA12864C引脚特性如下:

用单片机AT89S52设置智能电子秤

图2-9 CA12864C引脚特性图

模块主要硬件构成说明:

(1)、显示数据RAM(DDRAM)

DDRAM(64×8×8 bits)是存储图形显示数据的,此RAM 的每一位数据对应显示面板上一个点的显示(数据为H)与不显示(数据为L),DDRAM 的地址与显示位置关系对照图。

(2)、X 地址寄存器

X 地址寄存器是一个三位页地址寄存器,其输出控制着DDRAM 中8 个页面的选择,也是控制着数据传输通道的八选一选择器。X 地址寄存器可以由MPU 以指令形式设置,X 地址寄存器没有自动修改功能,所以要想转换页面需要重新设置X 地址寄存器的内容。

(3)、Y 地址计数器

Y 地址计数器是一个6 位循环加一计数器,它管理某一页面上的64 个单元。Y 地址计数器可以由MPU 以指令形式设置,它和页地址指针结合唯一选通显示存储器的一个单元,Y地址计数器具有自动加一功能。在显示存储器读/写操作后Y 地址计数将自动加一,当计数器加至3FH 后循环归零再继续加一。

(4)、Z 地址计数器

Z 地址计数器是一个6 位地址计数器,用于确定当前显示行的扫描地址。Z 地址计数器具有自动加一功能。它与行驱动器的行扫描输出同步,选择相应列驱动的数据输出。

2.4使用操作说明

本系统采用16键键盘来实现,分为10个数字键0-9及6个控制键;

数字键:用于输入单价和选择所存商品;

合计键:相当于确认,将金额累加,得到所购买商品的总金额;

购买键:用于记录当前购买物品的价格;

返回键:用于返回电子秤操作系统,以重新开始工作;另可清除单价及金额;

退出键:用于退出电子秤操作系统;

模式转换键:按下后可直接输入商品代码;

另外,已存入的10种商品的单价均可重新设置,直接输入其单价即可,方便实用,如果所称重物超过了系统最大量程4.99Kg,则蜂明器发出报警声音。

2.5本章小结

经过反复的对比与才考,最终选定以上等设计方案。单片机、A/D转换器、运算放大电路部分及液晶显示部分基本确定,并且眼前只是在理论上验证了电子秤的可行方案,具体实际上的操作等会遇到的问题将会很多,但是一定会更加努力的将困难一一排查。

第3章系统硬件设计

3.1 电源处理

由于OP07供电需要±12V,其它器件需要0~5V的工作电压,所以经过仔细考虑,现用LM7805芯片进行降压处理。

功能框图如下:

用单片机AT89S52设置智能电子秤

图3-1 LM7805功能框图

主要特点如下:

(1)、输入,INPUT 输出电流可达1A

(2)、地,GND输出电压有:5V

(3)、输出,OUTPUT过热保护

(4)、短路保护

(5)、输出晶体管 SOA保护

工作电路图如下:

用单片机AT89S52设置智能电子秤

图3-2 LM7805工作电路图

3.2 蜂鸣报警电路

工作电路图如下:

用单片机AT89S52设置智能电子秤

图3-3 蜂鸣器工作电路图

电子秤具有超重报警功能,所以通过蜂鸣器配合,P2.4直接与单片机相连接,当采集到得重量大于4.99Kg时,蜂鸣器即报警。

3.3 单片机最小系统 3.3.1单片机芯片AT89S52介绍

单片机采用MCS-5l系列单片机,由ATMEL公司生产的AT89S52是一种低功耗、高性能CMOSS位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容口在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM.32位I/0口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。而且,它还具有一个看门狗(WDT)定时/计数器,如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路口。AT89S52有40个引脚,32个外部双向输入/输出(I/0)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,片上Flash允许程序存储器在系统可编程,亦适于常规编程器.其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。其芯片引脚图如上图所示。

用单片机AT89S52设置智能电子秤

图3-4 复位电路原理图

复位电路:由电容串联电阻构成,一般教科书推荐C取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。

晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的us级时歇,方便定时操作)。

AT89S52单片机的最小系统由时钟电路、复位电路、电源电路及单片机构成。单片机的时钟信号用来提供单片机片内各种操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。

单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式.在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。

由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲口,当MCS-51系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态.根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期问,用开关操作也能使单片机复位。单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。

系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下,51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。

3.3.2单片机管脚说明

VCC:供电电压;

GND:接地;

P0口:P0口为一个8位漏级开路双向I/0口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的日位双向I/0口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/0口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将愉出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址,“1”时,它利用内部上拉忧势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容,P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/0口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89S52的一些特殊功能口,如下表所示:

表3-1 单片机P3.0引脚功能表

用单片机AT89S52设置智能电子秤

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASII编程期间,此引脚用于输入编程脉冲口在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的I/O。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX, MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号,在山外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(OOOOH-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

3.4 键盘显示接口电路

本设计系统除了前面所述的四个结构外,还需要用到人机联系部件以便接收各种命令和数据,即价格,重量的数据输入,模式转换等输入。

本系统中有128*64液晶显示器,4×4键盘的接口电路。图中键盘直接与单片机的P1口直接相连,显示器通过上拉电阻与单片机P1口相接,同时通过74LS00将单片机的读、写与液晶的使能信号E脚相连,单片机P0~P7口直接与液晶的DB0~DB7相连接,P26、P27分别于液晶的两个片选相通,P20、P21与液晶的RS和R/W相接。且通过V0与VEE接通滑动变阻器,以调节液晶背光。

用单片机AT89S52设置智能电子秤

图3-5 单片机与液晶接口电路图

3.5运算放大电路部分

压力传感器输出的电压信号为毫伏级,所以对运算放大器要求很高。我们考虑可以采用专用仪表放大器OP07,OP07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。

用单片机AT89S52设置智能电子秤

图3-6 运算放大电路原理图

通过调节W4的阻值来改变放大倍数,微弱信号GB和GC被分别放大后从OP07的第6脚输出。A/D转换器ADC0832的输入电压变化范围是0V~+5V,传感器的输出电压信号在0~20mv左右,因此放大器的放大倍数在50~100左右。由于ADC0832对高频干扰不敏感,所以滤波电路主要针对工频及其低次谐波引入的干扰。因为压力信号变化十分缓慢,所以滤波电路可以把频率做得很低。

3.6本章小结

本章主要介绍了本系统的主要硬件设计以及用到的各个器件的硬件特性、功能、用法及相关电路,这在设计过程中是至关重要的,只有对各个元器有足够的了解和认识,在系统的设计过程中才能把握的更好。

第4章系统软件设计

智能电子秤软件系统设计的基本思想是充分利用微机丰富的软件功能,实现称重过程一系列要求,提高系统可靠性,使得系统性能价格比达到最优。智能电子秤作为一种实时性要求不是很高系统,用软件代替部分硬件功能很合算。

首先,我们通过对软件进行分析,确定那些任务是由软件来完成的。在本系统中,从软件功能来看,其包括执行软件和监控软件两类。执行软件,完成各种实质性的功能,如采集数据,进行滤波处理,价格计算,中断处理,重量、价格的显示都利用软件来完成,不仅使得电子秤的性能提高,以达最高性能价格比;监控软件,用来协调各模块和操作者之间的关系,如本系统中A/D转换、键盘与显示、数据处理各模块的工作。

其次,智能电子秤系统中有着大量的数据计算,各个模块之间进行信息传递,我们必须数据类型和结构进行规划,对系统内程序存储器、RAM、定时器/计数器和中断源的分配。

最后,完成以上工作后我们就可以进行编程了。在编程时,画出各功能模块的程序流程图,用合适的语言进行编写。

4.1 程序流程图

我们采用模块程序设计技术来设计电子秤的软件系统,根据系统功能,我们将软件划分成若干个相对独立的模块,为每一个模块设计程序流程图。软件程序的主要任务有:重量、单价、总价等参数的显示;数据管理;数据处理;数据运算等功能。

用单片机AT89S52设置智能电子秤

图4-1 程序流程图

主程序工作原理:

软件程序包括主程序、显示程序、键盘处理程序、A/D转换程序、数据转换处理程序。控制器中AT89C52的INT1为A/D中断请求输入线,INT0为键盘中断服务程序。A/D中断服务程序完成采样数据的存储;键盘中断服务程序完成扫描,判断数字键或功能键,若为数字将其数据送入数据缓冲区和显示缓冲区。若是功能键进入相应功能键处理程序。键盘上有数字键0~9和五个功能键,数字键用于输入商品单价、物体重量,功能键有推出、模式、购买等功能。

(1)、AT89C52输入输出端口定义如下:

P0口——128*64液晶数据口

P1口——4*4矩阵键盘与单片机的接口

P2.0、P2.1——液晶的RS与R/W接口

P2.6、2.7 ——液晶的片选端

P3口——A/D的控制端

(2)、外部中断INT1用于A/D转换服务程序

外部中断INT1完成A/D转换中断请求,包括数据采集及处理,当采集完一次申请中断,总共采集8次。

(3)、定时中断T0用于A/D转换中断延时

电子秤作为一种称重仪器,对所称精确度要求颇高,所以必须通过数值滤波求的有效采样值,通过定时来完成这一系列的操作。我们定时0.5S,即定时为50ms,分多次来累计结果。

(4)、定时中断T2用于键盘中断延时

T2设为定时器状态,定时时间为13ms。在中断服务中首先扫描键盘,判断有无键按下。若有,则执行键识别程序,然后返回主程序进行其他操作。

(5)、初始化程序完成所有系统设置

系统初始化程序完成对键盘、液晶等多种控制器的初始化。

4.2 键盘服务程序

键盘段程序采用中断方式,单有键按下时,引入一个外部中断,单片机响应中断后立即查询所按键值,并对应存入相应的全局变量中。中断返回后,通过在主程序中不断判断个功能标志位的值来实现在各个功能间的切换;数字键则用来输入单价和选择商品名称。

键盘扫描函数,使用行列反转扫描法,如若有键盘按下,则程序开始执行,判断是哪行哪列的按键,最后返回该按键键值。键盘电路设计成4X4矩阵式,由键盘编码方式可以得出0,1,2,3,4,5,6,7,8,9,A,B,C,D,E各键对应的键值: 0x7e、0x7d、0x7b、0x77、0xbe、0xbd、0xbb、0xb7、0xde、0xdd、0xdb、0xd7、0xee、0xed、0xeb、0xe7。在程序中可以先判断按键编码,然后根据编码将键盘代表的数值送到相应的存储单元,再进行功能选择或数据处理。

用单片机AT89S52设置智能电子秤

图4-2 键盘扫描子程序流程图

uchar keyscan(void)//键盘扫描函数,使用行列反转扫描法

{

uchar cord_h,cord_l;//行列值

P1=0x0f; //行线输出全为0

cord_h=P1&0x0f; //读入列线值

if(cord_h!=0x0f) //先检测有无按键按下

{

delay1(100); //去抖

if(cord_h!=0x0f)

{

cord_h=P1&0x0f; //读入列线值

P1=cord_h|0xf0; //输出当前列线值

cord_l=P1&0xf0; //读入行线值

return(cord_h+cord_l);//键盘最后组合码值

}

}

return(0xff); //返回该值

}

4.3 模数转换程序

模数转换子程序主要功能是实现对转换结果的处理,包括转换的启动、等待转换完成并读入转换结果,以及对转换结果的换算,使之与所要达到的要求建立一一对应的关系。A/D转换子程序主要是指在系统开始运行时,把称重传感器传递过来的模拟信号转换成数字信号并传递到单片机所涉及到的程序设计。设计流程图如图所示:

用单片机AT89S52设置智能电子秤

图4-3 ADC0832工作原理图

unsigned int Adc0832(unsigned char channel)

{

uchar i=0;

uchar j;

uint dat=0;

uchar ndat=0;

if(channel==0)channel=2;

//if(channel==1)channel=3;

ADDI=1;

_nop_();

_nop_();

ADCS=0;//拉低CS端

_nop_();

_nop_();

ADCLK=1;//拉高CLK端

_nop_();

_nop_();

ADCLK=0;//拉低CLK端,形成下降沿1

_nop_();

_nop_();

ADCLK=1;//拉高CLK端

ADDI=channel&0x1;

_nop_();

_nop_();

ADCLK=0;//拉低CLK端,形成下降沿2

_nop_();

_nop_();

ADCLK=1;//拉高CLK端

ADDI=(channel>>1)&0x1;

_nop_();

_nop_();

ADCLK=0;//拉低CLK端,形成下降沿3

ADDI=1;//控制命令结束

_nop_();

_nop_();

dat=0;

for(i=0;i<8;i++)

{

dat|=ADDO;//收数据

ADCLK=1;

_nop_();

_nop_();

ADCLK=0;//形成一次时钟脉冲

_nop_();

_nop_();

dat<<=1;

if(i==7)dat|=ADDO;

}

for(i=0;i<8;i++)

{

j=0;

j=j|ADDO;//收数据

ADCLK=1;

_nop_();

_nop_();

ADCLK=0;//形成一次时钟脉冲

_nop_();

_nop_();

j=j<<7;

ndat=ndat|j;

if(i<7)ndat>>=1;

}

ADCS=1;//拉高CS端

ADCLK=0;//拉低CLK端

ADDO=1;//拉高数据端,回到初始状态

dat<<=8;

dat|=ndat;

return(dat); //return ad data

}

4.3数据采集与放大倍数

传感器输入:选择一个合适的电桥基准电压,传感器电桥输出电压为300.50mV~301.45mV,对应0~100g重物,平均每克变动不到0.1mV;由于它的变动范围很小,因而设计300mV的偏移量,不让其在0 mV上下变动,以减少运放零漂的影响。

输出到AD:ADC0832的Vref为5V,因而其分辨率约为5V/8=62.5mV。

这样,信号的放大倍数应该在50~100左右。为了使输出更准确,使用+/-12V电源给集成运放供电,最后采用分压电阻使其符合0~5V的AD输入。根据选取的参数值以及Rw1所调的阻值1k,总的放大倍数为25/1=25。

用单片机AT89S52设置智能电子秤

图4-4 运算放大电路模块

4.4数字量的处理

放上秤盘,调节Rw2,使放大器输出约为0.01V。这时放上重物50g,放大器输出约0.25V左右。根据放大器输出电压对应的数字值,以及重物重量(输出显示值),可以确定它们的关系。

表4-1 数据参照表

用单片机AT89S52设置智能电子秤

用单片机AT89S52设置智能电子秤

图4-5 数据采集框图

Linear model Poly1:

f(x) = p1*x + p2

Coefficients (with 95% confidence bounds):

p1 = 50

p2 = -3900

在算法方面,主要通过经验法进行运算。即在对采集到的值作处理时,先用的均值法,就是连续采值,再做平均值,后将数据行进所需运算,求出结果。

4.5本章小结

本章主要对系统软件进行了总体设计和详细设计,分析了本系统在软件部分所做的工作,给出了本系统各部分的程序流程图以及核心程序代码。同时对本系统开发中所用到的软件进行了简单的介绍。

第5章系统调试

5.1引言

在机器人系统的设计过程中,对软硬件调试,常常是伴随着设计而时常需要进行的,只有通过对系统软硬件的调试,才可以知道当前工作中存在哪些问题,并通过对问题原因的分析而进一步完善对系统的设计工作。在系统设计过程中,我们一般首先对软硬件各个模块进行单独设计,然后进行硬件电路调试、软件开发环境中的软件仿真调试,最后再进行软硬件的联和调试。

5.2系统硬件调试

根据设计好的电路原理图制造出电路板,就进入了系统的硬件调试阶段。调试的主要工作就是排除硬件电路故障,其中包括设计错误和工艺性错误。

首先可以利用万用表对照原理图对构成电路的关键部分进行诸如数据总线、地址总线、控制总线以及译码电路、各器件的电源进行测量,检查是否出现连接错误。然后就可以进行通电调试。利用仿真器和测试软件,对相应的电路进行功能测试。对对应的外围设备发一定的信号,测试电路及器件工作是否正常。如从信号输入端输入一定信号到单片机的I/O端口,利用测试软件在输出端口作出响应。如果在测试中出现故障,一般检查的顺序是先利用示波器检查复位电路的电平,复位电平的波形和时间,再检查CPU的晶振电路是否有符合要求的振荡波形,再观察译码电路的输入输出电平,以及数据线、地址线、读写线的波形是否正常,特别是锁存器和各器件的片选端的波形。一般通过这些波形的测试基本就可以排除单片机及外围电路的问题,基本完成硬件测试。

5.3系统软件调试

软件程序的调试主要是对所编程序的验证,软件调试有很多种方法,例如先分块后组合、先单步后连续等,本节主要介绍该设计在软件调试中用到的方法以及调试中出现的问题。

5.3.1软件环境

使用南京伟福公司的仿真调集成软件包,它集编辑、编译、连接、跟踪调试于一体。程序在烧写进单片机前,必须将它送入计算机(编辑)、编译(或汇编)、连接,生成.HEX文件,经过模拟运行(单步执行、断点执行等),即软件仿真调试,无误后再烧写,这样可提高开发效率。伟福6000主界面如图所示。

用单片机AT89S52设置智能电子秤

图5-1 伟福操作环境

5.3.2软件调试

软件调试是通过对用户程序的汇编、连接和执行来发现程序中的语法错误与逻辑错误,并加以排除和纠正的过程。软件调试的方法一般是先独立后联机、先分块后组合、先单步后连续。

在使用WAVE软件时,调试的方法比较多,不同的情况采用不同的调试方法,有助于程序的实现。在设计过程中显示运行结果一般都用全速调试。调试时主要使用了跟踪调试、单步调试和断点调试。

跟踪调试:单步执行一条语句程序,跟踪应用程序用户能够在运行应用程序时,看到PC指针在应用源代码程序中的确切位置,有利于观察变量。如果调用一个函数,进入函数中,并在函数中单步执行每一条语句。跟踪使用热键F7。

单步调试:原理通跟踪调试相同,但是调用一个函数时,不进入函数中。单步使用热键F8。

断点调试:如果已知程序中某块代码实际运行正常的情况下,仍用单步调试或跟踪调试,将大大浪费时间,因此可以在源代码中预定处设置断点,大多数调试程序通过使用断点中止程序执行。在指定行上设置断点以后,全速执行程序,看是否能进行到设置断点处,这样便于观察程序是否跑非或进入死循环。设置断点热键Ctrl+F8。

在程序调试的过程中我先将子程序进行调试,然后是将各个子程序连接到一起进行的调试,把系统的各个子程序的调试分为:LCD显示子程序、A/D转换子程序、运算放大电路子程序。

1.LCD显示子程序

首先应了解LCD液晶的时序及各个控制命令字,将单个汉字或字母用取模软件取模后,通过编程将该汉字或字母在液晶上显示,以此类推,将整个初始画面在液晶上逐个显示,若都能正常显示则说明程序没有问题,反之就需要我们继续的检查是那里出现了问题读写时序编写的是否正确,通过这些问题的考虑,查找到在那里出现了问题,找出解决办法。

2.A/D转换子程序

在进行A/D转换时,总是不进中断,后来发现是硬件问题。在对采集到的值作处理时,我先用的均值法,就是连续采值,再做平均值,再将这个平均值放大,这样就得出当时光线的强弱。

3.运算放大电路子程序

在压力的检测过程中由于用的瓷片电容,所以涉及到精度对测量值的影响,其中必会存在一定的误差,单片机在采集频率时能否及时响应,我将采集到的数据作放大处理,再和资料上的实际数据做对比,若差距不大则证明程序可以正常使用。

5.4系统联调

系统联调是指软件在硬件系统上的运行,进行软硬联调,主要是为了发现硬件故障或软、硬件设计错误。

系统联调时,要将各模块组合到一起。系统联调时,主要也是采取单步、断点、连续运行方式调试与硬件相关的程序段。将软、硬件按系统工作要求进行综合运行,采用全速断点、连续运行的方式进行总调试,以解决在系统总体运行的情况下软、硬件的协调,从而提高系统的动态性能。当用WAVE完全仿过去以后,就将程序烧进单片机中,但是不要忘记时钟和复位电路的调试,因为用WAVE时用的是它的内部时钟。全部调试都通过以后,再将单片机插到系统上就可正确工作。

5.5本章小结

本章首先介绍了本系统的软件设计,用图文的方式说明了各部分的设计思想,并介绍了本次设计中所用到硬件和软件环境及一些调试方法和技巧,之后对硬件和软件调试部分做了详细说明。并完成了本系统的整体测试,整个系统的预期功能都已实现。阅读本章可对本系统设计的整个调试过程有全面的了解。

结论

智能电子秤以具有良好的可靠性、准确性、技术先进性和结构简单等特点,受到广大用户的青睐。在商业活动中用途越来越广,给人们的经济生活带来了便利。

采用AT89S52 单片机设计的电子计重秤, 无论是计量精度, 还是稳定性都满足国家对A 级电子秤的要求, 它具有较好的标定校准方法, 性能稳定, 操作简单, 价格低廉。同时通过硬件的少量扩展和软件的修改, 能设计出性能优越的计价秤、电子台秤等, 满足各行各业对现代电子衡器的需求。

单片机控制的电子秤集传感器技术、微计算机技术、数字显示技术于一体、其反应灵敏、准确度高、显示直观,便于使用。另外稍加扩展,该电子秤还可与其它生产质量管理系统项连接,具有推广应用价值。

电子称重技术是现代称重计量和控制系统工程的重要基础之一。近年来,随着计算机和称重传感器技术的迅速发展,现代科学技术的相互渗透,电子称重技术及应用又有了新发展。称重技术从静态称重向动态称重发展;计量方法从模拟测量向数字测量发展;测量特点从单参数测量想多参数测量发展特别是对快速称重和动态称重的研究与应用,已为世界各国所关注。可以说电子称重技术的发展水平,已成为衡量一个国家科学技术水平和工业发达程度的重要标志之一。

下面就电子秤软件组成部分展望一下它的发展:

(1)、智能化:本系统中虽然利用单片软件实现一些简单的功能,我们可以将其与电子计算机组合,开发称重用计算机,利用计算机功能使电子秤具有推理、判断、自诊断、自适应、自组织等功能。

(2)、综合性:本系统中虽然利用软件实现称重、计价、显示,但远远不够,电子称重技术发展规律就是不断的加强基础扩大应用,扩展新技术领域,向相邻学科和行业渗透,综合各种技术去解决称重计量、自动控制、信息处理,与计算机网络组合可以显示很多商业信息,构成一个完整的综合控制系统。

(3)、组合性:未来称重系统会大量应用在工业计量过程和工艺流程中,其要求组合性,即测量范围可以任意设定;硬件能够依据一定的工作条件和环境作某些调整;软件能按一定的程序进行修改和扩展;输入输出数据与指令可以使用不同的语言和条形码,并能与外部的控制和数据处理设备进行通信。

在整个毕业设计过程中,我对大学四年所学的知识有了一个系统的认识和理解,尤其是对本课题所用到的单片机及其相关知识有了进一步的掌握,对利用单片机进行控制系统的设计与开发又及对系统的分析和问题的解决有了切身的认识和体会,正所谓学以致用,在此实践过程中增长了知识、丰富了经验,提高了解决问题的能力。系统的分析与设计过程是对学习的总结过程,更是进一步学习和探索的过程。控制系统的开发设计是一项复杂的系统工程,必须严格按照系统分析、系统设计、系统实施、系统运行与调试的过程来进行。系统的分析和设计是项很辛苦的工作,同时也是一个充满乐趣的过程,在设计过程中,要边学习,边实践,遇到新问题就不断探索和努力即可使问题得到解决。

理论和实际必须紧密结合,在设计中要针对不同的系统根据理论给与不同的方案,综合考虑各方面的因素和需要,选择出最佳的方案与结论。要大量广泛的收集资料,然后认真地研究其思路,和指导老师保持联系,和同学共同研究遇到的问题,坚持笑到最后。

致谢

经过半年的忙碌和工作,本次毕业设计己经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的.

在这里要感谢我的导师高洪志老师。他平日里工作繁多,但在我做毕业设计的每个阶段,从外出实习到查阅资料,设计草案的确定和修改,中期检查,后期详细设计,电路草图等整个过程中都给予了我悉心的指导。我的设计较为复杂烦琐,但是老师仍然细心地纠正电路中的错误。除了敬佩老师的专业水平外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。

最后还要感谢大学四年来所有的老师,为我们打下专业知识的基础:同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励,此次毕业设计才会顺利完成。

参考文献

1 ZHAO Mao-tai. Principle and application of intelligent instruments. Beijing.

Electronic Industry Publishing House.2004

2 He Limin. Microcontroller applications Collected Works. Beijing University of

Aeronautics and Astronautics Press.1994

3 Cabi years. Yu Park. Sensor technology. Southeast University Press.2000

4 Shan Chengxiang. Sensor theoretical design basis for its application. Beijing.

National Defense Industry Press.2001

5 Li Tao-hua.Li Ling.Zhu. Sensor circuit analysis and application. Wuhan.

Wuhan University Press.2000

6 沙占友.王彦朋等.智能传感器系统设计与应用.北京.电子工业出版社.2004

7 何希才.薛永毅.传感器及其应用实例.北京机械工业出版社.2004.

8 李群芳.单片机微型计算机与接口技术.电子工业出版社.2005

9 周立功.单片机实验与实践.北京航空航天大学出版社.2004

10 张毅刚.MSC-51单片机应用设计.第3版哈尔滨工业大学出版社.2008

11 何立民.单片机高级教材.北京.航空航天大学出版社.2000

12 童诗白.华成英.模拟电子技术基础.北京.北京高等教育出社.2001

13 程林超.省电型电子秤的设计方案福建.福建省计量科学技术研究所.2008

14 徐爱钧.单片机高级语言C51应用程序设计.电子工业出版社.1998

15 杨恢先.黄辉先.单片机原理及应用.人民邮电出版社.2006

附录1

A/D conversion chip ADC0832 Application

After the signal amplifier is an analog signal that is analog need to turn it into a digital control system can be accepted into the MCU, so the need for A / D conversion circuit. ADC0832 chosen in this experiment as A / D converter, ADC0832 has the following characteristics:

● 8-bit resolution;

● Dual-channel A / D conversion;

● input and output level and TTL / COMS compatible;

● 5-volt power supply when the input voltage between 0 ~ 5V;

● operating frequency is 250KHZ, conversion time of 32μs;

● the general power consumption is only 15mW;

● 8P, 14P-DIP (dual in-line), PICC a variety of packages;

● Commercial-on-chip temperature 0 ℃ ~ 70 ℃, industrial-chip temperature of -40 ℃ ~ 85 ℃;

ADC0832 8 of resolution A / D conversion chip, with a maximum resolution of up to 256 can be adapted to the general analog conversion requirements. Its internal power supply and reference voltage of the reset, making the chip analog voltage input 0 ~ 5V. Chip conversion time of only 32μs, with dual data output can be used as data validation, in order to reduce data errors, the conversion is fast and highly reliable, stand-alone chip enable input, so hooking and processor control of multiple devices has become more convenient . Data input through the DI, you can easily achieve the channel function choice.

Under normal circumstances ADC0832 interface with the MCU should be four data lines, namely, CS, CLK, DO, DI. But DO side with the DI does not end at the same time, effective when communicating with the microcontroller interface is bi-directional, so the circuit design can be DO and DI in parallel with a data line to use.

When the ADC0832 is not working its CS input should be high at this time chip is disabled, CLK and DO / DI's level can be arbitrary, when the drug for A / D conversion, the CS must first enable terminal in low - and maintain low level until the end of conversion, this time chip to start the conversion work, accompanied by a chip, processor chip is always input to the CLK input is always pulses, DO / DI client uses DI-ended input channels feature selection data signals. Sink in the first clock pulse must be high before the DI side, indicating the signal revelation. In the first 2,3-pulse sink DI-side should be entered before the data used to select 2 channel function.

When the two data bits "1" "0", the only single-channel CH0 to convert. When the 2-bit data bit "1" "1", the only single-channel CH1 to conversion, when the 2-bit data "0" "0", it will CHO as a positive input IN +, CH1 as the negative input IN-be input. When the 2-bit data "0" "1", it will CHO as a negative input IN-, CH1 as a positive input IN + for input.

To the first three pulses after the sinking DI input level on the side of the role of loss of input, then DO / DI-side, has begun to use the data to convert the data output DO read. Sinking pulses from the first four start-ended output conversion data from the DO highest DATA7, followed by a pulse for each sink under a DO-ended output data. Pulse until the 11th issue of the minimum-bit data DATA0, 1 byte of data output to complete. It is also from this place is beginning to export the next byte of data on the contrary, that is, from the first 11 bytes of sinking output DATD0. Then the output 8-bit data, to the first 19 pulse data output to complete, also marks the first A / D conversion end. Finally, the set CS high to disable chip, directly after the data conversion processing on it.

A/D转换芯片ADC0832的应用

经过放大电路的信号是模拟信号即模拟量,需要把它变成数字量才能送入单片机控制系统受理,所以需要有A/D转换电路。本次试验选用ADC0832作为A/D转换器,ADC0832具有以下特点:

(1)、8位分辨率;

(2)、双通道A/D转换;

(3)、输入输出电平与TTL/COMS相兼容;

(4)、5伏电源供电时输入电压在0~5V之间;

(5)、工作频率为250KHZ,转换时间为32μs;

(6)、一般功耗仅为15mW;

(7)、8P、14P—DIP(双列直插)、PICC多种封装;商用级芯片温度为0℃~70℃,工业级芯片温度为-40℃~85℃;

ADC0832为8为分辨率A/D转换芯片,其最高分辨率可达256级,可以适应一般的模拟量转换要求。其内部电源和参考电压的复位,使得芯片的模拟电压输入在0~5V。芯片转换时间仅为32μs,具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性强,独立的芯片使能输入,使多器件挂接和处理器控制变得更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。

正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI.但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。

当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意,当药进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换结束,此时芯片开始转换工作,同时由芯片处理器向芯片始终输入端CLK输入始终脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第一个时钟脉冲下沉之前DI端必须是高电平,表示启示信号。在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能。当此2位数据位“1” “0”时,只对CH0进行单通道转换。当2位数据位“1”“1”时,只对CH1进行单通道转换,当2位数据为“0”“0”时,将CHO作为正输入端IN+,CH1作为负输入端IN-进行输入。当2位数据为“0”“1”时,将CHO作为负输入端IN-,CH1作为正输入端IN+进行输入。

到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。

附录2

电路原理图

用单片机AT89S52设置智能电子秤

用单片机AT89S52设置智能电子秤

用单片机AT89S52设置智能电子秤

附录3

部分源程序

void LcmClear( void ) //液晶清屏

{

Page = 0;

Col = 0;

for(Page=0;Page<8;Page++)

for(Col=0;Col<128;Col++)

WriteData(0);

}

void LcmInit( void ) //液晶初始化

{

WriteCommand1(0x3f); //开显示

WriteCommand2(0x3f);

WriteCommand1(0xc0); //设置起始地址=0

WriteCommand2(0xc0);

WriteCommand1(0x3f); //开显示

WriteCommand2(0x3f);

LcmClear();

Col = 0;

Page= 0;

}

void shuzhi( unsigned char HZcode,unsigned

提醒:《用单片机AT89S52设置智能电子秤》最后刷新时间 2024-03-14 01:19:03,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《用单片机AT89S52设置智能电子秤》该内容的真实性请自行鉴别。