电子秤原理图
电子秤课程新设计 ppt课件

脉冲消隐输入RBI为低电平,就可使冗余零消隐。
21
(4)脉冲消隐(动态灭灯):输出RBO和消隐输入BI共 用一个管脚,当它用作输出端时,与RBI配合,共同使冗 余零消隐。以3位的十进制的零是否要显示,取决于百位 是否为零,有否显示。这就将要用图(8)电路中的RBO 进行判断。在RBI和A3、A2、A1、A0全为低电平时, RBO输出低电平;否则,输出高电平。百位为零(及百 位的A3、A2、A1、A0全为低电平),而且被消隐(及 百位的RBI也为低电平),则百位的RBO和十位的RBI全 为低(因为二者连在一起),其余数码照常显示。若百位 不是零,或是未使零消隐,则百位的RBO和十位的RBI全 为高电平,使十位数的零不具备消隐条件,而好其他数码 一起照常显示。
4
小组成员及其任务分配
• 李成成:背景设计及小组任务分配 • 韩艳慧:传感器的选择与应用 • 李红涛:三运放大电路
间接比较型模式转换器AD • 康振振:CT74LS290计数器介绍
集成二进制—七段译码驱动器介绍 及其总电路图 • 田 杰:元件报价及项目总结
5
电子秤采用现代传感器技术、电 子技术和计算机技术一体化的电子称 量装置,才能满足并解决现实生活中 提出的“快速、准确、连续、自动” 称量要求,同时有效地消除人为误差, 使之更符合计量管理和工业生产过程
(1)消隐(灭灯):输入BI在低电平时有效。当 BI为低电平时,不论其余输入状态如何,所有输出 无效,数码管七段全暗,无显示。可用来使显示的 数码闪烁,或与某一信号同时显示。在译码时,BI 应接高电平或悬空(TTL)。
20
(2)灯测试(试灯):输入LT在低电平时有效。在BI/RBO为高电
电子衡器知识教材

子衡器理论知识培训教汽车衡根底知识第一节汽车衡的组成及工作原理一、汽车衡的工作原理被称重物或载重汽车停在秤台上,在重力的作用下,秤台将重力传递至传感器,导致附着在传感器上的弹性体发生变形,那么弹性体应变梁上的应变电阻片及桥路失去平衡,输出与重量数值成正比的电信号,经线性放大器将信号放大,再经A/D转换为数字信号,由仪表内的微处理机对重量信号进展处理后直接显示重量数。
配置打印机后,即可打印称重数据;如配置计算机,可将计量数直接输入称重管理系统进展综合管理。
二、电子汽车衡器的组成承重和传力局部:将物体的重量传递给称重传感器的全部装置,包括称重台面、吊挂连接单元、平安限位装置、地面固定件和根底设施等。
称重传感器:介于秤台和根底之间,将被称物的重量转换为相应的电信号,经信号电缆输出至称重显示仪表进展称量的测试。
显示仪表:用以测量称重传感器输出的电信号,经对电信号处理后,以数码形式输出数据。
电源:主要指向称重传感器提供的桥路鼓励电源和仪表线路工作的电源。
SCS系列电子汽车衡主要由秤台、传感器、连接件、限位装置、显示仪表及接线盒等零部件组成,还可以选配打印机、大屏幕显示器、计算机和稳压电源等外部设备。
限位器的作用主要是保证称量结果准确、误差小〔即使有强烈冲击或飓风等横向力的作用也能使秤平安工作〕。
限位器主要是防止秤台横向移动和左右晃动幅度。
三、电子汽车衡器的特点和主要用途SCS汽车衡器与传统的机械衡器、其它地上衡器相比,有很多显著的优点:如称量迅速、准确、灵敏度高,数字显示、直观易读,稳定性、可靠性强,寿命长久,特别是在危险、恶劣环境下,更能表达电子衡器的作用。
整个汽车衡器系统有稳定可靠的高精度传感器和智能化仪表显示,仪表有高灵敏度、高分辨率、稳定可靠、便于打印的优点,如果与计算机、称重软件组成称重管理系统,还能够实现称重的远距离传输、集中自动化管理。
SCS汽车衡的秤体系统也有很多优点,比方:秤体重量轻〔平台为超薄型钢构造〕,便于安放、搬运,安装调试和维护很方便,可以采用浅基坑和无基坑2种安装形式,根底施工投资费用低。
STC90C52单片机电子秤

