找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5925|回复: 3
打印 上一主题 下一主题
收起左侧

error C141: syntax error near 'void'求助解决单片机C语言代码错误

[复制链接]
跳转到指定楼层
楼主
ID:937272 发表于 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 数据/指令(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 :定义功能键按下次数变量
  16. void delay (unsigned int z)//延时子函数 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) //写命令子函数
  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) //写数据子函数
  33. {
  34. lcdrs=1;//高电平选择为写数据
  35. datasend=d;//把数据写入P0 口
  36. delay(5);
  37. lcden=1;//开使能
  38. delay(5);//读取数据
  39. lcden=0;//关闭使能
  40. }
  41. void write_hms(uchar add,uchar dat) //时分秒写函数 add :输入位置设置变量 dat :输入时分秒数据
  42. {
  43. uchar sw,gw;//定义十位,个位变量
  44. sw=dat/10;
  45. gw=dat%10;
  46. write_(0x80+0x40+add);//从第一行(add)位开始写数据
  47. write_data(0x30+sw);//写入十位
  48. write_data(0x30+gw);//写入个位
  49. }
  50. void write_ymd(uchar add,uchar dat)//年月日写函数 add :输入位置设置变量 dat :输入时分秒数据
  51. {
  52. uchar sw,gw;
  53. sw=dat/10;
  54. gw=dat%10;
  55. write_(0x80+add);//从第一行(add)位开始写数据
  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++;//功能键按下计数
  138. TR0=0;//T0定时停止,进入时间调整
  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;//按键计数复位
  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初始化函数
  291. {
  292. uchar num;
  293. lcden=0;
  294. write_(0x38);//设置16x2显示,5x7点阵显示,8位数据接口
  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);//清屏指令  每次显示下一屏内容时,必须清屏
  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();//时分秒数据处理
  348. getymd();//年月日数据处理
  349. }
  350. }
  351. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155507 发表于 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 数据/指令(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 :定义功能键按下次数变量
  16. void delay (unsigned int z)//延时子函数 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) //写命令子函数
  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) //写数据子函数
  33. {
  34.         lcdrs=1;//高电平选择为写数据
  35.         datasend=d;//把数据写入P0 口
  36.         delay(5);
  37.         lcden=1;//开使能
  38.         delay(5);//读取数据
  39.         lcden=0;//关闭使能
  40. }
  41. void write_hms(uchar add,uchar dat) //时分秒写函数 add :输入位置设置变量 dat :输入时分秒数据
  42. {
  43.         uchar sw,gw;//定义十位,个位变量
  44.         sw=dat/10;
  45.         gw=dat%10;
  46.         write_(0x80+0x40+add);//从第一行(add)位开始写数据
  47.         write_data(0x30+sw);//写入十位
  48.         write_data(0x30+gw);//写入个位
  49. }
  50. void write_ymd(uchar add,uchar dat)//年月日写函数 add :输入位置设置变量 dat :输入时分秒数据
  51. {
  52.         uchar sw,gw;
  53.         sw=dat/10;
  54.         gw=dat%10;
  55.         write_(0x80+add);//从第一行(add)位开始写数据
  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++;//功能键按下计数
  138.                 TR0=0;//T0定时停止,进入时间调整
  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;//按键计数复位
  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初始化函数
  291. {
  292.         uchar num;
  293.         lcden=0;
  294.         write_(0x38);//设置16x2显示,5x7点阵显示,8位数据接口
  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);//清屏指令  每次显示下一屏内容时,必须清屏
  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();//时分秒数据处理
  348.                         getymd();//年月日数据处理
  349.                 }
  350.         }
  351. }

复制代码

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:67199 发表于 2021-6-23 21:07 | 只看该作者
看看290行前函数   {}   这个缺失。
回复

使用道具 举报

地板
ID:937272 发表于 2021-6-23 23:03 | 只看该作者
angmall 发表于 2021-6-23 20:53
给你改了,对比一下就知道哪里错了。

大神太厉害了 ,感激不尽!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表