107806|10

7

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

再次求助 C语言时钟程序在KEIL中提示出错 [复制链接]

  1. C语言时钟程序在KEIL中提示出错#include

  2. #define uchar unsigned char

  3. #define uint unsigned int

  4. char DATA_7SEG[10]={0xC0,0xF9,0xA4,0xB0,0x99,

  5. 0x92,0x82,0xF8,0x80,0x90,};/*0~9的数码管段码*/

  6. uchar hour=0,min=0,sec=0; /*时、分、秒单元清零*/

  7. uchar deda=0; /*5mS计数单元清零*/

  8. uchar t_hour=0,t_min=0; /*闹时时、分单元清零*/

  9. bit d_05s=0; /*0.5秒标志*/

  10. bit o_f=0; /*闹时启/停标志*/

  11. uchar set=0; /*模式设定标志*/

  12. uchar m=0;

  13. uchar flag=0; /*RAM掉电标志*/

  14. void delay(uint k); /*延时子函数*/

  15. void conv(); /*走时单元转换*/

  16. void p_out(); /*判别闹时到否子函数*/

  17. void dirve(); /*走时时间输出驱动子函数*/

  18. void t_dirve(); /*闹时时间输出驱动子函数*/



  19. /*闹时启/停子函数*/

  20. void time1_of()

  21. {uchar m;

  22. if(P3_7==0)delay(1);

  23. if(P3_7==0)o_f=1;

  24. for(m=0;m<30;m++)

  25. {

  26. t_dirve();

  27. P1=DATA_7SEG[t_min/10] 3=0xfd;delay(1);

  28. if(P3_1==0){if(o_f==1)P1_7=0;}else P1_7=1;

  29. delay(1);

  30. }


  31. if(P3_5==0)delay(1);

  32. if(P3_5==0) o_f=0;

  33. for(m=0;m<30;m++)

  34. {

  35. t_dirve();

  36. P1=DATA_7SEG[t_min/10]3=0xfd;delay(1);

  37. if(P3_1==0){if(o_f==1)P1_7=0;else P1_7=1;}

  38. delay(1);

  39. }

  40. }


  41. /*走时函数*/

  42. void time()

  43. {

  44. conv(); /*走时单元转换*/

  45. dirve(); /*走时时间输出驱动子函数*/

  46. p_out(); /*判别闹时到否子函数*/

  47. }



  48. /*定时器T0 5mS初始化*/

  49. void init_timer()

  50. {

  51. TMOD=0x01;

  52. TH0=-(4800/256);

  53. TL0=-(4800%256);

  54. IE=0x82;

  55. TR0=1;

  56. }


  57. /*扫描按键子函数*/

  58. void scan_key()

  59. {

  60. delay(1);

  61. if(P3_4==0)set++;

  62. if(set>=4)set=0;

  63. if(set==1)flag=0x55;

  64. F0:if(P3_4==0)goto F0; /*按键未释放,在此等候*/

  65. }



  66. /*延时子函数*/

  67. void delay(uint k)

  68. {

  69. uint i,j;

  70. for(i=0;i
  71. for(j=0;j<121;j++)

  72. {;}}

  73. }


  74. /*5mS定时中断服务子函数*/

  75. void zd(void) interrupt 1

  76. {

  77. TH0=-(4800/256);

  78. TL0=-(4800%256);

  79. deda++;

  80. }


  81. /*调整走时时间*/

  82. void time_adj()

  83. {uchar m;

  84. if(P3_5==0)delay(1);

  85. if(P3_5==0)hour++;

  86. if(hour==24)hour=0;

  87. for(m=0;m<30;m++)

  88. {

  89. dirve();

  90. if(P3_2==0)P1_7=0;

  91. else P1_7=1;

  92. delay(1);

  93. }


  94. if(P3_7==0)delay(1);

  95. if(P3_7==0)min++;

  96. if(min==60)min=0;

  97. for(m=0;m<30;m++)

  98. {

  99. dirve();

  100. if(P3_2==0)P1_7=0;

  101. else P1_7=1;

  102. delay(1);

  103. }

  104. }



  105. /*调整闹时时间*/

  106. void time1_adj()

  107. {uchar m;

  108. if(P3_5==0)delay(1);

  109. if(P3_5==0)t_hour++;

  110. if(t_hour==24)t_hour=0;

  111. for(m=0;m<30;m++)

  112. {

  113. t_dirve();

  114. }


  115. if(P3_7==0)delay(1);

  116. if(P3_7==0)t_min++;

  117. if(t_min==60)t_min=0;

  118. for(m=0;m<30;m++)

  119. {

  120. t_dirve();

  121. }

  122. }


  123. /*时、分、秒单元及走时单元转换*/

  124. void conv()

  125. {

  126. if(deda<=100)d_05s=0;

  127. else d_05s=1;

  128. if(deda>=200){sec++;deda=0;}

  129. if(sec==60){min++;sec=0;}

  130. if(min==60){hour++;min=0;}

  131. if(hour==24){hour=0;}

  132. }


  133. /*走时时间输出驱动子函数*/

  134. void dirve()

  135. {

  136. P1=DATA_7SEG[hour/10]3=0xf7;delay(1);

  137. P1=DATA_7SEG[hour%10]3=0xfb;delay(1);

  138. if(d_05s==1){if(P3_2==0)P1_7=0;else P1_7=1;}

  139. delay(1);

  140. P1=DATA_7SEG[min/10]3=0xfd;delay(1);

  141. if(o_f==1){if(P3_1==0)P1_7=0;else P1_7=1;delay(1);}

  142. P1=DATA_7SEG[min%10]3=0xfe;delay(1);

  143. }


  144. /*闹时时间输出驱动子函数*/

  145. void t_dirve()

  146. {

  147. P1=DATA_7SEG[t_hour/10]3=0xf7;delay(1);

  148. if(P3_3==0)P1_7=0;else P1_7=1;

  149. delay(1);

  150. P1=DATA_7SEG[t_hour%10]3=0xfb;delay(1);

  151. P1=DATA_7SEG[t_min/10]3=0xfd;delay(1);

  152. P1=DATA_7SEG[t_min%10]3=0xfe;delay(1);

  153. }



  154. /*判别闹时到否子函数*/

  155. void p_out()

  156. {

  157. if(o_f==1){

  158. if(t_hour==hour){if(t_min==min)

  159. if(P3_0==0){P1_7=0;delay(1);}

  160. else P1_7=1;

  161. }

  162. }

  163. }


  164. /*主函数*/

  165. void main()

  166. {

  167. init_timer(); /*定时器T0初始化*/

  168. while(1) /*无限循环*/

  169. {

  170. if(P3_4==0)scan_key(); /*有按键,调用按键扫描子函数*/

  171. switch(set) /*根据set键值散转*/

  172. {

  173. case 0:time();break; /*走时时间程序*/

  174. case 1:time1_adj();break; /*闹时时间调整*/

  175. case 2:time_adj();break; /*走时时间调整*/

  176. case 3:time1_of();break; /*启/停闹时*/

  177. default:break; /*其它退出*/

  178. }

  179. if(flag!=0x55) /*判断掉电标志*/

  180. {for(m=0;m<100;m++) /*点亮四个8字400mS*/

  181. {

  182. P1=0x803=0xf7;delay(1);

  183. P1=0x803=0xfb;delay(1);

  184. P1=0x803=0xfd;delay(1);

  185. P1=0x803=0xfe;delay(1);

  186. }


  187. P1=0xff3=0xff;delay(400); /*熄灭四个8字400mS*/

  188. }

  189. }

  190. }


  191. 错误提示
  192. Build target 'Target 1'
  193. assembling STARTUP.A51...
  194. compiling AT892051.C...
  195. AT892051.C(85): error C141: syntax error near '3'
  196. AT892051.C(115): error C141: syntax error near '3'
  197. AT892051.C(237): error C141: syntax error near 'for'
  198. AT892051.C(243): error C141: syntax error near '}'
  199. AT892051.C(456): error C141: syntax error near '3'
  200. Target not created

  201. 具体是这五句吧
  202. P1=DATA_7SEG[t_min/10] 3=0xfd;delay(1);
  203. P1=DATA_7SEG[t_min/10]3=0xfd;delay(1);
  204. for(j=0;j<121;j++)

  205. {

  206. uint i,j;

  207. for(i=0;i
  208. for(j=0;j<121;j++)

  209. {;}}

  210. }

  211. P1=DATA_7SEG[hour/10]3=0xf7;delay(1);