信号放大模块
经由传感器或敏感元件转换后输出 的信号一般电平较低;经由电桥等 电路变换后的信号亦难以直接用来 显示、记录、控制或进行信号转换。 为此,测量电路中常设有模拟放大 环节。
传感器和其外围以及放大电路设计
传感器检测电路的功能是把电阻应变片的电阻 变化转变为电压输出,由于电桥电路具有很多 优点,如可以抑制温度变化的影响,可以抑制 侧向力干扰,可以比较方便的解决称重传感器 的补偿问题等。由于传感器输出的电流信号很 小,因此为了提高系统的精度,将电流信号转 化为电压信号在传感器电路的设计过程中,增 加了由普通运放设计的增益调节阻,是为了满 足系统精度可调的要求而设计。
系统设计总体方案框图
系统由6个部分组成:控制器部分、测量部分、报警 部分、数据显示部分、键盘部分、和电路电源部分
放大电路
A/D转换器
超重报警
压力传感器
STC90C52单片机
键盘
LCD显示
称重传感器
• 称重传感器在受到压力或拉力 时会产生电信号,受到不同压 力或拉力是产生的电信号也随 着变化,而且力与电信号的关 系一般为线性关系。本系统中 采用的力传感器是航天科技集 团公司7Ol所的BK-2F型高精度S 形测力/称重传感器。其测量作 用力的最大范围可达20N,精度 为0.05%。输出经过TS-2型放 大器放大后,输出流范围为420mA。如图一所示:
图一、称重传感器
电源电路
• 电源电路采用集成稳压器L7805三端稳压电路,三条 引脚输出,分别是输入端、接地端和输出端,它的1、 3角接整流二极管IN4007主要是因为IN4007能承受很 大的反向电流对整个电源起到保护作用,C1 、C2分 别是输入和输出端滤波电容。如图二所示:
图二、电源电路
YH3120E、H、W、ES、HW、WS 大包电子称说明书(银河)

使用说明书
1、 概述
YH3120(行车秤专用系列)电脑称重显示变送控制器(以下简称仪表)是本公司开发的新一代称重 仪表,它集称量显示、控制和重量信号变送于一体,是行车改造(加装电子秤)专用称重显示控制器,
也可供现场环境恶劣、电源波动严重和无人操作场合使用。YH3120W/WH/WS 仪表是当行车秤需配无 线系统时同 YH3120E/H/ES 配合使用的无线传输称重显示器,它接收 YH3120E/H/ES 发出的串行称重数 据,并进行显示和控制。YH3120E/H/ES 和 YH3120W/WH/WS 的操作方法完全相同,当两表配合使用 时基本参数设置应一致
台式内置无线电台:108×284×290 ㎜(高×宽×深) 盘装式(可内置无线电台):140×335×205 ㎜(高×宽×深),开孔:130+1×320+1(高×宽) 墙挂式(内装微型打印机):366×266×98 ㎜(高×宽×厚) 2.8 重量:台式、盘装式约 3.0 ㎏;墙挂式约 3.5kg。
2.9 使用环境条件
6.1 显示说明
YH3120
-
仪表
~
1
上限报警常开
2
触点控制输出
3
上上限报警常
闭
4
触点控制输出
(1) 6 位红色 0.8 英寸 LED 数码管显示称重数据。
(2) 错误提示符
错误信息
原 因 说明
显示闪烁
称量超载[C>(n+9)d]
频繁出现 En EE
(3)指示灯
传感器连线极性接反或传感器输出较大负零点
定值控制
0:无外显示接口 1:带外显示接口
外显示接口
测控电路课程设计之电子称设计

