实用简易电子称

电子信息实验室开放实验

实用简易电子称

班级:

学号:

姓名: 指导教师:

实验时间:2005年10月10日到

2005年12月25日

摘要:该设计以单片机89S52为核心控制部件,系统的硬件部分包括单片机的最

小系统板,ICL7109组成的数据采集、人机交互界面三大部分。数据采集部分由电阻式应变片、三运放组成的信号的前级处理和A/D转换部分组成。人机界面部分为键盘输入 ,数码管输出,软件部分用汇编语言实现了本设计的全部控制功能,包括基本的称重功能,和发挥部分的显示购物清单的功能。整机系统结构简单,使用方便。功能齐全,精度高,具有一定的开发价值。

关键词:电子称,计价,电阻式应变片,单片机

目录

第一章 系统方案的设计............................................................ 4

1.1电子称的设计要求 .......................................................... 5

1.1.1基本要求 ............................................................ 5

1.1.2 发挥部分 ............................................................ 5

1.2 设计的基本思路............................................................ 5

1.3 系统方案比较和论证........................................................ 5

1.3.1控制器 .............................................................. 5

1.3.2前级放大器 .......................................................... 6

1.3.3 A/D转换器 .......................................................... 6

1.3.4显示输出电路 ........................................................ 6

1.4 系统组成 ................................................................. 8

第二章 单元电路设计.............................................................. 8

2.1 称重传感器................................................................ 8

2.2 前端信号处理.............................................................. 8

2.3 A/D转换电路 .............................................................. 8

2.4主控电路 .................................................................. 9

2.5人机交互截面 .............................................................. 9

2.5.1键盘接口电路 ........................................................ 9

2.5.2 LED数码管显示电路 .................................................. 9

2.6 电源电路 ............................................................... 10

第三章 系统软件的设计........................................................... 11

3.1编程语言 ................................................................. 11

3.2系统软件的设计 ........................................................... 11

3.2.1软件程序流程 ................................................................................................................ 11

3.2.2数据处理 ........................................................... 13

3.2.3译码显示 ........................................................... 13

3.2.4键盘控制 ........................................................... 13

3.3 程序清单.......................................................................................................................... 13

第四章 系统测试 ................................................................ 14

第五章 整机电路 ................................................................................................................................. 14

第六章 设计总结 ................................................................................................................................. 14

参考文献 ........................................................................ 14

附录1 整机电路 ................................................................. 15 附录3 程序清单 ................................................. 错误!未定义书签。

第一章 系统方案的设计

1.1电子称的设计要求

1.1.1基本要求

1)

2)

3)

4) 能用提供的称重传感器设计一个高精度的称重信号检测,调理电路。 设计重量数字显示电路,最大称重为200克,重量误差不大于±1克,分辨率为0.1克。 具有去皮功能。 设计并制作各检测器以及主控器所用直流稳压电源,由单相220V交流电压供电。

1.1.2 发挥部分

能显示购物清单,自拟10种商品名称或代号,清单内容包括:商品名称,数量,单价,金额,本次购物总金额。

1) 使用单片机系统设计。

2) 能设计单价输入,同时显示总价。

3) 设计微型打印机接口,能同时打印品名或品名代码(3种),重量,单价,总价。

4) 其他的创新。

1.2 设计的基本思路

题目要求设计一个实用电子称,按照设计的基本要求,系统可分为三大模块,数据采集模块、控制器模块、人机交互界面模块。其中数据采集模块完成对来自电阻式应变片的电压信号的检测、放大、AD转换。此时的数字信号送给控制器处理,由控制器完成被测物体重量的判断、显示等功能。此部分对软件的设计要求比较高,系统的大部分功能都需要软件来控制。

1.3系统方案比较和论证

1.3.1控制器

方案一 采用现场可编程门阵列(FPGA)为控制核心

采用现场可编程门阵列(FPGA)为控制核心,利用EDA软件编程,下载烧制实现。系统集成于一片Xilinx公司的SpartanⅡ系列XC2S100E芯片上,体积大大减小、逻辑单元灵活、集成度高以及适用范围广等特点,可实现大规模和超大规模的集成电路。

方案二 基于51系列单片机来实现。

目前单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入单片机,由单片机对测量信号进行处理并根据相应的数据关系译码显示出被测物体的重量,原理方框图如图1.3.1所示。

单片机控制适合于功能比较简单的控制系统,而且其具有成本低,功耗低,体积小算术运算功能强,技术成熟等优点. 相比而言采用FPGA测频测量精度高,测量频率范围大,而且编程灵活、调试方便,但是其成本也很高。

由于本系统只是简易的电子称,因此采用单片机已经完全够用,所以我们选择方案二。

1.3.2前级放大器

电阻应变片输出的电压信号为毫伏级,所以对运算放大器要求很高。我们考虑可以采用以下几种方案可以采用:

方案一 利用普通低温漂运算放大器构成多级放大器。

普通低温漂运算放大器构成多级放大器会引入大量噪声。由于A/D转换器需要很高的精度,所以几毫伏的干扰信号就会直接影响最后的测量精度。所以,此中方案不宜采用。

方案二 由高精度低漂移运算放大器构成差动放大器。

差动放大器具有高输入阻抗,增益高的特点,可以利用普通运放(如OP07)做成一个差动放大器。此方案原理图如图1.3.2所示。

图1.3.2 高精度运算放大器电路图

电阻R1、R2电容C1、C2、C3、C4用于滤除前级的噪声,C1、C2为普通小电容,可以滤除高频干扰,C3、C4为大的电解电容,主要用于滤除低频噪声。

优点:输入级加入射随放大器,增大了输入阻抗,中间级为差动放大电路,滑动变阻器R6可以调节输出零点,最后一级可以用于微调放大倍数,使输出满足满量程要求。输出级为反向放大器,所以输出电阻不是很大,比较符合应用要求。

缺点:此电路要求R3、R4相等,误差将会影响输出精度,难度较大。实际测量,每一级运放都会引入较大噪声。对精度影响较大。

方案三 采用专用仪表放大器INA126实现。

此芯片内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。INA126接口如图1.3.3所示。可以通过改变RG的大小来改变放大器的增益。

图1.3.3 INA126外部接线图

仪用运放价格相对比较贵,用三运放构成的仪用放大器,经过电阻的精确配对和细微调整,完全可以达到该题目的要求。

基于以上分析,我们决定采用方案三实现前级放大功能,即制作方便而且精度很好的专用仪表放大器INA126。

1.3.3 A/D转换器

由设计要求可知:A/D转换器精度应在0.1%以下:

8位A/D精度:200g/256=0.781g

12位A/D精度:200g/4096=0.048g

考虑到题目要求分辨率为0.1g,8位A/D无法满足系统精度要求。所以我们需要选择12位或者精度更高的A/D。

方案一 逐次逼近型A/D转换器,如:AD574等。

逐次逼近型A/D转换,一般具有采样/保持功能。采样频率高,功耗比较低,是理想的高速、高精度、省电型A/D转换器件。但是其价格昂贵,考虑到所转换的信号为一慢变信号,逐次逼近型A/D转换器的快速的优点不能很好的发挥,所以此方案并不是理想的选择。

方案二 双积分型A/D转换器:如:ICL7107,ICL7109等。

双积分型A/D转换器精度高,但速度较慢(如:TLC7135),具有精确的差分输入,输入阻抗高(大于10MΩ),可自动调零,超量程信号,全部输出于TTL电平兼容。

双积分型A/D转换器具有很强的抗干扰能力。对正负对称的工频干扰信号积分为零,所以对50HZ的工频干扰抑制能力较强,对高于工频干扰(例如噪声电压)已有良好的滤波作用。只要干扰电压的平均值为零,对输出就不产生影响。尤其对本系统,缓慢变化的压力信号,很容易受到工频信号的影响。故而采用双积分型A/D转换器可大大降低对滤波电路的要求。

