進制位(CY)與數(shù)據(jù)左、右移動
2、代碼
3、小結(jié)
代 碼
#include
sbit led=P2^0;
sbit led2=P2^1;
void DelayUs2x(unsigned char t)
{
while(--t);
}
void DelayMs(unsigned char t)
{
while(t--)
{
//大致延時1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*以下函數(shù)就是反轉(zhuǎn)掃描的精華*/
unsigned char jpsm()//矩陣鍵盤反轉(zhuǎn)掃描
{
unsigned char i=0;//用于接收按鍵數(shù)值
P0 = 0x0f;//檢測低4位
if(0x0f != P0)//檢測按鍵是否按下
{
DelayMs(10);//去抖
if(0x0f != P0)//在次判斷按鍵是否真的按下而不是其他干擾
{
i = P0;//把低4位賦值給i
P0 = 0xf0;//檢測高4位
DelayUs2x(5);//稍微延時。。這條語句可以去掉
i = i | P0;//把低4位和高4位組合成完整的按鍵數(shù)值
while( 0xf0 != P0 )//檢測按鍵是否松開
{
;
}
return i;//返回按鍵數(shù)值
}
}
return 0;//按鍵沒有按下返回0
}
void main()
{
unsigned char i=0xaa;
while(1)
{
if(126 ==jpsm())//判斷按鍵1是否按下
{
/*i <<= 1;//注:在Keil編譯器中不管是左移還是右移,移出的數(shù)據(jù)都是放在CY中
led = CY;*/
i >>=1;
led = CY;
}
}
}
小結(jié)
1、什么是進制位
答:就是保存進位的。
評論