测控电路课程设计之电子秤的设计一、设计任务1、题目:电子秤的设计1.确定结构电子秤由传感器、传感器专用电源、信号放大系统、模数转换系统及显示器等五部分组成,其原理框图如指导书图4所示。
2.设计技术指标如下:1)量程为0~1.999Kg ,2)传感器可采用悬臂梁式的称重传感器(悬臂梁上贴有应变片)。
3) 显示电路采用213为A/D 转换电路、共阴级数码管。
2、设计任务1)选择传感器2)设计传感器测量电路:通常用电桥测量电路。
3)放大电路设计由于传感器测量范围是0~2Kg ,假定选择的某款传感器的灵敏度为1mV/V 、工作电压为10V ,那么其输出信号只有0-10mV 左右;而A/D 转换的输入应为0-1.999Kg ,当量为1mV/g ,因此要求放大倍数约为200倍,一般采用两级放大器。
另外,在电路设计过程,应考虑电路抗干扰环节、稳定性。
选择低失调电压、低漂移、高稳定、经济性的芯片。
最后,电路中还应有调零和调增益的环节,才能保证电子秤没有称重时显示零读数,称重时读数正确反映被秤重量。
4)模数转换及显示系统A/D 转换器可选择MC14433,也可另选。
4)供电电源:设计一个可满足本设计需求的电源。
二、设计方案1、电子秤的主要组成电子秤由传感器、传感器专用电源、信号放大系统、模数转换系统及显示器等五部分组成,其原理框图如图4所示。
图4电子秤组成框图传感器将被测物体的重量转换成电压信号输出,放大系统把来自传感器的微弱信号放大,放大后的信号经过模数转换把模拟数字量,数字量通过数字显示器显示重量。
2、方案的选用方案一:采用应变式电阻称重传感器,将被测物体的重量转换成电压信号输出,然后采用AD620差动电路放大器把来自传感器的微弱信号放大,然后将放大后的信号经过MC14433模数转换器转换成数字量,最后经过动态扫描将数字量通过数码管显示出来,显示出来的数字就是被测物体的重量。
方案二:设计以51系列单片机AT89S52为控制核心,实现电子秤的基本控制功能。
电子秤工作原理

