c语言键盘连续双击程序,编了个C语言的键盘程序有点问题,请指点下!
編了個C語言的鍵盤程序有點問題,請指點下!
[復制鏈接]
做了個機械手,想用鍵盤來控制抓,放物品,現在他顯示字符時有點錯,高手能幫我在keil里跑下,把我的這個錯改下嗎?謝謝了!原程序如下:(P2.0--P2.7 是段選,P1.0--P1.5是位選,P0.0--P0.3是列選,P0.4--P0.7是行選)
#include #define uchar unsigned char
#define uint unsigned int
code char tab[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x80};
void delay (void){
uchar i;
for(i=254;i>0;i--);
}
uchar keyscan(void){
uchar sccode, recode;
P3=0xf0;
if((P3&0xf0)!=0xf0)
{
delay();
if ((P3&0xf0)!=0xf0)
{
sccode=0xfe;? ?? ?? ?? ?//鍵盤逐行掃描
while((sccode&0x10)!=0)
{
P3=sccode;
if ((P3&0xf0)!=0xf0)
{
recode=(P3 & 0xf0);??//被按鍵的行瑪
sccode=sccode&0x0f;
return((sccode)+(recode));
}
else sccode=(sccode<<1)|0x01;? ? //修改掃描瑪
}
}
}
void display (uchar keydisp)? ? 這句要改? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?{
uchar keytab[18]= {0x7e,0x7d,0x7b,0x77,0xbd,0xbb,0xb7,0xdb,0xd7,0xbe,0xde,0xee,0xed,0xeb,0xe7;}
uchar m;
for(m=0;m<16; m++)
{
if (keytab[m]==keydisp)? ?? ? //查鍵碼表,m為鍵值
{
P2=0xfe;
P0=tam[m];? ?? ?? ? //鍵值顯示
}
}
}
void main()
{
uchar key;
P2=0xfe; P0=0x40
P3=0xff;
if(P3==0xff)
{
while(1)
{
key=keyscan();
display(key);
}
}
}
總結
以上是生活随笔為你收集整理的c语言键盘连续双击程序,编了个C语言的键盘程序有点问题,请指点下!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用c语言get统计字母个数,请问这个用c
- 下一篇: c语言node程序,如何从Node.js