硬件设计

(末尾附文件)

代码设计

///*************************************************************************
///*************************************************************************
#include<reg52.h>  ///包含头文件
#include<MAIN.h>
#include<lcd1602.h>//#define uint unsigned int
//#define uchar unsigned char
//#define ulong unsigned longsbit zheng = P1^0;
sbit fan = P1^1;
sbit ting = P1^2;
sbit jia = P1^3;
sbit jian = P1^4;
sbit clear = P1^5;
sbit bee = P1^6;
sbit pingzi = P1^7;
sbit PWM1 = P2^0;
sbit PWM2 = P2^1;
sbit ena = P2^2;
sbit max = P2^3;uint bottle=0;
uint box=0;
uint zhuansu[4]={0,0,0,0};
uint PZ[4]={0,0,0,0};
uchar str1[16]="bottle:00 box:00";
uchar str2[16]="speed:0000      ";
uchar time;
uchar count;
ulong zhuan;
flag=1;///*************************************************************************
/// MAIN函数
///功能:
///*************************************************************************
void main()
{timer_init();LCD_Init();ena=0;bee=0;max=1;while(1){cleardate();zhengz();fanz();tingz();jias();jians();LCD();pingshu();}
}
///*************************************************************************
/// 延时函数
///功能:
///*************************************************************************
void delay1(uint z)// 延时程序,zms.
{uint x,y;for(y=z;x>0;x--)for(y=110;y>0;y--);
}///*************************************************************************
/// 数据计算函数
///功能:
///*************************************************************************
void chuli()
{  zhuan=count*500/20;zhuansu[0]=(count*10/1000);    //转换转速的千位 zhuansu[1]=(zhuan/100%10);    //转换转速的百位  zhuansu[2]=(zhuan/10%10);    //转换转速的十位zhuansu[3]=(zhuan%10);    //转换转速的个位PZ[0]= (bottle/10%10);   //瓶数十位PZ[1]= (bottle%10);//瓶数个位PZ[2]= (box/10%10);// 箱数十位PZ[3]= (box%10);  // 箱数个位}///*************************************************************************
/// 清除数据函数
///功能:
///*************************************************************************
void cleardate()
{if(clear==0){delay1(2);if(clear==0){LCD_Clear();LCD_Init();bottle=0;box=0;chuli();}}
}///*************************************************************************
/// LCD显示函数
///功能:
///*************************************************************************void
void LCD()
{   LCD_Manifest(1,7,PZ[0]);LCD_Manifest(1,8,PZ[1]);LCD_Manifest(1,14,PZ[2]);LCD_Manifest(1,15,PZ[3]);LCD_Manifest(2,6,zhuansu[0]);LCD_Manifest(2,7,zhuansu[1]);LCD_Manifest(2,8,zhuansu[2]);LCD_Manifest(2,9,zhuansu[3]);}///*************************************************************************
/// 蜂鸣器控制函数
///功能:
///*************************************************************************
void beebee()
{bee=0;delay(100);bee=1;delay(100);bee=0;}//*************************************************************************
/// rs485发送
///功能:
///*************************************************************************
void rs485send(uchar date) //rs485发送
{SBUF=date;while(!TI);TI=0;
}void rs485open()   //包装机rs485开启指令
{rs485send((uchar)0xAA);delay1(100);rs485send((uchar)0x33);delay1(100);rs485send((uchar)0xDD);delay1(100);
}              void rs485stop()   //包装机rs485停止指令
{rs485send((uchar)0xAA);delay1(100);rs485send((uchar)0x55);delay1(100);rs485send((uchar)0xFF);delay1(100);
}///*************************************************************************
///流水线控制
///功能:流水线瓶子数量测量,箱数测量及包装机控制
///*************************************************************************void pingshu()
{if(pingzi==1){delay1(2);if(pingzi==1){bottle+=1;if(bottle>51){ulong i;beebee();bottle=1;if(box<=99)  {box+=1;}else box=0;delay1(100);rs485open();for(i=0;i<1000;i++){delay1(200);}rs485stop();  }chuli();}while(!pingzi);}
}

链接:https://pan.baidu.com/s/1aGwRBnZnbbwHAE15vE7l5g
提取码:yi1q

基于51单片机的产品数量自动计量系统protues仿真相关推荐

  1. 基于51单片机的公交站自动播报系统proteus仿真 程序原理图设计

    硬件设计 (末尾附文件) 设计1: 该设计具有仿真图,LCD12864作为显示器,4个设置按键,具有led指示灯: 设计2: 该设计不具备仿真图,原理图如下所示: 设计1代码 #include < ...

  2. 【043】基于51单片机的篮球比赛积分计时系统Proteus仿真

    一.压缩包资料内容 (1).基于51单片机的篮球比赛积分计时系统proteus仿真设计一份: (2).基于51单片机的篮球比赛积分计时系统proteus仿真设计keli源代码一份: (3).基于51单 ...

  3. 基于51单片机随机数自动摇号抽奖系统Proteus仿真

    资料编号:165   下面是功能展示视频: 165-基于51单片机随机数自动摇号抽奖系统Proteus仿真(源码+仿真+全套资料) 功能讲解: 采用51单片机作为控制CPU,LCD1602显示相关数值 ...

  4. 基于51单片机的教室照明灯人数计数系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前时间/温度/教室人数 2.自动模式下,在工作时间内(1824时),当环境黑暗时,根据进入教室的人数开启14盏灯,其余 ...

  5. 基于51单片机的ADC热敏电阻测温系统proteus仿真

    硬件设计 (末尾附文件) 代码设计 #include <reg51.h> #include <intrins.h> #define uchar unsigned char #d ...

  6. 基于51单片机的多路热电偶测温系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前检测的温度值 2.循环显示多路热电偶检测值 3.当温度超过设定温度值一定范围以后,蜂鸣器报警,同时启动升温或降温装置 ...

  7. 基于51单片机的时钟电子秤称重系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.采用LCD1602液晶显示当前时间和检测重量 2.按键可更改时间和设置超重报警阈值 3.采用HEX711和称重支架传感器获取物体重量信息,传入 ...

  8. 基于51单片机MAX487实现RS485多机通信protues仿真

    硬件设计 (末尾附文件) 代码设计 #include<reg51.h> #include<string.h> #include "lcd.h" #defin ...

  9. 基于51单片机的指纹解锁自动开门

    基于51单片机的指纹解锁自动开门 目录 基于51单片机的指纹解锁自动开门 一.设计说明 二.总体设计思路 三.系统硬件设计 四.系统软件设计 五. 实物制作与现象 七.体会 一.设计说明 指纹解锁:手 ...

最新文章

  1. 【Fragment】onActivityResult
  2. appium(3)-Running Tests
  3. 每天一个linux命令(58):telnet命令
  4. CVE-2015-1635(MS15-034 )进行DOS攻击
  5. 浏览器兼容的JS写法总结
  6. 白话算法(1) for循环不是随便写的
  7. 【论文阅读笔记】文本相似度分析方面
  8. 将OSM地图转化成OpenDRIVE
  9. xshell官网最新 中文,xshell
  10. 显示器刷新率测试软件144,【显示器】为什么“吃鸡”要选144Hz显示器?详解高刷新率显示器对FPS游戏的重要影响...
  11. 一份王者荣耀的英雄数据报告
  12. Dijkstra算法结合时间窗规划无冲突路径
  13. CSS实现单行、多行文本溢出显示省略号(…)
  14. 在抖音找罗永浩干掉辣条
  15. 生物特征模板保护技术
  16. 开关电源环路的零极点可以在反馈端补偿吗_开关电源的建模和环路补偿设计(1):小信号建模的基本概念和方法(一)...
  17. 华为鸿蒙和苹果ios哪个好,华为鸿蒙和安卓、IOS相比有哪些区别?最终还是输给了苹果!...
  18. 计算机课gif,信息技术五年级下册第7课 认识GIF动画教学设计及反思
  19. AI换脸为什么服务器没响应,AI换脸云服务器
  20. windows快捷键补充?

热门文章

  1. java redis session共享_Springboot+redis实现session共享
  2. linux下qt的文件打包,【最详细最完整】在Linux 下如何打包免安装的QT程序?
  3. 代记事本的各种文档编辑器使用感受
  4. notepad++使用正则表达式替换(保留部分内容不变)的方法
  5. 在Linux下将PNG和JPG批量互转的四种方法
  6. 高三学生凭神经网络论文研究网络暴力!00后也要出道了?
  7. ansible剧本批量安装nginx
  8. 西门子工业自动化资料大全 (2019年10月18日版)
  9. 基于java Restful API 的Sdnote服务端开发笔记
  10. 医院门诊管理系统数据库设计