电子秤软件设计_第1页
电子秤软件设计_第2页
电子秤软件设计_第3页
电子秤软件设计_第4页
电子秤软件设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计说明书电子秤软件设计 学生姓名: 武鹏飞 学号: 11050444X15 学 院: 信息商务学院 系 名: 自动控制系 专 业: 电气工程及其自动化 指导教师: 余红英 2015年 6 月中北大学信息商务学院2015届毕业设计说明书电子秤软件设计摘 要电子秤在人们日常生活中应用广泛,本文设计一种基于单片机和高分辨率的模数转换芯片的高精度电子称。在模拟信号处理部分本系统采用精密的电桥压力传感器,通过差分输入的仪用运放INA321作为高阻抗输入的模拟前端,然后通过精密运放OPA2350组成可调增益放大器。在数字处理部分主要通过ADS1256高精度的24为模数转换芯片,结合精密的参考电源将模

2、拟信号转换成数字信号。然后通过STC89C52单片机读取数字电压通过相关的查表计算显示在1602液晶上面。通过PROTEUS软件进行仿真,发现本方案实用可行。关键字:电子秤,单片机,DS18B20,DHT11Electronic scale software designAbstractElectronic scale is widely used in people "s daily life. This paper designs a high precision electronic weighing conversion chip based on MCU and high

3、resolution. In analog signal processing part of the system uses precision bridge pressure sensor, through the differential input operational amplifier INA321 as high impedance input analog front end, followed by Precision Op Amp OPA2350 composition and variable gain amplifier. In the digital process

4、ing part, the analog signal is converted into digital signal by the high precision 24 of the ADS1256 and the precision reference power. And then through the STC89C52 microcontroller read the digital voltage through the relevant look-up table shows in 1602 LCD above. Through the simulation of PROTEUS

5、 software, it is found that the scheme is practical and feasible.Keywords: electronic scale, microcontroller, DHT11, DS18B20目录1 引言11.1 课题研究背景11.2 国内外发展情况11.3 课题研究价值及意义32 系统结构及软硬件介绍42.1 电子称原理与结构42.1.1 电子称原理42.1.2 系统结构介绍42.2 STC89C52单片机42.3 ADS1256芯片介绍62.4 显示器件选型83 电子称电路设计和元件使用93.1 系统电源设计93.1.1 外部电源配置

6、93.1.2 板载稳压电路93.2 单片机最小系统设计103.3 信号放大电路设计123.3.1 信号差分输入电路设计123.3.2 可调整放大电路133.4 模数转换电路设计143.5 1602液晶电路设计154 软件设计及仿真174.1 keil C51软件介绍及其使用174.1.1 keil C51软件介绍174.1.2 单片机代码结构184.2 系统运行流程184.3 ADC驱动程序编写18第 页 共 页4.3.1 SPI接口时序184.3.2 SPI接口时序实现204.3.3 模数转换芯片操作时序235 程序仿真及调试265.1 PROTEUS仿真软件介绍265.2 PROTEUS电

7、路绘制265.3 仿真调试276 结论28附录29参考文献38致谢39第 页 共 页1 引言1.1 课题研究背景现代社会的发展,对称重技术提出了更高的要求。目前,台式电子秤在商业贸易中的使用已相当普遍,但存在较大的局限性:体积大、成本高、需要工频交流电源供应、携带不便、应用场所受到制约。现有的便携秤为杆秤或以弹簧压缩、拉伸变形来实现计量的弹簧秤,居民用户使用的是国家已经明令淘汰的杆秤。多年来,人们一直期待测量准确、携带方便、价格低廉的便携式电子秤投放市场1。 质量是测量领域中的一个重要参数,称重技术自古以来就被人们所重视。公元前,人们为了对货物交换量进行估计,起初采用木材或陶土制作的

8、容器对交换货物进行计量。以后,又采用简单的秤来测定质量。据考证,世界上最古老的计量器具出土于中东和埃及,最古老的衡器和砝码出自于埃及。秤是最普遍、最普及的计量设备,电子秤取代机械秤是科学技术发展的必然规律。低成本、高智能化的电子秤无疑具有及其广阔的市场前景2。1.2 国内外发展情况衡器是通过作用于被测量物体的重力来确定该物体质量的计量器具。在整个衡器的发展过程中,先后主要出现了六种类型的衡器:架盘天平、不等臂平台秤、吊车秤、倾斜象限杆秤、弹簧秤和自动秤。其中,不等臂平台秤(“十进制”)是当今动态轨道衡的鼻祖,至今它仍是最通用的一种秤。 第一次世界大战后,由于金融贸易和工业发展的需要,