复制代码
顺便上传了工程文件,我花了好长的时间都没有找到哪里有问题,只好向大家求救了。。。。

AT89C2051时钟.rar

12.93 KB, 下载次数: 51

此帖出自单片机论坛

最新回复

LZ也知道具体在哪几行,就是不知道怎么改.   详情 回复 发表于 2009-9-16 11:42
点赞 关注
 

回复
举报

184

帖子

130

TA的资源

管理员

沙发
 

回复 楼主 youshx 的帖子

请看看大家的回复 可否帮忙:https://bbs.eeworld.com.cn/thread-86205-1-1.html
此帖出自单片机论坛
 
 

回复

440

帖子

0

TA的资源

五彩晶圆(高级)

板凳
 
1.void delay(uint k)程序中循环有误
2.P1=DATA_7SEG[t_min/10]3=0xfd;delay(1);其中,3是多余的
你是不是笔误啊,这两个都是低级错误,拜托
此帖出自单片机论坛

赞赏

1

查看全部赞赏

 
 
 

回复

2771

帖子

0

TA的资源

裸片初长成(中级)

4
 

我来说下

P1=DATA_7SEG[t_min/10] 3=0xfd;delay(1);
P1=DATA_7SEG[t_min/10]3=0xfd;delay(1);
for(j=0;j<121;j++)

