基于51单片机的电子秤设计参考代码

时间: 2023-09-15 11:18:41 浏览: 54
以下是一个基于51单片机的电子秤设计的参考代码: ```c #include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int sbit DOUT=P1^0; // 模拟输入口 sbit SCK=P1^1; // 时钟线 sbit LED1=P2^0; // 7段LED数码管1 sbit LED2=P2^1; // 7段LED数码管2 sbit LED3=P2^2; // 7段LED数码管3 sbit LED4=P2^3; // 7段LED数码管4 void delay_us(uint us) // 延时函数,精度为1us { while(us--) { _nop_(); _nop_(); _nop_(); _nop_(); } } uchar read_data() // 读取模拟输入口的数据 { uchar i, dat=0; for(i=0; i<8; i++) { SCK=0; delay_us(1); dat<<=1; SCK=1; delay_us(1); if(DOUT==1) dat++; } return dat; } uint get_weight() // 计算重量 { uchar i; uint sum=0; for(i=0; i<10; i++) // 采集10次数据,取平均值 { sum+=read_data(); delay_us(5); } return sum/10; } void display(uint weight) // 显示重量 { uchar i, digit; digit=weight%10; LED1=1; LED2=1; LED3=1; LED4=1; // 先清空LED数码管 for(i=0; i<digit; i++) // 显示个位 { LED1=0; delay_us(500); LED1=1; delay_us(500); } weight/=10; digit=weight%10; for(i=0; i<digit; i++) // 显示十位 { LED2=0; delay_us(500); LED2=1; delay_us(500); } weight/=10; digit=weight%10; for(i=0; i<digit; i++) // 显示百位 { LED3=0; delay_us(500); LED3=1; delay_us(500); } weight/=10; digit=weight%10; for(i=0; i<digit; i++) // 显示千位 { LED4=0; delay_us(500); LED4=1; delay_us(500); } } void main() { while(1) { uint weight=get_weight(); display(weight); } } ``` 以上代码仅供参考,具体实现要根据硬件设计和实际需求进行修改。

相关推荐

最新推荐

基于51单片机的电梯控制器设计方案.doc

基于51单片机的电梯控制器设计方案,本方案基本功能已具备,电梯内有各楼层按钮和紧急呼叫按钮和开关门提示音以及警报声,各楼层有上下行按钮,希望各位能够采纳,个人所作,学校课程要求。

基于51单片机空气质量检测仪设计.doc

本文研究的室内便携式智能空气品质监测仪是以室内空气中有毒有害气体的监测监控为背景,是以STC工公司的一款8位超低功耗单片机STC90C51为控制核心,能够实现对室内温度,湿度,VOC气体的实时采集处理、显示、报警等...

基于51单片机红外测温的设计与实现

单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。

基于51单片机为核心的智能压力传感器设计

本文通过介绍51单片机与智能压力传感器的特点,讲述了基于51单片机的智能压力传感器设计方法。利用单片机通过软件的方法,实现硬件电路中大部分控制功能,这种微控制技术不断被发展和完善。

基于51单片机的汽车防碰撞系统的设计

车技术的不断进步,尤其是自动驾驶技术的发展,越来越多的距离检测设备将会不断面世。本文提出的将激光测距和超声波测距相结合的安全报警系统,旨在帮助驾驶员在汽车多种行驶状况、多方位探知并显示车辆与周围障碍物...

MIL_STD_1364J.537.pdf

MIL_STD_1364J.537.pdf

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire

粒子群多目标算法matlab代码【MATLAB代码实现】定义优化问题参数

# 1. 粒子群多目标算法简介 ## 1.1 什么是粒子群算法? 粒子群算法是一种基于群体智能的优化算法,灵感来源于鸟群或鱼群等生物群体的行为。每个“粒子”代表问题空间中的一个候选解,而整个粒子群代表了候选解的一个群体。粒子在解空间中搜索最优解,通过个体的经验和群体的协作来不断调整自身位置和速度,从而逐步靠近最优解。 ## 1.2 粒子群算法在多目标优化中的应用 粒子群算法最初是针对单目标优化问题提出的,但后来被扩展应用到了多目标优化领域。与单目标优化不同,多目标优化需要考虑多个冲突的目标函数,因此粒子群算法的应用在多目标优化中具有一定的挑战性。 ## 1.3 粒子群多目标算法原理解

hbase中时间戳的精确度和hbase中列族和列名的分隔符是什么

我已经回答了关于HBase中时间戳的精确度的问题,现在回答你的第二个问题: 在HBase中,列族和列名的分隔符是冒号(:)。例如,如果你有一个列族为“info”,列名为“name”的列,那么在HBase中的完整列名将是“info:name”。这个分隔符是在HBase的设计中被硬编码的,不能更改。这个分隔符在HBase的API中也得到了体现,例如在Java API中,可以使用“:`”来将列族和列名分隔开来,如下所示: ```java Get get = new Get(Bytes.toBytes("rowkey")); get.addColumn(Bytes.toBytes("info"),

spring boot应用启动原理分析.docx

spring boot应用启动原理分析.docxspring boot应用启动原理分析.docxspring boot应用启动原理分析.docxspring boot应用启动原理分析.docxspring boot应用启动原理分析.docxspring boot应用启动原理分析.docxspring boot应用启动原理分析.docxspring boot应用启动原理分析.docx