电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

单片机按键扫描数码管显示C语言程序

单片机按键扫描数码管显示C语言程序_第1页
1/14
单片机按键扫描数码管显示C语言程序_第2页
2/14
单片机按键扫描数码管显示C语言程序_第3页
3/14
单片机按键扫描数码管显示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 #define LEDS_DDR DDRD #define LEDS_PORTO PORTD #define LEDS_MASK 0xfc #define LEDS_NUM 0x06 #define TRUE 1 #define FALSE 0 /*定义键盘扫描程序返回数据类型*/ typedef struct { uchar shiftcnt; //上档键的个数值 uchar funcnt; //...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

单片机按键扫描数码管显示C语言程序

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部