久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14787|回復(fù): 5
收起左側(cè)

undefined identifier 單片機(jī)程序運(yùn)行后出現(xiàn)以下情況,是什么問題?謝謝回復(fù)。

[復(fù)制鏈接]
ID:207753 發(fā)表于 2017-6-4 19:11 | 顯示全部樓層 |閱讀模式
wwwwwwwwwwwwww.PNG qqqqqqqqqqqqqqqqq.PNG

keil報錯:undefined identifier

  1. #include<reg52.h>                              //包含單片機(jī)寄存器的頭文件
  2. #include<string.h>                             //使用字符串
  3. #include<intrins.h>                            //單片機(jī)頭文件
  4. #include<lcd1602.h>                            //液晶顯示lcd1602的頭文件
  5. //#include<24c04.h>                            //24c02(存儲記憶)的頭文件
  6. #include<ds1302.h>                             //時鐘芯片ds1302頭文件
  7. #define uchar unsigned char
  8. #define uint unsigned int
  9. uchar  display[]={"             "};
  10. uchar i=0,j=0;
  11. uint x=0;
  12. //-------------INT0中斷------------
  13. void INT0_0() interrupt 0
  14. {
  15.         i++;
  16.         if(i==1)
  17.         {
  18.                 TR0=1;
  19.         }
  20. }


  21. //------------INT1中斷-------------
  22. void INT1_1() interrupt 2
  23. {
  24.         j++;
  25.         if(j==1)
  26.         {
  27.                 TR0=0;

  28.                 x=256*TH0+TL0;                  //將字節(jié)轉(zhuǎn)換成十進(jìn)制數(shù)
  29.         }
  30. }



  31. //-------------初始化--------------

  32. void INIT()
  33. {
  34.         TMOD=0x01;
  35.         TH0=0;
  36.         TL0=0;
  37.         EA=1;
  38.         EX0=1;
  39.         EX1=1;
  40.         IT0=1;
  41.         IT1=1;
  42.         PX0=1;
  43. }


  44. //------------數(shù)據(jù)轉(zhuǎn)換--------------
  45. void dispose()
  46. {
  47.         display[7]=x/10000+'0';
  48.         display[8]=x%10000/1000+'0';
  49.         display[10]='s';
  50.         display[11]='e';
  51.         display[12]='c';
  52. }


  53. //----------主程序----------------
  54. void main()
  55. {
  56.     Init_LCD();         //初始化LCD
  57.         //display[7]='1';
  58.         //display[8]='1';
  59.         //display[10]='s';
  60.         //display[11]='e';
  61.         //display[12]='c';
  62.     //IIC_24C04_Init();   //初始化24C04
  63.         INIT();
  64.         while(1)
  65.         {
  66.                 GetTime();              //獲得當(dāng)前時間
  67.                 Format_DateTime(DateTime[6],LCD_DSY_BUFFER1+5);         //通道號顯示
  68.                 Format_DateTime(DateTime[4],LCD_DSY_BUFFER1+8);
  69.                 Format_DateTime(DateTime[3],LCD_DSY_BUFFER1+11);
  70.             //strcpy(LCD_DSY_BUFFER1+13,WEEK[DateTime[5]]);
  71.                 Format_DateTime(DateTime[2],LCD_DSY_BUFFER2+5);
  72.                 Format_DateTime(DateTime[1],LCD_DSY_BUFFER2+8);        
  73.                 Format_DateTime(DateTime[0],LCD_DSY_BUFFER2+11);
  74.                 //Display_String(display,0x40);
  75.                 Display_String(LCD_DSY_BUFFER2,0X00);      //液晶顯示
  76.                 dispose();
  77.                 Display_String(display,0x40);
  78.         }
  79. }

  80.                                                    
  81. #ifndef _lcd1602_2010_4_28_
  82. #define _lcd1602_2010_4_28_
  83. /*********************************lcd1602*****************************/
  84. #define uchar unsigned char
  85. #define uint unsigned int
  86.                               //定義1602與單片機(jī)的接口
  87. sbit RS=P2^0;                  //指令數(shù)據(jù)選擇
  88. sbit RW=P2^1;                  //接地,執(zhí)行寫操作
  89. sbit EN=P2^2;                  //信號使能

  90. //---------------延時i毫秒函數(shù)------------------
  91. void DelayMs(uint x)
  92. {
  93. uchar i;
  94. while(x--) for(i=0;i<120;i++);
  95. }

  96. //---------------讀LCD狀態(tài)------------------
  97. uchar Read_LCD_State()
  98. {
  99. uchar state;
  100. RS=0;
  101. RW=1;
  102. EN=1;
  103. DelayMs(1);
  104. state=P0;
  105. EN=0;
  106. DelayMs(1);
  107. return state;
  108. }


  109. //----------------忙等待(LCD忙檢測)--------------------------
  110. void LCD_Busy_Wait()
  111. {
  112. while((Read_LCD_State()&0x80)==0x80); //讀取忙標(biāo)志位BF,BF=1則一直等待 DelayMS(5)
  113. DelayMs(5);
  114. }


  115. //-----------------向LCD寫數(shù)據(jù)----------------
  116. void Write_LCD_Data(uchar dat)
  117. {
  118. LCD_Busy_Wait();      //忙檢測確保上一指令完成,也可用適當(dāng)?shù)难訒r替換此行
  119. RS=1;
  120. RW=0;
  121. EN=0;
  122. P0=dat;
  123. EN=1;
  124. DelayMs(1);
  125. EN=0;
  126. }
  127. //--------------寫LCD命令--------------------
  128. void Write_LCD_Command(uchar cmd)
  129. {
  130. LCD_Busy_Wait();
  131. RS=0;RW=0;EN=0;P0=cmd;EN=1;DelayMs(1);EN=0;
  132. }
  133. //----------------LCD初始化-------------------
  134. void Init_LCD()
  135. {
  136. Write_LCD_Command(0x38);     //8位數(shù)據(jù)接口,2行顯示,5*7點陣字符
  137. DelayMs(1);   //延時保證上一指令完成
  138. Write_LCD_Command(0x01);     //清DDRAM和AC值
  139. DelayMs(1);
  140. Write_LCD_Command(0x06);     //數(shù)據(jù)讀寫操作畫面不動,AC自動加1
  141. DelayMs(1);
  142. Write_LCD_Command(0x0c);     //開顯示,關(guān)光標(biāo)和閃爍
  143. DelayMs(1);
  144. }
  145. //-------------設(shè)置液晶顯示位置---------------------
  146. void Set_LCD_POS(uchar p)
  147. {
  148. Write_LCD_Command(p|0x80);
  149. }
  150. //-------------在LCD上顯示字符串-----------------
  151. void Display_String(uchar*s,uchar p)
  152. {uchar i;
  153. Set_LCD_POS(p);
  154. for(i=0;i<16;i++)
  155. {
  156. Write_LCD_Data(s[i]);
  157. DelayMs(1);
  158. }
  159. }
  160. /*********************lcd1602結(jié)束*****************************/

  161. #endif
  162. #ifndef _ds1302_2010_4_28_
  163. #define _ds1302_2010_4_28_

  164. /************************ds1302*********************/

  165. #define uchar unsigned char
  166. #define uint unsigned int                     
  167.                                                //定義DS1302與MCU接口
  168. sbit IO=P2^4;                                //IO接口
  169. sbit SCLK=P2^5;                              //時鐘線引腳
  170. sbit RST=P2^6;                               //復(fù)位線引腳
  171. uchar*WEEK[]={"SUN","***","MON","TUS","WEN","THU","FRI","SAT"};
  172. uchar LCD_DSY_BUFFER1[]={"DATE 00-00-00   "};
  173. uchar LCD_DSY_BUFFER2[]={"TIME 00:00:00   "};
  174. uchar DateTime[7];
  175. //--------------向DS1302寫入一字符(一字節(jié)數(shù)據(jù))----------------
  176. void Write_A_Byte_TO_DS1302(uchar x)
  177. {
  178. uchar i;
  179. for(i=0;i<8;i++)
  180. {
  181. IO=x&0x01;SCLK=1;SCLK=0;X>>=1;            //x右移1位,高位補(bǔ)0
  182. }
  183. }
  184. //-------------從DS1302讀取一字節(jié)(一字節(jié)數(shù)據(jù))-------------
  185. uchar Get_A_Byte_FROM_DS1302()
  186. {
  187. uchar i,b=0x00;
  188. for(i=0;i<8;i++)
  189. {
  190. b|=_crol_((uchar)IO,i);
  191. SCLK=1;SCLK=0;
  192. }
  193. return b/16*10+b%16;
  194. }
  195. //----------------從DS1302指定位置讀數(shù)據(jù)(讀取DS1302某地址的數(shù)據(jù),先寫命令字,后讀數(shù)據(jù))-------------------
  196. uchar Read_Date(uchar addr)
  197. {
  198. uchar dat;
  199. RST=0;          //復(fù)位
  200. SCLK=0;         //時鐘脈沖置0
  201. RST=1;          //啟動數(shù)據(jù)傳送
  202. Write_A_Byte_IO_DS1302(addr);         //寫入地址命令字
  203. dat=Get_A_Byte_FROM_DS1302();         //讀出一個字節(jié)的數(shù)據(jù)
  204. SCLK=1;RST=0;
  205. return dat;
  206. }
  207. //---------------讀取當(dāng)前日期時間----------------
  208. void GetTime()
  209. {
  210. uchar i;addr=0x81;
  211. for(i=0;i<7;i++)
  212. {
  213. DateTime[i]=Read_Data(addr);addr+=2;
  214. }
  215. }
  216. //---------------日期與時間轉(zhuǎn)換為數(shù)字字符(格式化日期時間函數(shù))-------------------
  217. void Format_DateTime(uchar d,uchar*a)
  218. {
  219. a[0]=d/10+'0';
  220. a[1]=d%10+'0';
  221. }
  222. /**********************ds1302結(jié)束****************************/
  223. #endif