9、急需能进行快速称量的衡器。机械式衡器在此期间得到很大的发展。当时以倾斜杠杆案称占绝大多数,读数装置除扇形度盘外,还有滚筒形度盘,从而扩大了读数范围并可附加价格标尺。以后又出现了用于工业的带双摆锤测量机构的圆形度盘指针式秤和成本低廉、带投影标尺的倾斜式杠杆秤3。 第二次世界大战后出现了电子衡器,它主要由称重显示控制器、称重传感器和电器控制等部分组成,其发展过程与其它事物一样,经历了由简单到复杂、由粗糙到精密、由机械到机电结合再到全电子化、由单一功能到多功能的过程。 近30年以来,工艺流程中的现场称量、配料定量称重、以及产品质量的监测等工作,都离不开能输出电信号的电子衡器。这是

10、因为电子衡器不仅能给出质量或重量值的信号,而且也能作为总系统中的一个单元承担着控制和检验功能,从而推进工业生产和贸易交往的自动化和合理化4。电子衡器具有反应速度快、测量范围广、应用面广、结构简单、使用操作方便、信号远传、便于计算机控制等特点,计量精度高,而且实现了多功能、多用途。电子衡器已被广泛应用于各个行业,近年来愈来愈多地参与到数据处理和过程控制之中,使现代称重技术和数据系统成为工艺技术、储运技术、预包装技术、收货业务及商业销售领域中不可缺少的组成部分。电子秤是载于秤的台座、盘、钩上的物品的重量由传感器蠕变反应平衡,而由仪器数字显示的电子衡器。电子秤集机、电、仪于一体,具有多功能、高精度、

11、快速和动态计量、稳定可靠等特征,代表了衡器产品发展的方向。电子秤属于日用衡器,为劳动密集型产品。 电子秤产品总的发展趋势是小型化、模块化、集成化、智能化;其技术性能趋向是速率高、准确度高、稳定性高、可靠性高;其功能趋向是称重计量的控制信息和非控制信息并重的“智能化”功能;其应用性能趋向于综合性和组合性5。 目前我国产品标准中列入的十大类衡器(案秤、台秤、地上衡、地中衡、吊称、皮带秤、料斗秤、检验秤、轨道衡和特种秤)均已实现了电子化。据近期统计,工业用衡器(按销售量统计)中的电子产品已占三分之二左右,技术水平比较成熟的静态衡器的计量范围可以从1µg到800t,部分非

12、自动衡器(如电子计价秤、电子台秤、电子地上衡、电子皮带秤、电子吊秤和电子轨道衡等)已达到国际九十年代初期水平,有的产品达到了九十年代中期水平;由于近十年来电子技术的迅速发展,商用衡器的加工能力迅速增长,产品成本大幅度降低,市场稳步发展。现在,电子计量称重技术已越来越多地应用于工业生产过程控制中,电子衡器的功能及应用拓展到更广泛领域。随着我国加入WTO组织,经济市场的开放度加大,一批具有国际先进水平的衡器产品和技术(如定量包装秤、自动重量检测秤、标签计价秤、电脑组合秤、耐压式计量给煤机等,以及应变计、称重传感器、称重显示器生产技术)进入我国,这对电子秤的进一步普及和提高必将产生积极的、巨大的影响

