51单片机c语言按键扫描程序,单片机按键扫描数码管显示C语言程序
电子科学与技术
单片机按键扫描数码管显示C语言程序
按键扫描数码管显示程序共定义了6个键的功能:K1、K2、K3、K4以及K5、K8组成的一对复合键,其中K2,K3为连击键,K5为上档键。在正常工作模式下按K1则切换至状态,在设定模式下按K1键循环选择4个数码管中的某个,被选中的数码管闪烁,此时单按K2键显示数值加1;常按K2显示数值以一定速度递增,同时数码管停止闪烁,当K2松开,数码管恢复闪烁,显示数值停留在K2松开前的值上。K3完成的功能和K2类似。其完成减操作。这2个键只有在设定状态才有效,可以有效防止误操作。K4为确认键,按下该键回到正常显示状态,所有指示灯熄灭,数码管显示刚刚设定的数值。K5+K8这对复合键执行复位操作,任何情况下同时按下K5和K8或先按下K5再按下K8,所有数码管的显示全为0,指示灯全灭,进入正常显示状态。同时程序还对如下几个异常操作进行了处理:
1. 2个或多个功能键同时按下
2. 一个功能键按下未释放,又按另一个功能键,然后再松开其中一个功能键
3. 先按下功能键再按下上档键
4. 多个上档键和一个功能键同时按下,此时不做处理。等到松开其他上档键,只剩下一个上
5. 档键和一个功能键时才执行这对复合键;或松开所有上档键,处理单一功能键。 /*******************************************************************************/
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define RCtrl 0x20 //定义上挡键 第5键
#define RConti 0xfe //定义连击键 第6键
#define N 2 //去抖年龄下限
#define MaxRate 50 //重复前的延迟值 600ms
#define MinRate 20 //重复速度 240ms
#define leddark 83 //闪烁时灭时间1s
#define ledshow 83 //闪烁时亮时间1s
#define decimal 0x80 //小数点的段数
#define KEY_DDR DDRC
#define KEY_PORTO PORTC
#define KEY_PORTI PINC
#define OUT 0x3f
#define IN 0xc0
#define KeyValue 0x3f
#define LEDD_DDR DDRB
#define LEDD_PORTO PORTB
51单片机c语言按键扫描程序,单片机按键扫描数码管显示C语言程序相关推荐
- 51单片机矩阵按键详解,两位数码管显示(普中HC6800ESV2.0)
一.简述 本人是一名在校生,这个学期刚好在学单片机,自己也挺有兴趣,前面在写数码管.时钟啥的程序时都没什么大问题,但是做到矩阵按键时碰到了一些问题,不过已经解决,下面我会把碰到的问题和解决方法都写出来 ...
- 基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298M芯片控制直流电机正反运转的项目
基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298芯片控制直流电机正反运转的项目 一.前言 1.基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298芯片控制直流电机正反运转的 ...
- c语言让数码管显示时间,请问51单片机肿么编写程序让8个数码管显示时间(时分秒)...
//*******时间程序**************// //*******2010-7-14 00:31:39 *******// //******* Z X C **************** ...
- 4x4矩阵键盘工作原理及扫描程序_AVR单片机扫描4X4矩阵键盘并数码管显示程序
/* program name : keyboard ; 功能描述 : 扫描16个按键(4X4),并把键值显示在数码管上(两位); 要点 : 在扫描按键时运用了比较复杂的两个for()循环嵌套 ...
- 单片机数码管显示程序c语言,基于STC89C52单片机的动态数码管显示C语言程序
* 实验说明 : 8位数码管显示0~F #include #define GPIO_DIG P0 //段选 #define GPIO_PLACE P1 //位选 //--定义全局变量--// unsi ...
- 基于51单片机电子秒表倒计时器proteus仿真程序原理图PCB数码管显示语言播报
硬件设计 仿真图1: 计时功能,数码管显示 仿真图2 数码管LCD结合显示:具有多次记录模式: 仿真图3 数码管显示:具有时钟和秒表功能: 仿真图4 数码管显示:具有语音播报功能(这里采用示波器模拟, ...
- c语言键盘控制数码管显示,3*4矩阵键盘控制4位数码管显示的C程序
这个很简单 ;******************************************************************************** ;* 标题: 伟纳电 ...
- 3641bs数码管C语言程序,树莓派控制3641BS数码管显示数字
3641BS数码管是一个小LED显示器,可以显示4位数字和4个小数点.它是没有驱动的,使用它的方法就是控制每一个LED灯的亮起和熄灭.这个型号的数码管长这个样子: 硬件准备 树莓派 显像管 – 不是3 ...
- 单片机原理与应用技术(三)———动态数码管显示汇编语言
一.数码管基础知识 1.数码管结构 一般数码管通常由八段LED灯组成,又分成共阳数码管和共阴数码管(如下图所示).共阴极数码管即为LED阴极连接在一起为公共阴极,共阳极数码光即为LED阳极连接在一起为 ...
最新文章
- Cell子刊:特异靶向病原菌致病力的植物天然产物的作用机制
- IC基础知识(1)集成电路(IC)简介
- SharePoint 2013 创建一个搜索中心和搜索设置
- 第二课时之python认识
- Xamarin提示Build-tools版本过老
- 以回调形式使用startActivityForResult方法,并解决Activity被回收的问题
- python jieba库用法
- MS SQL 模仿ORACLE的DESC
- win10系统用户访问ftp服务器被拒绝,关于windows2003下ftp用户名无法访问FTP服务器的问题...
- hadoop-hdfs-存储模型-架构模型-角色介绍
- 中断处理程序与中断服务例程
- Linux基础(用户身份和文件权限)
- C++提高部分_C++类模板对象做函数参数---C++语言工作笔记090
- diskgenius扩容c盘重启电脑卡住_用diskgenius更改分区参数的终止柱面,扩大C盘空间后...
- (黑苹果efi文件)B550-I Ryzen 9 5950X RX 5700 XT 黑苹果efi引导文件
- javascript中map和filter的区别
- PDF文件如何快速转换成Word文件?两个方法教你搞定
- 基于微信小程序公交查询系统设计与实现
- 发生死锁时自动发mail
- Mineflayer简介——Minecraft机器人
热门文章
- 解决阿里云存在未支付订单请支付或作废后再下单
- Mac下安装Tomcat7
- visio2013快速入门指南
- R语言--百度ECharts接口(echarts4r包)
- Lucene.Net 的“System.IndexOutOfRangeException: 索引超出了数组界限”错误
- 工程伦理课后习题参考答案(清华网课)
- Wamp以及其数据库的简单使用
- 解决PowerBuilder错误:unable to load the requested database interface please
- 基于vue-element-ui的一款表格设计器table-making
- html网页设计期末大作业——酒庄网页设计实例(5页)