復(fù)制代碼
回復(fù)

使用道具 舉報

ID:96682 發(fā)表于 2017-6-4 21:47 | 顯示全部樓層
已經(jīng)給出缺少哪樣文件的提示了,查找添加相應(yīng)的文件進(jìn)去就好
回復(fù)

使用道具 舉報

ID:207753 發(fā)表于 2017-6-4 22:17 | 顯示全部樓層
DateTime,LCD_DSY_BUFFER1和LCD_DSY_BUFFER2怎么定義?我添加了這兩行,然后變成這樣了。

#include<reg52.h>                              //包含單片機(jī)寄存器的頭文件
#include<string.h>                             //使用字符串
#include<intrins.h>                            //單片機(jī)頭文件
#include<lcd1602.h>                            //液晶顯示lcd1602的頭文件
//#include<24c04.h>                            //24c02(存儲記憶)的頭文件
#include<ds1302.h>                             //時鐘芯片ds1302頭文件
#define uchar unsigned char
#define uint unsigned int
uchar  display[]={"             "};
uchar i=0,j=0;
下兩行是添加的
uint Format_DateTime(uchar *a,uchar *b);
uint x=0,DateTime[],LCD_DSY_BUFFER1[],LCD_DSY_BUFFER2[];


結(jié)果是這樣
compiling shijiyi.c...
shijiyi.c(4): warning C318: can't open file 'lcd1602.h'
shijiyi.c(6): warning C318: can't open file 'ds1302.h'
SHIJIYI.C(83): warning C182: pointer to different objects
SHIJIYI.C(83): error C214: illegal pointer conversion
shijiyi.c - 1 Error(s), 3 Warning(s).
回復(fù)