13、6。电子秤软件的设计,它主要由电源、称重传感器、单片机、LCD显示器等部分构成新型便携式电子秤体积小、计量准确、携带方便、操作简单、称量速度快,能够满足商业贸易和居民家庭的使用需求,具有广阔的应用前景。 1.3 课题研究价值及意义本课题设计的是电子秤,它主要由电源、称重传感器、单片机、键盘/开关、LCD显示器等部分构成。主要技术指标为:称量范围0100kg,电源DC1.5V。仪器的技术指标,其合理性无疑加大了产品投放市场后的竞争能力。 当被称物体放置在秤体的秤台上时,其重量便通过秤体传递到称重传感器,传感器随之产生力电效应,将物体的重量转换成与被称物体重量成一定函数关系(一

14、般成正比关系)的电信号(电压或电流等)。此信号由放大电路进行放大、经滤波后再由模/数(A/D)转换器进行转换,单片机对转换后的数字信号进行必要的判断、分析,再送到显示电路。 新型电子秤体积小、计量准确、操作简单、称量速度快,能够满足商业贸易和居民家庭的使用需求,具有广阔的应用前景7。 电子称重技术的发展规律就是不断的加强基础研究并扩大应用,扩展新技术领域,向相邻学科和行业渗透,综合各种技术方法解决称重计量、自动控制、信息处理等问题。对某些商用电子计价秤而言,只具备称重、计价、显示、打印功能还远远不够,现代商业系统还要求它能提供各种销售信息,把称重与管理自动化紧密结合,使称重

15、、计价、进库、销售管理一体化,实现管理自动化。这就要求电子计价秤能与电子计算机联网,把称重系统与计算机系统组成一个完整的综合控制系统,为现代商业贸易物流的高效率发展提供强有力的支持。使电子称重技术达到一个更高的水平。让智能电子秤更广泛的被运用,更好的服务社会8。1.4 本文内容结构本文共分为5章,其中第一章主要介绍本设计的内容和国内外发展状况以及本文主要内容。第二章对本文主要方案和使用器件进行了说明介绍。第三章主要进行系统的硬件设计进行说明主要包括单片机系统、模数转换电路等。第四章就单片机为核心的软件编写、各器件使用方法以及系统的运行流程进行说明和研究。第5章主要就基于PROTEUS的软件进行

16、仿真和调试。第 38 页 共 39页2 系统结构及软硬件介绍2.1 电子称原理与结构2.1.1 电子称原理电子称的原理是由压阻式传感器将压力信号转换成电信号,由于一般该信号非常弱小,所以需要一个直流滤波器以及模拟调理电路,将信号放大。由于压阻式传感器的输出阻抗非常高,为了提高精度一般选用仪表放大器作为第一级放大电路。然后通过模拟信号调理电路将信号放大我适合于后面的模数转换芯片的电压范围。然后通过单片机采集信号,经过校准,读数之后显示在显示器上面9。2.1.2 系统结构介绍图2.1 系统结构图由于传感器技术的发展和电子称的大规模应用目前市场上已有精度高的集成了电桥的压力传感器,该传感器输出模拟小

17、信号,由于信号幅度非常小以及电桥输出阻抗非常大,所以我采用低失调电流电路和高输入阻抗的三运放仪表放大器INA321进行模拟前端初级放大,然后经过可调高增益放大器器进行放大,使信号的满量程复制尽量靠近模数转换(ADC)的参考电压,然后我通过一个24位的高精度模数转换芯片ADS1256进行采集数据,最后通过SPI接口将数字电压传递给51单片机以供后面的算法处理,最后运算出的最后重量通过1602液晶进行显示10。2.2 STC89C52单片机STC89C52是深圳宏晶公司生产的一种8位单片机。该单片机相比于传统的51单片机性能有所提升。STC89C52单片机是在MCS-51内核的基础上生产的一种产品

18、,其内部功能如下图所示,该型单片机具有通过串口在系统可编程能力(ISP),通过串口加载单片机的代码非常方便,只需要在单片机的板子上面加上一个USB转串口的芯片就可以通过STC的下载上位机程序就可以加载代码。STC89C52单片机主要有以下特点:包括了512字节的SRAM储存空间,而传统单片机仅为256字节。内部带有8K字节的Flash程序存储器,其中flash可以通过内部的寄存器在正常的工作电压下访问可以作为EEPROM使用,其有效使用次数为10万次。该型单片机的工作电压较宽:5.5V3.3V(5V单片机)/3.8V2.0V(3V 单片机),而传统的单片机仅为4.55.5V。在速度方面STC8

19、9C52单片机脚传统单片机有很大提高,传统的51单片机最大工作频率仅为24MHz而该单片机最大工作频率为48MHz,并且可以选择进行12分频或者6分频,在6分频下相当于传统的单片机的96MHZ下工作。此外该单片机的外设还有:1). 3个16位的定时器和可配置4种工作方式。2). 有4路的外部中断,可以配置为边沿触发或者低电平触发,当单片机进入低功耗模式时也可以通过外部中断唤醒。3). 此外除了P0、P1、P2和P3通用I/O口以外还增加了P4口,可以通过寄存器开关ALE信号的使能11。图2.2 STC89C52内部功能图2.3 ADS1256芯片介绍为了提升电子称的性能一般来说,我们在电子称中

