学习单片机第4天

2022-09-14 02:11:28 浏览数 (1)

矩阵按键

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

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 芯片

明天再看看原理和编程

0 人点赞