记忆枕厂家
免费服务热线

Free service

hotline

010-00000000
记忆枕厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

基于AVR的44矩阵键盘扫描与LED显示程序

发布时间:2020-01-31 01:31:36 阅读: 来源:记忆枕厂家

/**************此程序在别人的基础上进行了一些修改,能应用到我的开发板中,并与我自制的外接按键和LED灯配合使用,在此感谢原创者!!!硬件:M16作用:当按下按键时显示相对应的按键控制的LED灯频率:8.000000MHZ开发板:EasyAVR M16 v12编译软件:ICCAVR6.31A下载软件:AVRstudio4.14编写人:伍建忠编写日期:2011.10.14修改日期:************/#includeiom16v.h>#includemacros.h>#define uchar unsigned char#define uint unsigned intuint key_num=20;//以下为左右移动参数宏定义#define crol(a,n)a=(a>(8-n))#define cror(a,n)a=(a>>n)|(a(8-n))void delay(void){ uint i; for(i=1;i100;i++);}void delay_1ms(void){ uint i; for(i=1;i(uint)(8*143-2);i++);} void delay_ms(uint time){ uint i=0; while(i) { delay_1ms();i++; }}void port_init(void){ DDRA=0xff; PORTA=0xff; DDRB=0x00; PORTB=0x00; DDRC=0xff;// PORTC=0xff;// DDRD=0xf0;//D口低四位为输入,置高电平。 PORTD=0x00;//高四位为输出,置低电平。}uchar key_scan(void){ uchar i,j; DDRD=0xf0; PORTD=0x00;//初始运行时输出全为0 if((PIND0x0f)==0x0f)//判断有无按键按下 return 20; else { delay_ms(10); if((PIND0x0f)==0x0f)//第二次判断,必不可少 return 20; else { for(i=4;i8;i++)//扫描行线 { PORTD=~(1i)|0x0f;//行线上是否有拉低 for(j=0;j4;j++)//扫描列线 { if((PIND(1j))==0)//列线上有无按键按下 key_num=((i-4)*4+j);//确定按键值 } } return key_num;//无键按下则返回初始状态} }}void led_display(void)//按键按下时在LED上显示相应的状态{ switch(key_num) { case 0: PORTA=0xfe; PORTD=0xee; break;case 1: PORTA=0xfc; PORTD=0xde; break;case 2: PORTA=0xf8; PORTD=0xbe; break;case 3: PORTA=0xf0; PORTD=0x7e; break;case 4: PORTA=0xe0; PORTD=0xed; break;case 5: PORTA=0xc0; PORTD=0xdd; break;case 6: PORTA=0x07; PORTD=0xbd; break;case 7: PORTA=0x55; PORTD=0x7d; break;case 8: PORTA=0xaa; PORTD=0xeb; break;case 9: PORTA=0xcc; PORTD=0xdb; break;case 10: PORTA=0xbb; PORTD=0xbb; break;case 11: PORTA=0x77; PORTD=0x7b; break;case 12: PORTA=0xf0; PORTD=0xe7; break;case 13: PORTA=0x66; PORTD=0xd7; break;case 14: PORTA=0xee; PORTD=0xd7; break;case 15: PORTA=0xdd; PORTD=0x77; break;default: break;key_num=16; }}void main(void){ #ifdef debag1 key_code=2; #endif port_init();//调用端口初始化函数 while(1) { key_scan();//调用按键扫描函数 led_display();//调用显示函数}}

张筱雨人体摄影

Lucy图片

美背