作为电子秤,系统对AD的转换速度要求并不高,精度上12位的AD足以满足要求。另外双积分型A/D转换器较强的抗干扰能力和精确的差分输入,低廉的价格。综合的分析其优点和缺点,我们最终选择了方案二,使用ICL7109对信号进行AD转换。。 3

1.3.4显示输出电路

方案一 : 使用LED与字符型LCD相结合显示。但考虑到LCD显示的字符太小,而且亮度不够,不利于顾客观察信息。

方案二 : 全部采用4位一体化数码管显示,数码能显示被测物体的重量,单价总价等信息,此方案显示直观,而且编程简单,电路连线也简单,而且价格便宜。

由上述分析综合,我们采用了方案二,让其各自完成相应的显示任务。

对于打印功能,由于本单片机系统有接有键盘,11个LED,AD接口,已经用去较多的P口,必须对系统接口进行扩展,常用的方法是采用8255,8155,或者8279,但考虑到

这些器件在实际应用中不多,且价格比系统所用的单片机AT89S52还要贵,故否定了这些方案。 本系统使用一片74L154扩展LED位线,用74HC373通过P0口扩展打印机接口,接口经济简单。

1.4系统组成

经过方案比较和论证,最终确定的系统组成框图如图1.4.1所示。从图中可以看到系统的基本工作流程和各单元电路所用到的核心器件,其中控制器ATMEL公司的89S52为核心,基于信号检测,A/D转换、数码管驱动、时钟芯片的选通、键盘控制等模块,其它单元电路在前面都有所介绍。

图1.4.1 电子称系统的组成结构图

第二章 单元电路设计

2.1 称重传感器

按照设计的要求,称重范围0~200g,重量误差不大于±1g,考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重(200g)。采用的是量程为1000g的电阻式应变片

图2.1.1 称重传感器电桥原理图

电阻应变传感器是利用电阻应变原理构成,当外力F直接作用在贴有R1,R2,R3,R4四片应变的弹性体上时,弹性体发生变形,电阻应变片的阻值发生变化,致使电桥发失去平衡,在R1、R3输入额定桥压时,R2、R4上刚有与外力成正比的电压信号输出。输出信号电压可由下式给出:

2.2 前端信号处理

由于称重传感器输出的信号为毫伏级信号,比AD转换器的输入信号低2-3个数量级,故需要设计一个前置放大器。经过方案比较和论证,我们选择了三运放(OP07)搭成的仪用放大器

构成的放大器及,其电路原理图如图2.2.1所示。

图2.2.1 前置放大硬件电路图

图中,通过调节RAD1的阻值来改变放大倍数。其放大增益为

27K3 G1Rp1

微弱信号Vi1和Vi2被分别放大后从最右端的OP07的第6脚输出。A/D转换器ICL7109的输入电压变化范围是-4.096V~+4.096V,传感器的输出电压信号在0~20mv左右,因此放大器的放大倍数在200~300左右,可以调节电位器RP1的阻值实现。由于ICL7109对高频干扰不敏感,所以滤波电路主要针对工频及其低次谐波引入的干扰。因为压力信号变化十分缓慢,所以滤波电路可以把频率做得很低。

2.3 A/D转换电路

ICL7109是一种双积分式4位半单片A/D转换器,其工作原理是将输入电压转换成时间(脉冲宽度信号)或频率I俯冲频率),再通过定时器(计数器)获得数字信号。其主要性能是:

i. 具有高输入阻抗(109Ω),对被测电路几乎没有影响;

ii. 具有自动校零和自动判别信号极性;

iii. 有超、欠输出信号;

iv. 采用位扫描与BCD码输出。

A/D转换电路如图2.3.1所示。由于ICL7109内部没有振荡器,所以需要外接。但

A/D

转换器精度与时钟频率的漂移无关。正向积分时间T1和反向积分时间T2按相同比例增加并不影响测量的结果。为了更好的减少工频干扰,采用外接6M晶振。

图2.3.1 A/D转换电路原理图

由于A/D转换器精度与外接的积分电阻、积分电容的精度无关,故可以降低对元件质量的要求。不过积分电容和积分电容的介质损耗会影响到A/D转换器的精度,所以应采用介质损耗较小的聚丙乙烯电容

2.4主控制电路

本设计以ATEML公司的89S52为控制核心,用单片机的最小系统为控制器,实现电子称的各项功能。

2.5人机交互界面

人机交互界面显示是否直观,直接影响工作效率和顾客的满意程度,困此设计时经多方考虑,我们尽可能将显示界面友好化,由于单片机有很强的处理运算能力,因此可以通过软件适当的减少一些硬件电路。

2.5.1键盘接口电路

由于电子称需要设置单价,这就需要一个清除键和十个数字键,还有去皮等功能,总共需设置14个键(包括一个复位键)。考虑到单片机的P口有限,而各扩展芯片又价格昂贵,因此我们采用4*4行列式键盘结构,这样用一个P2口就可处理16个按键。

2.5.2LED数码管显示电路

其显示的功能主要由软件的设计实现,为了节省系统的资源,本系统采用动态显示。动态显示原理如下:当向LED的段码数据口发送第一个8位数据,这时只有一个数码管显示该数码,延时一段时间后可以发送第二8位数据,显示器分时轮流工作,虽然每次只有一个显示器显示,但由于人的视觉暂留现象,我们仍能感觉到所有显示器都在同时显示。 图2.5.3为显示电路的原理图,考虑到单片机的驱动能力有限,我们采用三极管(9013)驱动数码管,并由74HC154译码器控制位码的选通,只有当使能端G1为1,G2为0时译码器有效。

2.6电源电路

系统需要多个电源,单片机需要+5V电源,传感器需要+10V以上的线性电源(不能用开关电源,否则称重数据不稳定)。我们采用了三端固定稳压芯片7805和7815,7915为系统提供稳定的电源,ICL7109的-5V电源由7905提供。这个部分由整流电路、滤波电路、稳压电路等组成,如图2.7.1所示。图中D为桥式整流管,C1、C2为滤波电容,C3、C4为旁路电容,用以改善负载的瞬态响应。

在这里只给出了+5V电源电路,+12V电源电路与+5V相似,因此不再画出。

J112CON2

对于应变电桥的激励电源,通常有直流稳压供电和直流稳流供电两种。直流稳压电源

供电,对传感器桥路的对称性要求不高,但由于环境温度变化等影响会使引线电阻上的压降随之变化,从而直接影响传感器两端电压的稳定性,因此,本系统的应变电桥采用恒流源恭电,电路十分简单

第三章 系统软件的设计

3.1编程语言

系统采用汇编语言按模块化方式进行设计,汇编语言是面向机器的语言,是最快,最有效的语言,也是能利用单片机所有硬件特性并能直接控制硬件的编程语言

3.2系统软件的设计

根据系统的要求,系统的大部分功能都以硬件为基础,通过汇编编程实现,本设计软件实现的主要能如下 1) 设置单价

2) 显示重量、金额和单价 3) 去皮 4) 总价

3.2.1软件程序流程

系统的主程序流程图如图3.2.1所示,该程序流程图是根据系统软件的工作流程得出

的,它实际上是各个程序模块的集合,如程序初始化包括LCD初始化、7109初始化等。主程序流程图给出了系统工作的基本过程,描述了信号的基本流向,起到一个向导的作用。

图3.2.1 系统主程序流程图

3.2.2数据处理

数据处理包括接收部分,数据RAM,乘法运算等。系统将商品的代号、名称、单价等信息存于数据RAM中,当接收到AD转换器的数据(电压信号)后,将其转化为相应重量数据信号,并将其进行乘法运算得到金额,即