{

uint i,j;

for(i=0;i
for(j=0;j<121;j++)

{;}}

}

P1=DATA_7SEG[hour/10]3=0xf7;delay(1);



P1=DATA_7SEG[t_min/10] 3=0xfd;  

什么意思?
P1=DATA_7SEG[t_min/10] ;
P3=0xfd;  
delay(1);
 OK???


for(i=0;i

这个没写完吧?
应该是
for(i=0;i=xx,i++)


ok???


{;}}

少了个括号
此帖出自单片机论坛
 
 
 

回复

2771

帖子

0

TA的资源

裸片初长成(中级)

5
 

结构错误

for(j=0;j<121;j++)

{

uint i,j;

for(i=0;i
for(j=0;j<121;j++)
此帖出自单片机论坛

赞赏

1

查看全部赞赏

 
 
 

回复

2771

帖子

0

TA的资源

裸片初长成(中级)

6
 

P1=0xff3=0xff;delay(400); /*熄灭四个8字400mS*/

这个地方也要修改,问题太多了:Q :Q :Q
此帖出自单片机论坛
 
 
 

回复

1673

帖子

0

TA的资源

五彩晶圆(中级)

7
 
LZ哪里抄的呀
P1=DATA_7SEG[t_min/10] 3=0xfd;delay(1);        //0xfd这个值给P3吧?
P1=DATA_7SEG[t_min/10]3=0xfd;delay(1);
for(j=0;j<121;j++)
{

uint i,j;
                                                                       //循环不完整呀
for(i=0;i
for(j=0;j<121;j++)

{;}}

}

P1=DATA_7SEG[hour/10]3=0xf7;delay(1);              //0xf7这个值给P几吧?
此帖出自单片机论坛

赞赏

1

查看全部赞赏

 
 
 

回复

196

帖子

0

TA的资源

五彩晶圆(中级)

8
 
呵呵,不是3,是P3;for循环有误,应该是
for(i=0;i      for(j=0;j<121;j++)
     {}
}

具体程序看附件

AT89C2051时钟1.rar

27.69 KB, 下载次数: 43

此帖出自单片机论坛
 
 
 

回复

2498

帖子

0

TA的资源

至上芯片

9
 

回复 楼主 youshx 的帖子

你应该给出出错提示才好吧!!!
此帖出自单片机论坛
 
个人签名我的邮箱gaoxiaoan123@163.com!回帖是一种美德!互相帮助,共同进步!
口头禅:生活在于创造机会,把握机会!
 
 

回复

2771

帖子

0

TA的资源

裸片初长成(中级)

10
 

to LS

错误提示
Build target 'Target 1'
assembling STARTUP.A51...
compiling AT892051.C...
AT892051.C(85): error C141: syntax error near '3'
AT892051.C(115): error C141: syntax error near '3'
AT892051.C(237): error C141: syntax error near 'for'
AT892051.C(243): error C141: syntax error near '}'
AT892051.C(456): error C141: syntax error near '3'
Target not created
此帖出自单片机论坛
 
 
 

回复

2771

帖子

0

TA的资源

裸片初长成(中级)

11
 

而且

LZ也知道具体在哪几行,就是不知道怎么改.
此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表