您的位置:首页技术文栏单片机C51
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

两I/O六键盘C51程序

[日期:2008-05-26 ] [来源:net 作者:佚名] [字体: (投递新闻)

源程序如下:
unsigned char scan_key(void) {
unsigned char keyval = 0;//无键,有键1~6
IO1 = 1;//释放总线
IO2 = 1;//释放总线
if (!IO1 && !IO2) keyval = 3;//大强盗键S3
else if (!IO1) keyval = 2;//小强盗键S2
else if (!IO2) keyval = 1;//小强盗键S1
else {//开始扫描,也要考虑小毛贼的问题~~~
IO1 = 0;//扫描
if (!IO2) {//这时不能立即判定S4/S6
IO1 = 1;//释放总线
IO2 = 0;//反向扫描
if (!IO1) keyval = 4;//找出小毛贼S4~~~
else keyval = 6;//S6
}
else {//只能是S5了
IO1 = 1;//释放总线
IO2 = 0;//反向扫描
if (!IO1) keyval = 5;//S5
// else keyval = 6;//S6//上面已判出了S6,这句是废话
}
// IO1 = 1;//释放总线//已经释放~~~
IO2 = 1;//释放总线
}
return keyval;//返回键值0-无键,1~6-S1~S6键

阅读:
录入:JETTA

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
站长推荐