金额=重量×单价

在进行乘法运算得出结果后,各信息送到LED显示。图3.2.3为数据处理模块结构图。

3.2.3. 译码显示

译码显示模块是建立在内部系统和观测人之间的桥梁。通过译码显示,使输出结果可视化,界面友好化。 该部分由LED,主要是将各信息量转换成相应的显示代码。

LED译码模块是将数字量转换为BCD码来驱动数码管。采用动态显示,因此采用管的位码依次选通点亮数码管,通过一个指针指象要显示的内容。 3.2.4 键盘控制

键盘控制电路由16个按键组成,其中数据键10个,控制键6个。键盘控制程序的设计将各按键设置为特定的功能,使用起来十分方便。本程序通过采用线反转法扫描键盘,先让行线编程为输出线,读出列线的数据,再把列线编程为输出线,读出行线的数据,通过读出的两个数据相与,可得到当前的按下键。

3.3 程序清单

见附录。

第四章 系统测试

在系统硬件和软件都安装调试好后,便可以进行软件和硬件的综合测试,并对测试的误差进行分析。

测试仪器清单:四位半电压表MODEL —CDM8045A 示波器SR-75

在系统硬件焊接完成及软件功能仿真、下载成功之后。接下来对整个系统进行调试,其方法如下:

将传感器放平,接好电路,使用自制直流稳压电源为系统电源,为传感器提供8mA电流,不放任砝码时看重量显示是否为零,不为零则调整电位器,使重量值为零,加上不同的砝码,改变放大器的放大倍数,记下显示的重量Mx(Kg)。最后进行系统误差计算。

在测试过程中根据出现的问题改进电路以及程序。反复进行直到成功。

本电子称测试数据如下

表4.3.1 测量结果数据表

可见,本系统的数据完全满足题目设计要求,且把量程扩展到了400g,亦满足题目要求。

第五章

见附录

整机电路

第六章 设计总结

设计采用AT89S52最小系统为控制核心,实现了一款具有特色的实用电子称。通过测试,系统完全达到了设计要求,不但完成了基本要求,发挥部分的要求,并增加了量程扩展创新功能。

经过几天的努力实践,不断的测试,不断的改进电路或程序,最后完成了设计。在设计过程中,我们不仅仅是完成了设计任务,更重要的是学到很多课本上没有的知识,提高了我们的动手能力,锻炼了我们的意志。

参考文献:

《单片机原理及应用》 张毅刚 高等教育出版社 2003

《AT89系列单片机原理与接口技术》王幸之、钟爱琴、王雷、王闪 高等教育出版社 2004 《电子称技术》 施汉谦 宋文敏 中国计量出版社 1996

附录1

附录2:程序清单 org 0000H

AJMP MAIN

ORG 0040H

MAIN: MOV SP,#60H SET EX0 SETB EA

; MOV DPTR,#TABB ; LCALL YANSHI

; LCALL TIAOLING CLR A

MOV 19H,#29H mov 2Ah,A mov 29h,A mov 28h,A MOV 27H,A MOV 26H,A MOV 25H,A MOV 24H,A MOV 43H,A MOV 2FH,A MOV DPTR,#TAB CONTINUE:lcall judge_key LCALL BCO ACALL AD ACALL CHANYU MOV R2,3EH MOV R3,3FH ACALL QUPI ;出口参数在R3R2 ; LCALL AMUL ; LCALL BCD3 ; LCALL ZONG

LCALL YIWEI ACALL BCD

MOV R0,#20H ;赋拆分子程序入口参数 MOV A,R5 ACALL CF

MOV A,R6 ACALL CF MOV R0,#20H ;赋显示子程序入口参数 ACALL LED SJMP CONTINUE

;======================== ICL7109 AD 转换子程序,转换数据放3F,3E

AD: JNB IE0,AD1

MOV P3,#10111111B ;出口参数R3R2,选通低8位 MOV 3EH,P0 ;

MOV P3,#11001111B ;选通高6位 MOV 3FH,P0 ;

MOV P3,#0FFH ;关闭7109输出 CLR IE0 AD1: RET

;===================移位子程序,入口参数R3R2,循环左移位==============================

YIWEI: MOV R7,#04H ; 入口参数R3R2,循环左移位4次 LOOP2: CLR C ; MOV A,R2 ; RLC A ; MOV R2,A ; MOV A,R3 ; RLC A ; MOV R3,A ; DJNZ R7,LOOP2 ; RET

;====================BCD码转换子程序,入口参数R3R2,出口参数R6R5

BCD:

CLR A ;入口参数R3R2,出口参数R6R5 MOV R6,A MOV R5,A

MOV R7,#12 ; 移位12次 LOOP: CLR C MOV A,R2 RLC A MOV R2,A MOV A,R3 RLC A MOV R3,A MOV A,R5 ADDC A,R5 DA A

MOV R5,A MOV A,R6 ADDC A,R6

4次

DA A MOV R6,A

DJNZ R7,LOOP RET

;================字节拆分送显示缓冲区子程序,入口参数A,出口参数指针R0 ================

CF: MOV R7,A ;入口参数A,出口参数指针R0 ANL A,#0FH MOV @R0,A INC R0 MOV A,R7 ANL A,#0F0H SWAP A

MOV @R0,A INC R0 RET

;=========================显示子程序,显示数据指针R0============= LED: MOV R7,#0FH ; 显示内容指针地址R0 LOOP1:MOV A,@R0 MOVC A,@A+DPTR MOV P3,#0FFH MOV P1,A MOV P3,R7

CJNE R7,#1FH,NEXT SETB P1.7 ;

NEXT: CJNE R7,#5FH,NEXT1 SETB P1.7 ; NEXT1:CJNE R7,#9FH,NEXT2 SETB P1.7 ; NEXT2:MOV A,#10H; ADD A,R7 MOV R7,A INC R0

LCALL DELAY

CJNE R7,#0BFH,LOOP1 ; MOV P3,#0FFH RET

; ============延时子程序===================== DELAY : setb rs0

MOV R3,#30 A1: MOV R4,#40 A2: DJNZ R4,A2

DJNZ R3,A1 clr rs0 RET

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH TABB: DB 4FH,4FH,4FH,4FH,4FH,4FH,4FH,4FH,4FH,4FH

;================键盘扫描,判断子程序=================================== judge_key: mov p2,#0fh; mov a,p2

cjne a,#0fh,go1 JB 78H,GO11 LJMP NEXT12 GO11:CLR 78H ajmp OUT1 go1:mov a,p2; cjne a,#0fh,go2 JB 78H,GO12 ajmp NEXT12 GO12:CLR 78H LJMP OUT1 go2: mov p2,#0f0h mov b,p2 loop10: orl a,b

;===================键值判

===================================================================== SETB RS0

SETB RS1 cjne a,#0e7h,K0 ;判断键0 MOV A,#00 SJMP OUTT

K0: cjne a,#0ebh,K1;判断键1 MOV A,#01 SJMP OUTT

K1: cjne a,#0edh,K2;判断键2 MOV A,#02 SJMP OUTT

K2: cjne a,#0eeh,K3;判断键3 MOV A,#03 SJMP OUTT

K3: cjne a,#0d7h,K4;判断键4 MOV A,#04 SJMP OUTT

K4: cjne a,#0dbh,K5;判断键5

MOV A,#05

SJMP OUTT

K5: cjne a,#0ddh,K6;判断键6

MOV A,#06

SJMP OUTT

K6: cjne a,#0deh,K7;判断键7

MOV A,#07

SJMP OUTT

K7: cjne a,#0b7h,K8;判断键8

MOV A,#08

SJMP OUTT

K8: cjne a,#0bbh,K9;判断键9

MOV A,#09

SJMP OUTT

K9: cjne a,#0bdh,K10;判断键小数点

SETB F0

SJMP OUTT

K10: cjne a,#0beh,K11;判断键11清除

MOV 28H,#00H

MOV 29H,#00H

MOV 2AH,#00H

MOV R1,#29H

MOV 43H,#00H

SJMP NEXT12

K11: cjne a,#77h, NEXT12;判断键12去皮

JB 7DH,K11NEXT

CPL 7FH

SETB 7DH

SJMP OUT2

K11NEXT:SJMP OUT2

;K12: cjne a,#7bh, K13;判断键13

; MOV A,#13

; SJMP OUTT

;K13: CJNE a,#7dh, K14;判断键14

; MOV A,#14

; SJMP OUTT

;K14: CJNE a,#7eh,NEXT12;判断键15

; MOV A,#15

OUTT: MOV 45H,A

SETB 78H

OUT2: CLR RS0

CLR RS1

MOV R0,#20H

21

LCALL LED

SETB RS0

SETB RS1

OUTA : LJMP judge_key

OUT1 : MOV A,45H

JNB F0,NEXT10

MOV R1,#28H

DEC 43H

DEC 43H

CLR F0

SJMP NEXT12

NEXT10:INC 43H

MOV 46H,A

MOV A,43H

CJNE A,#02,NEXT11

MOV 2AH,29H

NEXT11:MOV A,46H

MOV @R1,A

NEXT12:CLR RS0

CLR RS1

CLR 7DH

NEXT13: RET

;;===============去皮子程序,皮重放31H,32H===================

QUPI: JNB 7FH,Q1

JNB 7EH,Q2

MOV 32H,R3

MOV 31H,R2

CLR 7EH

SJMP Q2

Q1:SETB 7EH

CLR A

MOV 32H,A

MOV 31H,A

Q2:MOV A,R2

CLR C

SUBB A,31H

MOV R2,A

MOV A,R3

SUBB A,32H

22

MOV R3,A

RET

;====================单价转2进制子程===========================================

BCO: MOV 52H,2AH

MOV 51H,29H

MOV 50H,28H

CLR A

MOV 2CH,A

MOV 2BH,A

BCO1: CLR C

MOV A,28H

SUBB A,#05

MOV 28H,A

MOV A,29H

SUBB A,#5

MOV 29H,A

MOV A,2AH

SUBB A,#2

MOV 2AH,A

JC SMALL

INC 2CH

AJMP BCO1

SMALL:MOV A,2CH

CJNE A,#00H,SMALL2

MOV 2AH,52H

MOV 29H,51H

MOV 28H,50H

SMALL2:MOV A,2AH

MOV B,#100

MUL AB

MOV 2AH,A

MOV A,29H

MOV B,#10

MUL AB

ADD A,2AH

ADD A,28H

MOV 2BH,A

MOV 2AH,52H

MOV 29H,51H

MOV 28H,50H

RET

;=====================开机延时子程序===================================== YANSHI: MOV R5,#50

23 序

YAN3 : MOV R4,#250

YAN2: MOV R6,#100

YAN1: LCALL AD

; LCALL LED

DJNZ R6,YAN1

DJNZ R4,YAN2

DJNZ R5,YAN3

RET

;===================调零子程序========================================

TIAOLING:MOV 53H,3EH

MOV 54H,3FH

MOV A,54H

ANL A,#00010000B

MOV 55H,A

RET

;=====================残余电压,残余电压存放于54H,53H================================================

CHANYU: MOV A,55H

CJNE A,#10H,CHAN1

MOV A,3EH

CLR C

SUBB A,53H

MOV 3EH,A

MOV A,3FH

SUBB A,54H

MOV 3FH,A

CHAN1: MOV A,3EH

ADD A,53H

MOV 3EH,A

MOV A,3FH

ADDC A,54H

MOV 3FH,A

SJMP CHAN2

CHAN2: RET

;;=======================转BCD码子程序,用第一组工作寄存器,入口R7 R2 R3,出口放5BH,5AH,58H========

BCD3: SETB RS0

MOV R7,58H

MOV R2,57H

MOV R3,56H

24

CLR C ;R7,R2 R3左移.移出的

MOV A,R3 ;最高位送CY

RLC A

MOV R3,A

MOV A,R2

RLC A

MOV R2,A

MOV A,R7

RLC A

MOV R7,A

MOV A,R6

ADDC A,R6 ;(R4 R5 R6)*2+CY送R4 R5 R6

DA A ;十进制调整

MOV R6,A

MOV A,R5

ADDC A,R5

DA A

MOV R5,A

MOV A,R4

ADDC A,R4

DA A

MOV R4,A

DJNZ 40H,BCD3 ;循环24次

MOV 5BH,R4

MOV 5AH,R5

MOV 59H,R6

RET

;;;;;;====================总价子程序,(03H,02H)*(2ch,2bh)58H,57H,56H=======================

AMUL:SETB RS0

MOV R2,03H

MOV R3,02H

MOV R6,2CH

MOV R7,2BH

MOV A ,R3

MOV B,R7

MUL AB

XCH A,R7

MOV R5,B

MOV B,R2

MUL AB

ADD A,R5

MOV R6,A

CLR A

25 存放于

ADDC A,B

MOV R5,A

MOV A,R6

MOV B,R3

MUL AB

ADD A,R4

XCH A,R6

XCH A,B

ADDC A,R5

MOV R5,A

MOV 76H,C

MOV A,R2

MUL AB

ADD A,R5

MOV R5,A

CLR A

MOV ACC.0 ,C

MOV C,76H

ADDC A,B

MOV R4,A

MOV 58H,R5

MOV 57H,R6

MOV 56H,R7

CLR RS0

RET

;====================总价送显示缓冲区================ ZONG: MOV A,5BH

ANL A,#0FH

MOV 27H,A

MOV A,5AH

MOV R0 ,#25H

LCALL CF

MOV A,24H

ANL A,#0F0H

SWAP A

MOV 24H,A

RET

END

26

电子信息实验室开放实验

实用简易电子称

班级:

学号:

姓名: 指导教师:

实验时间:2005年10月10日到

2005年12月25日

摘要:该设计以单片机89S52为核心控制部件,系统的硬件部分包括单片机的最

小系统板,ICL7109组成的数据采集、人机交互界面三大部分。数据采集部分由电阻式应变片、三运放组成的信号的前级处理和A/D转换部分组成。人机界面部分为键盘输入 ,数码管输出,软件部分用汇编语言实现了本设计的全部控制功能,包括基本的称重功能,和发挥部分的显示购物清单的功能。整机系统结构简单,使用方便。功能齐全,精度高,具有一定的开发价值。

关键词:电子称,计价,电阻式应变片,单片机

目录

第一章 系统方案的设计............................................................ 4

1.1电子称的设计要求 .......................................................... 5

1.1.1基本要求 ............................................................ 5

1.1.2 发挥部分 ............................................................ 5

1.2 设计的基本思路............................................................ 5

1.3 系统方案比较和论证........................................................ 5

1.3.1控制器 .............................................................. 5

1.3.2前级放大器 .......................................................... 6

1.3.3 A/D转换器 .......................................................... 6

1.3.4显示输出电路 ........................................................ 6

1.4 系统组成 ................................................................. 8

第二章 单元电路设计.............................................................. 8

2.1 称重传感器................................................................ 8

2.2 前端信号处理.............................................................. 8

2.3 A/D转换电路 .............................................................. 8

2.4主控电路 .................................................................. 9

2.5人机交互截面 .............................................................. 9

2.5.1键盘接口电路 ........................................................ 9

2.5.2 LED数码管显示电路 .................................................. 9

2.6 电源电路 ............................................................... 10

第三章 系统软件的设计........................................................... 11

3.1编程语言 ................................................................. 11

3.2系统软件的设计 ........................................................... 11

3.2.1软件程序流程 ................................................................................................................ 11

3.2.2数据处理 ........................................................... 13

3.2.3译码显示 ........................................................... 13

3.2.4键盘控制 ........................................................... 13

3.3 程序清单.......................................................................................................................... 13

第四章 系统测试 ................................................................ 14

第五章 整机电路 ................................................................................................................................. 14

第六章 设计总结 ................................................................................................................................. 14

参考文献 ........................................................................ 14

附录1 整机电路 ................................................................. 15 附录3 程序清单 ................................................. 错误!未定义书签。

第一章 系统方案的设计

1.1电子称的设计要求

1.1.1基本要求

1)

2)

3)

4) 能用提供的称重传感器设计一个高精度的称重信号检测,调理电路。 设计重量数字显示电路,最大称重为200克,重量误差不大于±1克,分辨率为0.1克。 具有去皮功能。 设计并制作各检测器以及主控器所用直流稳压电源,由单相220V交流电压供电。

1.1.2 发挥部分

能显示购物清单,自拟10种商品名称或代号,清单内容包括:商品名称,数量,单价,金额,本次购物总金额。

1) 使用单片机系统设计。

2) 能设计单价输入,同时显示总价。

3) 设计微型打印机接口,能同时打印品名或品名代码(3种),重量,单价,总价。

4) 其他的创新。

1.2 设计的基本思路

题目要求设计一个实用电子称,按照设计的基本要求,系统可分为三大模块,数据采集模块、控制器模块、人机交互界面模块。其中数据采集模块完成对来自电阻式应变片的电压信号的检测、放大、AD转换。此时的数字信号送给控制器处理,由控制器完成被测物体重量的判断、显示等功能。此部分对软件的设计要求比较高,系统的大部分功能都需要软件来控制。

1.3系统方案比较和论证

1.3.1控制器

方案一 采用现场可编程门阵列(FPGA)为控制核心

采用现场可编程门阵列(FPGA)为控制核心,利用EDA软件编程,下载烧制实现。系统集成于一片Xilinx公司的SpartanⅡ系列XC2S100E芯片上,体积大大减小、逻辑单元灵活、集成度高以及适用范围广等特点,可实现大规模和超大规模的集成电路。

方案二 基于51系列单片机来实现。

目前单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入单片机,由单片机对测量信号进行处理并根据相应的数据关系译码显示出被测物体的重量,原理方框图如图1.3.1所示。

单片机控制适合于功能比较简单的控制系统,而且其具有成本低,功耗低,体积小算术运算功能强,技术成熟等优点. 相比而言采用FPGA测频测量精度高,测量频率范围大,而且编程灵活、调试方便,但是其成本也很高。

由于本系统只是简易的电子称,因此采用单片机已经完全够用,所以我们选择方案二。

1.3.2前级放大器

电阻应变片输出的电压信号为毫伏级,所以对运算放大器要求很高。我们考虑可以采用以下几种方案可以采用:

方案一 利用普通低温漂运算放大器构成多级放大器。

普通低温漂运算放大器构成多级放大器会引入大量噪声。由于A/D转换器需要很高的精度,所以几毫伏的干扰信号就会直接影响最后的测量精度。所以,此中方案不宜采用。

方案二 由高精度低漂移运算放大器构成差动放大器。

差动放大器具有高输入阻抗,增益高的特点,可以利用普通运放(如OP07)做成一个差动放大器。此方案原理图如图1.3.2所示。

图1.3.2 高精度运算放大器电路图

电阻R1、R2电容C1、C2、C3、C4用于滤除前级的噪声,C1、C2为普通小电容,可以滤除高频干扰,C3、C4为大的电解电容,主要用于滤除低频噪声。

优点:输入级加入射随放大器,增大了输入阻抗,中间级为差动放大电路,滑动变阻器R6可以调节输出零点,最后一级可以用于微调放大倍数,使输出满足满量程要求。输出级为反向放大器,所以输出电阻不是很大,比较符合应用要求。

缺点:此电路要求R3、R4相等,误差将会影响输出精度,难度较大。实际测量,每一级运放都会引入较大噪声。对精度影响较大。

方案三 采用专用仪表放大器INA126实现。

此芯片内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。INA126接口如图1.3.3所示。可以通过改变RG的大小来改变放大器的增益。

图1.3.3 INA126外部接线图

仪用运放价格相对比较贵,用三运放构成的仪用放大器,经过电阻的精确配对和细微调整,完全可以达到该题目的要求。

基于以上分析,我们决定采用方案三实现前级放大功能,即制作方便而且精度很好的专用仪表放大器INA126。

1.3.3 A/D转换器

由设计要求可知:A/D转换器精度应在0.1%以下:

8位A/D精度:200g/256=0.781g

12位A/D精度:200g/4096=0.048g

考虑到题目要求分辨率为0.1g,8位A/D无法满足系统精度要求。所以我们需要选择12位或者精度更高的A/D。

方案一 逐次逼近型A/D转换器,如:AD574等。

逐次逼近型A/D转换,一般具有采样/保持功能。采样频率高,功耗比较低,是理想的高速、高精度、省电型A/D转换器件。但是其价格昂贵,考虑到所转换的信号为一慢变信号,逐次逼近型A/D转换器的快速的优点不能很好的发挥,所以此方案并不是理想的选择。

方案二 双积分型A/D转换器:如:ICL7107,ICL7109等。

双积分型A/D转换器精度高,但速度较慢(如:TLC7135),具有精确的差分输入,输入阻抗高(大于10MΩ),可自动调零,超量程信号,全部输出于TTL电平兼容。

双积分型A/D转换器具有很强的抗干扰能力。对正负对称的工频干扰信号积分为零,所以对50HZ的工频干扰抑制能力较强,对高于工频干扰(例如噪声电压)已有良好的滤波作用。只要干扰电压的平均值为零,对输出就不产生影响。尤其对本系统,缓慢变化的压力信号,很容易受到工频信号的影响。故而采用双积分型A/D转换器可大大降低对滤波电路的要求。

作为电子秤,系统对AD的转换速度要求并不高,精度上12位的AD足以满足要求。另外双积分型A/D转换器较强的抗干扰能力和精确的差分输入,低廉的价格。综合的分析其优点和缺点,我们最终选择了方案二,使用ICL7109对信号进行AD转换。。 3

1.3.4显示输出电路

方案一 : 使用LED与字符型LCD相结合显示。但考虑到LCD显示的字符太小,而且亮度不够,不利于顾客观察信息。

方案二 : 全部采用4位一体化数码管显示,数码能显示被测物体的重量,单价总价等信息,此方案显示直观,而且编程简单,电路连线也简单,而且价格便宜。

由上述分析综合,我们采用了方案二,让其各自完成相应的显示任务。

对于打印功能,由于本单片机系统有接有键盘,11个LED,AD接口,已经用去较多的P口,必须对系统接口进行扩展,常用的方法是采用8255,8155,或者8279,但考虑到

这些器件在实际应用中不多,且价格比系统所用的单片机AT89S52还要贵,故否定了这些方案。 本系统使用一片74L154扩展LED位线,用74HC373通过P0口扩展打印机接口,接口经济简单。

1.4系统组成

经过方案比较和论证,最终确定的系统组成框图如图1.4.1所示。从图中可以看到系统的基本工作流程和各单元电路所用到的核心器件,其中控制器ATMEL公司的89S52为核心,基于信号检测,A/D转换、数码管驱动、时钟芯片的选通、键盘控制等模块,其它单元电路在前面都有所介绍。

图1.4.1 电子称系统的组成结构图

第二章 单元电路设计

2.1 称重传感器

按照设计的要求,称重范围0~200g,重量误差不大于±1g,考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重(200g)。采用的是量程为1000g的电阻式应变片

