5_1_6_1.c

来自「魏小龙《MSP430系列单片机接口技术及系统设计实例》书中全部程序代码」· C语言 代码 · 共 35 行

C
35
字号
unsigned char  keybuf;			//键值缓存器
unsigned char p1keyj(void)		//判键子程序
    {unsigned char x;
     x=(P1IN&0X07);      		//P10--P12接有按键
     return(x);             		//有按键返回 非0
}  

unsigned char  keycode()		//哪个按键被按下,查键值子程序
	{
	unsigned char  x;
	if((P1IN&0x07)= = 1)		//是否第一个按键
		then x=0;
		else
		if((P1IN&0x07)= = 2)	//是否第二个按键
			then x=1;
			else
			if((P1IN&0x07)= = 4) //	是否第三个按键
			x=2;
	return(x);
	}

interrupt[PORT1_VECTOR] void port1key(void)
	{				//端口1的中断服务程序
	while(p1keyj()!=0)
		{
		delay(500);		//延时消除抖动
		while(p1keyj()!=0)
			{
			keybuf  =  keycode();//确信有按键按下,找按键得键值,送到全局变量keybuf
			while(p1keyj()= =0)  //等待按键松开
					;
			}
		}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?