欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 求助大神,c語言沒學(xué)好,單片機(jī)課程設(shè)計(jì)根本做不到啊 [打印本頁]

作者: d小呆q    時(shí)間: 2015-10-31 00:10
標(biāo)題: 求助大神,c語言沒學(xué)好,單片機(jī)課程設(shè)計(jì)根本做不到啊
/************************************************************************
/**單片機(jī)單詞測試程序
/**設(shè)計(jì)一個(gè)以單片機(jī)為核心的單詞記憶測試器;
/** 實(shí)現(xiàn)單詞的錄入(為使程序具有可演示性,單詞不少于10個(gè));
/**單詞用按鍵控制依次在屏幕上顯示,按鍵選擇認(rèn)識還是不認(rèn)識,
/**也可以直接進(jìn)入下一個(gè)或者上一個(gè);
/**單詞背完后給出正確率。
/*************************************************************************/

#define uchar unsigned char
#define uint  unsigned int

#include <reg52.h>
#include "asc.h"                   //ASCII字模表
#include "12864.h"                //12864液晶屏底層驅(qū)動(dòng)程序

bit ERROR=1;                        //輸入字符錯(cuò)誤標(biāo)志位
bit result=0;                          //輸入結(jié)果對錯(cuò)的標(biāo)志位,為0是正確
bit verify=1;                        //已按了確認(rèn)鍵后清零
sbit ERR=P2^7;
uchar correctNUM;                 //統(tǒng)計(jì)測試正確的單詞數(shù),即得分
/*****************************************
/** 存儲(chǔ)要測試的單詞,放在ROM中
/****************************************/

uchar code S[10][5]={                "tree ",    //樹
                                     "rain ",    //雨
                                     "water",  //水
                                     "fly  ",     //飛
                                     "go   ",   //去
                                     "fish ",    //魚
                                     "snow ",  //雪
                                     "eat  ",    //吃
                                     "rice ",    //米
                                     "ice  ",    //冰
                                    } ;

uchar code         SL[10]={4,4,5,3,2,4,4,3,4,3};//存儲(chǔ)各測試單詞的長度

uchar KeyNum[8];                       //儲(chǔ)存輸入的單詞

/*****************************************
/** 存儲(chǔ)鍵盤的字母值 ,放在ROM中
/****************************************/

uchar code tab1[6][5]={{'a','b','c','d','e'},
                            {'f','g','h','i','j'},
                            {'k','l','m','n','o'},
                            {'p','q','r','s','t'},
                                          {'u','v','w','x','y'},
                                          {'z',1,2,3,4}};            
//最后的 1234 鍵盤值為功能鍵, 1表示確定鍵,2表示不認(rèn)識,3表示上一個(gè),4表示下一個(gè)                                                         
/*************************************************
** 鍵盤掃描程序

*************************************************/

unsigned char kbscan()          //鍵盤掃描
        {
        uchar hang,lie,key;                    //P1連行,P3連列
        if(P1!=0xFF||P3!=0)
        {
                switch(P1&0xFF)                //P1 掃行
                        {
                       
                            case 0xFE:hang=5;break;//P1.0為第6行
                                case 0xFD:hang=4;break;//P1.1為第5行
                                case 0xFB:hang=3;break;//P1.2為第4行
                                case 0xF7:hang=2;break;//P1.3為第3行
                                case 0xEF:hang=1;break;//P1.4為第2行
                                case 0xDF:hang=0;break;//P1.5為第1行
                        }
                        P1=0;   //P1全低電平
                    P3=0xFF;//P3全高電平
                switch(P3&0xFF)
                        {
                                case 0xFE:lie=4;break; //P1.0為第5列
                                case 0xFD:lie=3;break; //P0.5為第4列
                                case 0xFB:lie=2;break; //P0.6為第3列
                                case 0xF7:lie=1;break; //P0.7為第2列
                                   case 0xEF:lie=0;break; //P0.7為第1列
                        }
                P1=0xFF; //P1全高電平
                P3=0;         //P3全低電平
                while(P1!=0xFF||P3!=0);                  //按鍵松開后才返回值
                key=tab1[hang][lie];
        }
        else
                key='_';
        return (key);
        }

