当前位置:首页 > 学生毕业论文上交材料3
(专业名称) (课题名称)
#include
#include
#define uchar unsigned char
#define uint unsigned int //*Port Definitions sbit p3_6=P2^1; sbit LcdRs=P3^2; sbit LcdRw=P3^1; sbit LcdEn=P3^0;
sfr DBPort=0x80; /*P0=0x80,P1=0x90,P2=0xA0,P3=0xB0数据端口*/ sbit P2_0=P2^0; uint key_val=16;
uint m=0,count=0,count2=0;
uint pass=0,pass0=0,pass1=0,pass2=0,o=0,n=0; uint co[6]={0,0,0,0,0,0}; uint cp[1]={0};
uint cq[7]={0,0,0,0,0,0,0};
uchar sk[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0},pa=10; uchar password[16];
void DelayMs(unsigned int n) {unsigned int i,j; for(i=0;i for(j=0;j<120;j++);} /*按键扫描*/ void Check_key(void) {unsigned int row,col,tmp1,tmp2; tmp1=0x10; /*tmp1用来设置P1口的输出,取反后使P1.1~P1.7中有一个为0 */ for(row=0;row<4;row++) /*行检测*/ {P1=0x0f; /*先将p1.0~p1.3置高*/ P1=~tmp1 ; /*使p1.4~p1.7中有一个为0*/ tmp1*=2 ; /*tmp1左移一位*/ if((P1&0x0f)<0x0f) /*检测p1.0~p1.3中是否有一位为0,只要有 说明此行有按键按下,进入列检测*/ {DelayMs(30); if((P1&0x0f)<0x0f) /*检测p1.0~p1.3中是否有一位为0,只要有 说明此行有按键按下,进入列检测*/ { tmp2=0x01; /*tmp2用来检测哪一列为0*/ for(col=0;col<4;col++) /*列检测*/ {if((P1&tmp2)==0x00) /*该列如果为低电平则可以判定为列*/ {key_val=row*4+col; /*获取键值,识别按键*/ while((P1&tmp2)==0x00); return; } /*退出循环*/ tmp2*=2; } /*tmp2左移一位*/ while((P1&tmp2)==0x00); }}}} (专业名称) (课题名称) void rec_key(void) /*按键判断*/ {if(key_val!=16) /*当按键4 被按下时,标志位presskey4置位, 从而去执行判断按键1,2程序*/ {if(m>6) m=0; if(count2==1) {if(key_val==0) {//delay(1000); sk[0]=1; count++; pa=0; password[m]=0; m++; DelayMs(10); p3_6=0; DelayMs(100); p3_6=1; key_val=16;} if(key_val==1) {//delay(1000); sk[1]=1; count++; pa=1; password[m]=1; m++; DelayMs(10);p3_6=0; DelayMs(100);p3_6=1; key_val=16;} if(key_val==2) {//delay(1000); sk[2]=1; count++; pa=2; password[m]=2; m++; DelayMs(10);p3_6=0; DelayMs(100);p3_6=1; key_val=16;} if(key_val==3) {//delay(1000); sk[3]=1; count++;pa=3;password[m]=3; (专业名称) (课题名称) m++; DelayMs(10);p3_6=0; DelayMs(100);p3_6=1; key_val=16; } if(key_val==4) {//delay(1000); sk[4]=1; count++; pa=4; password[m]=4; m++; DelayMs(10);p3_6=0; DelayMs(100);p3_6=1; key_val=16;} if(key_val==5) {//delay(1000); sk[5]=1; count++; pa=5; password[m]=5; m++; DelayMs(10);p3_6=0; DelayMs(100);p3_6=1; key_val=16;} if(key_val==6) {//delay(1000); sk[1]=6; count++; pa=6; password[m]=6; m++; DelayMs(10);p3_6=0; DelayMs(100);p3_6=1; key_val=16;} if(key_val==7) {//delay(1000); sk[7]=1; count++; pa=7; password[m]=7; m++; DelayMs(10);p3_6=0; DelayMs(100);p3_6=1; (专业名称) (课题名称) key_val=16;} if(key_val==8) {//delay(1000); sk[8]=1; count++; pa=8; password[m]=8; m++; DelayMs(10);p3_6=0; DelayMs(100);p3_6=1; key_val=16;} if(key_val==9) {//delay(1000); sk[9]=1; count++; pa=9; password[m]=9; m++; DelayMs(10);p3_6=0; DelayMs(100);p3_6=1; key_val=16;} if(m>9) m=0; }} if(key_val==10) {//delay(1000); sk[10]=1; count++; pa=10; password[m]=10;m++; DelayMs(10);p3_6=0; DelayMs(100);p3_6=1; key_val=16;} if(key_val==11) {//delay(1000); sk[11]=1; count++; pa=11; password[m]=11;m++; DelayMs(10);p3_6=0; DelayMs(100);p3_6=1; key_val=16;} if(key_val==12) {//delay(1000); sk[12]=1; count++; pa=12;
共分享92篇相关文档