1.设计任务

基于单片机的智能电子称重系统设计

基本要求:能称量物体重量,在输入单价的情况下能够显示商品价格。

创新:物体超过称量范围时自动报警。

任务区分:B——通过灯光闪烁报警。

2. 设计要求

2.1系统方案论证

根据设计任务,分析设计系统的组成,给出实现设计任务的几种方案,分析比较几种设计方案的优略,本着尽量以软件代替硬件,同时力求电路简单,工作可靠的原则,确定总体设计方案。

2.2系统硬件电路设计

根据系统设计方案进行软、硬件的分配,软、硬件设计分别进行。硬件设计包括单片机最小系统和扩展接口及配置,硬件结构在设计时要选择合适的元器件,硬件电路要简洁、工作可靠,需用Proteus绘制整个系统的电路仿真原理图。

主函数

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char  //ÎÞ·ûºÅ×Ö·ûÐÍ ºê¶¨Òå  ±äÁ¿·¶Î§0~255
#define uint  unsigned int   //ÎÞ·ûºÅÕûÐÍ ºê¶¨Òå    ±äÁ¿·¶Î§0~65535
#define ulong unsigned longuchar code table_num[]="0123456789abcdefg";sbit rs    = P2^7;     //
sbit rw = P2^6;
sbit e  = P2^5;     //sbit hx711_dout  = P1^0;
sbit hx711_sck  = P1^1;
sbit led        = P1^2;
sbit beep       = P1^3;long weight;
uint temp,qi_weight;
ulong price,z_price;
uchar flag_p;
uchar key_can;bit chaozhong_flag;
bit leiji_flag;
bit flag_300ms ;void delay_1ms(uint q)
{uint i,j;for(i=0;i<q;i++)for(j=0;j<120;j++);
}void delay_uint(uint q)
{while(q--);
}void write_com(uchar com)
{e=0;rs=0;rw=0;P0=com;delay_uint(3);e=1;delay_uint(25);e=0;
}void write_data(uchar dat)
{e=0;rs=1;rw=0;P0=dat;delay_uint(3);e=1;delay_uint(25);e=0;
}void write_string(uchar hang,uchar add,uchar *p)
{if(hang==1)   write_com(0x80+add);elsewrite_com(0x80+0x40+add);while(1)                                                        {if(*p == '\0')  break;write_data(*p);p++;}
}//lcd1602
void init_1602()
{write_com(0x38);write_com(0x0c);write_com(0x06);delay_uint(1000);
}void write_zifu(uchar hang,uchar add,uchar dat)
{if(hang==1)   write_com(0x80+add);elsewrite_com(0x80+0x40+add);write_data(dat);
}void write_sfm4_price(uchar hang,uchar add,uint date)
{if(hang==1)   write_com(0x80+add);elsewrite_com(0x80+0x40+add);write_data(0x30+date/1000%10);write_data(0x30+date/100%10);write_data('.');write_data(0x30+date/10%10);write_data(0x30+date%10);
}void init_1602_dis_csf()  //³õʼ»¯Òº¾§
{                                   write_string(1,0,"WEIGHT: 0.000 KG");write_string(2,0,"UP:00.00  :00.00");write_zifu(2,9,0x5c); //£¤
}void write_1602_yl(uchar hang,uchar add,uint date)
{if(hang==1)   write_com(0x80+add);elsewrite_com(0x80+0x40+add);write_data(0x30+date/1000%10);write_data('.');write_data(0x30+date/100%10);write_data(0x30+date/10%10);write_data(0x30+date%10);
}void Delay__hx711_us(void)
{_nop_();_nop_();
}ulong ReadCount(void)
{ulong count,value = 0; uchar i; hx711_dout=1; Delay__hx711_us();hx711_sck=0; count=0; while(hx711_dout);for(i=0;i<24;i++){ hx711_sck=1; count=count<<1; hx711_sck=0; if(hx711_dout)count++; } hx711_sck=1; count=count^0x800000;    //µÚ25¸öÂö³åϽµÑØÀ´Ê±£¬×ª»»Êý¾ÝDelay__hx711_us();hx711_sck=0;  return(count);
} void get_pizhong()
{ulong hx711_dat;hx711_dat=ReadCount();temp=(uint)(hx711_dat/100);
}void get_weight()
{ulong hx711_data,a;uint get,aa;hx711_data=ReadCount();    get=(uint)(hx711_data/100);if(get>temp){a=ReadCount();                                                                                            aa=(uint)(a/100)-temp;weight=(uint)((float)aa*0.65703+0.05);}
}//¶¨Ê±Æ÷0³õʼ»¯³ÌÐò---------------------------------------------
void time_init()
{EA   = 1;       TMOD = 0X01;  ET0  = 1;       TR0  = 1;
}void key()
{static uchar key_new = 0, key_l;key_can = 20;  P3 = 0x0f;if((P3 & 0x0f) != 0x0f)   {delay_1ms(1);if(((P3 & 0x0f) != 0x0f) && (key_new == 1)){                       key_new = 0;key_l = P3 | 0xf0;  P3 = key_l;switch(P3){case 0xee:  key_can = 1;  break;  case 0xde:  key_can = 2;  break;  case 0xbe:  key_can = 3;  break;case 0x7e:  key_can = 12; break;case 0xed:  key_can = 4;  break;case 0xdd:  key_can = 5;  break;case 0xbd:  key_can = 6;  break;case 0x7d:  key_can = 13;  break;case 0xeb:  key_can = 7;  break;case 0xdb:  key_can = 8;  break;case 0xbb:  key_can = 9;  break;case 0x7b:  key_can = 14; break;case 0xe7:  key_can = 10; break;case 0xd7:  key_can = 0; break;case 0xb7:  key_can = 11; break;case 0x77:  key_can = 15; break;}  beep = 0;  //·äÃùÆ÷½ÐÒ»Éùled    = 0;delay_1ms(100);led     = 1;beep = 1; }          }else key_new = 1;
}//
void key_with()
{if(key_can <= 9)   //{if(flag_p >= 4)flag_p = 0;if(flag_p == 0)price = key_can;else price = price * 10 + key_can;        write_sfm4_price(2,3,price);flag_p++;}if(key_can == 13)   //{   if(price != 0){flag_p--;price /= 10;     write_sfm4_price(2,3,price);}}if(key_can == 12)   //{get_pizhong();    }if(key_can == 14)   //{flag_p = 0;price = 0;write_sfm4_price(2,3,price);           }
}//Ö÷º¯Êý--------------------------------------------------------
void main()
{   delay_1ms(300);beep = 0;                   //led    = 0;delay_1ms(100);P0 = P1 = P2 = P3 = 0xff;  //time_init();                //init_1602();                //init_1602_dis_csf();      //get_pizhong();                //while(1){key();    if(key_can < 20)key_with();  if(flag_300ms == 1){flag_300ms = 0;get_weight();        weight /= 2;       //if(weight >= 0 )write_1602_yl(1,8,weight);    z_price = weight * price / 1000;       write_sfm4_price(2,11,z_price);         if(weight >= 5000) {beep = ~beep;led    = ~led;}else{ beep = 1;led    = 1;}}delay_1ms(1);}
}//¶¨Ê±Æ÷0ÖжϷþÎñ³ÌÐò-----------------------------------------------
void time0_int() interrupt 1
{   static uchar value;         TH0 = 0xf8;TL0 = 0x30;     //2msvalue++;      if(value >= 150){value = 0;    flag_300ms = 1;}
}

仿真图纸:

基于单片机的智能电子称重系统设计相关推荐

  1. 智能窗帘传感器c语言程序,基于单片机的智能窗帘控制系统设计(附程序代码)

    基于单片机的智能窗帘控制系统设计(附程序代码)(论文18000字,程序代码) 摘要:二十一世纪初以来,科学技术不断发展,智能家居涌现于各家各户,人们越来越重视生活质量的提高.但是传统的手动开合窗帘耗时 ...

  2. 基于51单片机的公交车安全智能检测系统、基于51单片机的金属探测仪控制设计、基于单片机的智能电子密码锁系统设计、基于51单片机酒精浓度检测仪设计【资料转发分享】

    630基于51单片机的公交车安全智能检测系统-设计资料 本资料是基于单片机的公交车安全监测系统 具有如下功能: 1.监测环境的温度,超标报警.可以设置上下限 2.监测是否有火灾以及有毒气体,超标报警, ...

  3. 基于单片机的智能电子密码锁系统设计-基于51单片机酒精浓度检测仪设计-基于单片机的水缸加热温控控制系统设计-基于单片机蓝牙技术的温室监测系统设计-基于单片机智能PWM调光灯系统设计【毕设方案】

    600基于单片机的智能电子密码锁系统设计-电路程序资料 本设计采用的是AT89C51单片机作为控制核心,控制外围电路工作的装置.在本次基于单片机的电子密码锁设计中,将采用AT89C51单片机作为控制核 ...

  4. 基于单片机热电偶智能体温检测系统设计-基于单片机一氧化碳CO有毒气体采集报警系统设计-基于单片机热电偶智能体温检测系统设计(仿真,原理图,报告)【资料转发分享】

    1626基于单片机小型家用燃气锅炉控制系统设计(仿真,程序,论文) 1. 设计任务 结合实际情况,基于AT89C51单片机设计一个小型家用燃气锅炉单片机控制系统. 该系统应满足的功能要求为: (1) ...

  5. 【单片机毕业设计】【mcuclub-109】基于单片机的智能抽油烟机控制系统设计-标准版【实物设计】

    设计简介: 项目编号:mcuclub-109 项目名:基于单片机的智能抽油烟机控制系统设计 单片机:STC89C52 功能: 1.通过MQ-2烟雾传感器检测厨房内烟雾浓度,若烟雾浓度小于设定最小阈值, ...

  6. 【单片机毕业设计】【mcuclub-109】基于单片机的智能抽油烟机控制系统设计-标准版【仿真设计】

    设计简介: 项目编号:mcuclub-109 项目名:基于单片机的智能抽油烟机控制系统设计-标准版 单片机:STC89C52 功能: 1.通过MQ-2烟雾传感器检测厨房内烟雾浓度,若烟雾浓度小于设定最 ...

  7. 基于单片机c语言的豆浆机,基于单片机的智能豆浆机控制系统设计(附实物图,电路原理图,程序)...

    基于单片机的智能豆浆机控制系统设计(附实物图,电路原理图,程序)(任务书,开题报告,中期检查表,毕业论文11800字) 摘要 由于市面上的豆浆机不具有长时间保温的功能,打浆完成后残渣很多,而且打浆用时 ...

  8. 单片机蜂鸣器编程音乐_基于单片机的智能鱼缸温控系统设计

    曹益豪 聊城大学东昌学院机电工程系 山东 聊城 252000 摘  要:为满足热带鱼的饲养要求,设计了一种基于AT89C52单片机的小型智能温控鱼缸系统.该系统利用DS18B20传感器检测水温,并通过 ...

  9. 【毕业设计】基于单片机的智能路灯控制系统设计_32开发实例

    一.系统设计 整个智能路灯系统采用STM32F103C8T6单片机进行主控,使用红外光电开关进行人体检测,通过光敏电阻模块进行光照检测,利用声音传感器进行路灯周围声音的检测.还通过DS1302时钟模块 ...

最新文章

  1. 力扣算法题—073矩阵置零
  2. python 统计分析apache日志_python分析apache访问日志脚本分享
  3. LA3266田忌赛马
  4. python爬虫基础(一)~爬虫概念和架构
  5. dotNet 5 中执行 Node.js
  6. 将一个数组拼接成一个指定字符串返回
  7. 如何从0-1制作数据大屏,我用大白话给你解释清楚了
  8. 完全不相关的结果集,拼成一个sql
  9. 被中国人误传了数千年的七句话
  10. HTML5离线存储 初探
  11. 10. Document getElementsByTagName() 方法
  12. 哈利波特:哈迷们集合啦
  13. 2021-08-21Verilog三段式状态机的写法,标准示例和仿真。
  14. win11官网的预览版系统如何下载安装
  15. 【IT之路】Docker系列-CentOS 7 64位镜像下载
  16. signature=8df1e41f626c2f25b2dd4e97b89cc127,来用百度密语吧!!!
  17. Unity Shader - Rendering Mode 渲染模式
  18. 复制粘贴,快速将Python程序打包成exe
  19. SN74LVC2G04DRLR 德州仪器TI 反相器
  20. 简单爬虫——京东网图书爬取

热门文章

  1. 从子母词看语言的演化
  2. 【MicroPython ESP32】读取esp32内部霍尔传感器数据
  3. IP协议、ARP协议、DNS协议
  4. 网络层——ARP协议
  5. python zip函数的运用
  6. leetcode1-100
  7. 多维度分析高频和超高频RFID技术区别
  8. 论文解读《ISGm1A:整合序列特征和基因组特征,提高对人类m1ARNA甲基化位点的预测》
  9. 如何写好月度、季度、年度总结?PPT?
  10. 从MS-DOS到Windows 7 细说Windows成长历程