AVR单片机

0 引言

随着电子技术和自动化测量技术的不断发展,传统的称重系统在功能、精度、性价比等方面已难以满足人们的需要,尤其在智能化、便携式、对微小质量的测量方面更显得力不从心。近年来,新型单片机的出现和集成电路技术的发展为更新产品设计,研制高性价比的称重控制器提供了条件。本设计采用为控制核心,结合电阻应变式压力传感器和相应的信号采集电路,设计出一种高精度、多功能、低成本的新型电子秤。

1 系统总体设计

首先由称重传感器采集因压力变化而产生的电压信号,通过A/D转换器将模拟信号转换为数字信号,把数字信号送入AVR单片机,单片机做相应的处理后,得到当前物体重量的数据,并通过LCD显示出来。系统硬件结构如图1所示。

基于AVR单片机的数字电子秤的设计

系统硬件电路包括A/D转换模块、4×4矩阵键盘模块、LCD模块和蜂鸣器报警模块;软件模块又可分为主程序模块、矩阵键盘扫描模块、A/D转换模块和LCD1602模块。

2 系统硬件设计

2.1 AVR单片机

本设计是选用AVR系列单片机中的ATmega16作为微控制器。ATmega16是基于增强型AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集和单时钟周期指令执行时间,ATmega16L的数据吞吐量高达1MIPS/MHz,在片内集成了16kB的可编程FLASH,512B的E2PROM,1kB的片内SDRAM。在外设方面,具有两个可编程的串行UART,8路10位ADC,四通道PWM,并支持SPI、TWI、JTAG接口,允许ATmega16L和其他外设进行高速的数据传输。

2.2 称重传感器

电阻应变式称重传感器是把电阻应变计粘贴在弹性敏感元件上,然后以适当方式组成电桥的一种将力(重量)转换成电信号的传感器。在电阻应变式称重传感器中通过桥式电路将电阻的变化转换为电压变化。电阻应变式称重传感器工作原理如图2所示。

基于AVR单片机的数字电子秤的设计

本设计选用湖南宇航公司的SB-B型悬臂式称重传感器,额定量程5kg,灵敏度3mv/V,非线性误差0.03%ES,重复性误差0.02%ES,蠕变(30分钟)O.03%F.S,零点温度漂移0.03%F.S./10℃,温度补偿范围-10~60℃。该系列传感器采用悬臂单剪切结构,过载能力强,受力后自动调心好,具有精度高、长期稳定性好、抗疲劳、抗偏载能力强的特点。

2.3 高精度A/D转换

称重传感器输出的是mV级的电压信号,本设计采用AD7705对信号进行采集。AD7705是AD公司推出的一种基于∑-△转换技术的16位A/D转换芯片,它具有高分辨率、宽动态范围、自校准、优良的抗噪声性能以及低电压、低功耗等特点,适合于称重系统中微机信号处理的需求。其具有可编程增益放大器,增益范围1~128,可与压力传感器直接相连,使用同步串行SPI接口,可以与AVR单片机的硬件SPI接口直接相连,其电路连接图如图3所示。

基于AVR单片机的数字电子秤的设计

当传感器加上满量程重量5kg时,传感器在5V的工作电压下取得15mV的输出电压。5V工作电压经分压后为AD7705提供基准电压,因此工作电压的变化不会产生系统误差。分压电阻为24kΩ和15kΩ,产生的基准电压为1.92V。当器件的可编程增益为128时,对应的满量程输入电压即为15mV。

2.4 人机通讯

人机通讯包括键盘扫描、LCD、蜂鸣器报警三个部分,键盘采用4×4矩阵扫描键盘,接在单片机的PC口;显示部分采用的是LCD1602液晶,能够同时显示16×2即32个字符。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,编程时可以用AS-CII码直接赋值,还可以用字符型常量或变量赋值;蜂鸣器的作用是当称重物品超出传感器的量程时,以鸣响报警提示用户。

基于AVR单片机的数字电子秤的设计