/************************************************************************
/**    主函數(shù)
/**   
/**   
/*************************************************************************/
void main(void)
{   
    uchar hz_Num;                                        //用于計(jì)當(dāng)前測試的是第幾個(gè)詞,第一個(gè)為0
        uchar temp[8];                                  //用于送液晶屏顯示的臨時(shí)變量
        uchar iword=0,Nword=0;                  //輸入單詞字母下一個(gè)計(jì)數(shù)
    LCD12864_init();                           //LCD12864初始化
        ClearLCD();                                //清屏
        en_disp(2,1,11,Asc,"INPUT WORD:",1); //在第2行 第1列
           en_disp(4,1,1,Asc,">",1);                  //在第5行,第2列開始顯示
        en_disp(6,0,8,Asc,"correct:",1);         //在第7行,第1列開始顯示
        en_disp(6,80,5,Asc,"00/10",1);           //在第7行 第81列
        P1=0xFF; //P1全高電平
        P3=0;           //P3全低電平

    while(1)
    {
            KeyNum[iword]=kbscan();                   //掃描鍵盤的輸入值,沒按下時(shí)返回下橫線
         hz_disp(0,48,1,hz1+hz_Num*32,1);           //在第1行,第49列開始顯示測試的漢字
         temp[0]=(hz_Num+1)/10+0x30;           //將十進(jìn)制數(shù)轉(zhuǎn)換為ASCII字符
         temp[1]=(hz_Num+1)%10+0x30;           //算出測試漢字的序號的第一位和第二位
         en_disp(0,20,1,Asc,":",1);        //在第1行 第21列         
         en_disp(0,4,2,Asc,temp,1);        //在第1行 第5列        顯示測試序號



  if(KeyNum[iword]!='_')                      //鍵盤有按鍵按下
  {
         if(KeyNum[iword]==1)             //如果按下了確定鍵
         {
          if(SL[hz_Num]==iword&&verify)   //輸入長度等于測試單詞的長度,則正確 ,verify表示按下了確認(rèn)后有效一次
          {
          correctNUM+=1;
          if(correctNUM>10)
           {
           correctNUM=10; //最多10個(gè)正確的
           }
          verify=0;                                           //標(biāo)志位清零
          hz_Num++;                                     //測試下一個(gè)單詞
          if(hz_Num==10) hz_Num=0;                   //最多設(shè)10個(gè)單詞
          temp[0]=(correctNUM)/10+0x30;           //將十進(jìn)制數(shù)轉(zhuǎn)換為ASCII字符
          temp[1]=(correctNUM)%10+0x30;           //算出測試漢字的序號的第一位和第二位
          en_disp(6,80,2,Asc,temp,1);               //在第7行 第81列
          iword=0;
          Nword=0;
          en_disp(4,16,8,Asc,"        ",1);            //在第5行,第17列開始顯示
          }
         }
        else if(KeyNum[iword]==2||KeyNum[iword]==4)//如果按下了“不認(rèn)識”或“下一個(gè)”鍵 ,直接跳到下一個(gè)單詞
        {
          result=0;                                  //跳下一個(gè)時(shí)錯(cuò)誤燈滅
          ERROR=0;
          hz_Num++;                                       //測試下一個(gè)單詞
          if(hz_Num==10) hz_Num=0;                   //最多設(shè)10個(gè)單詞
           iword=0;
          Nword=0;
          en_disp(4,16,8,Asc,"        ",1);           //在第5行,第17列開始顯示
        }
        else if(KeyNum[iword]==3)                  //如果按下了“上一個(gè)”鍵 ,直接跳到上一個(gè)單詞
        {
          result=0;                                        //跳下一個(gè)時(shí)錯(cuò)誤燈滅
          ERROR=0;
                                       //測試下一個(gè)單詞
          if(hz_Num==0) hz_Num=10;                           //最多設(shè)10個(gè)單詞
                   hz_Num--;   
           iword=0;
           Nword=0;
           en_disp(4,16,8,Asc,"        ",1);                   //在第4行,第16列開始顯示
        }
        else  if(S[hz_Num][iword]==KeyNum[iword])  //輸入的字符與測試的標(biāo)準(zhǔn)字符比較
         { temp[0]=KeyNum[iword];
          ERROR=0;                                            //正確就標(biāo)志位置0
          en_disp(4,Nword+16,1,Asc,temp,1);             //在第5行,第17列開始顯示
          iword++;
         if(iword==8) iword=0;
         Nword=iword*8;       
          verify=1;                               
         }
         else  
         { temp[0]=KeyNum[iword];
          ERROR=1;                                        //錯(cuò)誤就置1
          en_disp(4,Nword+16,1,Asc,temp,1);            //在第5行,第17列開始顯示
          iword++;
         if(iword==8) iword=0;
         Nword=iword*8;       
         }
         result=ERROR|result;                                //0表示結(jié)果正確
   }
         
          ERR=!result;                                          //錯(cuò)誤指示燈
    }
}
出現(xiàn)下面的錯(cuò)誤怎么調(diào)試




作者: absflash    時(shí)間: 2015-11-1 09:53
本文件內(nèi)沒有en-disp函數(shù)吧,需要把包含en-disp的頭文件調(diào)用一下,里面應(yīng)該有這么一句 void en-disp (),修改別人的程序經(jīng)常會(huì)遇到這問題,




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1