找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3341|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

一個51單片機(jī)直流電子負(fù)載程序出現(xiàn)了問題,求助,急急急。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:197405 發(fā)表于 2017-5-6 17:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
有哪位好心人能幫我看看這電子負(fù)載的程序是怎么回事,不勝感激。下面是編譯顯示的錯誤

Build target 'Target 1'
compiling electrical load.c...
electrical load.c(4): warning C318: can't open file 'tlc5614.h'
electrical load.c(5): warning C318: can't open file 'keys.h'
electrical load.c(6): warning C318: can't open file 'max1223.h'
electrical load.c(7): warning C318: can't open file 'nokia.h'
electrical load.c(8): warning C318: can't open file 'main.h'
ELECTRICAL LOAD.C(9): error C129: missing ';' before 'delay'
electrical load.c(26): warning C318: can't open file 'main.h'
electrical load.c(447): warning C318: can't open file 'keys.h'
electrical load.c(506): warning C318: can't open file 'tlc5614.h'
electrical load.c(507): warning C318: can't open file 'spi.h'
electrical load.c(519): warning C318: can't open file 'spi.h'
electrical load.c(520): warning C318: can't open file 'comm.h'
electrical load.c(544): warning C318: can't open file 'tlc1549.h'
electrical load.c(548): warning C318: can't open file 'comm.h'
electrical load.c(550): warning C318: can't open file 'nokia.h'
electrical load.c(654): warning C318: can't open file 'nokia.h'
electrical load.c(655): warning C318: can't open file 'comm.h'
electrical load.c(804): warning C318: can't open file 'comm.h'
Target not created



這是完整程序

