资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
#include “mega16.h“ /#include“delay.h“ #define uchar unsigned char #define uint unsigned int flash uchar tab=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,/共阳极 LED0F 的段码0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E,0X00; void delay(uint k) uint m,n;for(m=0;mk;m+)for(n=0;n114;n+); uchar ScanKey() uchar temp,temp1,key;temp=PIND;tempswitch(temp) case 0x0E: DDRD=0x0F;PORTD=0XF0;delay(5);temp1=PIND;temp1switch(temp1) case 0xE0:key=0;break; case 0xD0:key=1;break;case 0xB0:key=2;break;case 0x70:key=3;break;default:key=0;break; DDRD=0xF0;PORTD=0X0F;break; case 0x0D: DDRD=0x0F;PORTD=0XF0;delay(5);temp1=PIND;temp1switch(temp1) case 0xE0:key=4;break; case 0xD0:key=5;break;case 0xB0:key=6;break;case 0x70:key=7;break;default:key=0;break; DDRD=0xF0;PORTD=0X0F;break; case 0x0B: DDRD=0x0F;PORTD=0XF0;delay(5);temp1=PIND;temp1switch(temp1) case 0xE0:key=8;break; case 0xD0:key=9;break;case 0xB0:key=10;break;case 0x70:key=11;break;default:key=0;break; DDRD=0xF0;PORTD=0X0F;break; case 0x07: DDRD=0x0F;PORTD=0XF0;delay(5);temp1=PIND;temp1switch(temp1) case 0xE0:key=12;break; case 0xD0:key=13;break;case 0xB0:key=14;break;case 0x70:key=15;break;default:key=0;break; DDRD=0xF0;PORTD=0X0F; break; default:key=0;break; return(key); void main(void) uchar temp,keynum;DDRD=0xF0;PORTD=0X0F;DDRC=0xFF;PORTC=0XFF; while(1) temp=PIND;temp if(temp=0x0F) continue; else delay(100);temp=PIND;temp if(temp=0x0F) continue; else keynum=ScanKey();PORTC=tabkeynum;while(temp!=0x0F) temp=PIND;temp
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号