基于单片机的电子称传感器课程设计 联系客服

发布时间 : 星期六 文章基于单片机的电子称传感器课程设计更新完毕开始阅读

(2) A/D转换结果处理程序

在智能电子秤控制系统中,除了控制单元和执行单元外,还必须有反馈环节。在反馈环节中,最重要的就是对数据的采集[10]。本文以AT89C52单片机为核心,设计一个基于单片机的数据采集系统,通过模拟电压形式输入系统,经双积分A/D转换器ICL7109可以采集12路模拟量,精度为12位,并经多次采样,通过滤波,取得更精确的重量值。

我们在单片机内开辟30H~45H单元存放采样值,工作寄存器0组存放中间参数,R0为地址指针,指向拟以采样值的片内RAM地址;R7存采样次数。利用算术平均值法滤波可以抑制智能电子秤采样时随机干扰。其原理是将8次采样值相加,然后求其平均值作为有效采样值。将8次采样值累加和放在R3、R4、R5中,求的平均值在R4、R5中。

(3) 键盘与显示处理程序

1.键盘扫描

我们知道键盘和显示是人与微机系统打交道的主要设备。键扫描子程序主要判断有无键按下,利用8279的状态字节可判断FIFO RAM中已键入数据的个数或没有输入字符。当状态字节的低四位全为0时,便可判断无键按下。

当判断有键按下后,就转向取键值子程序。首先取出行、列号进行拼装,得到所需的键号。然后与数OAH相比较,从而判断出是功能键还是数字键。若是功能键就转到功能键处理子程序;若是数字键就

调用显示子程序进行显示。

2.显示子程序。

首先置显示缓冲区首址和计数长度,然后取显示数据转换为段选码,送到LED上显示操作者是从显示设备上获取微机系统的信息,因此,操作者每操作一下,显示设备上都应该有一定的反应。这说明,显示模块与操作有关,即监控程序需要调用显示模块。显示模块可以由命令键来驱动或者自动执行模块来驱动 。通常,自动执行模块调用时,只让一处调用显示模块,其他各处不得直接调用显示模块,此时要设置一个显示申请标志,当某模块需要显示时,将申请标志置位,同时设定有关显示内容,将显示模块安排在一个重复执行的循环中。 (4) 数据处理程序

本课题中,A/D转换采用ICL7109芯片,它是12位输出,重量计算要求精确到克,其输出值范围为000000000000B ~111111111111B转换为十进制数0~4096,而系统所要求输出重量范围0~10000g,所以我们进行线性参数的标度变换,AX=(AM/NM)NX。其量化单位为10000/4096=2.44。如下:为使技术方便我们将2.44=244/100,即化为定点数来算。244=11110100B,100=01100100B采样值在R4R5中,并选用工作寄存器1组。

4.系统调试与验证

4.1调试过程

调试分为软件的调试和硬件的调试。软件的调试通过keil软件进行运行调试,因为我们的程序是使用c语言进行的变成,用keil

仿真可以检查语法错误等,并且可以生成hex文件方便硬件调试。硬件调试采用proteus软件进行仿真模拟,proteus功能十分强大,可以实现大部分的硬件仿真包括大部分的单片机,们可以导入hex文件进行单片机的仿真。 4.2仿真结果截图

因为该软件没有传感器,所以我们只能进行一些简单的仿真,重量的称量,我们只能在A/D转换器之后的单片机部分进行仿真,既显示部分。我们只需要在输入端口加入一个数值,然后观察数码管显示的数字。

我使用ds18b20产生一个16位的二进制数当做A/D转换之后输入单片机的数字信号,然后4个数码管可以显示出3位小数的数字即为重量,说明显示模块可用。

图4-1显示模块的仿真

图4-2 晶振电路

图4-3复位电路