****************************************
*//zhuchengxu//*
*****************************************
#include "tlc5614.h"
#include "keys.h"
#include "max1223.h"
#include "nokia.h"
#include "main.h"
uchar delay(uchar x);       
void main()
{
         int rst=0;                                                                                                 //液晶初始化
         delay(1);
         rst=1;
         init();
         clear();
         writehanzi(0,0,0);                                    
         writehanzi(2,0,2);
         writehanzi(4,0,3);
         writehanzi(6,0,4);                                   
         keychu();
}
****************************************
*鍵盤處理子程序 *
*****************************************
#include "main.h"
void keychu()
{
  uint value,value1;                                        //DA輸出變量值
        float x=0,out=0,dianl=0;
        uchar readkey,flag=0,readkey1,readkey2,readkey3,readkey4,readkey5,zan,readkey6;                  //存儲鍵值變量
         bit  flag2=0,flag1=0,flag0=0;                                            //小數(shù)點及切換標(biāo)志位
         while( 1 )
     {      
                if(flag==0)                                                 // 第一位掃描
                {
                  readkey=keyscan();
                  zan=readkey;
          if(readkey==12)
              {
                 if(readkey!=NOKEY&&readkey!=10&&readkey!=11&&readkey!=15&&readkey!=14)
                  {       
                    flag=1;                                     //輸入第二位
                    writeshuzi(0,2,readkey);               //顯示第一位                                    
                  }
                        else                                                 //無按鍵顯示0
                        {
                          flag=0;
                          writeshuzi(0,2,0);
                        }
                  }                  
                }
        }
                if(flag==1)                                                 //第二位掃描
                {
                  readkey1=keyscan();
                  if(readkey1!=15)                                 //未確認(rèn)掃描
                  {
                  if(readkey1!=11)                                   //清除鍵
                  {
                  if(readkey1!=zan)                         //防止連輸入
              {         zan=readkey1;
                     if(zan==10)                          //檢測是否小數(shù)點,是則置第二位標(biāo)志位,否則顯示輸入值
                         {
                         flag1=1;
                         flag2=1;
                         }
                     if(readkey1!=NOKEY&&readkey1!=14)         //有鍵值且非模式切換鍵,則顯示數(shù)值
                     {
                       flag=2;                                                        //第三位輸入
                           writeshuzi(1,2,readkey1);
                     }                         
                  }}
                  else                                                                        //清除鍵清零,重新輸入
                  {
                     flag=0;
                         flag1=0;                                                    //清除小數(shù)點標(biāo)志
                         writeshuzi(0,2,0);                          
                  }
                }
                else                                                                        //確認(rèn)輸入
                {                                                                        //賦值輸出
                   x=readkey;                                                        //鎖定按鍵
                   flag=6;
                   flag3=1;                                                        //顯示測得電壓電流
                   writehanzi(0,0,5);                                        //顯示測得電壓電流
                   writehanzi(2,0,2);
                   writehanzi(0,2,5);
                   writehanzi(2,2,1);
                   writehanzi(0,4,6);
                   writehanzi(2,4,7);
                   out=x*0.25;
               value=1024*out/4.0;                                               
               dianl=x/11.0;
               value1=1024*dianl/4.0;                                                 //恒流基準(zhǔn)電壓輸出
               tlc5615(value1);
                      adzh();                                                                //電壓顯示
                   adzh_1();
                   power();                                                   //電流、功率顯示
                }}                                                                          
                if(flag==2)                                                           //掃描第三位
                {
                  readkey2=keyscan();                                  
                  if(readkey2!=15)                                           //未確認(rèn)
                  {
                  if(readkey2!=11)                                       //未清零
                  {
                  if(flag1)                                        //第二位有小數(shù)點,則不允許再輸入小數(shù)點
                  {                                                                            
                  if(readkey2!=zan&&readkey2!=10)
              {         zan=readkey2;
                     if(readkey2!=NOKEY&&readkey2!=14) //非小數(shù)點,非切換,顯示數(shù)值
                     {                                                                         
                       flag=3;                                                                //第四位輸入
                           writeshuzi(2,2,readkey2);
                     }
                  }
                  else                                                                           //小數(shù)點無效
                  {
                     flag=2;                         
                  }}
                  else
                  {
                     if(readkey2!=zan)                                 
                 {         zan=readkey2;
                             if(zan==10) flag1=1;                          //第二位無小數(shù)點,第三位輸入小數(shù)點,置第三位小數(shù)標(biāo)志位
                         if(readkey2!=NOKEY&&readkey2!=14)                  
                         {  
                            flag=3;
                                writeshuzi(2,2,readkey2);
                         }
                     }                         
                  }}
                  else
                  {
                     flag=0;
                         flag1=0;
                         flag2=0;
                         writeshuzi(0,2,0);
                         writeshuzi(1,2,11);
                  }
                }
                else
                {
                   if(flag1&&flag2)                           //第二位小數(shù)
                   {
                     x=readkey;                          
                          flag=6;
                          flag3=1;
                          writehanzi(0,0,5);                                        //顯示測得電壓電流
                      writehanzi(2,0,2);
                      writehanzi(0,2,5);
                      writehanzi(2,2,1);
                          writehanzi(0,4,6);
                      writehanzi(2,4,7);
                          out=x*0.25;
                  value=1024*out/4.0;                                               
                  dianl=x/11.0;
                  value1=1024*dianl/4.0;                                         //恒流基準(zhǔn)電壓輸出
                  tlc5615(value1);
                  tlc5615_1(value);
                          adzh();                                                                //電壓顯示
                      adzh_1();                                                   //電流顯示
                          power();
                   }                                                                  //無小數(shù)  輸出
                   else
                   {
                      x=readkey*10+readkey1;
                          flag=6;
                          flag3=1;
                          writehanzi(0,0,5);                                        //顯示測得電壓電流
                      writehanzi(2,0,2);
                      writehanzi(0,2,5);
                      writehanzi(2,2,1);
                      writehanzi(0,4,6);
                      writehanzi(2,4,7);
                           out=x*0.25;
                  value=1024*out/4.0;                                       
                  dianl=x/11.0;                      //恒流基準(zhǔn)電壓輸出
                  tlc5615(value1);            
                           adzh();                                                                //電壓顯示
                       adzh_1();                                                   //電流顯示
                           power();
                   }
                }}
                if(flag==3)                                                    // 掃描第四位
                {
                  readkey3=keyscan();
                  if(readkey3!=15)                                    //未確認(rèn)
                  {
                  if(readkey3!=11)                                     //未清零
                  {
                  if(flag1)                                         //前兩位有小數(shù)輸入        ,不允許輸入小數(shù)
                  {
                     if(readkey3!=zan&&readkey3!=10)
                 {         zan=readkey3;
                         if(readkey3!=NOKEY&&readkey3!=14)            //無切換         
                         {
                           flag=4;                                                           //第五位輸入
                               writeshuzi(3,2,readkey3);
                         }
                     }
                    else
                    {
                       flag=3;                         
                    }}
                  else                                                                                  //無小數(shù),則正常輸出
                  {
                     if(readkey3!=zan)
                 {         zan=readkey3;                             
                         if(readkey3!=NOKEY&&readkey3!=14)                  
                         {
                           flag=4;
                               writeshuzi(3,2,readkey3);
                         }
                     }
                  }
                  }
                  else                                                                                //清零,重新輸入
                  {
                     flag=0;
                         flag1=0;
                         flag2=0;
                         writeshuzi(0,2,0);
                         writeshuzi(1,2,11);
                         writeshuzi(2,2,11);
                  }
                }                                                                                   //確認(rèn)輸入
                else
                {                                                                                   //第二位小數(shù)輸入是賦值
                   if(flag2)
                   {
                      x=readkey+readkey2*0.1;
                          flag=6;
                          flag3=1;
                          writehanzi(0,0,5);                                        //顯示測得電壓電流
                     writehanzi(2,0,2);
                     writehanzi(0,2,5);
                     writehanzi(2,2,1);
                     writehanzi(0,4,6);
                     writehanzi(2,4,7);
                          out=x*0.25;
        value=1024*out/4.0;                                                                  dianl=x/11.0;
                 tlc5615(value1);                                         //恒流基準(zhǔn)電壓輸出
                          adzh();                                                                //電壓顯示
                     adzh_1();                                                   //電流顯示
                          power();                            
                   }
                   else                                                                   
                   {
                      if(flag1!=1)                                //不是小數(shù),三位數(shù)無效,重新輸入
                          {
                             flag=0;
                                 writeshuzi(0,2,0);
                             writeshuzi(1,2,11);
                             writeshuzi(2,2,11);
                          }
                          else                                                 //第三位輸入小數(shù)點,則按下面公式賦值
                          {
                             x=readkey*10+readkey1;
                             flag=6;
                                 flag3=1;
                                 writehanzi(0,0,5);                                        //顯示測得電壓電流
                         writehanzi(2,0,2);
                         writehanzi(0,2,5);
                         writehanzi(2,2,1);
                         writehanzi(0,4,6);
                         writehanzi(2,4,7);
                                 out=x*0.25;
                     value=1024*out/4.0;                                               
                     dianl=x/11.0;
                     value1=1024*dianl/4.0;                         //恒流基準(zhǔn)電壓輸出
                     tlc5615(value1);
                                 adzh();                                                                //電壓顯示
                         adzh_1();                                                   //電流顯示         
                                 power();                  
                          }                          
                   }                  
                  }}
                if(flag==4)                                                                       //掃描第五位數(shù)
                {
                  readkey4=keyscan();
                  if(readkey4!=15)                                                       //未確認(rèn)
                  {
                  if(readkey4!=11)                                                        //未清零
                  {
                  if(readkey4!=zan&&readkey4!=10&&flag2!=1)        //輸入小數(shù)點無效
              {         zan=NOKEY;
                     if(readkey4!=NOKEY&&readkey4!=14)                  
                     {
                           flag=5;                                                                  //第六位輸入
                       writeshuzi(4,2,readkey4);
                     }
                  }
                 }
                  else                                                                                 //清零,重新輸入
                  {
                     flag=0;
                         flag1=0;
                         flag2=0;
                         writeshuzi(0,2,0);
                         writeshuzi(1,2,11);
                         writeshuzi(2,2,11);
                         writeshuzi(3,2,11);
                         writeshuzi(4,2,11);
                  }
                }
                else                                                                                  //輸入確認(rèn)
                {
                   if(flag2)                                                         //第二位小數(shù)輸入,則精確到0.01
                   {
                      x=readkey+readkey2*0.1+readkey3*0.01;
                          flag=6;
                          flag3=1;
                          writehanzi(0,0,5);                                        //顯示測得電壓電流
                      writehanzi(2,0,2);
                      writehanzi(0,2,5);
                      writehanzi(2,2,1);
                      writehanzi(0,4,6);
                      writehanzi(2,4,7);
                          out=x*0.25;
                  value=1024*out/4.0;                                                 
                  dianl=x/11.0;
                  value1=1024*dianl/4.0;                                        //恒流基準(zhǔn)電壓輸出
                  tlc5615(value1);
                  adzh();                                                                //電壓顯示
                      adzh_1();                                                   //電流顯示
                          power();
                   }
                   else
                   {
                      if(flag1)                                                                  //第三位輸入小數(shù)
                      {
                         x=readkey*10+readkey2+readkey3*0.1;
                                 flag=6;
                                 flag3=1;
                                  writehanzi(0,0,5);                                              //顯示測得電壓電流
                         writehanzi(2,0,2);
                         writehanzi(0,2,5);
                         writehanzi(2,2,1);
                         writehanzi(0,4,6);
                         writehanzi(2,4,7);
                                  out=x*0.25;
         value=1024*out/4.0;                                                                     dianl=x/11.0;
                     value1=1024*dianl/4.0;                                 //恒流基準(zhǔn)電壓輸出
                     tlc5615(value1);
                     tlc5615_1(value);
                                 adzh();                                                                     //電壓顯示
                         adzh_1();                                                         //電流顯示
                                 power();
                      }
                          else
                          {                                                                                     //非小數(shù)無效,重新輸入
                             flag=0;
                                 flag1=0;
                                 flag2=0;
                             writeshuzi(0,2,0);
                             writeshuzi(1,2,11);
                             writeshuzi(2,2,11);
                             writeshuzi(3,2,11);
                             writeshuzi(4,2,11);
                          }
                   }
                }}
                if(flag==5)                                                                        //掃描第六位輸入
                {
                  readkey5=keyscan();
                  if(readkey5!=15)                                                            //未確認(rèn)
                  {
                  if(readkey5==11)                                                         //清零,重新輸入
                  {
                     flag=0;
                         flag1=0;
                         flag2=0;
                         writeshuzi(0,2,0);
                         writeshuzi(1,2,11);
                         writeshuzi(2,2,11);
                         writeshuzi(3,2,11);
                         writeshuzi(4,2,11);
                  }}
                  else                                                                           //確認(rèn)輸入
                  {
                     if(flag1&&flag2!=1)                                     //第三位小數(shù)輸入
                         {
                            x=readkey*10+readkey2+readkey3*0.1+readkey4*0.01;
                                flag=6;
                                flag3=1;
                                writehanzi(0,0,5);                                         //顯示測得電壓電流
                        writehanzi(2,0,2);
                        writehanzi(0,2,5);
                        writehanzi(2,2,1);
                        writehanzi(0,4,6);
                        writehanzi(2,4,7);
                                 out=x*0.25;
                    value=1024*out/4.0;                                               
                    dianl=x/11.0;
                   tlc5615(value1);                    //恒流基準(zhǔn)電壓輸出
                                 adzh();                                                                //電壓顯示
                        adzh_1();                                                   //電流顯示
                                 power();
                         }
                         else                                                                   //非小數(shù)輸入無效,重新輸入
                         {
                            flag=0;
                                flag1=0;
                                writeshuzi(0,2,0);
                            writeshuzi(1,2,11);
                            writeshuzi(2,2,11);
                            writeshuzi(3,2,11);
                            writeshuzi(4,2,11);
                         }
                  }
                }
           if(flag==6)                                                                   //確認(rèn)輸入后的處理
           {
              readkey6=keyscan();                                           //重新再次輸入
                  if(readkey6==11)
                  {
                     flag=0;
                         flag1=0;
                         flag2=0;
                         flag3=0;
                         x=0;                                                                   // DA輸出清零
                         writeshuzi(0,2,0);                                              //清零后顯示
                         writeshuzi(1,2,11);
                         writeshuzi(2,2,11);
                         writeshuzi(3,2,11);
                         writeshuzi(4,2,11);
                         writeshuzi(0,4,11);          
            writeshuzi(1,4,11);
            writeshuzi(2,4,11);
            writeshuzi(3,4,11);
            writeshuzi(4,4,11);
                          writeshuzi(5,2,11);
                          writeshuzi(5,4,11);                           
                  }
           }
               adzh();                                                                //電壓顯示
                   adzh_1();                                                       //電流顯示
                   power();
                                                                                                                                                                       
     }
}
****************************************
*掃描法判鍵子程序 *
****************************************
#include "keys.h"
uchar keycode()
{
   uchar scancode=0,keyvalue;
   delay(120);                                            //延時去抖
   scancode=P0;                                         //掃描法查鍵值                                 
   switch(scancode)     
{
     case 0x7e: keyvalue=3; break;                     
          case 0xbe: keyvalue=2; break;
          case 0xee: keyvalue=0; break;
          case 0xde: keyvalue=1; break;
          case 0x7d: keyvalue=7; break;
          case 0xbd: keyvalue=6; break;
          case 0xed: keyvalue=4; break;
          case 0xdd: keyvalue=5; break;
          case 0x7b: keyvalue=11; break;
          case 0xbb: keyvalue=10; break;
          case 0xeb: keyvalue=8;break;
          case 0xdb: keyvalue=9;break;
          case 0xd7: keyvalue=12;break;
          case 0xb7: keyvalue=14;break;
          case 0x77: keyvalue=15;break;
          default:   return NOKEY;                 
   }
   return keyvalue;
}
uchar keyscan()
{
   uchar keyval;
   P0=0xfe;               
   keyval=keycode();  
   if(keyval==NOKEY)
   {         
   P0=0xfd;
   keyval=keycode();
   if(keyval==NOKEY)
   {
     P0=0xfb;
     keyval=keycode();
         if(keyval==NOKEY)
          {
            P0=0xf7;
        keyval=keycode();
                if(keyval==NOKEY)
                {
                   return NOKEY;
                }
          }
    }
   }   
   return keyval;
}