图2.1.1 称重传感器电桥原理图

电阻应变传感器是利用电阻应变原理构成,当外力F直接作用在贴有R1,R2,R3,R4四片应变的弹性体上时,弹性体发生变形,电阻应变片的阻值发生变化,致使电桥发失去平衡,在R1、R3输入额定桥压时,R2、R4上刚有与外力成正比的电压信号输出。输出信号电压可由下式给出:

2.2 前端信号处理

由于称重传感器输出的信号为毫伏级信号,比AD转换器的输入信号低2-3个数量级,故需要设计一个前置放大器。经过方案比较和论证,我们选择了三运放(OP07)搭成的仪用放大器

构成的放大器及,其电路原理图如图2.2.1所示。

图2.2.1 前置放大硬件电路图

图中,通过调节RAD1的阻值来改变放大倍数。其放大增益为

27K3 G1Rp1

微弱信号Vi1和Vi2被分别放大后从最右端的OP07的第6脚输出。A/D转换器ICL7109的输入电压变化范围是-4.096V~+4.096V,传感器的输出电压信号在0~20mv左右,因此放大器的放大倍数在200~300左右,可以调节电位器RP1的阻值实现。由于ICL7109对高频干扰不敏感,所以滤波电路主要针对工频及其低次谐波引入的干扰。因为压力信号变化十分缓慢,所以滤波电路可以把频率做得很低。

2.3 A/D转换电路

ICL7109是一种双积分式4位半单片A/D转换器,其工作原理是将输入电压转换成时间(脉冲宽度信号)或频率I俯冲频率),再通过定时器(计数器)获得数字信号。其主要性能是:

i. 具有高输入阻抗(109Ω),对被测电路几乎没有影响;

ii. 具有自动校零和自动判别信号极性;

iii. 有超、欠输出信号;

iv. 采用位扫描与BCD码输出。

A/D转换电路如图2.3.1所示。由于ICL7109内部没有振荡器,所以需要外接。但

A/D

转换器精度与时钟频率的漂移无关。正向积分时间T1和反向积分时间T2按相同比例增加并不影响测量的结果。为了更好的减少工频干扰,采用外接6M晶振。

图2.3.1 A/D转换电路原理图

由于A/D转换器精度与外接的积分电阻、积分电容的精度无关,故可以降低对元件质量的要求。不过积分电容和积分电容的介质损耗会影响到A/D转换器的精度,所以应采用介质损耗较小的聚丙乙烯电容

2.4主控制电路

本设计以ATEML公司的89S52为控制核心,用单片机的最小系统为控制器,实现电子称的各项功能。

2.5人机交互界面

人机交互界面显示是否直观,直接影响工作效率和顾客的满意程度,困此设计时经多方考虑,我们尽可能将显示界面友好化,由于单片机有很强的处理运算能力,因此可以通过软件适当的减少一些硬件电路。

2.5.1键盘接口电路

由于电子称需要设置单价,这就需要一个清除键和十个数字键,还有去皮等功能,总共需设置14个键(包括一个复位键)。考虑到单片机的P口有限,而各扩展芯片又价格昂贵,因此我们采用4*4行列式键盘结构,这样用一个P2口就可处理16个按键。

2.5.2LED数码管显示电路

其显示的功能主要由软件的设计实现,为了节省系统的资源,本系统采用动态显示。动态显示原理如下:当向LED的段码数据口发送第一个8位数据,这时只有一个数码管显示该数码,延时一段时间后可以发送第二8位数据,显示器分时轮流工作,虽然每次只有一个显示器显示,但由于人的视觉暂留现象,我们仍能感觉到所有显示器都在同时显示。 图2.5.3为显示电路的原理图,考虑到单片机的驱动能力有限,我们采用三极管(9013)驱动数码管,并由74HC154译码器控制位码的选通,只有当使能端G1为1,G2为0时译码器有效。

2.6电源电路

系统需要多个电源,单片机需要+5V电源,传感器需要+10V以上的线性电源(不能用开关电源,否则称重数据不稳定)。我们采用了三端固定稳压芯片7805和7815,7915为系统提供稳定的电源,ICL7109的-5V电源由7905提供。这个部分由整流电路、滤波电路、稳压电路等组成,如图2.7.1所示。图中D为桥式整流管,C1、C2为滤波电容,C3、C4为旁路电容,用以改善负载的瞬态响应。

在这里只给出了+5V电源电路,+12V电源电路与+5V相似,因此不再画出。

J112CON2

对于应变电桥的激励电源,通常有直流稳压供电和直流稳流供电两种。直流稳压电源

供电,对传感器桥路的对称性要求不高,但由于环境温度变化等影响会使引线电阻上的压降随之变化,从而直接影响传感器两端电压的稳定性,因此,本系统的应变电桥采用恒流源恭电,电路十分简单

第三章 系统软件的设计

3.1编程语言

系统采用汇编语言按模块化方式进行设计,汇编语言是面向机器的语言,是最快,最有效的语言,也是能利用单片机所有硬件特性并能直接控制硬件的编程语言

3.2系统软件的设计

根据系统的要求,系统的大部分功能都以硬件为基础,通过汇编编程实现,本设计软件实现的主要能如下 1) 设置单价

2) 显示重量、金额和单价 3) 去皮 4) 总价

3.2.1软件程序流程

系统的主程序流程图如图3.2.1所示,该程序流程图是根据系统软件的工作流程得出

的,它实际上是各个程序模块的集合,如程序初始化包括LCD初始化、7109初始化等。主程序流程图给出了系统工作的基本过程,描述了信号的基本流向,起到一个向导的作用。

图3.2.1 系统主程序流程图

3.2.2数据处理

数据处理包括接收部分,数据RAM,乘法运算等。系统将商品的代号、名称、单价等信息存于数据RAM中,当接收到AD转换器的数据(电压信号)后,将其转化为相应重量数据信号,并将其进行乘法运算得到金额,即

金额=重量×单价

在进行乘法运算得出结果后,各信息送到LED显示。图3.2.3为数据处理模块结构图。

3.2.3. 译码显示

译码显示模块是建立在内部系统和观测人之间的桥梁。通过译码显示,使输出结果可视化,界面友好化。 该部分由LED,主要是将各信息量转换成相应的显示代码。

LED译码模块是将数字量转换为BCD码来驱动数码管。采用动态显示,因此采用管的位码依次选通点亮数码管,通过一个指针指象要显示的内容。 3.2.4 键盘控制

键盘控制电路由16个按键组成,其中数据键10个,控制键6个。键盘控制程序的设计将各按键设置为特定的功能,使用起来十分方便。本程序通过采用线反转法扫描键盘,先让行线编程为输出线,读出列线的数据,再把列线编程为输出线,读出行线的数据,通过读出的两个数据相与,可得到当前的按下键。

3.3 程序清单

见附录。

第四章 系统测试

在系统硬件和软件都安装调试好后,便可以进行软件和硬件的综合测试,并对测试的误差进行分析。

测试仪器清单:四位半电压表MODEL —CDM8045A 示波器SR-75

在系统硬件焊接完成及软件功能仿真、下载成功之后。接下来对整个系统进行调试,其方法如下:

将传感器放平,接好电路,使用自制直流稳压电源为系统电源,为传感器提供8mA电流,不放任砝码时看重量显示是否为零,不为零则调整电位器,使重量值为零,加上不同的砝码,改变放大器的放大倍数,记下显示的重量Mx(Kg)。最后进行系统误差计算。

在测试过程中根据出现的问题改进电路以及程序。反复进行直到成功。

本电子称测试数据如下

表4.3.1 测量结果数据表

可见,本系统的数据完全满足题目设计要求,且把量程扩展到了400g,亦满足题目要求。

