网上见到别人写的2IO 6Key程序,但一直运行不成功,认真琢磨了一阵,终于成功。现分享出来,以供同好参考。
注意:Proteus仿真不行,但在开发板上正常运行。
//CPU:STC89C52单片机
#include <REG52.h>
#include <intrins.h>
sfr AUXR = 0x8E;
typedef unsigned char uchar;
typedef unsigned int uint;
#define key_state_0 0 //判断是否按下
#define key_state_1 1 //判断是否为抖动和取键值
uchar key=0;
bit KEY_1_ON=0; //按键分为2组,1,2,3为第一组,4,5,6为第二组
//KEY_1_ON 为第一组按下标志
sbit IO_1=P1^0;
sbit IO_2=P1^1;
void Timer0_Init();
void keyboard();
void main()
{
Timer0_Init();
while(1)
{
switch(key)
{
case 1:P2=0XFE;
break;
case 2:P2=0XFD;
break;
case 3:P2=0XFB;
break;
case 4:P2=0XF7;
break;
case 5:P2=0XEF;
break;
case 6:P2=0XDF;
break;
}
}
}
呵呵,重要的东东不能忘,这是按键部分的接线图
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
Keil代码与Proteus仿真下载:
2io6key.rar
(29.17 KB, 下载次数: 61)
|