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键 }
|
文章评论(0条评论)
登录后参与讨论