****************************************
*D/A轉(zhuǎn)換子程序 *
*****************************************
#include "tlc5614.h"
#include "spi.h"
void tlc5615(uint da)                                //10位DA掃描子程序
{
     da<<=2;
         scs=0;
         spiwrite(da>>8);                                  //調(diào)用spi串行通信
         spiwrite(da);
         scs=1;
}
****************************************
*spi串行口通信子程序*
*****************************************
#include "spi.h"
#include "comm.h"
#include "reg51.h"  
#define  trytime  200
#define DELAY_TIME 20
sbit sdi=P1^0;                               //TLC 5615DA轉(zhuǎn)換與單片機(jī)接口
sbit sclk=P1^1;
sbit scs=P1^2;
sbit sdo=P1^3;
void spiwrite(uchar x)
{
   uchar i;
   for(i=0;i<8;i++)
   {
                   sdi=(x<<i)&0x80;
                sclk=0;
                delay(DELAY_TIME);
                sclk=1;
                delay(DELAY_TIME);
   }
}

****************************************
*A/D轉(zhuǎn)換子程序*
*****************************************
#include "tlc1549.h"
#include "intrins.h"
bit flag3=0;
ulong int temp_1,temp;
#include "comm.h"
#include "reg51.h"
#include "nokia.h"
sbit  ccs=P3^2;                               //TLC1549與單片機(jī)連接接口
sbit  ioclk=P3^4;
sbit  dout=P3^3;
sbit  ccs_1=P3^5;
sbit  ioclk_1=P3^7;
sbit  dout_1=P3^6;
extern bit flag3 ;
uint tlc1549()                                       //AD轉(zhuǎn)換
{
   uchar i;   
   uint temp = 0;
   ccs=1;
   _nop_();
  ccs = 0;  
  for(i=0;i<10;i++)  
  {
    ioclk = 0;        
    temp=(temp<<1)|dout;  
    ioclk = 1;
   _nop_();
   }
  ccs = 1;
  return (temp);            
}
void adzh()
{
   uchar ge,shi,x1,x2;                           //電流檢測測出電流實際值
   temp=tlc1549();
   temp/=1.0;
   temp/=0.25;                                    //輸出AD轉(zhuǎn)換后的電流值  
   shi=temp/1000;
   ge=(temp/100)%10;
   x1=(temp/10)%10;
   x2=temp%10;
   if(flag3)
   {
   writeshuzi(4,0,shi);                                          //顯示電流值
   writeshuzi(5,0,ge);
   writeshuzi(6,0,10);
   writeshuzi(7,0,x1);
   writeshuzi(8,0,x2);
   writeshuzi(9,0,13);
   }
}
uint tlc1549_1()                                          //AD轉(zhuǎn)換
{
   uchar i;   
   uint temp = 0;
   ccs_1=1;
   _nop_();
  ccs_1 = 0;  
  for(i=0;i<10;i++)  
  {
    ioclk_1 = 0;        
    temp=(temp<<1)|dout_1;  
    ioclk_1 = 1;
   _nop_();
   }
  ccs_1 = 1;
  return (temp);
  }