3 系统软件设计

系统软件开发平台为WinAVR,开发语言为C语言。为了方便程序调试和提高可靠性,程序设计采用自上而下、模块化、结构化的程序设计方法。本设计按任务模块划分的程序主要有初始化程序、主程序、A/D转换子程序、LCD显示子程序、键盘扫描子程序。

系统工作时分为初始界面模式和称重模式,可设一标志位进行更改以及判断。在初始界面中,液晶屏第一行显示"Place object!”,提示用户可以在电子秤上放置想要称重的物品;第二行显示"PrICe:”,提示用户输入物品的单价。

随后系统进入键盘扫描状态,当相应的称重按键被按下时,单片机控制AD7705进行AD转换,把得到的结果进行处理后通过LCD显示出来。显示包括物品的重量和总价,称重精度为1g。以此不断地循环完成对物品的实时测量。主程序流程图如图5所示。

基于AVR单片机的数字电子秤的设计

4 结束语

文章提出了一种基于ATmega16单片机的的设计,充分发挥了AVR单片机的强大的控制能力,通过称重传感器和16位的AD7705转换器实现了对重量的高精度测量,具有成本低、稳定性强、电路简单等特点。系统在电子秤的实际应用中得到了满意的效果。

来源: 捷配电子

围观 266

伪指令不属于单片机的指令系统,而是由汇编器提供的指令,用于调整存储器中程序的位置、定义宏、初始化存储器等。AVR单片机的汇编器共提供18条伪指令(见附表)。

AVR单片机汇编器伪指令

其中,ORG、DB、DW、EQU读者比较熟悉,这里不再赘述。下面对部分伪指令加以说明。
  
BYTE-保存单字节数据到SRAM中。BYTE伪指令仅用在数据存储器。为提供数据保存的位置,在BYTE前应有标号。在由CSEG、ESEG定义的代码段和E2PROM段中不能使用BYTE伪指令。
  
格式LABEL:.BYTE表达式

CSEG-定义程序存储器代码段的起始位置一个汇编文件可以包括若干个代码段,汇编时这些代码段被连成一个代码段。在代码段中不能使用BYTE伪指令。
  
格式.CSEG

DSEG-定义数据段的起始位置一个汇编文件,可以包括若干个数据段,汇编时这些数据段被连成一个数据段。数据段等由BYTE伪指令组成。
  
格式.DSEG

ESEG-定义E2PROM段的起始位置一个汇编文件可以包括若干个E2PROM段,汇编时这些EEPROM段被连成一个EEPROM段。在EEPROM段中不能使用BYTE伪指令。
  
格式.ESE

GDEF-为寄存器设置符号名DEF伪指令允许周符号代替寄存器。一个寄存器可以赋多个符号。
  
格式.DEF符号=寄存器

DEVICE-定义使用的器件DEVICE定义程序所使用的器件,若程序中有指定器件不支持的指令,或程序段、E2PROM段超出指定器件的容量,汇编器将给出提示。若不用DEVICE伪指令,则默认器件支持所有指令,也不限制存储器容量。
  
格式.DEVICEAT90S1200|AT90S2313|AT90S4414|AT90S8515

AVR单片机的器件不同,指令的条数不同。
  
AT90S1200有89条最基本指令;Attinyll/12/15/22有90条指令:AT90S2313/2323/2343/2333/4414/4433/4434/8515/90S8534/8535有118条指令;ATmega603/103有121条指令;ATmega161有130条指令。因此在源程序中必须先用伪指令“DEVICE”定义使用的器件名。
  
INCLUDE-包括另外的文件INCLUDE告诉汇编器从指定的文件开。始读,然后汇编该文件,直至文件结束或遇到EXIT伪指令。
  
格式 INCLUDE“文件名”

EXIT-汇编结束若EXIT出现在包括文件中,则从文件中INCLUDE伪指令行继续执行。

来源: 广电电器

围观 483

页面

订阅 RSS - AVR单片机