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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5993|回復: 3
打印 上一主題 下一主題
收起左側(cè)

error C141: syntax error near 'void'求助解決單片機C語言代碼錯誤

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:937272 發(fā)表于 2021-6-23 19:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
編譯時在290行處顯示(290): error C141: syntax error near 'void',求幫忙改正
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define datasend P0
  5. sbit lcden=P1^2;        //LCD 使能端
  6. sbit lcdrs=P1^0;        //LCD 數(shù)據(jù)/指令(H/L)選擇端
  7. sbit lcdrw=P1^1;
  8. uchar mytable0[ ]="   Welcometo   ";
  9. uchar mytable1[ ]=" Yangzhou Univ.";
  10. uchar code line0[ ]=" 2021-6-24 ";        //初始化顯示
  11. uchar code line1[ ]=" 00:00:00 ";
  12. uchar code month0[ ]={31,28,31,30,31,30,31,31,30,31,30,31}; //平年月
  13. uchar code month1[ ]={31,29,31,30,31,30,31,31,30,31,30,31}; //閏年月
  14. uchar count,hour,minute,second,year=1,month=1,date=1;
  15. uchar slnum;        //slnum :定義功能鍵按下次數(shù)變量
  16. void delay (unsigned int z)//延時子函數(shù) z*lms
  17. {
  18. unsigned int x,y;
  19. for(x=z;x>0;x--)
  20. for(y=110;y>0;y--);
  21. }
  22. void write_(unsigned char c) //寫命令子函數(shù)
  23. {
  24. lcdrs=0;        //低電平選擇為寫指令
  25. lcden=0;
  26. datasend=c;        //把指令寫入P0 口
  27. delay(5);
  28. lcden=1;        //開使能
  29. delay(5);        //讀取指令
  30. lcden=0;        //關閉使能
  31. }
  32. void write_data(unsigned char d) //寫數(shù)據(jù)子函數(shù)
  33. {
  34. lcdrs=1;//高電平選擇為寫數(shù)據(jù)
  35. datasend=d;//把數(shù)據(jù)寫入P0 口
  36. delay(5);
  37. lcden=1;//開使能
  38. delay(5);//讀取數(shù)據(jù)
  39. lcden=0;//關閉使能
  40. }
  41. void write_hms(uchar add,uchar dat) //時分秒寫函數(shù) add :輸入位置設置變量 dat :輸入時分秒數(shù)據(jù)
  42. {
  43. uchar sw,gw;//定義十位,個位變量
  44. sw=dat/10;
  45. gw=dat%10;
  46. write_(0x80+0x40+add);//從第一行(add)位開始寫數(shù)據(jù)
  47. write_data(0x30+sw);//寫入十位
  48. write_data(0x30+gw);//寫入個位
  49. }
  50. void write_ymd(uchar add,uchar dat)//年月日寫函數(shù) add :輸入位置設置變量 dat :輸入時分秒數(shù)據(jù)
  51. {
  52. uchar sw,gw;
  53. sw=dat/10;
  54. gw=dat%10;
  55. write_(0x80+add);//從第一行(add)位開始寫數(shù)據(jù)
  56. write_data(0x30+sw);//寫入十位
  57. write_data(0x30+gw);//寫入個位
  58. }
  59. void t0() interrupt 1//定時器0中斷子程序
  60. {
  61. TH0=(65536-50000)/256;
  62. TL0=(65536-50000)%256;
  63. count++;
  64. }
  65. void gethms()//時分秒處理子程序
  66. {
  67. second++;
  68. if(second==60)
  69. {
  70. second=0;
  71. minute++;
  72. if(minute==60)
  73. {
  74. minute=0;
  75. hour++;
  76. if(hour==24)
  77. {
  78. hour=0;
  79. date++;
  80. }
  81. write_hms(2,hour);//時輸出顯示
  82. }
  83. write_hms(5,minute);//分輸出顯示
  84. }
  85. write_hms(8,second);//秒輸出顯示
  86. }
  87. void getymd( )//年月日處理子程序
  88. {
  89. if(year%4==0)
  90. {
  91. if(date==month1[month-1]+1)
  92. {
  93. date=1;
  94. month++;
  95. if(month==13)
  96. {
  97. month=1;
  98. year++;
  99. if(year==100)
  100. {
  101. year=1;
  102. }
  103. write_ymd(4,year);
  104. }
  105. write_ymd(7,month);
  106. }
  107. write_ymd(10,date);
  108. }
  109. else
  110. {
  111. if(date==month0[month-1]+1)
  112. {
  113. date=1;
  114. month++;
  115. if(month==13)
  116. {
  117. month=1;
  118. year++;
  119. if(year==100)
  120. {
  121. year=1;
  122. }
  123. write_ymd(4,year);
  124. }
  125. write_ymd(7,month);
  126. }
  127. write_ymd(10,date);
  128. }
  129. }
  130. void key_process()//按鍵掃描子程序
  131. {
  132. if(P2==0xf6)//功能鍵
  133. delay(25);
  134. if(P2==0xf6)//功能鍵按下
  135. {
  136. while(P2==0xf6);//松手檢測
  137. slnum++;//功能鍵按下計數(shù)
  138. TR0=0;//T0定時停止,進入時間調(diào)整
  139. switch(slnum)
  140. {
  141. case 1: write_(0x80+0x40+0x09);break;//光標閃爍位定為秒個位
  142. case 2: write_(0x80+0x40+0x06);break;//光標閃爍位定為分個位
  143. case 3: write_(0x80+0x40+0x03);break;//光標閃爍位定為時個位
  144. case 4: write_(0x80+0x0b);//光標閃爍位定為日個位
  145. case 5: write_(0x80+0x08);//光標閃爍位定為月個位
  146. case 6: write_(0x80+0x05);//光標閃爍位定為年個位
  147. }
  148. write_(0x0f);//光標閃爍
  149. if(slnum==7)
  150. {
  151. slnum=0;//按鍵計數(shù)復位
  152. write_(0x0c);//光標停止閃爍
  153. TR0=1;//重新啟動定時器
  154. }
  155. }
  156. if(P2==0xee)//時分秒+1模塊
  157. {
  158. delay(25);
  159. if(P2==0xee)
  160. {
  161. while(P2==0xee);
  162. switch(slnum)
  163. {        
  164. case 1: second++;//秒+
  165.             if(second==60) second=0;//復位
  166.             write_hms(8,second);        //秒輸出顯示                        
  167.             write_(0x80+0x40+0x09);//光標閃爍位定為秒個位                        
  168.             break;
  169. case 2: minute++;
  170.             if(minute==60) minute=0;//復位
  171.             write_hms(5,minute);        //分輸出顯示        
  172.             write_(0x80+0x40+0x06);//光標閃爍位定為分個位               
  173.             break;        
  174. case 3: hour++;        
  175.             if(hour==24) hour=0;        //復位
  176.             write_hms(2,hour);        //時輸出顯示
  177.             write_(0x80+0x40+0x03);//光標閃爍位定為時個位
  178.             break;
  179. case 4: date++;//日+
  180.             if(year%4==0)//平閏年判斷
  181.                                                 break;
  182. {
  183. if(date==month1[month-1]+1)
  184. {
  185. date=1;
  186. }
  187. else
  188. {
  189. if(date==month0[month-1]+1)
  190. {
  191. date=1;
  192. }
  193. }
  194. }
  195. write_ymd(10,date);        //日輸出顯示
  196. write_(0x80+0x0b);//光標閃爍位定為日個位
  197. break;
  198. case 5:month++;//月+
  199.           if(month==13) month=1;        
  200.           if(year%4==0)//判斷日和月的配對關系        
  201. {        
  202.         if(date>month1[month-1])        
  203. date=month1[month-1];
  204. }               
  205.         else        
  206. {        
  207.         if(date>month0[month-1])        
  208. date=month0[month-1];
  209. }
  210. write_ymd(10,date);        //日輸出顯示        
  211. write_ymd(7,month);//月輸出顯示        
  212. write_(0x80+0x08);//光標閃爍位定為月個位        
  213. break;        
  214. case 6: year++;//年+
  215. if(year==100) year=1;//復位
  216. write_ymd(4,year);//年輸出顯示
  217. write_(0x80+0x05);//光標閃爍位定為年個位
  218. break;
  219. }
  220. }
  221. }
  222. if(P2==0xde)//時分秒-1模塊
  223. {
  224. delay(5);
  225. if(P2==0xde)
  226. {
  227. while(P2==0xde);
  228. switch(slnum)
  229. {
  230. while(P2==0xde);
  231. switch(slnum)
  232. {
  233. case 1:second--;//秒-
  234.            if(second==255) second=59; //復位
  235.            write_hms(8,second);//秒輸出顯示
  236.            write_(0x80+0x40+0x09);//光標閃爍位定為秒個位
  237.            break;
  238. case 2: minute--;
  239.             if(minute==255) minute=59;//復位
  240.             write_hms(5,minute);        //分輸出顯示        
  241.             write_(0x80+0x40+0x06);//光標閃爍位定為分個位               
  242.             break;        
  243. case 3: hour--;
  244.             if(hour==255) hour=23;        //復位
  245.             write_hms(2,hour);        //時輸出顯示
  246.             write_(0x80+0x40+0x03);//光標閃爍位定為時個位
  247.             break;
  248. case 4: date--;//日-
  249.             if(year%4==0)//平閏年判斷
  250. {
  251. if(date==0)
  252. {
  253. date=month1[month-1];
  254. }
  255. }
  256. else
  257. {
  258. if(date==0)
  259. {
  260. date=month0[month-1];
  261. }
  262. }
  263. write_ymd(10,date);        //日輸出顯示
  264. write_(0x80+0x0b);//光標閃爍位定為日個位
  265. break;
  266. case 5:month--;      //月-
  267.        if(month==0) month=12;        
  268.                          if(year%4==0)  //判斷日和月的配對關系
  269. {        
  270.         if(date>month1[month-1])        
  271. date=month1[month-1];
  272. }               
  273. {        
  274.         if(date>month0[month-1])        
  275. date=month0[month-1];
  276. }
  277. write_ymd(10,date);        //日輸出顯示        
  278. write_ymd(7,month);//月輸出顯示        
  279. write_(0x80+0x08);//光標閃爍位定為月個位        
  280. break;        
  281. case 6: year--;//年-
  282. if(year==1) year=99;//復位
  283. write_ymd(4,year);//年輸出顯示
  284. write_(0x80+0x05);//光標閃爍位定為年個位
  285. break;
  286. }
  287. }
  288. }
  289. }
  290. void initialize()//LCD初始化函數(shù)
  291. {
  292. uchar num;
  293. lcden=0;
  294. write_(0x38);//設置16x2顯示,5x7點陣顯示,8位數(shù)據(jù)接口
  295. write_(0x0c);//00001DCB,D(開關顯示),C(是否顯示光標),B(光標閃爍,光標不顯示)
  296. write_(0x06);//000001N0,N(地址指針+-1)
  297. write_(0x01);//清屏指令 每次顯示下一屏容時,必須清屏
  298. write_(0x80+0x10);//第一行顯示
  299. for(num=0;num<16;num++)//顯示16個字符
  300. {
  301. write_data(mytable0[num]);
  302. delay(10);
  303. }
  304. write_(0x80+0x50);//第二行,從第一格開始顯示
  305. for(num=0;num<16;num++)//顯示16個字符
  306. {
  307. write_data(mytable1[num]);
  308. delay(10);
  309. }
  310. for(num=0;num<16;num++)
  311. {
  312. write_(0x1c);//0001(S/C)(R/L)**;S/C:高電平移動字符,低電平移動光標;R/L:高電平左移,低電平右移
  313. delay(300);
  314. }
  315. delay(1000);
  316. write_(0x01);//清屏指令  每次顯示下一屏內(nèi)容時,必須清屏
  317. write_(0x80);
  318. for(num=0;num<13;num++)//初始化第一行顯示
  319. {
  320. write_data(line0[num]);
  321. delay(50);
  322. }
  323. write_(0x80+0x40);//第二行,頂格顯示
  324. for(num=0;num<10;num++)//初始化第二行顯示
  325. {
  326. write_date(line1[num]);
  327. delay(50);
  328. }
  329. TMOD=0x01;//定時器0中斷初值設置
  330. TH0=(65536-50000)/256;
  331. TL0=(65536-50000)%256;
  332. EA=1:
  333. ET0=1;
  334. TR0=1;
  335. }
  336. void main()
  337. {
  338. lcdrw=0;
  339. P2=0xfe;
  340. initialize();//初始化
  341. while(1)
  342. {
  343. key_process();//按鍵掃描
  344. if(count==20)//定時1s運行模塊
  345. {
  346. count=0;
  347. gethms();//時分秒數(shù)據(jù)處理
  348. getymd();//年月日數(shù)據(jù)處理
  349. }
  350. }
  351. }
復制代碼


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

使用道具 舉報

沙發(fā)
ID:155507 發(fā)表于 2021-6-23 20:53 | 只看該作者
給你改了,對比一下就知道哪里錯了。

  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define datasend P0
  5. sbit lcden=P1^2;        //LCD 使能端
  6. sbit lcdrs=P1^0;        //LCD 數(shù)據(jù)/指令(H/L)選擇端
  7. sbit lcdrw=P1^1;
  8. uchar mytable0[ ]="   Welcometo   ";
  9. uchar mytable1[ ]=" Yangzhou Univ.";
  10. uchar code line0[ ]=" 2021-6-24 ";        //初始化顯示
  11. uchar code line1[ ]=" 00:00:00 ";
  12. uchar code month0[ ]={31,28,31,30,31,30,31,31,30,31,30,31}; //平年月
  13. uchar code month1[ ]={31,29,31,30,31,30,31,31,30,31,30,31}; //閏年月
  14. uchar count,hour,minute,second,year=1,month=1,date=1;
  15. uchar slnum;        //slnum :定義功能鍵按下次數(shù)變量
  16. void delay (unsigned int z)//延時子函數(shù) z*lms
  17. {
  18.         unsigned int x,y;
  19.         for(x=z;x>0;x--)
  20.            for(y=110;y>0;y--);
  21. }
  22. void write_(unsigned char c) //寫命令子函數(shù)
  23. {
  24.         lcdrs=0;        //低電平選擇為寫指令
  25.         lcden=0;
  26.         datasend=c;        //把指令寫入P0 口
  27.         delay(5);
  28.         lcden=1;        //開使能
  29.         delay(5);        //讀取指令
  30.         lcden=0;        //關閉使能
  31. }
  32. void write_data(unsigned char d) //寫數(shù)據(jù)子函數(shù)
  33. {
  34.         lcdrs=1;//高電平選擇為寫數(shù)據(jù)
  35.         datasend=d;//把數(shù)據(jù)寫入P0 口
  36.         delay(5);
  37.         lcden=1;//開使能
  38.         delay(5);//讀取數(shù)據(jù)
  39.         lcden=0;//關閉使能
  40. }
  41. void write_hms(uchar add,uchar dat) //時分秒寫函數(shù) add :輸入位置設置變量 dat :輸入時分秒數(shù)據(jù)
  42. {
  43.         uchar sw,gw;//定義十位,個位變量
  44.         sw=dat/10;
  45.         gw=dat%10;
  46.         write_(0x80+0x40+add);//從第一行(add)位開始寫數(shù)據(jù)
  47.         write_data(0x30+sw);//寫入十位
  48.         write_data(0x30+gw);//寫入個位
  49. }
  50. void write_ymd(uchar add,uchar dat)//年月日寫函數(shù) add :輸入位置設置變量 dat :輸入時分秒數(shù)據(jù)
  51. {
  52.         uchar sw,gw;
  53.         sw=dat/10;
  54.         gw=dat%10;
  55.         write_(0x80+add);//從第一行(add)位開始寫數(shù)據(jù)
  56.         write_data(0x30+sw);//寫入十位
  57.         write_data(0x30+gw);//寫入個位
  58. }
  59. void t0() interrupt 1//定時器0中斷子程序
  60. {
  61.         TH0=(65536-50000)/256;
  62.         TL0=(65536-50000)%256;
  63.         count++;
  64. }
  65. void gethms()//時分秒處理子程序
  66. {
  67.         second++;
  68.         if(second==60)
  69.         {
  70.                 second=0;
  71.                 minute++;
  72.                 if(minute==60)
  73.                 {
  74.                         minute=0;
  75.                         hour++;
  76.                         if(hour==24)
  77.                         {
  78.                                 hour=0;
  79.                                 date++;
  80.                         }
  81.                         write_hms(2,hour);//時輸出顯示
  82.                 }
  83.                 write_hms(5,minute);//分輸出顯示
  84.         }
  85.         write_hms(8,second);//秒輸出顯示
  86. }
  87. void getymd( )//年月日處理子程序
  88. {
  89.         if(year%4==0)
  90.         {
  91.                 if(date==month1[month-1]+1)
  92.                 {
  93.                         date=1;
  94.                         month++;
  95.                         if(month==13)
  96.                         {
  97.                                 month=1;
  98.                                 year++;
  99.                                 if(year==100)
  100.                                 {
  101.                                         year=1;
  102.                                 }
  103.                                 write_ymd(4,year);
  104.                         }
  105.                         write_ymd(7,month);
  106.                 }
  107.                 write_ymd(10,date);
  108.         }
  109.         else
  110.         {
  111.                 if(date==month0[month-1]+1)
  112.                 {
  113.                         date=1;
  114.                         month++;
  115.                         if(month==13)
  116.                         {
  117.                                 month=1;
  118.                                 year++;
  119.                                 if(year==100)
  120.                                 {
  121.                                         year=1;
  122.                                 }
  123.                                 write_ymd(4,year);
  124.                         }
  125.                         write_ymd(7,month);
  126.                 }
  127.                 write_ymd(10,date);
  128.         }
  129. }
  130. void key_process()//按鍵掃描子程序
  131. {
  132.         if(P2==0xf6)//功能鍵
  133.         delay(25);
  134.         if(P2==0xf6)//功能鍵按下
  135.         {
  136.                 while(P2==0xf6);//松手檢測
  137.                 slnum++;//功能鍵按下計數(shù)
  138.                 TR0=0;//T0定時停止,進入時間調(diào)整
  139.                 switch(slnum)
  140.                 {
  141.                 case 1: write_(0x80+0x40+0x09);break;//光標閃爍位定為秒個位
  142.                 case 2: write_(0x80+0x40+0x06);break;//光標閃爍位定為分個位
  143.                 case 3: write_(0x80+0x40+0x03);break;//光標閃爍位定為時個位
  144.                 case 4: write_(0x80+0x0b);//光標閃爍位定為日個位
  145.                 case 5: write_(0x80+0x08);//光標閃爍位定為月個位
  146.                 case 6: write_(0x80+0x05);//光標閃爍位定為年個位
  147.                 }
  148.                 write_(0x0f);//光標閃爍
  149.                 if(slnum==7)
  150.                 {
  151.                         slnum=0;//按鍵計數(shù)復位
  152.                         write_(0x0c);//光標停止閃爍
  153.                         TR0=1;//重新啟動定時器
  154.                 }
  155.         }
  156.         if(P2==0xee)//時分秒+1模塊
  157.         {
  158.                 delay(25);
  159.                 if(P2==0xee)
  160.                 {
  161.                         while(P2==0xee);
  162.                         switch(slnum)
  163.                         {        
  164.                         case 1: second++;//秒+
  165.                                 if(second==60) second=0;//復位
  166.                                 write_hms(8,second);        //秒輸出顯示                        
  167.                                 write_(0x80+0x40+0x09);//光標閃爍位定為秒個位                        
  168.                                 break;
  169.                         case 2: minute++;
  170.                                 if(minute==60) minute=0;//復位
  171.                                 write_hms(5,minute);        //分輸出顯示        
  172.                                 write_(0x80+0x40+0x06);//光標閃爍位定為分個位               
  173.                                 break;        
  174.                         case 3: hour++;        
  175.                                 if(hour==24) hour=0;        //復位
  176.                                 write_hms(2,hour);        //時輸出顯示
  177.                                 write_(0x80+0x40+0x03);//光標閃爍位定為時個位
  178.                                 break;
  179.                         case 4: date++;//日+
  180.                                 if(year%4==0)//平閏年判斷
  181.                                 break;
  182.                                 {
  183.                                         if(date==month1[month-1]+1)
  184.                                         {
  185.                                                 date=1;
  186.                                         }
  187.                                         else
  188.                                         {
  189.                                                 if(date==month0[month-1]+1)
  190.                                                 {
  191.                                                         date=1;
  192.                                                 }
  193.                                         }
  194.                                 }
  195.                                 write_ymd(10,date);        //日輸出顯示
  196.                                 write_(0x80+0x0b);//光標閃爍位定為日個位
  197.                                 break;
  198.                         case 5:month++;//月+
  199.                                 if(month==13) month=1;        
  200.                                 if(year%4==0)//判斷日和月的配對關系        
  201.                                 {        
  202.                                         if(date>month1[month-1])        
  203.                                         date=month1[month-1];
  204.                                 }               
  205.                                 else        
  206.                                 {        
  207.                                         if(date>month0[month-1])        
  208.                                         date=month0[month-1];
  209.                                 }
  210.                                 write_ymd(10,date);        //日輸出顯示        
  211.                                 write_ymd(7,month);//月輸出顯示        
  212.                                 write_(0x80+0x08);//光標閃爍位定為月個位        
  213.                                 break;        
  214.                         case 6: year++;//年+
  215.                                 if(year==100) year=1;//復位
  216.                                 write_ymd(4,year);//年輸出顯示
  217.                                 write_(0x80+0x05);//光標閃爍位定為年個位
  218.                                 break;
  219.                         }
  220.                 }
  221.         }
  222.         if(P2==0xde)//時分秒-1模塊
  223.         {
  224.                 delay(5);
  225.                 if(P2==0xde)
  226.                 {
  227.                         while(P2==0xde);
  228.                         switch(slnum)
  229.                         {
  230. //                                while(P2==0xde);   <------??
  231. //                                switch(slnum)      <------??
  232. //                                {                  <------??
  233.                                 case 1:second--;//秒-
  234.                                         if(second==255) second=59; //復位
  235.                                         write_hms(8,second);//秒輸出顯示
  236.                                         write_(0x80+0x40+0x09);//光標閃爍位定為秒個位
  237.                                         break;
  238.                                 case 2: minute--;
  239.                                         if(minute==255) minute=59;//復位
  240.                                         write_hms(5,minute);        //分輸出顯示        
  241.                                         write_(0x80+0x40+0x06);//光標閃爍位定為分個位               
  242.                                         break;        
  243.                                 case 3: hour--;
  244.                                         if(hour==255) hour=23;        //復位
  245.                                         write_hms(2,hour);        //時輸出顯示
  246.                                         write_(0x80+0x40+0x03);//光標閃爍位定為時個位
  247.                                         break;
  248.                                 case 4: date--;//日-
  249.                                         if(year%4==0)//平閏年判斷
  250.                                         {
  251.                                                 if(date==0)
  252.                                                 {
  253.                                                         date=month1[month-1];
  254.                                                 }
  255.                                         }
  256.                                         else
  257.                                         {
  258.                                                 if(date==0)
  259.                                                 {
  260.                                                         date=month0[month-1];
  261.                                                 }
  262.                                         }
  263.                                         write_ymd(10,date);        //日輸出顯示
  264.                                         write_(0x80+0x0b);//光標閃爍位定為日個位
  265.                                         break;
  266.                                 case 5:month--;      //月-
  267.                                         if(month==0) month=12;        
  268.                                         if(year%4==0)  //判斷日和月的配對關系
  269.                                         {        
  270.                                                 if(date>month1[month-1])        
  271.                                                 date=month1[month-1];
  272.                                         }               
  273.                                         {        
  274.                                                 if(date>month0[month-1])        
  275.                                                 date=month0[month-1];
  276.                                         }
  277.                                         write_ymd(10,date);        //日輸出顯示        
  278.                                         write_ymd(7,month);//月輸出顯示        
  279.                                         write_(0x80+0x08);//光標閃爍位定為月個位        
  280.                                         break;        
  281.                                 case 6: year--;//年-
  282.                                         if(year==1) year=99;//復位
  283.                                         write_ymd(4,year);//年輸出顯示
  284.                                         write_(0x80+0x05);//光標閃爍位定為年個位
  285.                                         break;
  286.                         }
  287.                 }
  288.         }
  289. }
  290. void initialize()//LCD初始化函數(shù)
  291. {
  292.         uchar num;
  293.         lcden=0;
  294.         write_(0x38);//設置16x2顯示,5x7點陣顯示,8位數(shù)據(jù)接口
  295.         write_(0x0c);//00001DCB,D(開關顯示),C(是否顯示光標),B(光標閃爍,光標不顯示)
  296.         write_(0x06);//000001N0,N(地址指針+-1)
  297.         write_(0x01);//清屏指令 每次顯示下一屏容時,必須清屏
  298.         write_(0x80+0x10);//第一行顯示
  299.         for(num=0;num<16;num++)//顯示16個字符
  300.         {
  301.                 write_data(mytable0[num]);
  302.                 delay(10);
  303.         }
  304.         write_(0x80+0x50);//第二行,從第一格開始顯示
  305.         for(num=0;num<16;num++)//顯示16個字符
  306.         {
  307.                 write_data(mytable1[num]);
  308.                 delay(10);
  309.         }
  310.         for(num=0;num<16;num++)
  311.         {
  312.                 write_(0x1c);//0001(S/C)(R/L)**;S/C:高電平移動字符,低電平移動光標;R/L:高電平左移,低電平右移
  313.                 delay(300);
  314.         }
  315.         delay(1000);
  316.         write_(0x01);//清屏指令  每次顯示下一屏內(nèi)容時,必須清屏
  317.         write_(0x80);
  318.         for(num=0;num<13;num++)//初始化第一行顯示
  319.         {
  320.                 write_data(line0[num]);
  321.                 delay(50);
  322.         }
  323.         write_(0x80+0x40);//第二行,頂格顯示
  324.         for(num=0;num<10;num++)//初始化第二行顯示
  325.         {
  326.                 write_date(line1[num]);
  327.                 delay(50);
  328.         }
  329.         TMOD=0x01;//定時器0中斷初值設置
  330.         TH0=(65536-50000)/256;
  331.         TL0=(65536-50000)%256;
  332.         EA=1:
  333.         ET0=1;
  334.         TR0=1;
  335. }
  336. void main()
  337. {
  338.         lcdrw=0;
  339.         P2=0xfe;
  340.         initialize();//初始化
  341.         while(1)
  342.         {
  343.                 key_process();//按鍵掃描
  344.                 if(count==20)//定時1s運行模塊
  345.                 {
  346.                         count=0;
  347.                         gethms();//時分秒數(shù)據(jù)處理
  348.                         getymd();//年月日數(shù)據(jù)處理
  349.                 }
  350.         }
  351. }

復制代碼

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:67199 發(fā)表于 2021-6-23 21:07 | 只看該作者
看看290行前函數(shù)   {}   這個缺失。
回復

使用道具 舉報

地板
ID:937272 發(fā)表于 2021-6-23 23:03 | 只看該作者
angmall 發(fā)表于 2021-6-23 20:53
給你改了,對比一下就知道哪里錯了。

大神太厲害了 ,感激不盡!!!!
回復

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久久久久亚洲精品 | 超碰综合 | 天天插天天舔 | 亚洲高清在线免费观看 | 色免费视频 | 久热免费| 国产精品久久久久久久久久久久久久 | 欧美精品一区二区在线观看 | 天堂色| 日韩毛片中文字幕 | 粉嫩国产精品一区二区在线观看 | 综合另类 | 久久天天躁狠狠躁夜夜躁2014 | 亚洲性视频 | 精品视频在线观看 | 午夜免费视频观看 | 无码一区二区三区视频 | 亚洲成人一区 | 午夜小电影 | 91久久久久久久久 | 亚洲欧美视频一区 | 亚洲日本成人 | 黑人久久 | 国产精品视频 | 99精品国产一区二区三区 | 激情91| 久久国产精品72免费观看 | 999久久久 | 亚洲精品一二三区 | 一区二区三区四区不卡视频 | 亚洲黄色在线免费观看 | 亚洲精品一区二区三区蜜桃久 | 午夜在线免费观看 | 一级黄色影片在线观看 | 中文字幕日韩一区二区 | 免费黄色的网站 | 国产在线第一页 | 99视频在线 | 久久久精品一区 | 欧美一级免费看 | av一区二区在线观看 |