51单片机之按键扫描

51单片机之按键扫描

描述:KEIL5编程,AT89C52单片机通过按键输入控制数码管显示该按键数值。

硬件:

电路仿真图(未运行)

电路仿真(运行)

程序:

按键扫描:控制每一行低电平,然后按下按键判断按键按下的行数以及按键列数,最后算出值。

#include <REGX52.H>

unsigned int Timer_Cnt = 0;

unsigned char code Digital_buff\[\]={

0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,0x80 ,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};

unsigned int Key_Num = 0; //°´¼üÊýÖµ

unsigned int Key_Flag = 0; //°´¼ü±êÖ¾Î>>

sbit key_row1 = P1^0;

sbit key_row2 = P1^1;

sbit key_row3 = P1^2;

sbit key_row4 = P1^3;

sbit key_col1 = P1^4;

sbit key_col2 = P1^5;

sbit key_col3 = P1^6;

sbit key_col4 = P1^7;

void Key_Scan()//°´¼üË¢ÐÂ

{

static unsigned char i=0;

++i;

i %= 4;

switch(i)//Ë¢ÐÂÐÐ

{

case 0:key_row1 = 0;key_row2 = 1;key_row3 = 1;key_row4 = 1;break;

case 1:key_row1 = 1;key_row2 = 0;key_row3 = 1;key_row4 = 1;break;

case 2:key_row1 = 1;key_row2 = 1;key_row3 = 0;key_row4 = 1;break;

case 3:key_row1 = 1;key_row2 = 1;key_row3 = 1;key_row4 = 0;break;

default:break;

}

if((key_col4 == 0)&&(Key_Flag == 0))//ÒÀ´ÎÅжϰ´¼üÊÇ·ñ°´ÏÂ

{

Key_Num = i*4;

Key_Flag = 1;

}

else if((key_col3 == 0)&&(Key_Flag == 0))

{

Key_Num = (i*4)+1;

Key_Flag = 1;

}

else if((key_col2 == 0)&&(Key_Flag == 0))

{

Key_Num = (i*4)+2;

Key_Flag = 1;

}

else if((key_col1 == 0)&&(Key_Flag == 0))

{

Key_Num = (i*4)+3;

Key_Flag = 1;

}//È·¶¨°´¼ü̧Æð

else if((key_col4 == 1||key_col3 == 1||key_col2 == 1||key_col1 == 1)&&Key_Flag == 1)

{

Key_Flag = 0;

}

}

void main()

{

P2 = Digital_buff0;

while(1)

{

Key_Scan();

P2 = Digital_buffKey_Num;

}

}

相关推荐
Dr.kangder1 小时前
嵌入式处理器仿真技术——Hypervisor 原理与实践
服务器·嵌入式硬件·架构·嵌入式
智购科技自动售卖机厂家6 小时前
从STM32到RK3588——自动售货机嵌入式主控方案的架构演进~YH
stm32·嵌入式硬件·物联网·架构·lua·零售·symfony
振南的单片机世界7 小时前
2MHz/50MHz玄机:GPIO速度档选错,信号直接“烂尾”
arm开发·stm32·单片机·嵌入式硬件
Run_Teenage8 小时前
嵌入式:理解STM32文档和社区生态,工具链的选择与安装
stm32·单片机·嵌入式硬件
ACP广源盛139246256738 小时前
DeepSeek‑V4‑Flash 公测@ACP#昇腾 950 国产算力组合落地,国产 PCIe 交换芯片 IX9104 有哪些硬件机会
大数据·数据库·人工智能·分布式·单片机·嵌入式硬件·microsoft
铅笔小新z8 小时前
【stm32】RCC 与时钟树
stm32·单片机·嵌入式硬件
时空自由民.9 小时前
STM32 IIC HAL库,LL库
stm32·单片机·嵌入式硬件
txh05079 小时前
不用变压器也能把220V交流电变为5V直流电?
单片机·嵌入式硬件
辰哥单片机设计9 小时前
STM32智能门禁系统(语音版)
stm32·单片机·嵌入式硬件
Industio_触觉智能11 小时前
瑞芯微ISP内核驱动深度解析|RKISP39从架构到Probe初始化全流程(上篇)
linux·嵌入式硬件·硬件架构·摄像头·isp·瑞芯微·rk3576