第五章

见附录

整机电路

第六章 设计总结

设计采用AT89S52最小系统为控制核心,实现了一款具有特色的实用电子称。通过测试,系统完全达到了设计要求,不但完成了基本要求,发挥部分的要求,并增加了量程扩展创新功能。

经过几天的努力实践,不断的测试,不断的改进电路或程序,最后完成了设计。在设计过程中,我们不仅仅是完成了设计任务,更重要的是学到很多课本上没有的知识,提高了我们的动手能力,锻炼了我们的意志。

参考文献:

《单片机原理及应用》 张毅刚 高等教育出版社 2003

《AT89系列单片机原理与接口技术》王幸之、钟爱琴、王雷、王闪 高等教育出版社 2004 《电子称技术》 施汉谦 宋文敏 中国计量出版社 1996

附录1

附录2:程序清单 org 0000H

AJMP MAIN

ORG 0040H

MAIN: MOV SP,#60H SET EX0 SETB EA

; MOV DPTR,#TABB ; LCALL YANSHI

; LCALL TIAOLING CLR A

MOV 19H,#29H mov 2Ah,A mov 29h,A mov 28h,A MOV 27H,A MOV 26H,A MOV 25H,A MOV 24H,A MOV 43H,A MOV 2FH,A MOV DPTR,#TAB CONTINUE:lcall judge_key LCALL BCO ACALL AD ACALL CHANYU MOV R2,3EH MOV R3,3FH ACALL QUPI ;出口参数在R3R2 ; LCALL AMUL ; LCALL BCD3 ; LCALL ZONG

LCALL YIWEI ACALL BCD

MOV R0,#20H ;赋拆分子程序入口参数 MOV A,R5 ACALL CF

MOV A,R6 ACALL CF MOV R0,#20H ;赋显示子程序入口参数 ACALL LED SJMP CONTINUE

;======================== ICL7109 AD 转换子程序,转换数据放3F,3E

AD: JNB IE0,AD1

MOV P3,#10111111B ;出口参数R3R2,选通低8位 MOV 3EH,P0 ;

MOV P3,#11001111B ;选通高6位 MOV 3FH,P0 ;

MOV P3,#0FFH ;关闭7109输出 CLR IE0 AD1: RET

;===================移位子程序,入口参数R3R2,循环左移位==============================

YIWEI: MOV R7,#04H ; 入口参数R3R2,循环左移位4次 LOOP2: CLR C ; MOV A,R2 ; RLC A ; MOV R2,A ; MOV A,R3 ; RLC A ; MOV R3,A ; DJNZ R7,LOOP2 ; RET

;====================BCD码转换子程序,入口参数R3R2,出口参数R6R5

BCD:

CLR A ;入口参数R3R2,出口参数R6R5 MOV R6,A MOV R5,A

MOV R7,#12 ; 移位12次 LOOP: CLR C MOV A,R2 RLC A MOV R2,A MOV A,R3 RLC A MOV R3,A MOV A,R5 ADDC A,R5 DA A

MOV R5,A MOV A,R6 ADDC A,R6

4次

DA A MOV R6,A

DJNZ R7,LOOP RET

;================字节拆分送显示缓冲区子程序,入口参数A,出口参数指针R0 ================

CF: MOV R7,A ;入口参数A,出口参数指针R0 ANL A,#0FH MOV @R0,A INC R0 MOV A,R7 ANL A,#0F0H SWAP A

MOV @R0,A INC R0 RET

;=========================显示子程序,显示数据指针R0============= LED: MOV R7,#0FH ; 显示内容指针地址R0 LOOP1:MOV A,@R0 MOVC A,@A+DPTR MOV P3,#0FFH MOV P1,A MOV P3,R7

CJNE R7,#1FH,NEXT SETB P1.7 ;

NEXT: CJNE R7,#5FH,NEXT1 SETB P1.7 ; NEXT1:CJNE R7,#9FH,NEXT2 SETB P1.7 ; NEXT2:MOV A,#10H; ADD A,R7 MOV R7,A INC R0

LCALL DELAY

CJNE R7,#0BFH,LOOP1 ; MOV P3,#0FFH RET

; ============延时子程序===================== DELAY : setb rs0

MOV R3,#30 A1: MOV R4,#40 A2: DJNZ R4,A2

DJNZ R3,A1 clr rs0 RET

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH TABB: DB 4FH,4FH,4FH,4FH,4FH,4FH,4FH,4FH,4FH,4FH

;================键盘扫描,判断子程序=================================== judge_key: mov p2,#0fh; mov a,p2

cjne a,#0fh,go1 JB 78H,GO11 LJMP NEXT12 GO11:CLR 78H ajmp OUT1 go1:mov a,p2; cjne a,#0fh,go2 JB 78H,GO12 ajmp NEXT12 GO12:CLR 78H LJMP OUT1 go2: mov p2,#0f0h mov b,p2 loop10: orl a,b

;===================键值判

===================================================================== SETB RS0

SETB RS1 cjne a,#0e7h,K0 ;判断键0 MOV A,#00 SJMP OUTT

K0: cjne a,#0ebh,K1;判断键1 MOV A,#01 SJMP OUTT

K1: cjne a,#0edh,K2;判断键2 MOV A,#02 SJMP OUTT

K2: cjne a,#0eeh,K3;判断键3 MOV A,#03 SJMP OUTT

K3: cjne a,#0d7h,K4;判断键4 MOV A,#04 SJMP OUTT

K4: cjne a,#0dbh,K5;判断键5

MOV A,#05

SJMP OUTT

K5: cjne a,#0ddh,K6;判断键6

MOV A,#06

SJMP OUTT

K6: cjne a,#0deh,K7;判断键7

MOV A,#07

SJMP OUTT

K7: cjne a,#0b7h,K8;判断键8

MOV A,#08

SJMP OUTT

K8: cjne a,#0bbh,K9;判断键9

MOV A,#09

SJMP OUTT

K9: cjne a,#0bdh,K10;判断键小数点

SETB F0

SJMP OUTT

K10: cjne a,#0beh,K11;判断键11清除

MOV 28H,#00H

MOV 29H,#00H

MOV 2AH,#00H

MOV R1,#29H

MOV 43H,#00H

SJMP NEXT12

K11: cjne a,#77h, NEXT12;判断键12去皮

JB 7DH,K11NEXT

CPL 7FH

SETB 7DH

SJMP OUT2

K11NEXT:SJMP OUT2

;K12: cjne a,#7bh, K13;判断键13

; MOV A,#13

; SJMP OUTT

;K13: CJNE a,#7dh, K14;判断键14

; MOV A,#14

; SJMP OUTT

;K14: CJNE a,#7eh,NEXT12;判断键15

; MOV A,#15

OUTT: MOV 45H,A

SETB 78H

OUT2: CLR RS0

CLR RS1

MOV R0,#20H

21

LCALL LED

SETB RS0

SETB RS1

OUTA : LJMP judge_key

OUT1 : MOV A,45H

JNB F0,NEXT10

MOV R1,#28H

DEC 43H

DEC 43H

CLR F0

SJMP NEXT12

NEXT10:INC 43H

MOV 46H,A

MOV A,43H

CJNE A,#02,NEXT11

MOV 2AH,29H

NEXT11:MOV A,46H

MOV @R1,A

NEXT12:CLR RS0

CLR RS1

CLR 7DH

NEXT13: RET

;;===============去皮子程序,皮重放31H,32H===================

QUPI: JNB 7FH,Q1

JNB 7EH,Q2

MOV 32H,R3

MOV 31H,R2

CLR 7EH

SJMP Q2

Q1:SETB 7EH

CLR A

MOV 32H,A

MOV 31H,A

Q2:MOV A,R2

CLR C

SUBB A,31H

