标题: 求助帖(基于C51的电子贺卡代码问题) [打印本页]

作者: 我不会啊    时间: 2018-4-25 11:18
标题: 求助帖(基于C51的电子贺卡代码问题)
原理图已连接完毕,代码出现这些问题,求大神解答一下。

22.PNG (52.26 KB, 下载次数: 32)

代码问题

代码问题

11.PNG (55.59 KB, 下载次数: 51)

代码问题1

代码问题1

捕获.PNG (57.45 KB, 下载次数: 32)

原理图

原理图

11.PNG (55.59 KB, 下载次数: 32)

11.PNG

22.PNG (52.26 KB, 下载次数: 46)

22.PNG

捕获.PNG (57.45 KB, 下载次数: 35)

捕获.PNG

作者: 我不会啊    时间: 2018-4-25 11:18
#include<reg52.h>
#define LCD P0
#define uchar unsigned char
unsigned char a,i,j,k;
int b;
int key=0;
sbit EN=P2^0;
sbit RW=P2^1;
sbit RS=P2^2;
sbit CS1=P2^3;
sbit CS2=P2^4;
sbit BUSY=P0^0;
sbit speaker=P1^7;
unsigned char timer0h,timer0l,time;
void delay(unsigned char t)//延迟函数
{
  unsigned char t1;
  unsigned long t2;
  for(t1=0;t1<t;t1++)
   for(t2=0;t2<8000;t2++);
   }
void t0int() interrupt 1                 //spk中断
{
TR0=0;
speaker=!speaker;
TH0=timer0h;
TL0=timer0l;
TR0=1;
}
void song()                                          //音乐播放
{
TH0=timer0h;
TL0=timer0l;
TR0=1;
delay(time);
}
checkbusy()                 //LCD
{ EN=1;
  RW=1;
  RS=0;
  LCD=0XFF;
  if(BUSY);
}
writecode(unsigned char dat)  //写命令
{ checkbusy();
  EN=1;
  RW=0;
  RS=0;
  LCD=dat;
  EN=1;
  EN=0;
}
writedata(unsigned char dat)  //写数据
{ checkbusy();
  EN=1;
  RW=0;
  RS=1;
  LCD=dat;
  EN=1;
  EN=0;
}
//满屏显示图片函数
void LCDDisplay(unsigned char page,unsigned char lineaddress, unsigned char table[8][128])
{

  
   for(i=0;i<8;i++)
    {
      if(lineaddress<0X80)
         {
            CS1=0;
            CS2=0;
          }
       writecode(page+i);
       writecode(lineaddress);
     for(j=0;j<64;j++)
       {   
       writedata(table[i][j]);
     lineaddress+=1;
     }
  
         if(lineaddress>=0X80)
          {
          CS1=0;
            CS2=1;
            lineaddress=lineaddress-0X40;
}
         writecode(page+i);
             writecode(lineaddress);
                  for(j=64;j<128;j++)
             {
              writedata(table[i][j]);
        lineaddress+=1;
           }
      if(lineaddress>=0X80)
          {
         lineaddress=lineaddress-0X40;
           }
    }
}




void lcdinti()
{   
    writecode(0X3F);
    writecode(0XC0);
    writecode(0XB8);
    writecode(0X40);
}
void lcddelay(unsigned char c)           //LCD液晶延迟函数
{
   unsigned char a,b;
   for(;c>0;c--)
   for(b=142;b>0;b--)
   for(a=2;a>0;a--);
}
void int0() interrupt 0                        //LCD外部中断1
{
  EX0=0;
  lcddelay(40);
  EX0=1;
  key=!key;
  
}
main()                                                //主函数
{  
unsigned char k,i;
TMOD=1; //置CT0定时工作方式1
ET0=1;//IE=0x82 //CPU开中断,CT0开中断
   EA=1;
   EX0=1;
   IT0=1;
   while(1)
   {
     if(key==0)
         {
                 LCDDisplay(0Xb8,0X40,&ch2);
            i=0;
            while(i<100&&key==0)
        {
               k=sszymmh[i]+7*sszymmh[i+1]-1;
           timer0h=FREQH[k];
           timer0l=FREQL[k];
           time=sszymmh[i+2];
           i=i+3;
               song();
             }     
         }
          else
          {
          LCDDisplay(0Xb8,0X40,&ch1);
           i=0;
            while(i<100&&key==1)
        {
               k=sszymmh1[i]+7*sszymmh1[i+1]-1;
           timer0h=FREQH[k];
           timer0l=FREQL[k];
           time=sszymmh1[i+2];
           i=i+3;
               song();
             }      
          }
         
   }
   
}





全部代码在这
作者: 我不会啊    时间: 2018-4-25 11:21
error c202,求解。
作者: 我不会啊    时间: 2018-4-25 11:22
小白不太理解,帮忙代码核对正确,谢谢大神们
作者: 我不会啊    时间: 2018-4-25 12:40
此贴终结,谢谢51黑,已经自己找到错误,打扰了
作者: fishsheep    时间: 2019-3-18 08:48
我不会啊 发表于 2018-4-25 12:40
此贴终结,谢谢51黑,已经自己找到错误,打扰了

我做课程设计也遇到过同样的错误,请问怎么解决?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1