使用红外对管监测啤酒瓶,每通过一个啤酒瓶计数一次,由2位数码管显示计数值。
每12瓶计数1箱,并通过蜂鸣器报警,继电器输出控制信号,等待按键复位。
设计软硬件,该测速仪的硬件部分由光电检测单元、信号转换单元、测控单元和数据显示储存单元4部分组成。
并且引见啤酒生产线计数器的结构,工作原理,功能特点。
本设计的题目是啤酒生产线计数器,本设计论文是以单片机为核心设计的。
2017/2/17 2:02:34 291KB 51单片机 红外
1
基于51单片机的直流电动机调速器程序,外面有用51单片机驱动直流电机调速器程序
1
基于51单片机的MLX90614红外测温仪实验指导书(含源代码)MLX90614MLX90615红外测温51单片机SMBus这是经过本人实验测试得到的成果,再次将之分享给大家,希望对搞温度测量及控制的人有所协助!时钟线数据线温度显示第个数码管段选温度显示第个数咼管段迮温度显示第个数码管段选矩阵键盘第列矩阵键盘第列矩阵键盘第列矩阵键盘第行矩阵键盘第行矩阵键盘第行数据定义可位寻址数据数码管码值定义显示代码,共阳不带小数点的显示代码,共阳带小数点的仝局变量定义定时标志位定时毫秒数向写入命令或数据数据清屏光标返回原点设置显示模式显示开显示关显示光标无光标光标闪动光标不闪动设置输入模式光标石移默认光标左移田面可半移默认画面不移动命令模式对操作操作进入命令模式退出命令模式读标志进入睡眠馍式地址(只读)周围温度环境温度单元目标温度红外温度单元地址测量范围上限设定测量范围下限设定设定环境温度设定频率修正系数配置寄存器器件地址设定保留保留地址地址地址地址函数声明发起始位子程序发结東位子程序接收字节子程序发送位子程序接收字节子程序接收位子程序延时程序读温度数据初始化子程序判断忙子程序写命令子程序写数据子程序显示子程序字符串显示程序主函数温度变量初始化每扫描一次键盘按下键时,进行数码管显示液品屏显示读取温度清屏显示字符串且换行显示温度显示摄氏度延吋再读取温度显字符串显示稈序字符串显示程序直到字符肀结束转成码指向下一个字符输入转换并显示用于温度为止温度整数温度小数温度超过度显示温度百位显小温度十位显示温度个位温度超过度显小温度十位显示温度个位温度不超过度显示温度个位显示小数点温度小数点后第位数不等于显示温度小数点后第位数显示温度小数点后第位数温度小数点斤第位数等于显示温度小数点后第位数显示温度小数点后第位数温度为负
2021/8/9 9:44:18 125KB MLX90614 MLX90615 红外测温 51单片机
1
51单片机超声波测距1602显示,代码简约,高效,注释完整方便理解
2018/6/26 11:33:49 45KB 单片机 超声波 1602显示
1
基于51单片机的车轮速度显示,可以根据车速的不同来显示,可是只显示一次
2020/1/13 9:54:56 18KB 测速
1
CM12864-12阐明书,51单片机驱动12864液晶屏程序
2018/10/11 21:07:01 381KB 12864,12864程序
1
单片机数模转换程序将da#include//52系列单片机头文件#include#defineucharunsignedchar#defineuintunsignedintsbitdula=P2^6;//申明U1锁存器的锁存端sbitwela=P2^7;//申明U2锁存器的锁存端sbitadwr=P3^6;//定义AD的WR端口sbitadrd=P3^7;//定义AD的RD端口sbitled=P2^5;sbitDAC0832_CS=P3^2;sbitDAC0832_WR=P3^6;sbitAD_CS=P0^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucharweima[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};voiddelayms(uintxms){uinti,j;for(i=xms;i>0;i--)//i=xms即延时约xms毫秒for(j=110;j>0;j--);}voiddisplay(ucharbai,ucharshi,ucharge)//显示子函数{dula=1;P0=table[bai]|0x80;//送段选数据dula=0;P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时wela=1;//原来段选数据通过位选锁存器形成混乱P0=0x7e;//送位选数据wela=0;delayms(1);//延时dula=1;P0=table[shi];dula=0;P0=0xff;wela=1;P0=0x7d;wela=0;delayms(1);dula=1;P0=table[ge];dula=0;P0=0xff;wela=1;P0=0x7b;wela=0;delayms(1);}/*voiddisplays(uchara,ucharb,ucharc)//显示子函数{dula=1;P0=table[a];//送段选数据dula=0;P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时wela=1;//原来段选数据通过位选锁存器形成混乱P0=0x77;//送位选数据wela=0;delayms(1);//延时dula=1;P0=table[b];dula=0;P0=0xff;wela=1;P0=0x6f;wela=0;delayms(1);dula=1;P0=table[c];dula=0;P0=0xff;wela=1;P0=0x5f;wela=0;delayms(1);}*/voiddisplays(ucharshuzi,ucharweizhi,bitdp){dula=1;if(dp)P0=table[shuzi]|0x80;elseP0=table[shuzi];dula=0;wela=1;P0=weima[weizhi];wela=0;}voidmain()//主程序{uintad;ucharA1,A2,A3,adval;AD_CS=1;//置CSAD为0,选通ADCS以后不必再管ADCSDAC0832_CS=0;DAC0832_WR=0;while(1){wela=1;P0=0x7f;wela=0;adwr=1;_nop_();adwr=0;//启动AD转换_nop_();adwr=1;P1=0xff;//读取P1口之前先给其写全1adrd=1;//选通ADCS_nop_();adrd=0;//AD读使能_nop_();
2018/2/21 19:13:45 3KB 51数模转换
1
单片机数模转换程序将da#include//52系列单片机头文件#include#defineucharunsignedchar#defineuintunsignedintsbitdula=P2^6;//申明U1锁存器的锁存端sbitwela=P2^7;//申明U2锁存器的锁存端sbitadwr=P3^6;//定义AD的WR端口sbitadrd=P3^7;//定义AD的RD端口sbitled=P2^5;sbitDAC0832_CS=P3^2;sbitDAC0832_WR=P3^6;sbitAD_CS=P0^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucharweima[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};voiddelayms(uintxms){uinti,j;for(i=xms;i>0;i--)//i=xms即延时约xms毫秒for(j=110;j>0;j--);}voiddisplay(ucharbai,ucharshi,ucharge)//显示子函数{dula=1;P0=table[bai]|0x80;//送段选数据dula=0;P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时wela=1;//原来段选数据通过位选锁存器形成混乱P0=0x7e;//送位选数据wela=0;delayms(1);//延时dula=1;P0=table[shi];dula=0;P0=0xff;wela=1;P0=0x7d;wela=0;delayms(1);dula=1;P0=table[ge];dula=0;P0=0xff;wela=1;P0=0x7b;wela=0;delayms(1);}/*voiddisplays(uchara,ucharb,ucharc)//显示子函数{dula=1;P0=table[a];//送段选数据dula=0;P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时wela=1;//原来段选数据通过位选锁存器形成混乱P0=0x77;//送位选数据wela=0;delayms(1);//延时dula=1;P0=table[b];dula=0;P0=0xff;wela=1;P0=0x6f;wela=0;delayms(1);dula=1;P0=table[c];dula=0;P0=0xff;wela=1;P0=0x5f;wela=0;delayms(1);}*/voiddisplays(ucharshuzi,ucharweizhi,bitdp){dula=1;if(dp)P0=table[shuzi]|0x80;elseP0=table[shuzi];dula=0;wela=1;P0=weima[weizhi];wela=0;}voidmain()//主程序{uintad;ucharA1,A2,A3,adval;AD_CS=1;//置CSAD为0,选通ADCS以后不必再管ADCSDAC0832_CS=0;DAC0832_WR=0;while(1){wela=1;P0=0x7f;wela=0;adwr=1;_nop_();adwr=0;//启动AD转换_nop_();adwr=1;P1=0xff;//读取P1口之前先给其写全1adrd=1;//选通ADCS_nop_();adrd=0;//AD读使能_nop_();
2019/5/4 18:48:13 3KB 51数模转换
1
STM32的像51单片机一样操作STM32的GPIO,亲测可用,内有详细代码注释和说明讲解,很好的学习材料。
2017/6/15 12:35:03 44KB STM32
1
STM32的像51单片机一样操作STM32的GPIO,亲测可用,内有详细代码注释和说明讲解,很好的学习材料。
2018/6/14 14:03:10 44KB STM32
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