单片机课程设计电子秤

合集下载

单片机电子称课程设计1

单片机电子称课程设计1

单片机电子称课程设计1————————————————————————————————作者:————————————————————————————————日期:2单片机技术及其应用原理课程设计报告设计题目:电子秤的设计专业年级:08电子信息工程本科小组成员: 杨婷(200800802035华娟(200800802041王尹怿(200800802048成绩:完成时间:20110702【设计题目】电子称的设计【设计要求】(1设计一款电子秤,用LED液晶显示器显示被称物体的质量(2可以设定该秤所称的上限(3当物体超重时,能自动报警【设计过程】1.【方案设计】34 在设计系统时,针对各个模块实现的功能来设计电子秤的方案有以下几种: 方案一结构简图如下图所示:图1 带有键盘输入的结构简图此方案设计的电子秤,可以实现称物计价功能,但是局限于数码管的功能,在显示时只能显示单价、购物总额以及简单的货物代码等。

在显示重量时,如果数码管没有足够的位数,那么称量物体重量的精度必受到限制,所以此方案需要较多的数码管接入电路中。

这样在处理输入输出接口时需要另行扩展足够多的I/O 接口供数码管使用,比较麻烦。

方案二前端信号处理时,选用放大、信号转换等措施,尤其在显示方面采用具有字符图文显示功能的LCD 显示器。

这种方案不仅加强了人机交换的能力,而且满足设计要求,可以显示购物清单、所称量的物体信息等相关内容。

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

单片机控制适合于功能比较简单的控制系统,而且其具有成本低,功耗低,体积小算术运算功能强,技术成熟等优点。

但其缺点是外围电路比较复杂,编程复杂。

使用这种方案会给系统设计带来一定的难度。

方案三采用现场可编程门阵列(FPGA为控制核心采用现场可编程门阵列(FPGA为控制核心,利用EDA软件编程,下载烧制实现。

单片机电子称课程设计1

单片机电子称课程设计1

单片机电子称课程设计1单片机技术及其应用原理课程设计报告设计题目:电子秤的设计专业年级:08电子信息工程本科小组成员: 杨婷(200800802035华娟(200800802041王尹怿(200800802048成绩:完成时间:20110702【设计题目】电子称的设计【设计要求】(1设计一款电子秤,用LED液晶显示器显示被称物体的质量(2可以设定该秤所称的上限(3当物体超重时,能自动报警【设计过程】1.【方案设计】目前单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入单片机,由单片机对测量信号进行处理并根据相应的数据关系译码显示出被测物体的重量。

单片机控制适合于功能比较简单的控制系统,而且其具有成本低,功耗低,体积小算术运算功能强,技术成熟等优点。

但其缺点是外围电路比较复杂,编程复杂。

使用这种方案会给系统设计带来一定的难度。

方案三采用现场可编程门阵列(FPGA为控制核心采用现场可编程门阵列(FPGA为控制核心,利用EDA软件编程,下载烧制实现。

系统集成于一片Xilinx公司的SpartanⅡ系列XC2S100E芯片上,体积大大减小、逻辑单元灵活、集成度高以及适用范围广等特点,可实现大规模和超大规模的集成电路。

采用FPGA测频测量精度高,测量频率范围大,而且编程灵活、调试方便,设计要求的精度较高,所以要求系统的稳定性要好,抗干扰能力要强。

从下图中可以看到系统的基本工作流程和各单元电路所用到的核心器件。

其中控制器采用Xilinx公司可编程器件FPGA为核心,基于ISE软件平台,采用VHDL编程实现数据处理、LED和LCD驱动、时钟芯片的I2C通讯、键盘控制等模块。

结构简图如下图所示:图2.4 电子称系统的组成结构图FPGA的逻辑容量密度大,集成度高,可大大减少印刷电路板的空间,减低系统功耗,同时还可以提高设计的工艺性和产品的可靠性。

虽然以FPGA为核心的电子称系统很优化,但只有在大规模和超大规模集成电路中其高集成度才能更好得以体现。

基于单片机的实用电子秤设计

基于单片机的实用电子秤设计

基于单片机的实用电子秤设计一、硬件设计1、传感器选择电子秤的核心部件之一是称重传感器。

常见的称重传感器有电阻应变式、电容式等。

在本设计中,我们选用电阻应变式传感器,其原理是当物体的重量作用在传感器上时,传感器内部的电阻应变片会发生形变,从而导致电阻值的变化。

通过测量电阻值的变化,就可以计算出物体的重量。

2、信号放大与调理传感器输出的信号通常比较微弱,需要经过放大和调理才能被单片机处理。

我们使用高精度的仪表放大器对传感器输出的信号进行放大,并通过滤波电路去除噪声干扰,以提高测量的准确性。

3、单片机选型单片机是整个电子秤系统的控制核心。

考虑到性能、成本和开发难度等因素,我们选用 STM32 系列单片机。

STM32 系列单片机具有丰富的外设资源、较高的运算速度和良好的稳定性,能够满足电子秤的设计需求。

4、显示模块为了直观地显示测量结果,我们选用液晶显示屏(LCD)作为显示模块。

LCD 显示屏具有功耗低、显示清晰、视角广等优点。

通过单片机的控制,可以在 LCD 显示屏上实时显示物体的重量、单位等信息。

5、按键模块为了实现电子秤的功能设置,如单位切换、去皮、清零等,我们设计了按键模块。

按键模块通过与单片机的连接,将用户的操作指令传递给单片机进行处理。

6、电源模块电源模块为整个电子秤系统提供稳定的电源。

我们使用线性稳压器将输入的电源电压转换为适合各个模块工作的电压,以确保系统的正常运行。

二、软件算法1、重量计算算法根据传感器的特性和放大调理电路的参数,我们可以建立重量与传感器输出信号之间的数学模型。

通过对传感器输出信号的采集和处理,利用数学模型计算出物体的实际重量。

2、滤波算法为了消除测量过程中的噪声干扰,提高测量的稳定性和准确性,我们采用数字滤波算法对采集到的信号进行处理。

常见的数字滤波算法有中值滤波、均值滤波等。

在本设计中,我们选用中值滤波算法,其原理是对连续采集的若干个数据进行排序,取中间值作为滤波后的结果。

基于单片机的电子秤设计报告

基于单片机的电子秤设计报告

五邑大学信息工程学院课程设计报告课程名称:电子系统设计技术专业:______ 通信工程_______ 班级:AP10057班学号:_________ 11 _________ 姓名:___________ 李绍杰指导教师:周开利设计时间:2013年1月2日评定成绩: _____________________设计课题题目:电子秤一、设计任务与要求1. 本次的课程设计任务是设计一个电子秤,首先我们来了解一下电子秤的基本的背景和设计意义。

电子秤在很早以前就开始被被人们广泛运用。

它是一个现代化的称重仪器,结合了计算机技术,信息处理,数字技术等等的很多的高科技技术。

电子秤,属于衡器的一种,是利用胡克定律或力的杠杆平衡原理测定物体质量的工具。

电子秤主要由承重系统(如秤盘、秤体)、传力转换系统(如杠杆传力系统、传感器)和示值系统(如刻度盘、电子显示仪表)3部分组成。

按结构原理可分为机械秤、电子秤、机电结合秤三大类。

[电子秤拥有许多过去的简单的机械化的称重技术所没有的优点。

例如,第一方面:电子秤的重量轻,体积小,容易携带,并且容易维修;第二方面:因为电子秤是运用了以单片机为中心控制单元,通过称重传感器进行模数转换单元,再通过配合键盘、显示电路及强大软件来组成,所以电子秤的准确率高,并且很快速,能够让人们很直观地看到称重的结果,这样更加深受人们的喜欢。

第三方面:电子秤不仅仅只是客观的物体,它通过了压力传感器采集到被测物体的重量并将其转换成电压信号。

然后通过前端信号处理电路进行准确的线性放大最后把放大后的模拟电压信号经A/D转换电路转换成数字量被送入到主控电路的单片机中,再经过单片机控制译码显示器,从而显示出被测物体的重量。

这是一个很高端,很人性化的发展,能够实现人机的信息转换。

第四方面:电子秤不再像过去的机械称重器那样功能局限,如今的电子秤更是能够广泛应用在商业,工农业,科技,交通等等很多方面。

并且对人们日常生活的影响越来越大。

单片机电子秤毕业设计

单片机电子秤毕业设计

单片机电子秤毕业设计单片机电子秤毕业设计随着科技的不断发展,单片机在各个领域的应用也越来越广泛。

其中,电子秤作为一种常见的计量工具,也逐渐被单片机技术所取代。

本文将介绍一个基于单片机的电子秤毕业设计,探讨其原理、设计思路以及实现过程。

一、设计原理电子秤的基本原理是通过测量物体受力产生的应变,从而计算出物体的质量。

在传统的电子秤中,通常使用应变片作为测量传感器,通过电桥电路来测量应变片的变化。

而在单片机电子秤中,我们可以利用单片机的模拟输入引脚来直接测量应变片产生的电压信号,然后通过一系列的算法来计算物体的质量。

二、设计思路在设计单片机电子秤时,首先需要选择合适的传感器。

常用的传感器有压力传感器、应变片传感器等,根据实际需求选择适合的传感器。

接下来,需要根据传感器的特性和测量范围来确定单片机的模拟输入电压范围。

然后,设计模拟电路将传感器的电压信号转换为单片机可以接受的电压范围。

最后,编写单片机程序,通过采样和处理电压信号,计算出物体的质量,并在显示屏上显示出来。

三、实现过程1. 选择传感器:根据设计要求选择合适的传感器,比如压力传感器。

2. 设计模拟电路:根据传感器的输出信号范围和单片机的输入电压范围,设计合适的模拟电路。

通常使用运算放大器来放大传感器的电压信号,并通过电阻分压将电压范围转换为单片机可以接受的范围。

3. 编写单片机程序:根据设计要求,编写单片机程序来采样和处理传感器的电压信号。

可以使用模拟输入引脚采样电压信号,并通过ADC(模数转换器)将模拟信号转换为数字信号。

然后,根据一定的算法来计算物体的质量,并将结果显示在LCD显示屏上。

4. 调试和优化:在实际应用中,可能会出现一些误差和不准确性。

因此,需要对电子秤进行调试和优化,比如校准传感器的灵敏度、调整算法的精度等。

四、应用前景单片机电子秤具有体积小、成本低、精度高等优点,因此在工业生产、商业零售、家庭使用等领域有着广泛的应用前景。

比如,在工业生产中,可以用于称重原材料和成品;在商业零售中,可以用于称重商品和计价;在家庭使用中,可以用于称重食材和药品等。

单片机课程设计报告 基于单片机的电子秤设计

单片机课程设计报告  基于单片机的电子秤设计

基于单片机的电子秤设计一、【设计题目】基于单片机的电子秤设计二、【设计要求】设计要求如下:(1)设计一款电子秤,用LCD液晶显示器显示被称物体的质量(2)可以设定该秤所称的上限(3)当物体超重时,能自动报警。

三、【设计过程】1.【方案设计】微控制器技术、传感器技术的发展和计算机技术的广泛应用,电子产品的更新速度达到了日新月异的地步。

本系统在设计过程中,除了能实现系统的基本功能外,还增加了打印和通讯功能,可以实现和其他机器或设备(包括上位PC机和数据存储设备)交换数据.除此之外,系统的微控制器部分选择了兼容性比较好的AT89系列单片机,在系统更新换代的时候,只需要增加很少的硬件电路,甚至仅仅删改系统控制程序就能够实现。

另外由于实际应用当中,称可以有一定量的过载,但不能超出要求的范围,为此本设计提供了过载提示和声光报警功能。

综上所述,本课题的主要设计方案是:利用压力传感器采集因压力变化产生的电压信号,经过电压放大电路放大,然后再经过模数转换器转换为数字信号,最后把数字信号送入单片机。

单片机经过相应的处理后,得出当前所称物品的重量及总额,然后再显示出来。

此外,还可通过键盘设定所称物品的价格。

主要技术指标为:称量范围0~5kg;分度值0.01kg;精度等级Ⅲ级;电源DC1.5V(一节5号电池供电)。

其设计框图如图3.1所示。

这种高精度智能电子秤体积小、计量准确、携带方便,集质量称量功能与价格计算功能于一体,能够满足商业贸易和居民家庭的使用需求。

图3.1 系统设计框图2.【器件选择】2.1单片机选择本设计由于要求必须使用单片机作为系统的主控制器,而且以单片机为主控制器的设计,可以容易地将计算机技术和测量控制技术结合在一起,组成新型的只需要改变软件程序就可以更新换代的“智能化测量控制系统”。

考虑到本设计中程序部分比较大,根据总体方案设计的分析,设计这样一个简单的的系统,可以选用带EPROM 的单片机,由于应用程序不大,应用程序直接存储在片内,不用在外部扩展存储器,这样电路也可简化。

基于单片机的智能电子秤控制系统的设计

基于单片机的智能电子秤控制系统的设计

基于单片机的智能电子秤控制系统的设计智能电子秤控制系统是一种集成数字电子技术、传感技术、自动控制技术于一体的高精度、高可靠性的电子秤系统。

本文将介绍基于单片机的智能电子秤控制系统的设计原理及实现方法。

一、系统设计原理基于单片机的智能电子秤控制系统主要由称重传感器、AD转换模块、单片机、LCD显示模块和通信接口模块等组成。

其工作原理如下:1. 称重传感器智能电子秤的核心部件是称重传感器,用于将物体的重量转换为电信号。

常用的称重传感器有应变式、电阻式、电容式等。

它们能够根据物体的质量变化而改变输出电信号,作为下一步处理的输入信号。

2. AD转换模块AD转换模块用于将模拟信号转换为数字信号,通过单片机进行处理。

通过AD转换模块,可以将称重传感器输出的模拟信号转换为单片机可以理解的数据,为后续的数据处理提供基础。

3. 单片机单片机是整个智能控制系统的核心,负责接收AD转换模块的信号,并进行数据处理,并通过LCD显示模块将结果实时显示出来。

同时,单片机还可以通过通信模块与其他设备进行数据交互。

4. LCD显示模块LCD显示模块用于将称重结果以数字形式显示出来,提供直观的测量结果给用户。

5. 通信接口模块通信接口模块允许智能电子秤与其他设备进行数据交互,如与计算机进行连接,实现数据的上传和下载。

二、系统设计方法基于单片机的智能电子秤控制系统的设计可以按照以下步骤进行:1. 硬件设计根据系统的功能需求,选择适当的称重传感器和AD转换模块,并通过电路设计将其与单片机和LCD显示模块进行连接。

此外,根据实际需求选择合适的通信接口模块。

2. 软件设计编写单片机的控制程序,包括AD转换的初始化和读取、数据处理、LCD显示等功能。

根据实际需求,可以添加一些额外的功能,如单位选择、重量校准等。

3. 系统测试将硬件和软件进行组装后,进行系统测试。

通过放置不同重量的物体进行秤量,检查显示结果的准确性和稳定性。

同时,测试通信功能是否正常工作。

单片机电子秤毕业设计

单片机电子秤毕业设计

单片机电子秤毕业设计毕业设计题目:基于单片机的电子秤设计与实现一、设计要求:1.设计并实现一款能够准确测量物体质量的电子秤,使用单片机进行控制与数据处理。

2.电子秤应具备高精度、高稳定性和可靠性等特点。

3.电子秤的测量范围应足够大,能够适用于不同质量的物体。

4.电子秤的设计应尽可能简洁、实用、易于操控和维护。

二、设计方案:1.传感器选择:使用称重传感器作为负载传感器,可选用应变片式传感器或压阻式传感器。

2.信号放大与转换:将传感器测得的微小变化信号通过专用放大电路进行放大,并转换为0-5V或0-3.3V的直流电压信号。

3.单片机控制与显示:使用适当的单片机进行控制与数据处理,可选用常见的51单片机或STM32系列单片机,并通过数码管、液晶显示屏或LED显示屏等显示当前测量的质量值。

4.按键与操作:通过按键实现归零、单位选择、累计等基本操作实现。

5.通信接口:可选用串口或IIC总线等通信模式,将测量结果实时传输到上位机或其他设备。

6.电源系统:使用稳压电源保证整个系统的稳定工作。

三、设计流程:1.硬件设计:a.选择合适的电子元件,包括称重传感器、单片机、显示器、按键、通信模块等。

b.设计传感器接口电路,包括信号放大与转换电路。

c.设计按键与控制电路,将按键输入与单片机相连接,实现操作控制功能。

d.设计显示电路,将单片机输出与显示设备相连接,实现结果显示功能。

e.设计电源电路,保证整个系统的稳定工作。

2.软件设计:a.编写初始化程序,对单片机进行初始化设置。

b.编写按键扫描程序,实现按键输入的检测和处理。

c.编写称重传感器读取程序,实时读取称重传感器输出的模拟电压信号。

d.编写质量计算程序,根据传感器输出的模拟电压信号进行质量计算,并实现单位选择功能。

e.编写显示程序,将计算得到的质量值进行显示。

f.编写通信程序,如果需要与上位机或其他设备进行通信,则需要编写相应的通信协议和数据传输程序。

四、测试与调试:1.对硬件进行连接并进行通电测试,确保电子秤的各个部分能够正常工作。

51单片机电子秤程序设计

51单片机电子秤程序设计

51单片机电子秤程序设计概述本文档介绍了如何使用51单片机(AT89C51)设计一个简单的电子秤程序。

通过该程序,电子秤能够测量物体的重量并实时显示在液晶显示屏上。

硬件准备在开始编写程序之前,我们需要准备以下硬件设备:- AT89C51单片机开发板- 电子秤传感器模块- 16x2液晶显示屏- 连接线程序设计以下是该电子秤的主要程序设计步骤:1. 引入必要的头文件include <reg51.h>include <lcd.h>2. 定义端口和变量sbit DOUT = P3^7; // 电子秤传感器数据接口float weight = 0; // 测量到的重量3. 初始化液晶显示屏void lcd_init(){// 在这里初始化液晶显示屏的相关设置}4. 启动AD转换void start_conversion(){// 在这里启动AD转换,将传感器的模拟数据转换为数字数据}5. 读取AD转换结果float read_conversion(){// 在这里读取AD转换结果并返回}6. 主程序void main(){lcd_init(); // 初始化液晶显示屏while (1){start_conversion(); // 启动AD转换weight = read_conversion(); // 读取AD转换结果// 将重量显示在液晶显示屏上lcd_gotoxy(1, 1); // 设置光标位置lcd_print("Weight: %.2f kg", weight); // 显示重量delay(500); // 延时一段时间,以控制刷新速度}}总结通过以上步骤,我们可以设计一个简单的51单片机电子秤程序。

该程序可以实时获取电子秤传感器的数据,并将测量到的重量显示在液晶显示屏上。

我们可以根据实际需求进行进一步的功能扩展和优化。

请注意,本文档仅提供了程序设计的概述,并未包含具体的代码实现。

单片机课程设计报告电子秤

单片机课程设计报告电子秤

* * 学院单片机课程设计报告书课题名称:基于单片机的电子秤设计姓名:学号:院系:电子与信息工程系专业:电子与信息工程指导教师:时间:2012年6月4日课程设计项目成绩评定表设计项目成绩评定表课程设计报告书目录设计报告书目录一、设计目的 (1)二、设计思路 (1)三、设计过程 (1)3.1软件设计 (1)3.1.1主程序流程图 (2)3.1.2子程序设计 (2)3.1.2.1 V/F转换启动及数据读取程序设计 (3)3.1.2.2显示子程序设计 (3)3.1.2.3键盘扫描子程序的设计 (3)3.2硬件的方案设计 (5)3.2.1 基于AT89C51的主控电路 (5)3.2.2 信号放大电路 (6)3.2.3 信号转换电路 (6)3.2.4稳压电路 (7)3.2.5显示电路 (8)四、系统调试与结果 (9)五、主要元器件与设备 (10)六、课程设计体会与建议 (10)6.1、设计体会 (10)6.2、设计建议 (11)七、参考文献 (11)附 (12)一、设计目的1、熟悉AT89C51单片机功能及工作特性,掌握其接口扩展方法。

2、通过对数据采集的分析,了解了各种传感器、放大器及A/D转换器和V/F 转化器对信号的转换、传输有了更深的认识。

3、对键盘和显示器进行选型比较,得出各种型号优劣比。

4、采用面向对象的思想,分层次、分模块构建设计的总体框架。

二、设计思路1、设计基于AT89C51的主控电路。

2、设计稳压电路。

3、设计信号放大电路。

4、设计信号转换电路。

5、设计显示电路。

三、设计过程电子秤的总体方框图如图1所示。

图3.1 系统总体方框图其工作原理为:前端信号处理时,选用放大、信号转换等措施,在显示方面采用具有字符图文显示功能的LCD显示器。

这种方案不仅加强了人机交换的能力,而且满足设计要求,可以显示购物清单、所称量的物体信息等相关内容。

3.1软件设计电子称软件设计均采用模块化设计,整个程序包括主程序、定时中断程序、INTO中断程序按键程序、数据处理子程序(双字节乘法、二一十进制转换程序及逆转换程序)、LCD十六位液晶静态显示子程序等模块。

单片机电子秤实验报告

单片机电子秤实验报告

单片机电子秤实验报告引言:本实验旨在通过单片机的应用,设计并实现一个基于单片机的电子秤。

通过该电子秤可以准确测量物体的重量,并在显示屏上实时显示重量信息。

该电子秤具有高精度、快速响应、稳定可靠等特点,在工业生产以及家庭使用中具有广泛的应用前景。

一、实验目的通过本次实验,我们的目的是:1.了解单片机的基本工作原理和应用;2.掌握电子秤的工作原理和设计方法;3.搭建一个实际可用的单片机电子秤原型。

二、实验原理电子秤的工作原理是利用应变传感器将物体的重量转换成电信号,并经过放大、滤波等处理后,通过单片机进行数据采集和处理,最终将重量数据显示在液晶显示屏上。

三、实验器材和仪器本次实验我们所使用的器材和仪器有:1. 一个单片机开发板;2. 一个称重传感器;3. 一个液晶显示屏;4. 杜邦线、电阻等其他所需元件。

四、实验步骤1. 搭建硬件电路。

根据电子秤的原理图,将单片机开发板、称重传感器和液晶显示屏进行连接。

2. 编写单片机程序。

根据实验要求,编写单片机的程序代码,包括采集传感器数据、数据处理和显示等功能。

3. 烧录程序。

将编写好的程序烧录到单片机开发板上。

4. 调试测试。

将一个已知重量的物体放在电子秤上,观察液晶显示屏上的重量数据是否与实际重量相符。

5. 优化调整。

根据测试结果,对电子秤的灵敏度、响应速度等参数进行调整,以提高电子秤的测量精度和稳定性。

五、实验结果经过实验,我们成功实现了一个基于单片机的电子秤。

该电子秤具有高精度、稳定可靠的特点,可以准确测量物体的重量,并将重量数据实时显示在液晶显示屏上。

六、实验总结通过本次实验,我们对单片机的应用有了进一步的了解,掌握了电子秤的工作原理和设计方法。

同时,我们也学会了如何搭建一个实际可用的单片机电子秤原型,并进行相应的调试和测试。

通过不断的优化调整,我们提高了电子秤的测量精度和稳定性。

这次实验不仅增加了我们对单片机的实践经验,也提高了我们的动手能力和问题解决能力。

基于单片机的电子秤设计

基于单片机的电子秤设计

基于单片机的电子秤设计随着科技的不断发展,电子秤在日常生活和工业生产中发挥着越来越重要的作用。

传统的电子秤往往采用复杂的电路和机械结构,使得其体积大、成本高、可靠性差。

为了解决这些问题,本文将介绍一种基于单片机的电子秤设计方案。

一、系统设计方案基于单片机的电子秤主要由传感器、信号处理电路、单片机和显示模块组成。

其中,传感器负责采集物体的重量信息,信号处理电路则对传感器输出的信号进行放大和滤波,单片机对处理后的信号进行读取和计算,并将结果传输给显示模块。

二、硬件设计1、传感器电子秤的传感器部分通常采用应变片式或电容式传感器。

其中,应变片式传感器具有精度高、稳定性好的优点,但其输出信号较小,需要经过放大处理;电容式传感器则具有响应速度快、过载能力强的优点,但其精度和稳定性相对较差。

因此,在选择传感器时需要根据实际需求进行权衡。

2、信号处理电路信号处理电路主要包括放大器和滤波器两部分。

放大器用于将传感器输出的微弱信号进行放大,以便于后续处理;滤波器则用于去除信号中的噪声和干扰。

此外,还需要设计适当的电源电路,为整个系统提供稳定的电源。

3、单片机单片机是整个系统的核心,负责对传感器输出的信号进行读取和计算。

本设计采用AT89C51单片机,该单片机具有价格低、性能稳定、易于编程等优点。

4、显示模块显示模块用于将单片机的计算结果直观地展示给用户。

本设计采用LED数码管作为显示器件,具有简单易用、成本低等优点。

三、软件设计软件部分主要包括数据采集、数据处理和数据显示三个模块。

数据采集模块负责读取传感器的输出信号;数据处理模块则对采集到的数据进行滤波、放大和计算;数据显示模块则将处理后的结果通过LED数码管展示给用户。

此外,还需要设计适当的延时和去抖动算法,以提高系统的稳定性和精度。

四、测试与结论为了验证本设计的有效性,我们对基于单片机的电子秤进行了测试。

测试结果表明,该电子秤的测量精度和稳定性均得到了较好的实现,同时具有体积小、成本低、可靠性高等优点。

基于单片机控制的电子秤课程设计毕业设计

基于单片机控制的电子秤课程设计毕业设计

目录第一章、设计方案简介 (01)设计内容 (01)设计要求 (01)实验流程图 (01)第二章、测量系统的电路分析 (04)传感器系统 (04)放大系统 (04)模数转换 (06)显示系统 (08)第三章、单片机的主控程序 (09)单片机89C2051芯片 (09)电子秤工作流程 (10)第四章、设计结果 (15)电子秤工作流程 (15)电子秤原理图 (16)第五章、设计评述 (17)心得体会 (17)第六章、参考文献 (18)参考相关资料 (18)第七章、元器件清单 (18)第一章设计方案简介数字电子称通过传感器将被测物体的重量转换成模拟的电压信号,较小的电压信号通过应用放大系统进行准确、线性的放大,以满足模数转换器对输入信号电平的要求。

放大电路采用四运放集成电路LM324中的三个运放组成的仪表用放大电路。

仪表用放大器具备足够大的放大倍数、高输入电阻和高共模抑制比的特点。

放大后的模拟电压信号经过模数转换电路变成数字量,模数转换电路采用模数转换芯片7107实现。

然后把数字信号输送到显示电路中去,最后由显示电路显示出测量结果,显示电路采用四块分立的七段LED显示电路进行显示。

本设计中通过改变放大电路的增益,从而达到转换量程的目的。

由于被测物体的重量相差较大,根据不同的侧重范围要求,需对量程进行切换。

1、设计内容(1)制作一个具有数字显示功能的数字电子称;(2)调试数字电子称的歌单元电路及系统电路;(3)掌握数字电路的设计、组装与调试方法;(4)熟悉集成电路7107的使用方法;(5)采用电阻应变式传感器;2、设计要求(5)(1)测量范围: 0~19.99kg(6) (2)用数字显示被测重量,小数点位置对应不同的量程显示。

3、实验流程图图20 小型电子秤的系统构成(7)本系统采用了低功能单片机89C2051作为测量仪表的核心,使得整个系统结构简单,功能强大,性价比高。

(8)电子秤测量系统的工作原理:(9)仪表通电后,在秤重过程中由货物重量经荷重传感器的信号转换,输出相应的毫伏电压,这个微弱信号通过运算放大器放大和标度变换转送A/D转换器。

基于单片机的智能电子秤设计

基于单片机的智能电子秤设计

基于单片机的智能电子秤设计在现代社会,电子秤作为一种重要的测量工具,广泛应用于商业、工业、农业以及日常生活等各个领域。

随着科技的不断发展,人们对电子秤的功能和性能提出了更高的要求,智能电子秤应运而生。

智能电子秤不仅能够准确测量物体的重量,还具备了数据处理、存储、传输以及智能化控制等功能,为人们的生产和生活带来了极大的便利。

本文将介绍一种基于单片机的智能电子秤设计方案。

一、系统总体设计本智能电子秤系统主要由称重传感器、信号调理电路、单片机、显示模块、键盘模块以及通信模块等部分组成。

称重传感器负责将物体的重量转换为电信号,信号调理电路对传感器输出的微弱信号进行放大、滤波等处理,以提高信号的质量。

单片机作为系统的核心,负责对处理后的信号进行采集、计算和处理,并控制其他模块的工作。

显示模块用于实时显示物体的重量和相关信息,键盘模块用于输入操作指令,通信模块则用于将测量数据传输到上位机或其他设备。

二、硬件设计1、称重传感器称重传感器是电子秤的关键部件,其性能直接影响测量精度。

本设计选用电阻应变式称重传感器,该传感器具有精度高、稳定性好、结构简单等优点。

电阻应变式称重传感器的工作原理是基于电阻应变效应,当传感器受到外力作用时,其弹性体发生变形,从而导致粘贴在弹性体上的电阻应变片的电阻值发生变化。

通过测量电阻应变片电阻值的变化,即可得到外力的大小。

2、信号调理电路由于称重传感器输出的信号非常微弱,通常只有几毫伏到几十毫伏,且含有大量的噪声和干扰,因此需要经过信号调理电路进行放大、滤波等处理。

信号调理电路主要由放大器、滤波器和基准电源等组成。

放大器采用高精度仪表放大器,能够将传感器输出的微弱信号放大到适合单片机处理的范围。

滤波器采用低通滤波器,用于滤除信号中的高频噪声和干扰。

基准电源为整个电路提供稳定的参考电压,以保证测量精度。

3、单片机单片机是整个系统的控制核心,本设计选用 STM32F103 系列单片机。

STM32F103 系列单片机具有高性能、低功耗、丰富的外设资源等优点,能够满足智能电子秤的设计要求。

电子秤的设计(单片机课程设计)

电子秤的设计(单片机课程设计)

目录第一节绪论 (3)1.1本设计的任务和主要内容 (3)第二节硬件电路设计 (4)2.1传感器的选择 (4)2.1.1应变式电阻传感器的测量原理 (4)2.1.2传感器的分类和选择 (4)2.2放大电路的设计 (5)2.3采集电路的设计 (5)2.3.1数据采集系统的组成 (5)2.3.2数据采样保持器 (6)2.3.3 A/D转换器 (6)2.4显示电路的设计 (7)2.5键盘电路的设计 (8)2.6报警电路的设计 (9)第三节软件的设计 (9)3.1监控程序的设计 (9)3.2数据处理子程序的设计 (9)3. 2.1数制转换 (9)3.3数据采集子程序的设计 (10)3.4数据显示子程序的设计 (11)3.5键盘扫描子程序的设计 (12)3.6报警子程序的设计 (13)第四节设计总结 (15)参考书籍 (16)程序附图 (17)第一节绪论随着时代科技的迅猛发展,微电子学和计算机等现代电子技术的成就给传统的电子测量与仪器带来了巨大的冲击和革命性的影响。

常规的测试仪器仪表和控制装置被更先进的智能仪器所取代,使得传统的电子测量仪器在远离、功能、精度及自动化水平定方面发生了巨大变化,并相应的出现了各种各样的智能仪器控制系统,使得科学实验和应用工程的自动化程度得以显著提高。

做为重量测量仪器,智能电子秤在各行各业开始显现其测量准确,测量速度快,易于实时测量和监控的巨大优点,并开始逐渐取代传统型的机械杠杆测量称,成为测量领域的主流产品。

本文设计的电子秤以单片机为主要部件,用汇编语言进行软件设计,硬件则以半桥传感器为主,测量0~500g电子秤,随时可改变上限阈值,并达到阈值报警的功能。

称重传感器输出的电量是模拟量,数值比较小达不到A/D转换接收的电压范围。

所以送A/D转换之前要对其进行前端放大、整形滤波等处理。

然后,A/D转换的结果才能送单片机进行数据处理并显示。

其数据显示部分采用LCD显示,成本低且能很好地实现所要求的功能。

基于单片机的电子称课程设计

基于单片机的电子称课程设计

基于单片机的电子称课程设计电子称是一种用来测量物体重量的精密仪器,具有高精度、高速度和高可靠性的特点。

在现代化的生产、工业等领域中,电子称扮演着必不可少的角色,成为了人们日常生活中必不可少的工具之一。

而作为电子技术的重要应用方向,基于单片机的电子称设计更是成为了自动化生产和质量控制中不可或缺的一环。

本文将探讨一下基于单片机的电子称课程设计的具体实现,以及它对学生的电子技术和物理知识的培养的重要性。

一、电子称的组成和工作原理电子称主要由传感器、信号调理电路、计算机处理单元、显示及输出装置等四大部分组成。

其中传感器用来检测被测物体产生的微小形变,信号调理电路接收和整形传感器的信号,计算机处理单元将信号转换为数字,再进行相关运算,最后输出相应的重量值,同时,显示及输出装置将结果显示出来。

二、基于单片机的电子称设计基于单片机的电子称设计是一种新型的电子称设计方法,它采用高精度传感器和单片机进行数字信号采集、处理和显示。

具体设计流程如下:1.硬件设计硬件设计部分主要包括传感器电路、放大电路、模数转换电路、LCD显示器、按键等组成。

其中传感器电路用来转换被测物体的重量值为电信号,放大电路用来放大电信号,模数转换电路用来将模拟信号转换为数字信号,显示器用于显示重量结果,按键用于实现重量清零等控制功能。

2.软件设计软件设计主要包括单片机程序设计和控制算法设计两大部分。

单片机程序的设计是指根据硬件设计的具体要求,编写相应的程序来实现数码管、按键、模数转换等功能的控制。

控制算法设计是指设计一种基于物理原理的算法,为电子称实现高精度、高速度、可靠性等特性。

三、电子称课程设计对学生的意义基于单片机的电子称设计作为一种完整的电子方案,具有广泛的应用前景和重要的教育意义。

其帮助学生在实践中深入了解物理原理和信号处理技术,并掌握基本的单片机控制和算法设计方法。

1.培养学生的电子技术知识基于单片机的电子称设计能够帮助学生深入了解电子技术的基础知识和信号处理技术,包括传感器电路、放大电路、模数转换电路、LCD显示器、按键等。

基于51单片机的电子秤的设计

基于51单片机的电子秤的设计

基于51单片机的电子秤的设计一、设计要求和总体方案(一)设计要求设计一款基于 51 单片机的电子秤,能够实现以下功能:1、测量范围:0 5kg。

2、测量精度:01g。

3、具备数码管显示功能,能够实时显示测量的重量值。

4、具有去皮功能,方便测量容器的重量。

(二)总体方案本电子秤主要由传感器、信号调理电路、A/D 转换电路、51 单片机、数码管显示电路和按键电路等组成。

传感器将物体的重量转换为电信号,经过信号调理电路进行放大和滤波处理后,送入 A/D 转换电路转换为数字信号。

51 单片机对数字信号进行处理和计算,得到物体的重量值,并通过数码管显示电路进行显示。

按键电路用于实现去皮等功能。

二、硬件设计(一)传感器选择选用电阻应变式传感器,它具有精度高、稳定性好、测量范围广等优点。

当物体放在传感器上时,传感器的电阻值会发生变化,通过测量电阻值的变化可以得到物体的重量。

(二)信号调理电路由于传感器输出的信号比较微弱,需要经过信号调理电路进行放大和滤波处理。

放大电路采用仪表放大器,它具有高共模抑制比、低噪声等优点。

滤波电路采用无源 RC 滤波器,去除信号中的高频噪声。

(三)A/D 转换电路选用 ADC0809 作为 A/D 转换芯片,它是 8 位逐次逼近型 A/D 转换器,具有转换速度快、精度高等优点。

(四)51 单片机选择AT89C51 单片机作为控制核心,它具有性能稳定、价格低廉、编程简单等优点。

(五)数码管显示电路采用共阳数码管进行显示,通过 74HC573 锁存器驱动数码管。

(六)按键电路使用独立按键实现去皮、清零等功能。

三、软件设计(一)主程序流程主程序首先进行系统初始化,包括初始化单片机的 I/O 口、A/D 转换芯片等。

然后进入循环,不断读取 A/D 转换的结果,并进行数据处理和计算,得到物体的重量值,最后将重量值发送到数码管显示。

(二)数据处理算法采用线性拟合的方法对 A/D 转换的结果进行处理,得到与重量值对应的数字量。

基于单片机的电子秤设计

基于单片机的电子秤设计

基于单片机的电子秤设计一、引言二、设计要求与整体方案(一)设计要求1、测量范围:能够满足常见物品的质量测量,通常为 0 10kg 或更大。

2、精度要求:达到一定的测量精度,如 01g 或更高。

3、显示功能:清晰显示测量结果,包括质量数值和单位。

4、稳定性:在不同环境条件下保持测量结果的稳定性和可靠性。

(二)整体方案本设计采用单片机作为核心控制单元,结合称重传感器、信号调理电路、A/D 转换电路、显示模块和电源模块等组成电子秤系统。

称重传感器将物体的质量转换为电信号,经过信号调理电路进行放大、滤波等处理后,由 A/D 转换电路将模拟信号转换为数字信号,单片机对数字信号进行处理和计算,最终将测量结果通过显示模块显示出来。

三、硬件设计(一)称重传感器选择合适的称重传感器是电子秤设计的关键。

常见的称重传感器有电阻应变式、电容式等。

电阻应变式传感器具有精度高、稳定性好等优点,被广泛应用于电子秤中。

其工作原理是当物体加载在传感器上时,弹性体发生形变,粘贴在弹性体上的电阻应变片也随之产生电阻变化,通过测量电阻变化即可得到物体的质量。

(二)信号调理电路由于称重传感器输出的信号较弱且存在干扰,需要经过信号调理电路进行处理。

信号调理电路通常包括放大器、滤波器等。

放大器用于将传感器输出的微弱信号放大到适合 A/D 转换的范围;滤波器用于去除信号中的噪声和干扰,提高信号的质量。

(三)A/D 转换电路A/D 转换电路将模拟信号转换为数字信号,以便单片机进行处理。

选择 A/D 转换器时需要考虑其分辨率、转换速度、精度等参数。

常见的 A/D 转换器有 ADC0809、ADS1115 等。

(四)单片机单片机作为电子秤的控制核心,负责处理和计算测量数据,并控制整个系统的工作。

选择单片机时需要考虑其性能、资源、成本等因素。

常见的单片机有 STM32、51 单片机等。

(五)显示模块显示模块用于显示测量结果,常见的有液晶显示屏(LCD)和数码管。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计电子秤 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】基于单片机的实用电子秤的设计1设计目的单片机以其功能强,体积小,功耗低,易开发等很多优势被广泛应用。

本次数字电子秤的设计就是需要通过选择合适的单片机来进行主控,再结合A/D转换、键盘、液晶显示、复位电路和蜂鸣器报警驱动电路的知识,同时在软件的设计过程中用到键盘扫描、液晶显示驱动、模数转换程序及汉字库的的设计,做到对我们所学数电、模电、单片机等知识的综合应用,最终实现所设计数字电子秤的各项功能,达到“巩固知识,培养技能,学而用之”的实践目的。

通过这次课程设计,不但要提高我们在工作中的学习能力、探究能力、应用能力和动手能力,还要历练我们不畏艰难、不懂便学、有漏必补的认真严谨的工作态度,强化我们的社会适应力和社会竞争力,为走向社会提前试水,完善自我。

2设计的主要内容及要求本设计主要完成一个简单实用数字电子秤的硬件电路部分和软件部分的设计。

硬件部分包括数据采集、最小系统板、人机交互界面三大部分。

其中,数据采集部分由压力传感器和 A/D 转换部分组成;人机界面部分为键盘输入、液晶显示。

软件部分应用单片机 C 语言实现了本设计的全部控制功能。

本设计的数字电子秤要求能够显示商品的名称、价格、总量、总价等;能够自动完成商品的价格计算;能够储存几种简单商品的价格;能够具有超重提醒功能,一旦重量超出了自身重量的测量的范围,发出警报;同时对数字电子秤的测量范围要达到5KG,测量精度要求达到。

3整体设计方案整个数字电子秤电路由压力传感电路(ADC0832采样)、模数转换系统、单片机主控制电路、LM4229显示电路、蜂鸣器报警电路和4*4键盘电路6个部分组成。

如图所示。

图基于单片机的实用电子秤组成框图电子秤的测量过程实际是通过电阻应变传感器将被测物体的重量转换成电压信号输出,电压信号经过模数转换把模拟信号转换成数字量,数字量通过显示器显示重量。

打开电源,数字电子秤开始工作。

接通电源时,数字电子秤进入欢迎界面“欢迎使用电子秤设计······”。

数字电子秤上MCU开始工作,键盘不断进行扫描,同时通过ADC0832也不断进行外部称量数据采样,LCD上显示“实用电子秤名称单价······”。

当载物台上放有物体时,ADC0832立即将数据收集送给单片机处理。

在键盘输入对应商品的代码编号,在240*128的LCD上可以看到相应商品的名称,单价,总重,总价格等信息。

在称量的过程中,一旦物体自身的重量超出电子秤的称量范围,蜂鸣器立即会发出“滴滴····”警报声告诉工作人员,所称量物品超重。

4硬件电路设计整体电路图数字电子秤采用AT89C51单片机作为微处理器,接口电路由晶振、LM4229显示电路、4*4按键电路、ADC0832电路、报警电路、存储器等组成。

控制器系统的硬件电路如图所示。

控制器系统硬件电路的工作过程是:打开电源时,MCU及各个部分电路开始工作,MCU调用内部存储数据对各部分接口电路初始化。

200ms后LM4229进入欢迎界面,ADC0832不断对外部数据进行采样交给MCU进行处理,一旦有物品放入载物台,ADC0832立即发送中断请求,并将本次采集数据交给MCU处理,之后LM4229显示相应数据量。

在此过程中,键盘也在不断进行扫描,一旦有键按下,单片机也会对其数据进行相应处理,然后将对LM4229进行写操作。

图? 实用数字电子称的硬件电路图压力传感器本设计要求称量不超过5KG,误差不大于0.001KG。

考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重—。

我们选择的是L-PSIII型传感器,量程20Kg,精度为%,满量程时误差±0.002Kg,可以满足本系统的精度要求。

其原理如图所示。

图? 传感器电路工作原理称重传感器主要由弹性体、电阻应变片电缆线等组成,内部线路采用惠更斯电桥,当弹性体承受载荷产生变形时,输出信号电压可由下式给出:数模转换系统首先考虑用常用的模数转换芯片adc0809,由于本设计只需采集一路数据,adc0809为并行的8路数据采集芯片,且接线较复杂,因此考虑采用串行的AD转换芯片adc0832完成设计。

ADC0832 与MCS- 51 单片机接口构成了串行的8位通道。

微处理器通过软件写入3位串行控制命令决定ADC0832的工作方式。

CH0单端输入,输入范围0- 5V。

非调整误差为±1L SB。

电路仅使用微处理器的两根控制线,两根数据线可方便进行光电隔离增强抗干扰能力。

适用于智能化信号检测仪器、仪表。

键盘显示电路的设计本设计中采用4*4矩阵是键盘,又称行列式键盘。

它有4条I/O线作为行线,用4条作为列线。

用AT89S51的并行口P1接4×4矩阵键盘,行线接口,列线接口。

在行线与列线每一个交叉点设置一个键,键盘设置了“0~15”个按键,其中的“0”键表示取消,其他键代表可供选择商品品种及价格。

液晶显示器电路的设计LM4229通过CD WRITE READ三个引脚的电平来确定是读数据还是读状态,或者是写数据还是写命令。

数据D0-D7连接到单片机的P0口,可以和单片机进行直接的数据交换,P2口为液晶显示的控制端。

5软件设计本设计中的程序由主控制程序、LM4229液晶显示驱动程序、ADC0832采样程序和4*4键盘程序组成。

主控制程序整个设计中采用由下向上的设计思路。

主程序中主要完成对LCM4229、ADC0832、及键盘扫描程序的调用。

在编写程序的过程中,各变量统一采用全局变量方式命名,同时考虑到电子秤对精度的要求,本设计中的价格及总量相关的变量全部采用浮点数。

主程序流程图如图所示。

图主程序流程图LM4229液晶显示驱动程序中,可在界面。

图实用电子秤初始化仿真图实用电子秤进入称重界面仿真接下来调节压力传感模拟电路电压,将电压设为表示此时载物台上没有物体。

此时LM4229切换到称量画面,显示指示“实用电子秤单价:元/千克总重量:0.000千克总价:元”。

如图所示图实用电子秤进入称重界面仿真图实用电子秤模拟商品选择及最大称量仿真然后,上调压力传感电压表示已载有商品,同时按下“6”号键,表示选择6号商品“苹果”。

此时LM4229上显示“名称:苹果单价:元/千克总重量:3.496千克总价:“元”(实际*=元)。

达到基本要求。

如图所示。

图模拟商品选择验证性称量仿真图最后,上调压力传感电压使载重达到最大,同时按下“5”号键,表示选择5号商品“西瓜”。

液晶显示“名称:西瓜单价:元/千克总重量:4.980千克总价:“元”.达到基本要求,最大称量重量4.980KG,如图。

图实用电子秤模拟商品最大称量仿真图7使用说明利用51系列单片机设计的电子秤不但可以满足并解决现实生活中提出的“快速、准确、连续、自动”称量要求,同时有效地避免人为误差。

当载物台上放有物体时,在键盘输入对应商品的代码编号,LCD液晶上可以看到相应商品的名称,单价,总重,总价格等信息。

在称量的过程中,一旦物体自身的重量超出电子秤的称量范围,蜂鸣器立即警报,告诉工作人员,所称量物品超重。

在称量过程中还可以通过键盘选择商品不同的价位。

8设计总结这次课程设计是对前面所学知识非常系统全面的一次检验。

通过这次课程设计与仿真,让我更明确的了解了一些芯片的用途功能,也熟练了对它们的运用。

在这个设计的过程中,我需要不断地思考,不断地请教,不断地寻找资料以借鉴,不断的用对知识的深入掌握去解决设计中存在的一些问题和调试时出现的一些故障。

虽然说这样的设计很难很烦很累人,但是确实是充实的,是让人感到有意义的。

这次课程设计,不但让我了解了一个数字电子秤,更让我收获了专业知识以外的东西,那就是学会了坚信、坚持,同时也磨砺了我的意志和耐心。

真的,作为一个本来对这个专业不是很感兴趣的学生,让我收获了一份从来没有过的成就感。

虽然到现在我对这个设计的部分原理还是不能用很专业的语言讲述出来,但是当我最初做成功这个设计的时候,我有一种说不出的激动,我写下一句话:“人很怪,上天给予每个人的都是公平的,没有谁没能力去做事,只是在于那个人愿不愿意去做,敢不敢去做,能不能坚持去做!”是的,这就是我这次课程设计之后最大的收获!虽然对这个专业依旧不是很感兴趣,但是我还是想通过这份设计报告来建议老师,希望以后能多搞一些像这样很实际的实践课程,我们作为学生,的确需要好的成绩,但更需要用这种对知识非常全面统一的检验来考察自己,证明自己,坚持自己。

参考文献[1] 郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2009:342-354.[2] 李建忠.单片机原理及应用[M].西安:西安电子科技大学出版,2002:63-80.[3] 张俊谟.单片机中级教程[M].北京:北京航空航天大学出版,2000:36-44.[4] 陈东云,杜敬仓.单片机原理与开发指导[M].北京:机械工业出版社,2006:122-156.[5] 彭伟.单片机C语言程序设计实训100例[M].北京:电子工业出版社,2009:160-167.附录A:#include<>#include<>#include <>#include <>#include<>#define uchar unsigned char#define uint unsigned intsbit ADCS =P3^5;sbit ADDI =P3^7;sbit ADDO =P3^7;sbit ADCLK =P3^6;uint x1,y1,z1=0,w1;uchar ad_data,k,n,m,e,num,s; //采样值存储uint temp1;sbit beep =P3^0; char press_data; //标度变换存储单元float press;unsigned char ad_alarm,temp; //报警值存储单元unsigned char abc[5]={48,46,48,48,48};unsigned char price_all[6]={48,48,46,48,48,48};float price_unit[10]={,,,,,,,,,0}; //商品初始单价uchar price_danjia[5]={48,46,48,48,48};float price;uint price_temp1,price_temp2; //商品总价uchar Adc0832(unsigned char channel);void alarm(void);void data_pro(void);void delay(uint k);void keyscan();void disp_init();void price_jisuan();/************主函数************/void main(void){delay(500); //系统延时500ms启动//ad_data=0; //采样值存储单元初始化为0 lcd_init(); //显示初始化disp_init(); //开始进入欢迎界面delay(1000); //延时进入称量画面clear_lcd(0,4,40);clear_lcd(16,0,100);clear_lcd(28,0,40);clear_lcd(44,0,100);clear_lcd(56,0,40);clear_lcd(72,0,100);clear_lcd(84,0,40);clear_lcd(100,0,100);clear_lcd(112,0,40);write_lcd(0,8,"实用电子秤");while(1){ad_data =Adc0832(0); //采样值存储单元初始化为0 alarm();data_pro(); //读取重量keyscan(); //查询商品种类write_lcd(40,0,"------------------------------");write_lcd(56,0,"单价:");write_lcd(56,11,price_danjia);write_lcd(56,20,"元/千克");write_lcd(72,0,"总重量:");write_lcd(72,11,abc);write_lcd(72,20,"千克");write_lcd(88,0,"总价:");price_jisuan(); //计算出价格write_lcd(88,10,price_all);write_lcd(88,20,"元");write_lcd(112,0,"设计学生:0712201-23 王超");}}/************读ADC0832函数************///采集并返回uchar Adc0832(unsigned char channel) //AD转换,返回结果{uchar i=0;uchar j;uint dat=0;uchar ndat=0;if(channel==0)channel=2;if(channel==1)channel=3;ADDI=1;_nop_();_nop_();ADCS=0;//拉低CS端_nop_();_nop_();ADCLK=1;//拉高CLK端_nop_();_nop_();ADCLK=0;//拉低CLK端,形成下降沿1_nop_();_nop_();ADCLK=1;//拉高CLK端ADDI=channel&0x1;_nop_();_nop_();ADCLK=0;//拉低CLK端,形成下降沿2 _nop_();_nop_();ADCLK=1;//拉高CLK端ADDI=(channel>>1)&0x1;_nop_();_nop_();ADCLK=0;//拉低CLK端,形成下降沿3 ADDI=1;//控制命令结束_nop_();_nop_();dat=0;for(i=0;i<8;i++){dat|=ADDO;//收数据ADCLK=1;_nop_();_nop_();ADCLK=0;//形成一次时钟脉冲_nop_();_nop_();dat<<=1;if(i==7)dat|=ADDO;}for(i=0;i<8;i++){j=0;j=j|ADDO;//收数据ADCLK=1;_nop_();_nop_();ADCLK=0;//形成一次时钟脉冲 _nop_();_nop_();j=j<<7;ndat=ndat|j;if(i<7)ndat>>=1;}ADCS=1;//拉搞CS端ADCLK=0;//拉低CLK端ADDO=1;//拉高数据端,回到初始状态 dat<<=8;dat|=ndat;return(dat); //return ad k}void data_pro(void){unsigned int;if(0<ad_data<256){int vary=ad_data;press=*vary);temp1=(int)(press*1000); //放大1000倍,便于后面的计算abc[0]=temp1/1000+48; //取压力值百位abc[1]=46;abc[2]=(temp1%1000)/100+48; //取压力值十位abc[3]=((temp1%1000)%100)/10+48; //取压力值个位abc[4]=((temp1%1000)%100)%10+48; //取压力值十分位}}/*****************报警子函数*******************/void alarm(void){if(ad_data>=256)beep=0; //则启动报警elsebeep=1;}void delay(uint k){uint i,j;for(i=0;i<k;i++)for(j=0;j<100;j++);}//开机欢迎界面void disp_init(){write_lcd(0,8,"欢迎使用电子秤");write_lcd(16,0,"------------------------------"); write_lcd(28,0,"设计学生:王超");write_lcd(44,0,"------------------------------"); write_lcd(56,0,"班级学号:0712201-23");write_lcd(72,0,"------------------------------"); write_lcd(84,0,"指导老师:谭跃");write_lcd(100,0,"------------------------------"); write_lcd(112,0,"设计日期:2010年6月29日");}//键盘服务程序void keyscan(){P1=0xfe;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case 0xee:num=1,price=price_unit[0], write_lcd(24,0,"名称: 杏仁");break;case 0xde:num=2,price=price_unit[1],write_lcd(24,0,"名称: 李子");break;case 0xbe:num=3,price=price_unit[2],write_lcd(24,0,"名称: 草莓");break;case 0x7e:num=4,price=price_unit[3],write_lcd(24,0,"名称: 葡萄");break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xfd;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case 0xed:num=5,price=price_unit[4],write_lcd(24,0,"名称: 西瓜");break;case 0xdd:num=6,price=price_unit[5],write_lcd(24,0,"名称: 苹果");break;case 0xbd:num=7,price=price_unit[6],write_lcd(24,0,"名称: 雪梨");break;case 0x7d:num=8,price=price_unit[7],write_lcd(24,0,"名称: 核桃");break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xfb;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case 0xeb:num=9,price=price_unit[8],write_lcd(24,0,"名称: 香蕉");break;case 0xdb:num=10,price=price_unit[9],write_lcd(24,0,"名称: 商品代码");break;case 0xbb:num=11,price=price_unit[1];break;case 0x7b:num=12,price=price_unit[2];break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xf7;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case0xe7:num=13,price=price_unit[3];break;case0xd7:num=14,price=price_unit[4];break;case0xb7:num=15,price=price_unit[5];break;case0x77:num=16,price=price_unit[6];break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}price_temp1=(int)(price*1000);price_danjia[0]=price_temp1/1000+48; //取单价个位price_danjia[1]=46;price_danjia[2]=(price_temp1%1000)/100+48; //取单价十分位price_danjia[3]=((price_temp1%1000)%100)/10+48; //取单价百分位price_danjia[4]=((price_temp1%1000)%100)%10+48;//取单价千分位}void price_jisuan(){price_temp2=(int)(price*press*1000);price_all[0]=price_temp2/10000+48;price_all[1]=(price_temp2/1000)%10+48;price_all[2]=46;price_all[3]=(price_temp2%1000)/100+48;price_all[4]=((price_temp2%1000)%100)/10+48;price_all[5]=((price_temp2%1000)%100)%10+48; }。

相关文档
最新文档