单片机听课笔记1-8课(金沙滩2014年更新)(6)

2020-04-14 00:57

}

{ }

P0 = (P2>>4)|0xf0;

头文件

#ifndef _KEY_H_ #define _KEY_H_

sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4;

sbit KEY1 = P2^4; sbit KEY2 = P2^5; sbit KEY3 = P2^6; sbit KEY4 = P2^7; sbit KEYOUT1 = P2^3; sbit KEYOUT2 = P2^2; sbit KEYOUT3 = P2^1; sbit KEYOUT4 = P2^0; #endif

程序二:K1、K2控制数字加减的程序,防抖动 #include #include \

void delay() { } main() {

unsigned char n = 0; P0 = 0XFF; KEYOUT1 = 0; ENLED = 0; ADDR3 = 1;

ADDR2 = 0; ADDR1 = 0; ADDR0 = 0; //控制最右边数码管DS1亮 unsigned int i = 2000; while(i--);

}

P0 = ledchar[0]; while(1) { }

if(!KEY1) //相当于 if(KEY1 == 0) 判断键是否按下 { } if(!KEY2) { }

delay(); if(!KEY2) { }

if(n <= 0) { } else n--;

P0 = ledchar[n]; while(!KEY2);

n = 9;

delay();

if(!KEY1)//再判断健是否按下 { }

if(n >= 9) { } else n++;

P0 = ledchar[n];

while(!KEY1); //等待按键1松开的语句。

n = 0;

程序三、用小灯构成的5位二进制数表示16个按键,1-1,2-2,16-0; #include #include \void delay(); main() {

ENLED = 0; ADDR3 = 1;

ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; P0 = 0xFF; while(1) { KEYOUT1 = 0; KEYOUT2 = 1; KEYOUT3 = 1; KEYOUT4 = 1; if(KEY1 == 0) { delay(); if(KEY1 == 0) { P0 = ~1;

}

}

if(KEY2 == 0) { delay(); if(KEY2 == 0) { P0 = ~2; }

}

if(KEY3 == 0) { delay(); if(KEY3 == 0) { P0 = ~3; }

}

if(KEY4 == 0) { delay(); if(KEY4 == 0) { P0 = ~4; }

}

while((KEY1 == 0)||(KEY2 == 0)||(KEY3 == 0)||(KEY4 == 0));

//第一行检测完

KEYOUT1 = 1; KEYOUT2 = 0; KEYOUT3 = 1; KEYOUT4 = 1; if(KEY1 == 1) { }

if(KEY2 == 0) { }

if(KEY3 == 0) { }

if(KEY4 == 0) { }

while((KEY1 == 0)||(KEY2 == 0)||(KEY3 == 0)||(KEY4 == 0));//第二行检测完 KEYOUT1 = 1; KEYOUT2 = 1; KEYOUT3 = 0; KEYOUT4 = 1; if(KEY1 == 1)

delay(); if(KEY4 == 0) { }

P0 = ~8; delay(); if(KEY3 == 0) { }

P0 = ~7; delay(); if(KEY2 == 0) { }

P0 = ~6; delay(); if(KEY1 == 0) { }

P0 = ~5;

{ delay(); if(KEY1 == 0) { P0 = ~9;

}

}

if(KEY2 == 0) { delay(); if(KEY2 == 0) { P0 = ~10; }

}

if(KEY3 == 0) { delay(); if(KEY3 == 0) { P0 = ~11; }

}

if(KEY4 == 0) { delay(); if(KEY4 == 0) { P0 = ~12; }

}

while((KEY1 == 0)||(KEY2 == 0)||(KEY3 == 0)||(KEY4 == 0)); KEYOUT1 = 1; KEYOUT2 = 1; KEYOUT3 = 1; KEYOUT4 = 0; if(KEY1 == 1) { delay(); if(KEY1 == 0) { P0 = ~13;

}

//第三行检测完


单片机听课笔记1-8课(金沙滩2014年更新)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:文言文阅读:《李商隐》

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: