| 
 
| 通过矩阵键盘输入控制TPL0501的电阻值,但是一直不成功,求高手指导 #include<reg51.h>
 #include<intrins.h>
 #define uint   unsigned int
 #define uchar unsigned char
 #define ulong unsigned long
 #define GPIO_KEY P0
 sbit TPL0501_DIN=P3^5;
 sbit TPL0501_SCLK=P3^6;
 sbit TPL0501_CS=P3^7;
 unsigned char k[3];
 
 //键盘扫描子程序
 void KeyScan(void)
 {
 int i=0;
 unsigned char n;//扫描第一行
 GPIO_KEY=0xEF;
 n=GPIO_KEY;
 n&=0x0F;
 if(n!=0x0F)
 {
 delay1ms(1);//去抖动
 GPIO_KEY=0xEF;
 n=GPIO_KEY;
 n&=0x0F;
 if(n!=0x0F)
 {
 switch(n)
 {
 case (0x0E):KeyValue=0;break;
 case (0x0D):KeyValue=1;break;
 case (0x0B):KeyValue=2;break;
 case (0x07):KeyValue=3;break;
 }
 }
 }
 GPIO_KEY=0xDF;//扫描第二行
 n=GPIO_KEY;
 n&=0x0F;
 if(n!=0x0F)
 {
 delay1ms(1);
 GPIO_KEY=0xDF;
 n=GPIO_KEY;
 n&=0x0F;
 if(n!=0x0F)
 {
 switch(n)
 {
 case(0x0E):KeyValue=4;break;
 case(0x0D):KeyValue=5;break;
 case(0x0B):KeyValue=6;break;
 case(0x07):KeyValue=7;break;
 }
 }
 }
 GPIO_KEY=0xBF;//扫描第三行
 n=GPIO_KEY;
 n&=0x0F;
 if(n!=0x0F)
 {
 delay1ms(1);
 GPIO_KEY=0xBF;
 n=GPIO_KEY;
 n&=0x0F;
 if(n!=0x0F)
 {
 switch(n)
 {
 case(0x0E):KeyValue=8;break;
 case(0x0D):KeyValue=9;break;
 case(0x0B):KeyValue=ma2[0];break;
 case(0x07):genzong();break;
 }
 }
 }
 GPIO_KEY=0x7F;//扫描第四行
 n=GPIO_KEY;
 n&=0x0F;
 if(n!=0x0F)
 {
 delay1ms(1);
 GPIO_KEY=0x7F;
 n=GPIO_KEY;
 n&=0x0F;
 if(n!=0x0F)
 {
 switch(n)
 {
 case(0x0E):KeyValue=ma3[0];break;
 case(0x0D):KeyValue=ma3[1];break;
 case(0x0B):KeyValue=ma3[2];break;
 case(0x07):KeyScan();break;
 }
 }
 }
 k[i++]=KeyValue;
 }
 
 
 
 void TPL0501_write(uint temp)
 {
 uint i,change_number;
 change_number=temp3<<2;
 TPL0501_CS=1;
 TPL0501_SCLK=0;
 TPL0501_CS=0;
 for(i=0;i<8;i++)
 {
 _nop_();
 TPL0501_SCLK=0;
 _nop_();
 TPL0501_DIN=(bit)(change_number&0x800);
 _nop_();
 _nop_();
 _nop_();
 change_number<<=1;
 TPL0501_SCLK=1;
 _nop_();
 _nop_();
 _nop_();
 }
 TPL0501_SCLK=0;
 TPL0501_CS=1;
 
 }
 
 void main()
 {
 float key;
 while(1)
 {
 key_scan();
 key=k[0]*10.0+k[1]+k[2]/10.0+k[3]/100.0;
 TPL0501_write(key);
 }
 }
 用万用表测TPL0501的电阻值时,电阻一直不稳定,按键输入后电阻显示也没有规律,,求大神指导修改
 
 或者有没有其他程序可以控制TPL0501?
 
 
 | 
 
×本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?注册 
  评论 |