使用道具 舉報

ID:207753 發(fā)表于 2017-6-4 22:21 | 顯示全部樓層
我不太懂,試著改,把11行改了
uint Format_DateTime(uchar *a,uchar *b);
uint x=0,DateTime[],LCD_DSY_BUFFER1[],LCD_DSY_BUFFER2[];
然后就這樣了
compiling shijiyi.c...
shijiyi.c(4): warning C318: can't open file 'lcd1602.h'
shijiyi.c(6): warning C318: can't open file 'ds1302.h'
SHIJIYI.C(83): warning C182: pointer to different objects
SHIJIYI.C(83): error C214: illegal pointer conversion
shijiyi.c - 1 Error(s), 3 Warning(s).
回復(fù)

使用道具 舉報

ID:207753 發(fā)表于 2017-6-6 09:47 | 顯示全部樓層
有人能幫幫忙嗎?這幾個error怎么解決?我在網(wǎng)上沒有搜到什么有效的方法。
回復(fù)

使用道具 舉報

ID:208300 發(fā)表于 2017-6-6 10:37 | 顯示全部樓層
我不太懂,試著改,把11行改了
uint Format_DateTime(uchar *a,uchar *b);
uint x=0,DateTime[],LCD_DSY_BUFFER1[],LCD_DSY_BUFFER2[];
然后就這樣了
compiling shijiyi.c...
shijiyi.c(4): warning C318: can't open file 'lcd1602.h'
shijiyi.c(6): warning C318: can't open file 'ds1302.h'
SHIJIYI.C(83): warning C182: pointer to different objects
SHIJIYI.C(83): error C214: illegal pointer conversion
shijiyi.c - 1 Error(s), 3 Warning(s).
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区三区免费观看在线 | 狠狠干av | 免费在线日韩 | 在线高清免费观看视频 | 午夜专区| 亚洲一区 中文字幕 | www国产成人免费观看视频 | 亚洲福利视频一区二区 | 免费99视频| 欧美一区二区三区视频 | 成人在线观看免费视频 | 中文字幕第一页在线 | 亚洲高清视频在线观看 | 亚洲激情综合 | 二区视频 | 亚洲www.| 激情久久网 | av男人的天堂av | 久久91精品久久久久久9鸭 | 天天看天天摸天天操 | 视频三区| 久久久久久久久久一区二区 | 欧美一区二区三区在线播放 | 日韩精品视频一区二区三区 | av一区二区三区 | 中文一区二区 | 亚洲电影在线播放 | 精品久久久久久久 | 在线观看黄色电影 | 亚洲精品成人 | 一区二区三区中文字幕 | 日本精品视频一区二区 | 欧美精选一区二区 | 精品福利在线视频 | 国产精品伦理一区二区三区 | 欧美理论片在线 | 九九一级片 | 精品二| 四虎影视一区二区 | 婷婷免费在线 | 黄色免费在线观看网址 |