woshizhangyiwei 2016-04-02 04:48 采纳率: 0%
浏览 1316
已结题

学渣妹子求教大神,这个代码在普中板子上运行不了呢

#include
#define uchar unsigned char
#define uint unsigned int
sbit A=P3^0;
sbit B1=P3^1;
sbit C=P3^2;
sbit kin1=P0^0;
sbit kin2=P0^1;
sbit kin3=P0^2;
sbit kin4=P0^3;
sbit kout1=P0^4;
sbit kout2=P0^5;
sbit kout3=P0^6;
sbit kout4=P0^7;
uchar code ledchar[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar ledbuff[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
uchar keysta[4][4]={{1,1,1,1},{1,1,1,1},{1,1,1,1},{1,1,1,1}};
uchar code keycodemap[4][4]={{0x31,0x32,0x33,0x26},{0x34,0x35,0x36,0x25},{0x37,0x38,0x39,0x28},{0x30,0x1b,0x0d,0x27}};
void keydriver();
void main()
{
EA=1;
TMOD=0x01;

TH0=0xFC;
TL0=0x67;
ET0=1;
TR0=1;
ledbuff[0]=ledchar[0];
while(1)
{
keydriver();

}

}
void shownumber(unsigned long num)
{
signed char i;
uchar buff[8];
for(i=0;i {
buff[i]=num%10;
num=num/10;
}
for(i=7;i>=1;i--)
{
if(buff[i]==0)

      { ledbuff[i]=0x00;}

     else 
     break;

      }

    for(i;i>=0;i--)
    {
        ledbuff[i]=ledchar[buff[i]];
    }

}
void keyaction(uchar keycode)
{
static unsigned long result=0;
static unsigned long added=0;
if((keycode>=0x30)&&(keycode<=0x39))
{
added=(added*10)+(keycode-0x30);
shownumber(added);
}
else if(keycode==0x26)
{
result+=added;
shownumber(result);
}
else if(keycode==0x0d)
{
result+=added;
added=0;
shownumber(result);
}
else if (keycode=0x1b)
{
added=0;
result=0;
shownumber(added);
}
}
void keydriver()
{ uchar j;
uchar i;
uchar backup[4][4]={{1,1,1,1},{1,1,1,1},{1,1,1,1},{1,1,1,1}};
for(i=0;i<4;i++)
{

for(j=0;j<4;j++)
{
if(backup[i][j]!=keysta[i][j])
{
if(backup[i][j]!=0)
{
keyaction(keycodemap[i][j]);
}
backup[i][j]=keysta[i][j];
}
}
}

}
void keyscan()
{
uchar i;
static uchar keyout=0;
uchar keybuff[4][4]={{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff}};
keybuff[keyout][0]=(keybuff[keyout][0]<<1)| kin1;
keybuff[keyout][1]=(keybuff[keyout][1]<<1)| kin2;
keybuff[keyout][2]=(keybuff[keyout][2]<<1)| kin3;
keybuff[keyout][3]=(keybuff[keyout][3]<<1)| kin4;
for(i=0;i<4;i++)
{ if((keybuff[keyout][i]&0x0f)==0x00)
{
keysta[keyout][i]=0;
}
else if((keybuff[keyout][i]&0x0f)==0x0f)
{

keysta[keyout][i]=1;
}

    }
    keyout++;
    keyout=keyout&0x03;
    switch(keyout)
    {
      case 0: kout4=1;kout1=0;break;
      case 1: kout1=1;kout2=0;break;
      case 2: kout2=1;kout3=0;break;
      case 3: kout3=1;kout4=0;break;
      default :break;
    }

}
void ledscan()
{
uchar i=0;
switch(i)
{
case 0:A=1;B1=1;C=1;i++;P1=ledbuff[0];break;
case 1:A=0;B1=1;C=1;i++;P1=ledbuff[1];break;
case 2:A=1;B1=0;C=1;i++;P1=ledbuff[2];break;
case 3:A=0;B1=0;C=1;i++;P1=ledbuff[3];break;
case 4:A=1;B1=1;C=0;i++;P1=ledbuff[4];break;
case 5:A=0;B1=1;C=0;i++;P1=ledbuff[5];break;
case 6:A=1;B1=0;C=0;i++;P1=ledbuff[6];break;
case 7:A=0;B1=0;C=0;i=0;P1=ledbuff[7];break;
default:break;
}

}
void zd() interrupt 1
{
TH0=0xFC;
TL0=0x67;
keyscan();
ledscan();
}

  • 写回答

4条回答

  • 关注

    别以为说是妹子我就会回答我不懂的问题图片说明图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)