temp|=0x0e; switch(temp) { case 0xee:keynum=1;break; case 0xde:keynum=2;break; case 0xbe:keynum=3;break; case 0x7e:keynum=4;break; default:keynum=0;break; } } } P1=0xfd; delayl(5); //抗干扰 temp=P1&0xf0; if(temp!=0xf0) ...
根据电路的排布,temp和key分别代表行和列,行、列都确定后,就可以定位是那个按键响应了~按键按下后,都会进入key4x4()的函数,先用temp来区分出是哪一行(列),再用key来区分具体为那一列(行),从而确定动作按键的具体位置;
sbit key1=P1^0;//定义key1表示P1口的管脚1,即P1.0口 sbit key2=P1^1;//定义key1表示P1口的管脚2,即P1.1口 sbit key3=P1^2;//定义key1表示P1口的管脚3,即P1.2口 uchar num;//声明一个无符号8bit的一个数num uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90...
uchar num=0;sbit IR_key1=P3^0;void t0isr() interrupt 1 //定时器中断,控制步进电机速度完成相序控制 { TH0=(65536-10000)/256;TL0=(65536-10000)%256;P2=stepd[num]; //取相序表 num++; //相序加1 num%=8; //相序8个值一个循环。} main(){ TMOD=0x01; //...
帮我注释一下,我有的看不明白.明天要答辩了求大神速度#include#define uchar unsigned char#define uint unsigned intsbit key1=P1^0;sbit key2=P1^1;sbit key3=P1^2;uchar num;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0
一个是形参,一个是实参。在子函数中只是声明一下,这个是形参,形参名字不重要,主要是要表明的是参数类型,所以取什么名字都没关系。main中调用的时候是实参,这个是实际的变量了
应该是 uchar table[]={0x3f,0x06,0x5b,0x4f,0x6b,0x6d,0x7d,0x07,0x7f,0x6f};uchar num ;你忘写分号了!
in.readRawData(data, len);intdh =0, dl =0;inttemp = key; dl |= temp &0x000000FF; temp >>=20; dh |= temp &0x000000FF;/* if (!ans) return false;*/intah =184;//10111000b;for(inti =0; i < len; ++i) {intal =uchar(data[i]); ...
128 单片机吧 阿精八营营长 手机发送密码和键盘输入验证,APP发0x31键盘输入1,错误{//Password*=10;//密码左移一位Password+=KeyNum%10;//获取一位密码Count++;//计次加一}LCD_ShowNum(2,1,Password,4);//更新显示}if(KeyNum==11)//如果S11按键按下,确认{if(Password==pass)//如果密码等于正确密码{LCD...
while(1) { temp=_crol_(temp,1); //库函数_crol_用来控制左移 delay(1100); //调用演示程序,设置延时时间 P1=temp; } } void delay(ulong z) //延时函数 { ulong x,y; for(x=100;x>0;x--) for(y=z;y>0;y--); } 试试这个 ...