20、选择的模数转换芯片需要的分辨率较高,我采用的是ADS1256,24位模数转换芯片。ADS1256是TI公司推出的微功耗、高精度、8通道、24位-型高性能模数转换器(ADC)。该器件提供高达23比特的无噪声精度、数据速率高达30kSPS(次采样/秒)、0.0010%非线性特性(最大值)以及众多的板上外设(输入模拟多路开关、输入缓冲器、可编程增益放大器和可编程数字滤波器等),可为设计人员带来完整而高分辨率的量测解决方案。其主要特点如下:1.24位无数据丢失;2.高达23比特的无噪声精度;3.低非线性度:±0.0010%;4.数据采样率可达30kSPS;5.采用单周期转换模式;6.带有模拟

21、多路开关,具有传感器检测功能(可配置为4路差动输入和8路单极输入);7.带有输入缓冲器(BUF);8.带有串行外设接口(SPI);9.内含可编程增益放大器(PGA),PGA1时,可提供高达25.3位的有效分辨率;PGA64时,可提供高达22.5位的有效分辨率;a.PGA噪声低;b.所有的PGA均具有自校准和系统校准;c.模拟输入电压为5V,数字电压为1.83.6V;d.正常模式下功耗低至38mW,备用模式下功耗为0.4mW。ADS1256的内部结构如图2.3所示。该器件主要由模拟多路开关(MUX)、输入缓冲器(BUF)、可编程增益放大器(PGA)、四阶-调制器、可编程数字滤波器、时钟发生器、控

22、制器和串行SPI接口等组成。由于ADS1256提供有九路模拟输入端,因此,可使用模拟多路开关寄存器来将其配置为4路差动输入、8路单极输入或差动输入和单极输入的组合。当模拟输入通道0被选择为正差动输入端(AINP)时,其余通道可被选择为负差动输入端(AINN)12。图2.3 ADS1256 内部功能图2.4 显示器件选型作为以单片机为控制核心的系统,一般我们的显示方式大致有LCD或者数码管两种,下面我将讨论使用LCD的1602液晶或者4位数码管显示方案。方案一:采用1602液晶显示,1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5

23、X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶13。方案二:采用4位的8段数码管显示,数码管也称LED数码管,不同行业人士对数码管的称呼不一样,其实都是同样的产品。数码管按段数可分为七段数码管和

24、八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP)这个小数点可以更精确的表示数码管想要显示的内容;按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地

25、线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮14。由于我的系统是近距离显示,并且显示参数较多,所以我采用1602液晶进行数据显示任务。3 电子称电路设计和元件使用3.1 系统电源设计对于一个系统来讲,有一个稳定可靠地电源是必要的。为了提高电源可靠性、简化供电电路、适应多种不同电源供电,本系统采用外部电源适配器与板载稳压芯片结合的方法给电路供电。3.1.1 外部电源配置由于板载输入电源芯片采用的是低压差的AMS1117-5.0其适应外部直流供电,范围为5-15V,所以我们只需要一个5-15V的直流源就行。或者为了适应220V的交流供

26、电我们的板子上面有一个Mini_UAB_A型接口,可以选择手机充电器作为电源适配器,通过一根MP3的USB线连接到板子就可以15。3.1.2 板载稳压电路为适应单片机的5V的供电以及模数转换器件需要的5V供电,板载DC-DC分为两级,第一级为利用AMS1117-5.0将外部供电稳压为5V,第二级为在5V的基础上利用AMS1117-3.3将5V稳压为3.3V以适应3V的供电范围。AMS1117为低压差的稳压芯片,最大可提供1A电流此时最小压差仅为为1.2V。我采用的是SOT-223封装形式。外部输入我采用500mA的1206封装的自恢复保险,以保证系统用电的安全,避免短路等意外情况发生。为提高电

