单片机AT89C51键盘扫描识别实验

本文介绍了一个4X4矩阵键盘的单片机AT89C51设计实验,通过编写扫描程序实现键盘号码的正确识别,并利用两个数码管显示按键的十位和个位数字。实验涉及电路设计的调整以及程序的调试优化。
摘要由CSDN通过智能技术生成

      设计一个4X4的矩阵键盘,键盘的号码0~15,要求编写出一个键盘输入扫描程序,要求单片机能根据键盘排列顺序,能将按下去键盘号正确识别出来,并采用两个数码管分别键盘号码的个位和十位。

实验参考电路图如下:


参考代码:

#include<reg51.h>   //包含51单片机寄存器定义的头文件
sbit P14=P1^4;      
sbit P15=P1^5;     
sbit P16=P1^6;      
sbit P17=P1^7;      
unsigned char code Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};    //数字0~9的段码
unsigned char keyval;  
 
/**************************************************************
函数功能:数码管动态扫描延时
**************************************************************/
void led_delay(void)     
 {
   unsigned char j;
for(j=0;j<200;j++)
;
  }


/**************************************************************
函数功能:按键值的数码管显示子程序
**************************************************************/
 void display(unsigned char k)
{
   P2=0xbf;            
   P0=Tab[k/10];       
   led_delay();       
   P2=0x7f;            
   P0=Tab[k%10];      
led_delay();         
 }


/**************************************************************
函数功能:软件延时子程序
**************************************************************/
 v
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值