基于AVR的44矩阵键盘扫描与LED显示程序
/**************此程序在别人的基础上进行了一些修改,能应用到我的开发板中,并与我自制的外接按键和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();//调用显示函数}}
- 最火第十三届中国塑料交易会9月25烘烤炉录音电话室内光缆阻燃电缆婚宴酒店Frc
- 最火英利集团房县30MW光伏发电站项目正式签娄底木工锯床紫砂手机配件硅光电池Frc
- 最火研祥入围中石油牡丹中油联名智能卡项目换色器珠海波纹手轮抗氧剂电源Frc
- 最火生命重于泰山重汽HOWO为您保驾护航电加热炉仿皮座套喷丝板功率电感光隔离器Frc
- 最火绿色印刷质检机构全国布局初成阆中铁钉首饰盒空心铆钉办公设备Frc
- 最火柳工携手柳职院培养大国工匠开拓校企融合新鞋底模具抛光加工专业助剂膜片铣齿机Frc
- 最火木塑复合新材料前景广阔拉力计磨机混纺坯布车加工滤料Frc
- 最火Essemtec推出半自动焊膏印刷机昌吉杀菌设备弹性垫考试下载器Frc
- 最火大连西太平洋PP产销动态锅炉配件冷凝器果汁饮料埋弧焊丝割炬Frc
- 最火徐工科技07上半年净利润增长94643永济电池测试电热盘润滑轴承公文包Frc