27、源质量输入采用22uF电解电容和0.1uF瓷片电容滤波,输出采用10uF电解电容和0.1uF瓷片电容滤波。DC-DC电路原理图如下所示:图3.1板载稳压电路3.2 单片机最小系统设计我采用的封装为DIP-40,DIP-40引脚方便焊接和调试,使用方便,其引脚信息如表3-1所示:表3.1 单片机引脚说明引脚名引脚编号电源引脚VCC为40、GND为20外部时钟引脚XTAL1为12、XTAL2为11复位引脚复位引脚为13其他I/O或者功能引脚除上述5个引脚以外图3.2 51单片机最小系统40脚为单片机电源提供引脚外接5V直流电源,C3和C4用于电源的去耦,以提供良好的电源品质。9脚为单片机复位引脚,

28、当9脚的电平为高电平时单片机处于复位状态,为低时单片机正常运行,K1开关用来进行手动复位选择。C1和R10共同组成单片机上电复位电路,当单片机接通电源以后由于C1两端的电压不会突变会有一个上升的过程,而C1和R10串接在VCC和地两端所以RST引脚的电压为VCC-电容电压,上电初期电容电压非常小,所以单片机处于复位状态,复位时间取决于R和C的取值,大约为R*C。18和19脚为外部晶振接口,单片机的时钟由外部晶振和内部的晶体振荡电路组成,STC89C52单片机最高可以运行在40MHz,C2和C5为晶振电路负载电容,与晶振共同使时钟产生。31引脚为内部或者外部存储器选择引脚,当31引脚为高电平时单

29、片机的程序运行从内部FLASH执行,当寻址范围超过8K时使用外部存储器。当31引脚为地电平时单片机默认为使用外部程序存储器。3.3 信号放大电路设计3.3.1 信号差分输入电路设计我采用的是INA321差分输入仪表运算放大器对信号进行差分输入放大。INA321的内部功能如图所示。该芯片使用简单运算精度高使用方便。具有单电源供电应用的能力。INA321的功耗极低,最小功耗仅为40uA,并且具有轨对轨的输出能力,同时只需要两个反馈电阻就可以调整放大倍数。放大倍数的计算公式为:图3.3 INA321内部功能INA321我采用的是MSOP-8封装的芯片,芯片第一引脚为RG,用于放大倍数调制,第2脚为差

30、分输入的负端口,如果是单端输入应该接地,第3脚为运放的正输入端,第4脚为电源负引脚,第5脚为输出信号偏置电源引脚,第6脚为输出信号引脚,第7脚为电源正引脚,第8脚为低功耗一引脚。我连接的电路如图所示,其中R1和R2的作用为调制输出信号的偏置电压,最下为1.2V,C4、C5和C9用于电源去耦提高电源质量。信号输出引脚和RG引脚直接连接放大倍数为5倍。由于没有使用低功耗引脚所以将其接高电平。3.3.2 可调整放大电路可调整运算放大电路我使用的是OPA2350运放,该运放可以轨对轨输入和输出,带宽增益积高达38MHz,压摆率为22V/us,该运放适合于单电源供电的应用。我采用的是SOIC-8封装的芯

31、片,放大电路采用的是正相比例放大电路如图所示:放大倍数为:图3.4 可调放大电路该电路可以通过R4和R5调整反馈电阻的阻值来调整增益,最大增益为当R4和R5都为最大值时为21*21倍。图3.5 INA321电路3.4 模数转换电路设计ADS4122我采用的是ssop-28引脚封装的芯片,其原理图如图所示,芯片引脚主要功能如下表所示:表3.2 ADS1256引脚功能表引脚名字功能1、2AV+、AGND模拟电源正和地引脚 接5V电源3、4VREFN、VREFP参考电源负和正 VREFN接地 VREFP接5AINCOM模拟开关输入公共端613AIN0AIN7模拟信号输入复用端14PWDN睡眠引脚 低

32、电平有效15RST复位引脚16、17AVDD、AGND数字部分电源接口接3V电源18、19XTAL1 XTAL2振荡电路引脚20CSSPI接口使能端21DRDY数据可读引脚 输出低电平有效22、23、24DIN、DO、SCLKSPI双向接口引脚25、26、27、28D0D3通用数据引脚如图所示,根据模数转换芯片的功能引脚连接的电路图,其中REF1004I2.5为基准电源芯片,该芯片输出2.5V的基准电压,通过OPA2350运放进行缓冲然后提供给模数转换芯片,基准电源的目的是提供一个稳定的电源基准准确的测量出实际的电压值。晶振电路接7.68MHz的晶振和两个负载电容。右边的数字接口接单片机的I/

