#include #define uchar unsigned char #define uint unsigned int uchar buff,times,j; unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f, //0,1,2,3 0x66,0x6d,0x7d,0x07, //4,5,6,7 0x7f,0x6f,0x77,0x7c, //8,9,A,B 0x39,0x5e,0x79,0x71,0x00}; //C,D,E,F,null unsigned char idata value[8]; void delay1ms(void) //消抖动 { uchar i; for(i=200;i>0;i--); } void delay5ms(void) //延时5ms { unsigned char i,j; for(i=5;i>0;i--) for(j=248;j>0;j--); } void key_scan(void) //键盘输入扫描函数 { uchar hang,lie,key; P3=0xf0; if((P3&0xf0)!=0xf0) //行码为0,列码为1 { delay1ms(); if((P3&0xf0)!=0xf0) //有键按下,列码变为0 { hang=0xfe; //逐行扫描 times++; if(times==2) times=1; while((hang&0x10)!=0) //扫描完4行后跳出 { P3=hang; if((P3&0xf0)!=0xf0) //本行有键按下 { lie=(P3&0xf0)|0x0f; buff=((~hang)+(~lie)); switch(buff) { case 0x11: key=0;break; case 0x21: key=1;break; case 0x41: key=2;break; case 0x81: key=3;break; case 0x12: key=4;break; case 0x22: key=5;break; case 0x42: key=6;break; case 0x82: key=7;break; case 0x14: key=8;break; case 0x24: key=9;break; case 0x44: key=10;break; case 0x84: key=11;break; case 0x18: key=12;break; case 0x28: key=13;break; case 0x48: key=14;break; case 0x88: key=15;break; } value[times-1]=key; //按下的键值 } else hang=(hang<<1)|0x01; //下一行扫描 } } } } void main(void) { uchar key; while(1) { key_scan(); P0=0; for(j=times;j>0;j--) { P2=j-1; //数码管列扫描 P0=dispcode[value[times-j]]; //A-G数据 delay5ms(); } } }
2023-04-04 03:08:28 84KB 51单片机 键盘 数码管
1
基于51单片机音乐盒课程设计报告书.doc
1
51单片机数字钟汇编程序
2023-04-03 10:19:13 16KB 51单片机数字钟汇编程序
1
基于51单片机的教室智能照明控制系统人数统计;时间设置,光照检测
2023-04-02 18:14:02 13.18MB ds1302 LCD1602 照明系统 51单片机
设计的烟雾报警器由烟雾信号采集电路与单片机控制电路两大部分构成。根据设计要求、使用环境、成本等因素,选用MQ.2型半导体电阻式烟雾传感器。该传感器是对以烷类烟雾为主的多种烟雾有良好敏感特性的广谱型半导体敏感器件。它的灵敏度适中,具有响应与恢复特性好,长期工作稳定性、重现性、不易受环境影响及抗温湿度影响等优点。 在系统单片机控制电路的设计上,采用了高性能、高整合度的STC89C52单片机作为核心芯片,充分利用了其高速数据处理能力和丰富的片内外设,实现了仪器的小型化和智能化。使仪器具有结构简单、性能稳定、体积小、成本低等优点。由于烟雾传感器需要在加热状态下工作,温度越高,反应越快,响应时间和恢复时间就越快。为提高响应时伺,保证传感器准确地、稳定地工作,需要向烟雾传感器持续供给5V的加热电压。烟雾报警器能在较宽的温度范围工作,可将烟雾浓度显示用LED数码管显示。当烟雾的浓度达到设定的浓度时,发出报警。
2023-04-02 13:34:35 1.22MB 51单片机 c语言 proteus 毕业设计
1
基于Proteus软件仿真,实现51单片机对模拟信号采集,并实时显示到屏幕1602上。此次仿真主要利用adc832将模拟信号转为数字信号,并将数据上传至51单片机;控制器检测到信号后,周期性进行解算并显示到LCD1602屏幕上;本仿真还提供了串口接口/LED灯控制等等,适合初学者使用。
2023-04-02 00:37:05 150KB 单片机 ADC采样
1
本文介绍了一种基于51单片机汇编语言设计的数字时钟,该设计可以直接使用,也可以进行编辑。本文是《51单片机数字时钟》课程设计报告,作者是电气工程及自动化专业08电气技师本科班的学生。本文包括前言和摘要两部分,摘要简要介绍了该数字时钟的设计原理和实现方法。
1
51单片机的应用实例,个人编写且包含注释,proteus仿真,都经过本人的测试;文件中还包括整理好的word文档,包括本人在实验中遇到的问题和解决方法、应当注意的事项。另外还有proteus的简单使用视频。也有ppt帮助理解。适合初学者
2023-04-01 11:23:54 185.34MB 51单片机 keil mdk Proteus
1
基于51单片机的步进电机驱动系统,主要功能是对步进电机的加速减速正转反转以及暂停或者开启,通过LCD1602液晶显示屏对当前的工作状态和工作档位进行显示。包含的资料有51的代码,电路原理图,PCB的钻孔文件以及硬件清单,希望能带给大家
2023-03-31 16:55:07 483KB 51 单片机 步进电机
1
本文介绍了一种基于51单片机的压力检测系统设计。该系统采用了压力传感器进行压力检测,并通过51单片机进行数据处理和显示。文章详细介绍了系统的硬件设计和软件设计,并对系统进行了实验验证。实验结果表明,该系统具有较高的精度和稳定性,可以满足实际应用需求。
2023-03-29 18:20:42 8.12MB (完整word)基于51单片机压
1