void adzh_1()                                    //電壓檢測測出電壓實際值
{
   uchar ge,shi,x1,x2;
   temp_1=tlc1549_1();                              
   temp_1/=1.0;                                     //輸出AD轉(zhuǎn)換后的電壓
   temp_1=temp_1*11.0;   
   shi=temp_1/1000;                                 
   ge=(temp_1/100)%10;                              
   x1=(temp_1/10)%10;                                 
   x2=temp_1%10;
   if(flag3)
   {
   writeshuzi(4,2,shi);                                       //顯示實測電壓值
   writeshuzi(5,2,ge);
   writeshuzi(6,2,10);
   writeshuzi(7,2,x1);
   writeshuzi(8,2,x2);
   writeshuzi(9,2,12);
   }
}       
void power()                                          //測出功率
{
   ulong int power;
   uchar ge,shi,x1,x2;
   power=temp*temp_1;
   shi=power/100000;
   ge=(power/10000)%10;
   x1=(power/1000)%10;
   x2=(power/100)%10;
   if(flag3)
   {
   writeshuzi(4,4,shi);                                         //顯示功率
   writeshuzi(5,4,ge);
   writeshuzi(6,4,10);
   writeshuzi(7,4,x1);
   writeshuzi(8,4,x2);
   writeshuzi(9,4,14);
   }
}
****************************************
*諾基亞液晶顯示子程序 *
*****************************************
#include "nokia.h"
#include "comm.h"
#include "reg52.h"
sbit rst =P2^0;
sbit ce  =P2^1;
sbit dc  =P2^2;
sbit sdin=P2^3;
sbit sclk=P2^4;
char code hz[][24]={
//恒
        {0x18,0xFF,0x08,0x02,0xFA,0x2A,0x2A,0x2A,0x2A,0xFB,0x02,0x00,0x00,0x07,0x00,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x00},
//壓
        {0x00,0xFF,0x01,0x21,0x21,0xFD,0x21,0x61,0xA1,0x21,0x01,0x00,0x06,0x01,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x05,0x04,0x00},
//流
        {0x11,0xA6,0x70,0x02,0xD2,0x1A,0xD7,0x12,0xDA,0x32,0x02,0x00,0x01,0x07,0x04,0x02,0x01,0x00,0x07,0x00,0x07,0x04,0x07,0x00},
//模
        {0xC4,0x34,0xFF,0x24,0x01,0x7D,0x57,0xD5,0x57,0x7D,0x01,0x00,0x00,0x00,0x07,0x00,0x05,0x05,0x03,0x01,0x03,0x05,0x05,0x00},
//式
        {0x24,0x24,0x24,0xE4,0x24,0x24,0x7F,0x84,0x05,0x06,0x04,0x00,0x04,0x04,0x04,0x03,0x02,0x02,0x00,0x01,0x02,0x04,0x07,0x00},
//電
        {0x00,0xFC,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xFE,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x04,0x06,0x00},
//功
        {0x02,0x02,0xFE,0x82,0x82,0x08,0x88,0x7F,0x08,0x08,0xF8,0x00,0x01,0x01,0x00,0x04,0x04,0x02,0x01,0x04,0x04,0x04,0x03,0x00},
//率
        {0x42,0x46,0x2A,0x52,0x6A,0xD7,0x6A,0x52,0x2A,0x46,0x02,0x00,0x01,0x01,0x01,0x01,0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x00},
//空
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
        };