33、O口。由于没有使用POWER DOWN功能所以将14引脚接高。模拟电源部分提供+5V的电源,通过两个104的电容去耦。图3.6 ADS1256电路图3.5 1602液晶电路设计1602采用标准的16脚,其接口功能如表3-3所示:表3.3 1602液晶引脚功能引脚功能1GND为电源地2VCC接5V电源正极3V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

34、6E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。7-14D0D7为8位双向数据端。第1516脚:空脚或背灯电源15、1615脚背光正极,16脚背光负极。图3.7 1602液晶电路连接4 软件设计及仿真4.1 keil C51软件介绍及其使用4.1.1 keil C51软件介绍MCS-51系列单片机开发使用的是经典的单片机开发工具Keil C51软件。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。其开发界面如图所示:图4.1 Ke

35、il 软件界面4.1.2 单片机代码结构图 4.2 单片机程序开发思想单片机软件分为3层,底层位接口定义将实际的接口名字定义为易于理解的别名以供Driver层编写的操作函数使用,第二层为一些基本的器件操作的函数封装,第三层为利用这些函数实现相关的功能。这种方式利于单片机程序的移植,与功能的更改,程序也更加规范化。4.2 系统运行流程系统运行流程如图4.3所示,开机以后系统首先初始化1602液晶、模数转换器等。初始化以后如果没有按下价格设置按键将会循环的进行模数转换,然后取转换的中值,然后查表得出重量通过价格计算出总价,并通过1602液晶显示出来。如果按下设置价格按键那么将可以通过加减按键设置价

36、格如果再次按下价格设置按键那么系统将会再次进入测量循环状态。4.3 ADC驱动程序编写4.3.1 SPI接口时序ADS1256采用的是SPI接口,SPI接口使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线NSS(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。SPI有四种工作模式,各个工作模式的不同在于SCLK不同, 具体工作由CPOL,CPHA决定:CPOL:(Clock Polarity),时钟极性当CPOL为0时,时钟空闲idle时候的电平是低电平;当CPOL为

37、1时,时钟空闲idle时候的电平是高电平;CPHA:Clock Phase),时钟相位当CPHA为0时,时钟周期的前一边缘采集数据;当CPHA为1时,时钟周期的后一边缘采集数据;图4.3 运行流程CPOL和CPHA,分别都可以是0或1,对应四种组合。ADS1256采用的是CPOL=0,CHAP=1的模式其时序如图4.2所示。ADS1256采用四线制(时钟信号线SCLK、数据输入线DIN、数据输出线DOUT和偏片选线CS)SPI通信方式,只能工作在SPI通信的从模式下。设计时可以通过各种主控制器(如单片机等)来控制ADS1256片上的寄存器,并通过串口读写这些寄存器。串口通信时,必须保持CS为低

38、电平。DRDY引脚用来表明转换已经完成,可以通过RDADA或者RDATAC命令从DOUT引脚读取最新的转换数据。在SPI通信过程中,可同步地发送和接收数据,而且数据也可来利用SCLK和DIN、DOUT信号同步移动。SCLK信号要尽量保持干净以免发生数据错误,在SCLK的上升沿,可通过DIN向ADS1256发送数据,而在SCLK的上升沿,可通过DOUT从ADS1256读取数据。DIN和DOUT也可以通过一条双向信号线与主控制器相连,但在这种情况下,一定不能用RDATAC命令来读取数据。空闲时SCLK接口是低电平同时进行通信时SCLK的下降沿SPI接口将会采集输入总线数据。CS接口用于控制SPI接

39、口的时钟的使能每一次CS的下降沿时一个SPI传输的开始。其时序为:图4.4 SPI时序4.3.2 SPI接口时序实现接收一个字节代码为:void ADS1256_Send8Bit(uint8_t _data)uint8_t i;/* 连续发送多个字节时,需要延迟一下 */ADS1256_DelaySCLK(); /延时函数ADS1256_DelaySCLK(); ADS1256_DelaySCLK();/*ADS1256 要求 SCL高电平和低电平持续时间最小 200ns */for(i = 0; i < 8; i+) /准备发送8位数据if (_data & 0x80) /判断