MOV R2,A

MOV A,R3

SUBB A,32H

22

MOV R3,A

RET

;====================单价转2进制子程===========================================

BCO: MOV 52H,2AH

MOV 51H,29H

MOV 50H,28H

CLR A

MOV 2CH,A

MOV 2BH,A

BCO1: CLR C

MOV A,28H

SUBB A,#05

MOV 28H,A

MOV A,29H

SUBB A,#5

MOV 29H,A

MOV A,2AH

SUBB A,#2

MOV 2AH,A

JC SMALL

INC 2CH

AJMP BCO1

SMALL:MOV A,2CH

CJNE A,#00H,SMALL2

MOV 2AH,52H

MOV 29H,51H

MOV 28H,50H

SMALL2:MOV A,2AH

MOV B,#100

MUL AB

MOV 2AH,A

MOV A,29H

MOV B,#10

MUL AB

ADD A,2AH

ADD A,28H

MOV 2BH,A

MOV 2AH,52H

MOV 29H,51H

MOV 28H,50H

RET

;=====================开机延时子程序===================================== YANSHI: MOV R5,#50

23 序

YAN3 : MOV R4,#250

YAN2: MOV R6,#100

YAN1: LCALL AD

; LCALL LED

DJNZ R6,YAN1

DJNZ R4,YAN2

DJNZ R5,YAN3

RET

;===================调零子程序========================================

TIAOLING:MOV 53H,3EH

MOV 54H,3FH

MOV A,54H

ANL A,#00010000B

MOV 55H,A

RET

;=====================残余电压,残余电压存放于54H,53H================================================

CHANYU: MOV A,55H

CJNE A,#10H,CHAN1

MOV A,3EH

CLR C

SUBB A,53H

MOV 3EH,A

MOV A,3FH

SUBB A,54H

MOV 3FH,A

CHAN1: MOV A,3EH

ADD A,53H

MOV 3EH,A

MOV A,3FH

ADDC A,54H

MOV 3FH,A

SJMP CHAN2

CHAN2: RET

;;=======================转BCD码子程序,用第一组工作寄存器,入口R7 R2 R3,出口放5BH,5AH,58H========

BCD3: SETB RS0

MOV R7,58H

MOV R2,57H

MOV R3,56H

24

CLR C ;R7,R2 R3左移.移出的

MOV A,R3 ;最高位送CY

RLC A

MOV R3,A

MOV A,R2

RLC A

MOV R2,A

MOV A,R7

RLC A

MOV R7,A

MOV A,R6

ADDC A,R6 ;(R4 R5 R6)*2+CY送R4 R5 R6

DA A ;十进制调整

MOV R6,A

MOV A,R5

ADDC A,R5

DA A

MOV R5,A

MOV A,R4

ADDC A,R4

DA A

MOV R4,A

DJNZ 40H,BCD3 ;循环24次

MOV 5BH,R4

MOV 5AH,R5

MOV 59H,R6

RET

;;;;;;====================总价子程序,(03H,02H)*(2ch,2bh)58H,57H,56H=======================

AMUL:SETB RS0

MOV R2,03H

MOV R3,02H

MOV R6,2CH

MOV R7,2BH

MOV A ,R3

MOV B,R7

MUL AB

XCH A,R7

MOV R5,B

MOV B,R2

MUL AB

ADD A,R5

MOV R6,A

CLR A

25 存放于

ADDC A,B

MOV R5,A

MOV A,R6

MOV B,R3

MUL AB

ADD A,R4

XCH A,R6

XCH A,B

ADDC A,R5

MOV R5,A

MOV 76H,C

MOV A,R2

MUL AB

ADD A,R5

MOV R5,A

CLR A

MOV ACC.0 ,C

MOV C,76H

ADDC A,B

MOV R4,A

MOV 58H,R5

MOV 57H,R6

MOV 56H,R7

CLR RS0

RET

;====================总价送显示缓冲区================ ZONG: MOV A,5BH

ANL A,#0FH

MOV 27H,A

MOV A,5AH

MOV R0 ,#25H

LCALL CF

MOV A,24H

ANL A,#0F0H

SWAP A

MOV 24H,A

RET

END

26


相关文章

  • 实用电子小制作150例电子书
  • 实用电子小制作150例 作者:杨邦文编著 出版日期:1995 页数:181 关键词:电子器件 制作 杨邦文 分类: 计算机通信 >总论 隐藏目录 章节目录 目录 1.光控断电开关 2.光控照明器 3.光电自动控制器 4.路灯自动点灯装 ...查看


  • 全国电子设计大赛题目分析
  • 第6章 全国大学生电子设计竞赛题目与 分析 6.1 全国大学生电子设计竞赛简介 6.1.1 总则 1.指导思想与目的 全国大学生电子设计竞赛是教育部倡导的大学生学科竞赛之一,是面向大学生的群众性科技活动,目的在于推动高等学校促进信息与电子类 ...查看


  • 航模比赛行事例
  • 关于印发2011年义乌市中小学科技运动会 航模比赛创新大赛行事历的通知 各中小学: 根据教育局•关于印发†2011年义乌市中小学科技运动会规程‡的通知‣(义教基„2011‟1号)精神,2011年义乌市中小学科技运动会航模比赛和创新大赛定于1 ...查看


  • 小学生发明的六个科技小制作 简单又实用!
  • 一组龙岩市胡文虎小学学生发明的科技小制作,包括车辆超载报警器.多功能防风晾衣架.自动给水器.捡球器.声光婴儿报尿器.简易捕鼠器.虽然看着有点简陋,但却蕴含了小朋友们的聪明才智,步桐觉得都还挺实用的. 车辆超载报警器 三(3)班:王新良 指导 ...查看


  • 简易电子琴课程设计
  • 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 信息工程学院 题 目: 简易电子琴电路的设计仿真与实现 初始条件: 可选元件:集成运算放大器LM324.电阻.电位器.电容若干,直流电源,或自备元器件. 可用仪器:示波器,万用 ...查看


  • 14电气模拟电路课程设计题目及要求(全)
  • 附件1: 贺州学院课程考核试卷(课程设计) (2014--2015学年第2学期) 课程名称:电子技术课程设计 开课单位:机械与电子工程学院 考核年级.专业:2014级电气工程及其自动化1班.2班 任课教师:杨建湘 <电子技术课程设计& ...查看


  • 基于AT89S52单片机的简易数字示波器设计
  • 摘要:介绍一种双通道简易数字示波器的设计方案,以AT89S52单片机作为控制核心,输入信号在经过预处理电路处理后,通过高速A/D转换器ADC0809,实现信号的实时采样.数据处理.存储并在液晶上显示,并用键盘做功能设置.该设计创新地实现了波 ...查看


  • 论如何制作简易实用的液力偶合器拆卸工具
  • 第19卷第7期 2006年7月 文章编号 :10072290X(2006)0720073202 广东电力 GUANGDONGELECTRICPOWERVol119No17 Jul12006 论如何制作简易实用的液力偶合器拆卸工具 祁峰 (妈 ...查看


  • 靖远车间五一登山活动简易总流程
  • 靖远车间五一登山活动流程 时间:2016年4月26日 (1):集体合影.队旗特写 (2):站长讲话.职工口号.职工代表讲话录视频 (3):沿途.登山抓拍 (4):到达目的地后开展活动录视频 (5):活动中照片电子相册随手发送 (6):活动结 ...查看


  • 电子密码锁电路
  • 点击图片可以查看高清图片 电子密码锁电路_电子密码锁电路图 点击图片可以查看高清图片 电子密码锁电路_求电子密码锁的实验 电路 图 点击图片可以查看高清图片 电子密码锁电路_电子密码锁电路分析与设计 点击图片可以查看高清图片 电子密码锁电路 ...查看


热门内容