前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习单片机第4天

学习单片机第4天

原创
作者头像
笃信好学
修改2022-09-14 02:11:28
2540
修改2022-09-14 02:11:28
举报
文章被收录于专栏:笃信好学

矩阵按键

上面是独立按键,下面是矩阵按键
上面是独立按键,下面是矩阵按键

4x4 控制16个按键,4+4 为8个接口

扫描原理
扫描原理
代码语言:javascript
复制
//下面是矩阵按键,采用 行列扫描方法,结果显示在静态数码管
#include"reg52.h"
#define GPIO_DIG P1
#define GPIO_KEY P0

unsigned char smgduan[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
0x7c,0x39,0x5e,0x79,0x71};//
char keyvalue;

void delay_ms(int n)
	{
	unsigned int i=0,j=0;
	for(i=0;i<n;i++)
	for(j=0;j<123;j++);
}

void keypros(){
	char a=0;
	//check which column
	GPIO_KEY=0x0f;
	if(GPIO_KEY!=0x0f){
		delay_ms(10);
		if(GPIO_KEY!=0x0f){
			switch(GPIO_KEY){
				case(0x07): keyvalue=0;break;
				case(0x0b): keyvalue=1;break;
				case(0x0d): keyvalue=2;break;
				case(0x0e): keyvalue=3;break;
			}
			
			//check which row 
			GPIO_KEY=0xf0;
			if(GPIO_KEY!=0xf0){
				delay_ms(10);
				if(GPIO_KEY!=0xf0){
					switch(GPIO_KEY){
						case(0x70): keyvalue=keyvalue;break;
						case(0xb0): keyvalue=keyvalue+4;break;
						case(0xd0): keyvalue=keyvalue+8;break;
						case(0xe0): keyvalue=keyvalue+12;break;
					}
					while((a<50)&&(GPIO_KEY!=0xf0)){
						delay_ms(10);
						a++;
					}
				}
			}
		}
	}
	
	
}
void main(){

	while(1){
		keypros();
		GPIO_DIG=~smgduan[keyvalue];
		
					
	}
}
 

单片机IO扩展(并转串)--74HC165

开发板板载一个74HC165 芯片,本章就来介绍如何来扩展单片机IO 口,通过本章的学习,让大家学会使用74HC165 芯片来扩展IO 口。本章所要实现的功能是:使用开发板上的74HC165 模块扩展8 位IO 与独立按键连接,通过独立按键控制LED 灯。

74HC165 芯片
74HC165 芯片
74HC165 芯片
74HC165 芯片

明天再看看原理和编程

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 矩阵按键
  • 单片机IO扩展(并转串)--74HC165
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档