char code sz[][16]={
    /*--  文字:  0  --*/
    {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},
/*--  文字:  1  --*/
    {0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},
/*--  文字:  2  --*/
    {0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},
/*--  文字:  3  --*/
    {0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},
/*--  文字:  4  --*/
    {0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00},
/*--  文字:  5  --*/
    {0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00},
/*--  文字:  6  --*/
    {0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00},       
/*--  文字:  7  --*/
    {0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00},       
/*--  文字:  8  --*/
    {0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},
/*--  文字:  9  --*/
    {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00},
/*--  文字:  .  --*/
        {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00},
/*--  文字:     --*/  
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
/*--  文字:  V  --*/
    {0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00},
/*--  文字:  A  --*/
    {0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20},
/*--  文字:  W  --*/
    {0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00},
        };
write_byte(uchar dat,uchar command)
{
    uchar i;
        ce=0;
        if(command==0)
        {
           dc=0;
        }
        else dc=1;
        for(i=0;i<8;i++)
        {
            if(dat&0x80)
                   sdin=1;
                 else sdin=0;
                 sclk=0;
                 dat=dat<<1;
                 sclk=1;
        }
        ce=1;
        return 0;
}
setxy(uchar x,uchar y)
{
   write_byte(0x40|y,0);
   write_byte(0x80|x,0);
   return 0;
}
clear()
{
    uchar t,k;
        setxy(0,0);
        for(t=0;t<6;t++)
        {
           for(k=0;k<84;k++)
           write_byte(0x00,1);
        }
        return 0;
}
init()
{
     rst=0;
         delay(1);
         rst=1;
         ce=0;
         delay(1);
         ce=1;
         delay(1);
         write_byte(0x21,0);
         write_byte(0xc8,0);
         write_byte(0x06,0);
         write_byte(0x13,0);
         write_byte(0x20,0);
         clear();
         write_byte(0x0c,0);
         ce=0;
         return 0;                          
}
writehanzi(uchar row,uchar l,uchar c)
{
       uchar i;
           setxy(row*8,l);
           for(i=0;i<12;i++)
           {
               write_byte(hz[c][i],1);
           }
           setxy(row*8,l+1);
           for(i=12;i<24;i++)
           {
               write_byte(hz[c][i],1);
           }
           return 0;
}
writeshuzi(uchar row,uchar l,uchar c)
{
      uchar i;
          setxy(row*8,l);
          for(i=0;i<8;i++)
          {
              write_byte(sz[c][i],1);
          }
          setxy(row*8,l+1);
          for(i=8;i<16;i++)
          {
              write_byte(sz[c][i],1);
          }
          return 0;
}       
****************************************
*延時子程序*
*****************************************
#include "comm.h"
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long
void delay(uchar x)                           //延時子程序
{
   uchar i,j;
   for(i=0;i<x;i++)
      for(j=0;j<120;j++);                       //延時120秒
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:7485 發(fā)表于 2017-5-6 21:55 | 只看該作者
錯誤是打不開這幾個頭文件。
你有這幾個頭文件嗎?
回復(fù)

使用道具 舉報

板凳
ID:197558 發(fā)表于 2017-5-6 23:46 | 只看該作者
好厲害
回復(fù)

使用道具 舉報

地板
ID:197405 發(fā)表于 2017-5-7 11:35 | 只看該作者
ahshmj 發(fā)表于 2017-5-6 21:55
錯誤是打不開這幾個頭文件。
你有這幾個頭文件嗎?

沒有呢,怎么辦?
回復(fù)

使用道具 舉報

5#
ID:111634 發(fā)表于 2017-5-7 11:35 | 只看該作者
冗長的程序,一看就頭疼。
回復(fù)

使用道具 舉報

6#
ID:197658 發(fā)表于 2017-5-7 11:54 | 只看該作者
太長了把     把注釋標(biāo)上
回復(fù)

使用道具 舉報

7#
ID:197405 發(fā)表于 2017-5-7 22:00 | 只看該作者
令狐補(bǔ)充2009 發(fā)表于 2017-5-7 11:54
太長了把     把注釋標(biāo)上

有注釋啊,主要是頭文件怎么弄?
回復(fù)

使用道具 舉報

8#
ID:151063 發(fā)表于 2017-5-20 14:52 | 只看該作者
雖說不知道你搞定沒,不過還是給你說下吧。
點keil里的  魔術(shù)棒 選c51 下面有include paths 在這里添加頭文件路徑
回復(fù)

使用道具 舉報

9#
ID:151348 發(fā)表于 2017-5-20 16:50 | 只看該作者
缺少頭文件(.h),這些頭文件里應(yīng)該主要是定義了硬件的管腳
回復(fù)

使用道具 舉報

10#
ID:4150 發(fā)表于 2017-7-31 10:45 | 只看該作者
沒有原理圖,只有程序看了頭痛
回復(fù)

使用道具 舉報

11#
ID:188030 發(fā)表于 2017-7-31 13:05 來自手機(jī) | 只看該作者
缺少頭文件
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表