电子秤工作原理1.工作原理:电子秤的工作原理以电子元件(称重传感器,放大电路,AD转换电路,单片机电路,显示电路,键盘电路,通讯接口电路,稳压电源电路等电路组成。
工作流程说明:当物体放在秤盘上时,压力施给传感器,该传感器发生形变,从而使阻抗发生变化,同时使用激励电压发生变化,输出一个变化的模拟信号。
该信号经放大电路放大输出到模数转换器。
转换成便于处理的数字信号输出到CPU运算控制。
CPU根据键盘命令以及程序将这种结果输出到显示器。
直至显示这种结果。
部分电子秤的原理方框图:程式 K/B(按键) ↑ Fx →传感器→ OP放大→ A/D转换→ CPU →显示驱动→显示屏↓记忆体工作流程说明:当物体放在秤盘上时,压力施给传感器,该传感器发生形变,从而使阻抗发生变化,同时使用激励电压发生变化,输出一个变化的模拟信号。
该信号经放大电路放大输出到模数转换器。
转换成便于处理的数字信号输出到CPU运算控制。
CPU根据键盘命令以及程序将这种结果输出到显示器。
直至显示这种结果。
第二部分秤的分类: 1.按原理分:电子秤机械秤机电结合秤 2.按功能分:计数秤计价秤计重秤 3.按用途分:工业秤商业秤特种秤第三部分秤的种类: 1.桌面秤指全称量在30Kg以下的电子秤 2.台秤指全称量在30-300Kg 以内的电子秤 3.地磅指全称量在300Kg以上的电子秤 4.精密天平第四部分按精确度分类: I级:特种天平精密度≥1/10万 II级:高精度天平 1/1万≤精密度<1/10万 III级:中精度天平1/1000≤精密度<1/1万 IV级:普通秤1/100≤精密度<1/1000第五部分专业术语: 1.最大称量:一台电子秤不计皮重,所能称量的最大的载荷; 2.最小称量:一台电子秤在低于该值时会出现的一个相对误差; 3.安全载荷: 120%正常称量范围; 4.额定载荷:正常称量范围; 5.允许误差:等级检定时允许的最大偏差; 6.感量:一台电子秤所能显示的最小刻度;通常用“d”来表示; 7.解析量:一台具有计数功能的电子秤,所能分辩的最小刻度; 8.解析度:一台具有计数功能的电子秤,内部具有分辩能力的一个参数; 9.预热时间:一台秤达到各项指标所用的时间; 10.精度:感量与全称量的比值; 11.电子秤使用环境温度为: -10摄氏度到 40摄氏度 12.台秤的台面规格: 25cm X 30cm 30cm X 40cm 40cm X 50cm 42cm X 52cm 45cm X 60cm第六部分电子秤的特点: 1.实现远距离操作; 2.实现自动化控制; 3.数字显示直观、减小人为误差; 4.准确度高、分辩率强; 5.称量范围广; 6.特有功能:扣重、预扣重、归零、累计、警示等; 7.维护简单; 8.体积小; 9.安装、校正简单; 10.特种行业,可接打印机或电脑驱动; 11.智能化电子秤,反应快,效率高;第七部分电子秤检查过程: 1.首先整体检查:有无磨损和损坏; 2.能否开机:开机后是否从0到9依次显示、数字是否模糊、能否归零; 3.有无背光; 4.用砝码测试能否称重; 5.充电器是否完好,能否使用; 6.配件是否齐全;第八部分传感器类型: 1.电阻式:价格适中、精度高、使用广泛; 2.电容式:体积小、精度低; 3.磁浮式:特高精度、造价高; 4.油压式:现市场上已淘汰; 显示器种类: 1.LCD(液晶显示):免插电、省电、附带背光; 2.LED:免插电、耗电、很亮; 3.灯管:插电、耗电、很高; K/B(按键)类型: 1.薄膜按键:触点式; 2.机械按键:由许多单独按键组合在一起; 传感器的特性: 1.额定载荷; 2.输出灵敏度; 3.非线性; 4.滞后; 5.重复性; 6.蠕变; 7.零点输出影响; 8.额定输出温度影响; 9.零点输入; 10.输入阻抗; 11.输出阻抗; 12.绝缘阻抗; 13.容许激励电压;(5-18V)第九部分传感器损坏后现象: 1.称量不准; 2.显示不归零; 3.显示的数字乱跳判断传感器的+E、-E、+S、-S 1.先用电阻档测4条线两两这间的电阻值,共有6组。
电子称原理图
第九部分 传感器损坏后现象: 1.称量不准; 2.显示不归零; 3.显示的数字乱跳 判断传感器的+E、-E、+S、-S 1.先用电阻档测4条线两两这间的电阻值,共有6组。如为400-450欧 则为+E、-E;如果为350欧,则为+S、-S;为290欧,则为R桥臂; 2.在+E、-E端接上+_5V电压,传感器正确施加一个压力,如输出+_S增大,则红表笔为+S,反之-S;
第十部分 高精度计数秤特点: 1.Kg/Ib单位转换功能; 2.零点显示范围、调整功能(GLH系列没有) 3.取样速度调节功能; 4.有10组单重记忆功能; 5.可同时进行重量、数量、累计功能(GLH只有数量累计) 6.可设定重量、数量上限警示功能; 7.自动零点追踪、温度线性校正;
第一部分 电子秤的原理方框图:
程式 K/B(按键) ↑ Fx → 传感器 → OP放大 → A/D转换 → CPU → 显盘上时,压力施给传感器,该传感器发生形变,从而使阻抗发生变化,同时使用激励电压发生变化,输出一个变化的模拟信号。该信号经放大电路放大输出到模数转换器。转换成便于处理的数字信号输出到CPU运算控制。CPU根据键盘命令以及程序将这种结果输出到显示器。直至显示这种结果。
第四部分 按精确度分类: I级: 特种天平 精密度≥1/10万 II级: 高精度天平 1/1万≤精密度<1/10万 III级: 中精度天平 1/1000≤精密度<1/1万 IV级: 普通秤 1/100≤精密度<1/1000
第五部分 专业术语: 1.最大称量: 一台电子秤不计皮重,所能称量的最大的载荷; 2.最小称量: 一台电子秤在低于该值时会出现的一个相对误差; 3.安全载荷: 120%正常称量范围; 4.额定载荷: 正常称量范围; 5.允许误差: 等级检定时允许的最大偏差; 6.感量: 一台电子秤所能显示的最小刻度;通常用“d”来表示; 7.解析量: 一台具有计数功能的电子秤,所能分辩的最小刻度; 8.解析度: 一台具有计数功能的电子秤,内部具有分辩能力的一个参数; 9.预热时间: 一台秤达到各项指标所用的时间; 10.精度: 感量与全称量的比值; 11.电子秤使用环境温度为: -10摄氏度 到 40摄氏度 12.台秤的台面规格: 25cm X 30cm 30cm X 40cm 40cm X 50cm 42cm X 52cm 45cm X 60cm
电子秤原理
上面和下面贴四片应变片组成全桥,然后端部收到的力,就和全桥应变输出值成正比。
经过标定,有系数就可以通过系数乘以应变值得到力。
悬臂梁 :梁的一端为不产生轴向、垂直位移和转动的固定支座,另一端为自由端。
在工程力学受力分析中,比较典型的简化模型。
在实际工程分析中,大部分实际工程受力部件都可以简化为悬臂梁。
应变片结构及原理应变片是由排列成栅状的高阻金属丝、高阻金属箔或半导体粘贴在绝缘的基片上构成。
上面贴有覆盖片(即保护片),电阻丝两端焊有较粗的铜丝作引线,以便与测量电路连接。
将应变片贴在被测定物上,使其随着被测定物的应变一起伸缩,这样里面的金属箔材就随着应变伸长或缩短。
很多金属在机械性地伸长或缩短时其电阻会随之变化。
应变片就是应用这个原理,通过测量电阻的变化而对应变进行测定。
一般应变片的敏感栅使用的是铜铬合金,其电阻变化率为常数,与应变成正比例关系。
即:其中,R:应变片原电阻值Q (欧姆),△R:伸长或压缩所引起的电阻变化Q (欧姆),K:比例常数(应变片常数),£:应变。
不同的金属材料有不同的比例常数K。
铜铬合金的K值约为2。
这样,应变的测量就通过应变片转换为对电阻变化的测量。
但是由于应变是相当微小的变化,所以产生的电阻变化也是极其微小的。
要精确地测量这么微小的电阻变化是非常困难的,一般的电阻计无法达到要求。
为了对这种微小电阻变化进行测量,我们使用带有惠斯通电桥的专用应变测量仪。
应变片分类1、按结构分:单片、双片、特殊形状2、按材料分: 金属式体型——丝式、箔式、薄膜型;半导体式体型——薄膜型、扩散型、外延型、 PN 结型3、按使用环境:高温、低温、高压、磁场、水下;应变片的粘贴步骤1、选择应变片2、除锈,保护膜3、确定粘贴位置4、对粘贴面的脱脂和清洁5、图粘贴剂6、粘贴7、加压电子秤原理一、相当于一个电子地磅,传感器的多少与量程和精度有关。
电子地磅结构组成和工作原理 1、结构组成主要由承载器、称重显示仪表(下简称仪表)、称重传感器(下简称传感器)、连接件、限位装置及接线盒等零部件组成,还可以选配打印大屏幕显示器、计算机和稳压电源等外部设备。
电子秤来由及原理
• 5、按精确度分类:
I级: 特种天平 精密度≥1/10万 基准衡器
II级: 高精度天平 1/1万≤精密度<1/10万 精密衡器
III级: 中精度天平 1/1000≤精密度<1/1万 工业.商
业衡器
IV级: 普通秤 1/100≤精密度<1/1000 粗衡器
2021/3/11
4
杆秤
2021/3/11
2021/3/11
25
电子磅
2021/3/11
26
精密电子秤
2021/3/11
27
人体秤
2021/3/11
28
2021/3/11
29
2021/3/11
30
2021/3/11
31
脂肪秤
2021/3/11
32
厨房秤
2021/3/11
33
单点式传感器
2021/3/11
34
单点式传感器
2021/3/11
使顾客看不清楚字ห้องสมุดไป่ตู้上的单价,然后乱报重量和金额,如果不注
意,便可被商家蒙骗。
2021/3/11
21
• 三、开关作弊法
• 1.将操作面板上的“置零”键改装为作弊开关。称重时,按下“置零” 键,重量显示即虚增10%至40%左右。
• 2.将“累计”键改装为作弊开关。称重时,按下累计键,重量显示 即虚增10%至40%左右。
35
传感器
2021/3/11
36
四点式传感器
2021/3/11
37
传感器基础应用结构
2021/3/11
38
传感器
2021/3/11
39
传感器结构图
2021/3/11
电子秤原理及电子秤原理图(打印版)
电子秤原理及电子秤原理图一、名词解释利用作用于物体上的重力来测量该物体质量(重量)的计量仪器,装有电子装置的秤为电子秤。
二、工作原理秤重物品经由装在机构上的重量传感器,将重力转换为电压或电流的模拟讯号,经放大及滤波处理后由A/D处理器转换为数字讯号,数字讯号由中央处理器(CPU)运算处理,而周边所须要的功能及各种接口电路也和CPU连接应用,最后由显示屏幕以数字方式显示。
电子秤原理图:三、主要组成组件1.重量传感器2.放大器电路3.滤波器电路4.模拟数字转换器5.中央处理器6.电源供应电路7.按键8.外壳9.机构 10.秤盘电子秤设计2(2006-05-05 09:08:26)第五部分:附录电子秤的信号采集、处理、显示的程序 .#include <reg52.h>#include<absacc.h>//ad 控制线#define ad_244 XBYTE[0xbfff];sbit ad_stb=P3^3;sbit ad_start=P1^1;//lcd 控制线sbit lcd_di=P1^7;sbit lcd_rw=P1^2;sbit lcd_e=P1^0;//7289 控制线sbit cs7289=P1^3;sbit clk7289=P1^4;sbit dio7289=P1^5;//sbit key7289=P1^6; //7289 查询方式sbit key7289=P3^2; //7289 中断方式sbit baoj=P3^5;//7289 子程序void ini_7289(void);void send7289(short);short receive(void);void keyin(void);//lcd 子程序void ini_lcd(void);void lcdd_send(short); void lcdi_send(short); void chk_busy(void);//ad 子程序void ad(void);void baojing(void);void d_change(long);// 初始化,编号,日期void ini();void error1(void);void nop1(){}void change(s)int dealy; // 全局变量short sh=0; // 商品号short dot=0; // 小数点标志bit list=0;short qb=0;char xdata shuju[7]=""; short xdata bcd[5];char xdata s1[16]=" 单价 : 元 ";char xdata s2[16]=" 重量 : Kg";char xdata s3[16]=" 金额 : 元 ";char xdata s4[16]=" 累计 : 元 ";char code message0[]=" 信息学院山东大学 ";char code message1[]=" 输入收银员代号 :";char code message2[]=" 输入日期 :";char code message3[16]=" -- 山东大学 -- ";char code message5[16]=" 垃圾公司欢迎您 !!";char xdata bianhao[16]=" 收银员: ";char xdata riqi[16]=" - - ";long int xdata zongjia=0,jine=0,jine1=0;int xdata shizhong=0,pizhong=0,zhongliang=0;long int xdata qingdan[20][4];char code shangpin[11][4]={{" 单价 "},{" 苹果 "},{" 梨 "},{" 花生 "},{" 大米 "}, {" 桃子 "},{" 塑料 "},{" 瓜子 "},{" 桔子 "},{" 香蕉 "},{" 玉米 "}};long int xdata danjia[11]={0,2,3635,5502,0,3320,5502,660,3210,6600,5600};char xdata jiage[6]={0x0,0x0,0x0,0xfe,0x0,0x0}; // 0.00short xdata xiuzheng[]={0,2,5,6,7,8,9,12,13};char s[16];{s[6]=shuju[0];s[7]=shuju[1];s[8]=shuju[2];s[9]=shuju[3];s[10]=shuju[4];s[11]=shuju[5];s[12]=shuju[6];}//**************************************************************** void main(){short i,j;long int x,z;int y;int xdata duilie[3]={0};P1=0xff;ini_lcd(); // 初始化 LCDlcdi_send(0x8a);while(message0[i]) lcdd_send(message0[i++]);ini_7289(); // 初始化 7289pizhong=ad1();lcdi_send(0x1); // 总清屏ini(); // 初始页面 , 收银员编号,日期lcdi_send(0x1); // 总清屏EA=1;EX0=1; // 中断//EX1=1;//ad_start=1;while(1){if(list){lcdi_send(0x80); // 显示单位名称for(i=0;i<16;i++) lcdd_send(message3[i]); x=qingdan[0][0]; // 商品名单价for(i=0;i<4;i++) s1[i]=shangpin[x][i];x=qingdan[0][1];d_change(x); change(s1);lcdi_send(0x90);for(i=0;i<16;i++) lcdd_send(s1[i]);x=qingdan[0][2]; // 显示重量d_change(x); change(s2);s2[10]=s2[9];s2[9]='.';if(s2[8]==32) s2[8]=0x30;lcdi_send(0x88);for(i=0;i<16;i++) lcdd_send(s2[i]);x=qingdan[0][3];d_change(x); change(s3);lcdi_send(0x98);for(i=0;i<16;i++) lcdd_send(s3[i]); // 以上为第一页EA=0;EX0=0; // 关键盘中断for(j=1;j<qb;j++){while(key7289);x=qingdan[j][2];d_change(x); change(s2); // 显示数据s2[10]=s2[9];s2[9]='.'; if(s2[8]==32) s2[8]=0x30;lcdi_send(0x90);for(i=0;i<16;i++) lcdd_send(s2[i]);x=qingdan[j][1];d_change(x); change(s1);x=qingdan[j][0];for(i=0;i<4;i++) s1[i]=shangpin[x][i];lcdi_send(0x80);for(i=0;i<16;i++) lcdd_send(s1[i]);x=qingdan[j][3];d_change(x); change(s3);lcdi_send(0x88);for(i=0;i<16;i++) lcdd_send(s3[i]);lcdi_send(0x98);for(i=0;i<16;i++) lcdd_send(0x20);lcdi_send(0x98);while(key7289==0);}while(key7289);d_change(zongjia); change(s4);lcdi_send(0x80);for(i=0;i<16;i++) lcdd_send(s4[i]);lcdi_send(0x90);for(i=0;i<16;i++) lcdd_send(bianhao[i]); lcdi_send(0x88);for(i=0;i<16;i++) lcdd_send(message5[i]); lcdi_send(0x98);for(i=0;i<16;i++) lcdd_send(riqi[i]);list=0;while(key7289==0);while(key7289==1);while(key7289==0);EA=1;EX0=1;}else{ y=0;/* duilie[2]=duilie[1]; // 数字滤波duilie[1]=duilie[0];y=ad1();duilie[0]=y>>1;x=duilie[0];x=x<<1;x=x+duilie[1]+duilie[2]; */zhongliang=ad1();shizhong=zhongliang-pizhong; // 数据转换x=danjia[sh];jine1=shizhong*x;jine=jine1/1;d_change(shizhong); change(s2); // 显示数据s2[10]=s2[9]; s2[9]='.';if(s2[8]==32) s2[8]=0x30;lcdi_send(0x90);for(i=0;i<16;i++) lcdd_send(s2[i]);d_change(danjia[sh]); change(s1);for(i=0;i<4;i++) s1[i]=shangpin[sh][i]; lcdi_send(0x80);for(i=0;i<16;i++) lcdd_send(s1[i]);d_change(jine); change(s3);lcdi_send(0x88);for(i=0;i<16;i++) lcdd_send(s3[i]);d_change(zongjia); change(s4);lcdi_send(0x98);for(i=0;i<16;i++) lcdd_send(s4[i]);lcdi_send(0x98);//while(1);}}}void keyin(void) interrupt 0 using 0 // 中断 0 服务程序{char X,i;long int y;send7289(0x15); // 接收数据X=receive();cs7289=1;X=X&0x1f;switch(X){case 0xf : {zongjia=zongjia+jine;qingdan[qb][0]=sh;qingdan[qb][1]=danjia[sh];qingdan[qb][2]=shizhong;qingdan[qb][3]=jine;qb++; sh=0;dot=0;danjia[0]=0;for(i=0;i<6;i++) jiage[i]=0;}break; // 累加case 0xe : pizhong=zhongliang; break; // 去皮case 0xd : {danjia[sh]=0;dot=0;} break; // 清单价case 0xc : {zongjia=0;jine=0;dot=0;list=0;qb=0;pizhong=0; if(sh==0) danjia[sh]=0;} break; // 总清case 0xa : dot=1;break; // 点case 0xb : list=1;break; // 清单case 0x19 : sh=10;break;case 0x18 : sh=9;break;case 0x17 : sh=8;break;case 0x16 : sh=7;break;case 0x15 : sh=6;break;case 0x14 : sh=5;break;case 0x13 : sh=4;break;case 0x12 : sh=3;break;case 0x11 : sh=2;break;case 0x10 : sh=1;break;case 0x1f :case 0x1e :case 0x1d :case 0x1c :case 0x1a : break;case 0x1b : dot=1;break;default :{ if(dot==0) {jiage[0]=jiage[1];jiage[1]=jiage[2];jiage[2]=X;} if(dot==1) {jiage[4]=X;dot++; }else if(dot==2) {jiage[5]=X; dot++;}else if(dot>2) break;// lcdi_send(0x84);y=jiage[0];y=y*10+jiage[1];y=y*10+jiage[2];y=y*10+jiage[4];danjia[sh]=y*10+jiage[5];}}while(key7289==0); // 等待键盘松开}/*void ad(void) interrupt 2 using 1{short x,y;x=ad_244;y=x;if(x&0x80) baojing();else x=x>>4;y=y&0xf;bcd[x]=y;} */// 初始页面void ini() // 输入收银员编号 , 日期{short i,j;char X;lcdi_send(0x80); // 提示输入收银员编号i=0;while(message1[i]) lcdd_send(message1[i++]); for(i=8;i<12;i++){while(key7289);send7289(0x15); // 接收数据X=receive();cs7289=1;bianhao[i]=X+0x30;lcdi_send(0x93);for(j=8;j<16;j++) lcdd_send(bianhao[j]);while(key7289==0);}lcdi_send(0x88); // 提示输入日期i=0;while(message2[i]) lcdd_send(message2[i++]); for(i=0;i<10;i++) // 输入日期{if(i==4||i==7) i++;while(key7289==1);send7289(0x15); // 接收数据X=receive();cs7289=1;riqi[i]=X+0x30;j=0;lcdi_send(0x9a);for(j=0;j<10;j++) lcdd_send(riqi[j]);while(key7289==0);}while(key7289);nop1();while(key7289==0);nop1();lcdi_send(0x1);}//LCD 子程序void ini_lcd() //LCD 初始化子程序{lcdi_send(0x30);lcdi_send(0x1); // 总清lcdi_send(0xc);lcdi_send(0x2); // 光标右移, AC+1}void lcdd_send(short X) //LCD 发送数据子程序{chk_busy();nop1();lcd_di=1;lcd_rw=0;lcd_e=0;P0=X;for(dealy=0;dealy<5;dealy++);//lcd_e=1; X=X;P0=0xff;}void lcdi_send(short X) //LCD 发送指令子程序{chk_busy();nop1();lcd_di=0;lcd_rw=0;lcd_e=0;P0=X;for(dealy=0;dealy<5;dealy++);//lcd_e=1; X=X;P0=0xff;}void chk_busy(){short i=0xff;while(i&0x80){lcd_di=0;lcd_rw=1;lcd_e=0;i=P0;lcd_e=1;}}//7289 子程序void ini_7289(){short i;cs7289=1; key7289=1; dio7289=1; //7289 初始化子程序for(i=0;i<50;i++)for(dealy=0;dealy<5;dealy++); // 延时 25mssend7289(0xa4); cs7289=1;}void send7289(short X) //7289 发送数据子程序{short i,j=1;cs7289=0;for(dealy=0;dealy<6;dealy++); // 延时 50us for(i=7;i>=0;i--){j=j<<i;dio7289=X&j;j=1;j=1;clk7289=1;for(dealy=0;dealy<1;dealy++) ; // 延时 10us clk7289=0;for(dealy=0;dealy<1;dealy++) ; // 延时 10us }dio7289=0;}short receive() //7289 接收数据子程序{short i,X=0;dio7289=1;for(dealy=0;dealy<6;dealy++); // 延时 50us for(i=0;i<=7;i++){clk7289=1;for(dealy=0;dealy<1;dealy++); // 延时 10usX=X<<1;if(dio7289)X++;clk7289=0;for(dealy=0;dealy<1;dealy++); // 延时 10us }dio7289=0;return(X);}//ad//AD 子程序int ad1(){short k,x;int ad_zhi=0,xz;EA=0;ad_start=1;for(k=0;k<5;k++){ while(ad_stb);x=ad_244;x=x&0xf;ad_zhi=ad_zhi*10+x;}ad_start=0;EA=1;EX0=1;ad_zhi=ad_zhi>>1;xz=ad_zhi-50;xz=xz/100;ad_zhi=ad_zhi+xiuzheng[xz];return(ad_zhi);void d_change(long X){char qian,bai,shi,ge,shifen,baifen; long int yu;if(X>) error1();qian=X/100; yu=X%100;bai=yu/10; yu=yu%10;shi=yu/1; yu=yu%1;ge=yu/100; yu=yu%100;shifen=yu/10;baifen=yu%10;qian=qian+0x30;bai=bai+0x30;shi=shi+0x30;ge=ge+0x30;shifen=shifen+0x30;baifen=baifen+0x30;if(qian==0x30){qian=0x20;if(bai==0x30){bai=0x20;if(shi==0x30) shi=0x20;}}shuju[0]=qian;shuju[1]=bai;shuju[2]=shi;shuju[3]=ge;shuju[4]='.';shuju[5]=shifen;shuju[6]=baifen;}void baojing(){short i;for(i=0;i<50;i++){baoj=0;for(dealy=0;dealy<10;dealy++); baoj=1;for(dealy=0;dealy<10;dealy++);}}摘要本系统采用单片机 AT89S52 为控制核心,实现电子秤的基本控制功能。