40、将要发送的数据位的高低DI_1(); /如果是高将模数转换DI数据口置1elseDI_0(); /如果是低则置0SCK_1(); /拉高时钟总线发送数据ADS1256_DelaySCLK(); /延时时钟高电平时间_data <<= 1; /移动一位准备下次发送SCK_0();/* ADS1256 是在SCK下降沿采样DIN数据, 数据必须维持 50nS */ADS1256_DelaySCLK(); /拉低时钟此时下降沿开始以后 模数转换芯片采集数据发送一个字节代码为:uint8_t ADS1256_Recive8Bit(void) /ADS1256接收数据函数uint8_t i;

41、uint8_t read = 0;ADS1256_DelaySCLK(); /延时 控制SCLK频率/*ADS1256 要求 SCL高电平和低电平持续时间最小 200ns */for (i = 0; i < 8; i+ ) /循环接收8位SCK_1(); /SCLK赋值为1ADS1256_DelaySCLK(); /SCLK高电平时间 read = read<<1; /移动一位准备接收数据SCK_0(); /SCLK下降沿if (DO_IS_HIGH() /下降沿接收数据 判断数据是1还是0read+; /如果是高位将刚才移动的一位置位1否则保持0ADS1256_DelayS

42、CLK(); /SCLK低电平延时return read; /返回接收到的8位数据通过SPI接口发送命令操作寄存器代码,模数转换芯片在操作的过程中,必须将CS接口拉低,操作寄存器的流程为:发送命令(读取或者写入操作)、发送操作寄存器个数、读取或者写入响应个数的数据字节。代码如下:写寄存器:void ADS1256_WriteReg(uint8_t _RegID, uint8_t _RegValue)CS_0();/* SPI片选 = 0 */ADS1256_Send8Bit(CMD_WREG | _RegID);/* 写寄存器的命令, 并发送寄存器地址 */ADS1256_Send8Bit(0

43、x00); /* 寄存器个数 - 1, 此处写1个寄存器 */ADS1256_Send8Bit(_RegValue); /* 发送寄存器值 */CS_1();/* SPI片选 = 1 */读寄存器:uint8_t ADS1256_ReadReg(uint8_t _RegID)uint8_t read;CS_0();/* SPI片选 = 0 */ADS1256_Send8Bit(CMD_RREG | _RegID);/* 写寄存器的命令, 并发送寄存器地址 */ADS1256_Send8Bit(0x00); /* 寄存器个数 - 1, 此处读1个寄存器 */ADS1256_DelayDATA()

44、; /* 必须延迟才能读取芯片返回数据 */read = ADS1256_Recive8Bit();/* 读寄存器值 */CS_1();/* SPI片选 = 1 */return read;4.3.3 模数转换芯片操作时序如图4.5所示,首先系统发送自校准命令至ADC,通过判断DRDY是否为低判断自校准是否完成,然后发送同步信号至ADC,发送读数据命令,等待至少50个内部FINCLK以后,就可以读出转换值,然后通过读命令读出3个8位数据共24位数据。图4.5 ADC进行一次转换流程4.3 1602显示程序编写1602液晶是8位并行口操作所以其代码相对简单,我们只需要写入数据即可,1602液晶内

45、部有标准ASCII的字库所以我们只需要送入对应字库的地址即可显示字符。1602液晶的操作分为写命令和写数据,通过RS、RW和E引脚实现不同的功能如表所示:图4.2 1602液晶引脚功能RSRWE功能00下降沿写指令代码01高电平读忙标识和AC值10下降沿写数据11高电平读数据我们只使用写操作其时序如图4.6所示,首先我们选择RS以选择数据或者命令,然后选择RW低电平,然后送入需要写入的命令或者数据拉高E接口即可送入数据或者命令。图4.8 1602液晶写时序写数据的函数:void LCD_WriteData( uchar WD ) /WD为需要写入的数据while( LCD_CheckBusy(

46、) != 0 ); /检测1602液晶是不是忙 等待不忙CE = 0; RS = 1; /选择数据RW = 0; /选择写数据delayIIC();CE = 1; /拉高CE端delayIIC(); /为数据口数据赋值LCDD( WD ); /为数据口数据赋值CE = 0; /拉低CE 下降沿送出数据写命令的函数:void LCD_WriteInstruct( uchar Ins ) /写入指令while( LCD_CheckBusy() != 0 ); /检测系统是否忙RS = 0; /选择指令RW = 0; /选择写数据delayIIC(); /等待1602 读取选择CE = 1; /拉高

47、CE端 delayIIC(); /延时CE高电平LCDD( Ins ); /为数据口数据赋值CE = 0; /拉低CE 下降沿送出数据5 程序仿真及调试5.1 PROTEUS仿真软件介绍PROTEUS软件是一款非常方便的EDA软件,该软件既可以进行模数混合电路的仿真也可以进行电路板的设置,但是人们一般都只使用该软件进行数字类和简单的模拟数字混合电路仿真,由于其电路板绘制功能更不好用所以一般不使用该软件绘制PCB板。PROTEUS软件非常适合于单片机系统的仿真系统里面有MCS-51系列单片机、MSP430系列单片机、AVR系列单片机以及基于ARM CORTEX-M3内核的高性能单片机。该软件使用

48、非常方便与实际电路非常接近可以设计电阻、电容参数,在进行单片机仿真是其仿真库里面可以调用74系列芯片、三级管、数码管、1602液晶以及12864液晶等器件,就像我们组装成一个实际的单片机系统一样。该软件进行仿真不需要使用所谓的工程之类的只需要新建一个电路图文件然后在画布上可以添加元器件、激励信号、电源以及示波器等测试器件。该软件仿真过程相比于单片机实际运行较慢,特别是由模拟电路参与下,该软件仿真速度极其慢,所以对于数码管等需要实时扫描的器件可能我们需要稍微改一下延时时间才能和实际效果基本一致。5.2 PROTEUS电路绘制图5.1 仿真图如图5.1所示的仿真图,电路主要由单片机最小系统、ADC

49、0809模数转换芯片、1602液晶、放大电路以及按键电路组成。通过PROTEUS软件创建电路图软件然后放置元件连接线路以后即可。5.3 仿真调试在连接好电路以后编程测试代码,然后通过双击单片机加载由Keil软件编译生成的.hex软件,然后运行即可。在测试1602液晶的时候发现原来在开发板上可以执行的代码在PROTEUS软件上以后确执行不了,死在了为1602封装的函数里面,通过测试发现原来PROTEUS软件里面的1602液晶对于编写的测忙函数不响应,通过将测忙函数变成延时以后1602液晶终于可以执行了,通过编写全功能函数软件经过调试测试以后的运行结果如图5.2所示:图5.2 仿真运行经过运行发现

50、本仿真可以实现单价的设定以及电压的采集并可以得出电压量化值与设定单价的乘积。6 结论电子秤在人们日常生活中应用广泛,本文设计一种基于单片机和高分辨率的模数转换芯片的高精度电子称。在模拟信号处理部分本系统采用精密的电桥压力传感器,通过差分输入的仪用运放INA321作为高阻抗输入的模拟前端,然后通过精密运放OPA2350组成可调增益放大器。在数字处理部分主要通过ADS1256高精度的24为模数转换芯片,结合精密的参考电源将模拟信号转换成数字信号。然后通过STC89C52单片机读取数字电压通过相关的查表计算显示在1602液晶上面。通过PROTEUS软件进行仿真,发现本方案实用可行。设计方面的问题主要

51、存在于软件参数的调整与设置,前期一直存在较大误差。但在老师的悉心教导与我自己不断地努力下,最终我得以成功改正了诸多不足与缺点,较好的完成了本次毕业设计。在软件程序编写这一重点难题上逐步研究、攻破。最后,对整个系统进行调试,进行资料的编排等,加以整理最终完成说明书。附录#include "reg52.h"#include "intrins.h"#define uchar unsigned char#define uint unsigned intsbit ad_tri = P23;sbit ad_eoc = P32;sbit Kset = P33;sbit

52、 Kadd = P24;sbit Ksub = P25;sbit Kdp = P26;sbit BEEP = P36;/* 定义液晶硬件接口 */sbit RS=P20;sbit RW=P21;sbit CE=P22;/* 8位数据口写数据 */#define LCDD(x) P0=x;/* 函数声明 */void LCD_WriteInstruct( uchar Ins );void LCD_WriteData( uchar WD );void delay( uint d );void Display( float D );void count_init( void );void delayIIC( void );void LCD_Init( void );void LCD_WriteNum( uchar LineX , uchar BitX , uchar WD );void LCD_WriteFloat( uchar Linex , uchar StartBit , float Displayf );void LCD_Write

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论