历史上的今天
今天是:2024年12月10日(星期二)
2021年12月10日 | 单个数码管显示4x4矩阵按键
2021-12-10 来源:eefocus
代码:
#include #define uchar unsigned char #define uint unsigned int sbit BEEP = P3^7; uchar code DSY_CODE[]= { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00 }; uchar Pre_KeyNO = 16,KeyNO = 16; void DelayMS(uint ms) { uchar t; while(ms--) { for(t=0;t<120;t++); } } void Keys_Scan() { uchar Tmp; P1 = 0x0f; DelayMS(1); Tmp = P1 ^ 0x0f; switch(Tmp) { case 1: KeyNO = 0; break; case 2: KeyNO = 1; break; case 4: KeyNO = 2; break; case 8: KeyNO = 3; break; default: KeyNO = 16; } P1 = 0xf0; DelayMS(1); Tmp = P1 >> 4 ^ 0x0f; switch(Tmp) { case 1: KeyNO += 0; break; case 2: KeyNO += 4; break; case 4: KeyNO += 8; break; case 8: KeyNO += 12; } } void Beep() { uchar i; for(i=0;i<100;i++) { DelayMS(1); BEEP = ~BEEP; } BEEP = 1; } void main() { P0 = 0x00; while(1) { P1 = 0xf0; if(P1 != 0xf0) Keys_Scan(); if(Pre_KeyNO != KeyNO) { P0 = ~DSY_CODE[KeyNO]; Beep(); Pre_KeyNO = KeyNO; } DelayMS(100); } } 硬件连接:
上一篇:单片机INT0及INT1计数器
下一篇:INTO中断计数器
史海拾趣
|
ROM-only File System 插上USB后系统变慢,且很难实现同步!! ROM-only File System 插上USB后系统变慢,且很难实现同步!! 是WINCE 5.0,加上ROM-only File System 组件后,出现插上USB后系统变慢,且很难实现同步,连上就断!而且开机启动后有一段嘀嘀的声音! 请高手指教!!!!!… 查看全部问答> |
|
各位大侠: STM32F101R8T6MCU的PC7口用推挽输出只有2V(系统供电3.3V)?测试时已把PC7的外部电路全部去掉,就让PC7,输出一个方波。用示波器看,方波最高电压也是2V。 另我感到奇怪的是!与PC7同样的IO PC6却有3.3V的输出, ...… 查看全部问答> |
|
目前初步的在atmega16移植了下ucos_ii,建立了几个小任务,能跑起来,试了试核服务,都能成功。刚刚建立了一个qq群,想和前辈们多多交流下学习的心得,欢迎朋友们的加入 ,添点人气!!!!!153771387欢迎朋友们的加入,共同学习,共同进步!!!… 查看全部问答> |
|
本人在北京一个研究单位负责管理工作,业余时间对于智能家居很感兴趣!有一个梦想,想做一套适合我们生活习惯,给大家带来便利的智能家居系统。如果产品成熟,走产业化的道路。如果您对于此件事情很感兴趣,有志于如并把其当作一个事业来做,请跟贴 ...… 查看全部问答> |




