为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

022LED显示的电子秤设计

2010-08-13 32页 doc 276KB 33阅读

用户头像

is_379889

暂无简介

举报
022LED显示的电子秤设计沈阳航空工业学院课程设计论文 基于LED显示的电压表的设计 目 录 1 0. 前言 1 1. 总体方案设计 2 2.硬件电路设计 2 2.1 传感器的选择 2 2.1.1 电阻应变式传感器的组成以及原理 3 2.1.2 电阻应变式传感器的测量电路 4 2.2 ADC0809 A/D转换器 4 2.3 ADC0809的内部逻辑结构: 5 2.3.1引脚结构: 6 2.3.3 ADC0809...
022LED显示的电子秤设计
沈阳航空工业学院课程 基于LED显示的电压表的设计 目 录 1 0. 前言 1 1. 总体设计 2 2.硬件电路设计 2 2.1 传感器的选择 2 2.1.1 电阻应变式传感器的组成以及原理 3 2.1.2 电阻应变式传感器的测量电路 4 2.2 ADC0809 A/D转换器 4 2.3 ADC0809的内部逻辑结构: 5 2.3.1引脚结构: 6 2.3.3 ADC0809应用说明: 7 2.4 LED显示电路设计 7 2.4.1 LED显示器结构与原理 7 2.4.2 LED显示器与显示方式 8 2.5 报警电路的设计 9 3. 软件设计 9 3.1监控程序的设计 9 3.2 数据处理子程序的设计 10 3.2.1 数据采集子程序的设计 10 3.2.2系数调整 11 3.2.3 数据处理子程序的设计 12 3.4 显示子程序的设计 13 4. 调试分析 13 4.1 调试系统简介 14 4.2 调试故障及原因分析 14 5. 结论及进一步设想 15 参考文献 16 课设体会 17 附录1 电路原理图 18 附录2 程序清单 基于LED显示的电子称的设计 马寅彪 沈阳航空工业学院自动化学院 摘要:本文设计的电子秤以单片机为主要部件,用汇编语言进行软件设计,硬件则以半桥传感器为主,测量0~500g电子秤,随时可改变上限阈值,并达到阈值报警的功能。本课程设计的电子秤以单片机为主要部件,利用单臂电桥测量原理,通过对电路输出电压和标准重量的线性关系,建立具体的数学模型,将电压量纲(V)改为重量纲(g)即成为一台原始电子秤。其中测量电路中最主要的元器件就是电阻应变式传感器。电阻应变式传感器是传感器中应用最多的一种,本设计采用单臂电桥测量电路,使系统产生的误差更小,输出的数据更精确。ADC0809 A/D转换的作用是把模拟信号转变成数字信号,进行模数转换,然后把数字信号输送到显示电路中去,最后由显示电路显示出测量结果 关键词:单臂电桥;AD转换;LED 0. 前言 随着时代科技的迅猛发展,微电子学和计算机等现代电子技术的成就给传统的电子测量与仪器带来了巨大的冲击和革命性的影响。常规的测试仪器仪表和控制装置被更先进的智能仪器所取代,使得传统的电子测量仪器在远离、功能、精度及自动化水平定方面发生了巨大变化,并相应的出现了各种各样的智能仪器控制系统,使得科学实验和应用工程的自动化程度得以显著提高。 做为重量测量仪器,智能电子秤在各行各业开始显现其测量准确,测量速度快,易于实时测量和监控的巨大优点,并开始逐渐取代传统型的机械杠杆测量称,成为测量领域的主流产品。 1. 总体方案设计 本设计由以下四部分组成:电阻应变传感器、信号放大系统、模数转换系统、显示器。其原理图如下所示。 测量过程是把被测物体的重量通过传感器将重量信号转化为电压信号输出,放大系统把来自传感且微弱信号放大,放大后的电压信号经过模数转换把模拟量转换成数字量,数字量通过数字显示器显示重量。传感器的测量电路我们选用单臂电桥测量电路,应变电阻作为桥臂电阻接在电桥电路中。无压力时,电桥平衡,输出电压为零;有压力时,电桥的桥臂电阻值发生变化,电桥失去平衡,有相应电压输出。 图1 基于LED显示的电子秤基本组成框图 2.硬件电路设计 2.1 传感器的选择 2.1.1 电阻应变式传感器的组成以及原理 电阻应变式传感器是将被测量的力,通过它产生的金属弹性变形转换成电阻变化的元件。由电阻应变片和测量线路两部分组成。常用的电阻应变片有两种:电阻丝应变片和半导体应变片,本设计中采用的是电阻丝应变片,为获得高电阻值,电阻丝排成网状,并贴在绝缘的基片上,电阻丝两端引出导线,线栅上面粘有覆盖层,起保护作用。 电阻应变片也会有误差,产生的因素很多,所以测量时我们一定要注意,其中温度的影响最重要,环境温度影响电阻值变化的原因主要是: A. 电阻丝温度系数引起的。 B. 电阻丝与被测元件的线膨胀系数的不同引起的。 对于因温度变化对桥接零点和输出,灵敏度的影响,即使采用同一批应变片,也会因应变片之间稍有温度特性之差而引起误差,所以对要求精度较高的传感器,必须进行温度补偿,解决的方法是在被粘贴的基片上采用适当温度系数的自动补偿片,并从外部对它加以适当的补偿。非线性误差是传感器特性中最重要的一点。产生非线性误差的原因很多,一般来说主要是由结构设计决定,通过线性补偿,也可得到改善。 滞后和蠕变是关于应变片及粘合剂的误差。由于粘合剂为高分子材料,其特性随温度变化较大,所以称重传感器必须在规定的温度范围内使用。 图2 应变式传感器安装示意图 单臂电桥测量电路中,将一个应变片接入电桥对边,当应变片初始阻值:R1=R2=R3=R4,其变化值ΔR1=ΔR2=ΔR3=ΔR4时,其桥路输出电压Uout=KEε/4。 2.1.2 电阻应变式传感器的测量电路 常规的电阻应变片K值很小,约为2,机械应变度约为0.000001—0.001,所以,电阻应变片的电阻变化范围为0.0005—0.1欧姆。所以测量电路应当能精确测量出很小的电阻变化,在电阻应变传感器中做常用的是桥式测量电路。 桥式测量电路有四个电阻,其中任何一个都可以是电阻应变片电阻,电桥的一个对角线接入工作电压U,另一个对角线为输出电压Uo。其特点是:当四个桥臂电阻达到相应的关系时,电桥输出为零,或则就有电压输出,可利用灵敏检流计来测量,所以电桥能够精确地测量微小的电阻变化。 测量电路是电子秤设计电路中是一个重要的环节,我们在制作的过程中应尽量选择好元件,调整好测量的范围的精确度,以避免减小测量数据的误差。 图 3 单臂电桥测量电桥图 它由电阻应变片电阻R1、R2、R3、R4组成测量电桥,R1=R2=R3=R4=350Ω,加热丝阻值为50Ω左右,测量电桥的电源由稳压电源Uin供给。将差动放大器调零,合上电源开关,调节电桥平衡电位RW1,使数显表显示0.00V。将10只标准砝码全部置于传感器的托盘上,调节电位器RW3(增益即满量程调节)使数显表显示为0.200V(2V档测量)或-0.200V。拿去托盘上的所有砝码,调节电位器R W4(零位调节)使数显表显示为0.0000V。重复2、3步骤的标定过程,一直到精确为止,把电压量纲V改为重量纲g,就可以称重。成为一台原始的电子秤。 2.2 ADC0809 A/D转换器 ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 2.3 ADC0809的内部逻辑结构: 由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 2.3.1引脚结构: IN0-IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表所示。 C B A 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 数字量输出及控制线:11条 ST为转换启动信号:当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。 CLK为时钟输入信号线:因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ, VREF(+),VREF(-)为参考电压输入。 2.3.3 ADC0809应用说明: 1) ADC0809内部带有输出锁存器,可以与8031直接相连。 2) 初始化时,使ST和OE信号全为低电平。 3) 送要转换的哪一通道的地址到A,B,C端口上。 4) 在ST端给出一个至少有100ns宽的正脉冲信号。 5) 是否转换完毕,我们根据EOC信号来判断。 6) 当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。 2.4 LED显示电路设计 2.4.1 LED显示器结构与原理 LED显示块是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED。这种显示块有共阴极与共阳极两种。共阴极LED显示块的发光二极管阴极共地。当某个发光二极管的阳极为高电平时,发光二极管点亮;共阳极LED显示块的发光二极管阳极并接。 2.4.2 LED显示器与显示方式 在单片机应用系统中使用LED显示块构成N位LED显示器。N位LED显示器有N根位选线和8*N根段选线。根据显示方式不同,位选线与段选线的连接方法不同。段选线控制字符选择,位选线控制显示位的亮,暗。 LED显示器有静态显示与动态显示两种方式。我们使用的为动态显示 LED动态显示方式。 在多位LED显示时,为了简化电路,降低成本,将所有位的段选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别由响应的I/O口线控制。 图 5 MCS-51的接口电路LED显示电路图 2.5 报警电路的设计 报警电路是超过设定的范围,单片机输出信号驱动蜂鸣器发声警报,如图 所示,当BDLL端为低电平时,有电流通过蜂鸣器,蜂鸣器报警,反之不报警,这里设定当超过质量的上限时通过软件使8031的P1.0口清零,再过P1.0口出来的低电平信号连接到BELL端蜂鸣器发声报警。 SHAPE \* MERGEFORMAT 图6 报警电路 3. 软件设计 3.1监控程序的设计 智能仪器的设计既要满足设定的功能的完成如计算等功能的任务功能程序,也要有可以监控仪器仪表正工作,保证其可靠性方面的监控程序。整个智能仪器的测量都是智能仪器自动完成的,所以设计一套功能完备的监控程序是必须的也是必要的。 监控程序的主要作用是实时的响应来自系统的各种信息,按信息的类别进行处理;当系统出现故障时,能自动的采取有效的措施,消除故障,保证系统能够继续进行正常工作。 3.2 数据处理子程序的设计 数据处理子程序是整个程序的核心。主要用来调整输入值系数,使输出满足量程要求。另外完成A/D的采样结果从十六进制数向十进制数形式转化。 3.2.1 数据采集子程序的设计 对于重量与传感器的电压之间的关系,为了确保测量的准确度,用MATLAB软件编程。Lsline指令实现了对多组测量数据的最小二乘拟合,得到了比较理想的线性关系,又运用回归函数polyfit(x,y',1)得到压力与电压的函数关系,使压力的测量的精度进一步提高。 数据采集由ADC0809芯片来完成,主要分为启动、读取数据、延时等待转换结束、读出转换结果、存入指定内存单元、继续转换(退出)几个步骤。ADC0809初始化后,就具有了将某一通道输入的0~5V模拟信号转换成对应的数字量00H—FFH,然后再存入8051内部RAM的指定单元中。其转换方式可以采用程序查询方式,延时等待方式和中断方式三种。本设计采用的是延时等待方式,具体程序流程图如图8所示。 图7 数据采集程序流程图 3.2.2 数据采集子程序的设计 对于重量与传感器的电压之间的关系,为了确保测量的准确度,用MATLAB软件编程。Lsline指令实现了对多组测量数据的最小二乘拟合,得到了比较理想的线性关系,又运用回归函数polyfit(x,y',1)得到压力与电压的函数关系,使压力的测量的精度进一步提高。所得拟合曲线如图7所示: 图7 拟合曲线图 3.2.3系数调整 在IN0输入的数最大为5V,要求的质量500g对应的是4.8V,为十六进制向十进制转换方便,将系数放大100倍。并用小数点位置的变化体现这一过程。 3.2.4 数据处理子程序的设计 数据处理子程序是整个程序的核心。主要用来调整输入值系数,使输出满足量程要求。另外完成A/D的采样结果从十六进制数向十进制数形式转化。在硬件调试过程中重量与电压的关系如表一所示: 表一: 重量 0.02 0.04 0.06 0.08 0.10 电压 0.145 0.300 0.445 0.593 0.742 重量 0.12 0.14 0.16 0.18 0.20 电压 0.890 1.040 1.189 1.337 1.486 重量 0.22 0.0.24 0.26 0.28 0.30 电压 1.635 1.784 1.932 2.081 2.230 重量 0.32 0.34 0.36 0.38 0.40 电压 2.378 2.527 2.676 2.826 2.973 重量 0.42 0.44 0.46 0.48 0.50 电压 3.121 3.270 3.419 3.568 3.717 经MATLAB软件编程,得拟合函数为: (4-1) 式中 ——物体所受的重量; ——传感器输出的压力值 (其中 =7.3458 = -0.0012) 数据处理过程是对A/D转换结果的数字量的处理,即 (4-2) 式中 ——数据的模拟量; ——数据的数字量 再对 和 进行十进制与十六进制的转换 =( ) (4-3) (4-4) 所以在编程中实际的运算过程为 (4-5) 因此在数据处理中要进行的是将A/D值转换值进行乘法和减法运算进行处理和调整,经过系数调整后,送入暂存单元进行进制间的调整,使二进制数变换为十进制数存放在显缓单元以供显示。 具体的流程图如图9所示: SHAPE \* MERGEFORMAT 图8 数据采集程序流程图 3.4 显示子程序的设计 显示程序是用来实时显示所测质量值,该部分程序是将显缓单元数据进行实时显示,其流程图如图12所示。 SHAPE \* MERGEFORMAT 图9 显示子程序流程图 就继续扫描。当有键按下时,利用按键的特征码判断是哪一个键按下,再转入到按下该键所要执行的功能子程序中进行键值处理,完成后返回继续进行扫描。且将最后一次输入值 保存在暂存单元用于报警比较。由键盘编码方式可以得出0、1、2、3、4、5、6、7、8、9各键对应的键值: 0D8H、0D0H,、0D1H、0D2H、0C8H、0C9H、0CAH、0C0H、0C1H、0C2H 该模块的程序流程图如13所示。 4. 调试分析 4.1 调试系统简介 调试包括硬件调试、软件调试和样机调试。 软件的调试和硬件的调试都是独立进行的,软件部分包括数据采集子程序、数据处理子程序、显示子程序、键盘扫描子程序、报警子程序。软件调试中需要用到的测量信号可以用仿真实验台上的电压信号进行模拟,而不需要进行硬件的连接。同样硬件部分的调试也是不需要软件连接而独立进行的。 当软件调试和硬件调试都正确无误的时候,就可以进行连接调试,在调试中继续找出单独调试中无法指出的故障,反复进行修改软件、修改硬件设计的工作,直到所设计的电子秤显示数据与理想数据误差不大。最后进行软件的固化与整机的组装工作。 硬件调试系统和软件调试系统。其中硬件调试系统主要是《CSY—2000传感器与检测技术试验台》和单片机实验箱(含A/D转换),其中单片机实验箱(含A/D转换)提供了单片机、A/D转换、LED显示器和蜂鸣器;《CSY—2000传感器与检测技术试验台》提供所需的+4V~+30V电源还有电阻应变式传感器及传感器实验模板提供信号调理、整形和放大电路。 4.2 调试故障及原因分析 故障一:传感器显示电压示数范围与要求的LED显示器的质量示数范围不符。 原因分析:没有选择好转换系数,使质量范围不能满足要求。 解决方法:修改程序中的转换子程序部分,在进制转换时计算出转换系数值。 故障二:经过放大器的传感器信号不稳定,且不满足设定的放大倍数。 原因分析:信号不稳定是由于传感器精度不够准确,以及连线时线路不稳定等因素的影响;不满足放大倍数是由于放大器选择不合适,导致不能满足设定的放大倍数。 解决方法:选择精度高的传感器,预先计算好运放放大倍数,以便于选择合适的运算放大器。 5. 结论及进一步设想 随着集成电路和计算机技术的迅速发展,使电子仪器的整体水平发生巨大变化,传统的仪器逐步的被智能仪器所取代。智能仪器的核心部件是单片机,因其极高的性价比得到广泛的应用与发展,从而加快了智能仪器的发展。而传感器作为测控系统中对象信息的入口,越来越受到人们的关注。传感器好比人体“五官”的工程模拟物,它是一种能将特定的被测量信息(物理量、化学量、生物量等)按一定规律转换成某种可用信号输出的器件或装置本次课设中的半桥电子秤就是在以上仪器的基础上设计而成的。因此,只有充分了解有关智能仪器、单片机、传感器以及各部分之间的关系才能达到要求。 首先是传感器的精密度,它将直接影响电子秤的称重准确度。课设时由于传感器发出的信号不是很稳定,所以称重时误差很大。如果使用精密度较高的传感器,效果会好的多。 其次是数据采集处理阶段,此阶段是对传感器发出的信号进行量化、采集,主要分为信号放大、采集,然后进行A/D转换。该阶段需注意的地方是对传感器输出的信号进行放大时,应选取合适的运算放大电路。最好是预先计算好应放大的倍数,以便选取。还有就是进行数据处理时,选取适当的数据转换系数,使输出满足量程要求。 参考文献 [1] 赵茂泰.智能仪器原理及应用.北京:电子工业出版社,2004:100-156 [2] 张毅刚.MCS-51单片机应用设计.哈尔滨:哈尔滨工业大学出版社,2003:142-169 [3] 贾伯年,俞朴.传感器技术.南京:东南大学出版社,2000:33-62 [4] 单成祥.传感器理论设计基础及其应用.北京:国防工业出版社,1999:78-133 [5] 李道华,李玲,朱艳.传感器电路分析与设计.武汉大学出版社,2000:61-88 [6] 李刚,林凌,姜苇.单片机系统设计与应用技巧.北京:北京航空航天大学出版社,2004 [7] 李斌,董慧颖. 可重组机器人研究和发展现状. 沈阳工业学院学报,2000,19(4):23-27 课设体会 时光飞逝,一转眼,一个学期又进尾声了,本学期的智能课程设计也在三周内完成了。 俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。   硬件的设计跟焊接都要我们自己动手去操作,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。   当然,这其中也有很多问题,第一、不够细心比如由于粗心大意接错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次课程实习,我的第一大就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。   在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且我们熟练掌握了有关器件的性能及测试方法。   再次感 谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。 [2008年7月25日完成] 附录1 电路原理图 附录2 程序清单 ML8155 EQU 0DF00H K8155A EQU 0DF01H K8155B EQU 0DF02H K8155C EQU 0DF03H DTIMER0 EQU 30H ;?;延时时间的初值 DTIMER1 EQU 31H ;;调用延时子程序的次数 SET_VH EQU 50H ; 预置值的高位 SET_VL EQU 51H ; 预置值的低位 SET_VL1 EQU 52H ; 预置值的低位的高位 SET_VL2 EQU 53H ; 预置值的低位的低位 ADVAL EQU 3FH ; AD转换结果 TEMP EQU 32H ; 存放中间结果 TEMP1 EQU 33H ;存放中间结果 TEMP2 EQU 34H ; 存放中间结果 ORG 0000H LJMP MAIN ORG 1000H MAIN:MOV SP,#60H SETB P1.0 CLR P1.1 MOV SET_VH,#05H MOV SET_VL,#00H MOV SET_VL1,#00H MOV SET_VL2,#00H LCALL INIT_8155 START1:LCALL AD_LED LCALL SET_KEY LCALL ARM SJMP START1 AD_LED:LCALL ADC0809 ; 调用0809采样程序 LCALL ZHH ;采样值转换为电压值 MOV A,40H CALL HEX_LEDD MOV 5FH,TEMP MOV A,41H CALL HEX_LED MOV 5EH,TEMP1 MOV 5DH,TEMP2 MOV 5CH,#6FH ;U LCALL WRITE_LED RET ADC0809:PUSH DPL PUSH DPH PUSH ACC MOV P2,#7FH MOV R1,#78H L1: MOVX @R1,A MOV R2,#10H L4: DJNZ R2,L4 L2: JNB P3.3,L2 MOVX A,@R1 MOV ADVAL,A POP ACC POP DPH POP DPL RET ZHH:PUSH PSW PUSH ACC SETB RS0 MOV A,#0C4H MOV B,ADVAL MUL AB MOV R6,B MOV R7,A HB2:CLR A MOV R3,A MOV R4,A MOV R5,A MOV R2,#10H HB3:MOV A,R7 RLC A MOV R7,A MOV A,R6 RLC 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 MOV A,R3 ADDC A,R3 MOV R3,A DJNZ R2,HB3 MOV 40H,R3 MOV 41H,R4 POP ACC POP PSW RET HEX_LEDD:PUSH DPH PUSH DPL PUSH ACC ANL A,#0FH MOV DPTR,#BCD_CODED ; DPTR到SCII-CODE MOVC A,@A+DPTR ; 取得段码 MOV TEMP,A POP ACC POP DPL POP DPH RET BCD_CODED:DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH DB 77H,7CH,39H,5EH,79H,71H,73H,00H,40H HEX_LED:PUSH DPH PUSH DPL PUSH ACC PUSH ACC SWAP A ANL A,#0FH MOV DPTR,#BCD_CODE ; DPTR指到ASCII--CODE MOVC A,@A+DPTR ; 取得段码 MOV TEMP1,A ;;显存位置 POP ACC ANL A,#0FH MOV DPTR,#BCD_CODE ;;留下低四位单元 MOVC A,@A+DPTR ;;取得ASCII码 MOV TEMP2,A ; 后加 POP ACC POP DPL POP DPH RET BCD_CODE:DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH DB 77H,7CH,39H,5EH,79H,71H,73H,00H,40H WRITE_LED:PUSH DPH PUSH DPL PUSH ACC MOV R0,#5CH MOV R3,#0F7H MOV A,R3 AGAIN:MOV DPTR,#K8155A MOVX @DPTR,A MOV A,@R0 MOV DPTR,#K8155B MOVX @DPTR,A LCALL DELAY01 INC R0 MOV A,R3 JNB ACC.0,OUT RR A MOV R3,A AJMP AGAIN OUT:POP ACC POP DPL POP DPH RET SET_KEY:MOV R7,#00H MOV R6,#00H MOV R5,#00H LCALL READ_KEY1 MOV A,B CJNE A,#04H,END_ST MOV 5FH,#76H MOV 5EH,#00H MOV 5DH,#00H MOV 5CH,#00H LCALL WRITE_LED SETH:LCALL READ_KEY1 MOV A,B CJNE A,#0FFH,GGG LCALL WRITE_LED LJMP SETH GGG:CJNE A,#05H,SET_L MOV A,R7 CJNE A,#06H,SET_H MOV A,#00H MOV R7,A SET_H:MOV SET_VH,R7 MOV DPTR,#BCD_CODED MOVC A,@A+DPTR MOV 5EH,A LCALL WRITE_LED INC R7 LJMP SETH SET_L:CJNE A,#06H,SET_LL MOV A,R6 CJNE A,#0AH,SET_L1 MOV A,#00H MOV R6,A SET_L1:MOV SET_VL1,R6 MOV DPTR,#BCD_CODE MOVC A,@A+DPTR MOV 5DH,A LCALL WRITE_LED INC R6 LJMP SETH SET_LL:CJNE A,#07H,KEYJS MOV A,R5 CJNE A,#0AH,SET_LL1 MOV A,#00H MOV R5,A SET_LL1:MOV SET_VL2,R5 MOV DPTR,#BCD_CODE MOVC A,@A+DPTR MOV 5CH,A LCALL WRITE_LED INC R5 LJMP SETH KEYJS:MOV A,SET_VL1 SWAP A ORL A,SET_VL2 MOV SET_VL,A END_ST:RET READ_KEY1:LCALL READ_KEY JNZ INK1 MOV B,#0FFH RET INK1:LCALL DELAY10 LCALL DELAY10 LCALL READ_KEY JNZ INK2 MOV B,#0FFH RET INK2:LCALL GETVAL LCALL KEYSF RET READ_KEY:MOV DPTR,#K8155A MOV A,#00H MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR CPL A ANL A,#03H LCALL WRITE_LED RET GETVAL:MOV R2,#0FEH MOV R4,#00H COLUM: MOV DPTR,#K8155A MOV A,R2 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR JB ACC.0,LONE MOV A,#00H AJMP KCODE LONE:JB ACC.1,NEXT MOV A,#04H KCODE:ADD A,R4 MOV B,A LCALL WRITE_LED RET NEXT:INC R4 MOV A,R2 JNB ACC.3,KERR RL A MOV R2,A AJMP COLUM KERR:MOV B,#0FFH LCALL WRITE_LED RET KEYSF:LCALL WRITE_LED MOV DPTR,#K8155A MOV A,#00H MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR CPL A ANL A,#03H CJNE A,#00H,KEYSF RET ARM:CLR C MOV R0,#40H MOV A,@R0 SUBB A,SET_VH JC END_CON_T INC R0 MOV A,@R0 SUBB A,SET_VL JC END_CON_T BAIDOWN_T:CLR P1.0 SETB P1.1 LCALL DELAY10 END_CON_T:SETB P1.0 CLR P1.1 RET OFF_LED: MOV 5FH,#00H MOV 5EH,#00H MOV 5DH,#00H MOV 5CH,#00H LCALL WRITE_LED RET INIT_8155: PUSH DPL PUSH DPH PUSH ACC MOV DPTR,#ML8155 MOV A,#03H MOVX @DPTR,A LCALL OFF_LED POP ACC POP DPH POP DPL RET DELAY: PUSH DTIMER1 PUSH DTIMER0 DELAY1:MOV DTIMER0,#125 DELAY2:NOP NOP DJNZ DTIMER0,DELAY2 DJNZ DTIMER1,DELAY1 POP DTIMER0 POP DTIMER1 RET DELAY01:NOP PUSH DTIMER1 MOV DTIMER1,#01H LCALL DELAY POP DTIMER1 RET DELAY10:NOP PUSH DTIMER1 MOV DTIMER1,#10 LCALL DELAY POP DTIMER1 RET end 8051 单片机 放大电路 ADC0809 压力传感器 LED显示 8155键盘� 报警电路 待测重量 8051 单片机 放大电路 ADC0809 压力传感器 LCD显示 8279键盘� 报警电路 待测重量 8051 单片机 放大电路 ADC0809 压力传感器 LCD显示 8279键盘� 报警电路 待测重量 P 1 . 0 BUZ1 BUZZER Q1 2N5401 R1 2k + 5 V 开始 保护现场 启动ADC0809 延时 读转换结果 送暂存单元 返�回 开始 A/D转化结果×196 返回 进制转换 送显缓单元 进制转换 减去(0.0012×19.6) 乘以7.3458 送显缓单元 显示程序 R0:显缓地址 R2:最左位选码 取段码 段码送B口 位码送A口 延时3~5ms 返回 R0+1 R2右移 5位显示完? 第 30 页 _1234567893.unknown _1234567897.unknown _1234567901.unknown _1234567903.unknown _1234567904.unknown _1234567905.unknown _1234567902.unknown _1234567899.unknown _1234567900.unknown _1234567898.unknown _1234567895.unknown _1234567896.unknown _1234567894.unknown _1234567891.unknown _1234567892.unknown _1234567890.unknown
/
本文档为【022LED显示的电子秤设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索