找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2057|回复: 2
收起左侧

单片机编译错误error C267: 'write_data': requires ANSI-style prototype怎么改啊

[复制链接]
ID:1039024 发表于 2022-7-10 12:19 来自手机 | 显示全部楼层 |阅读模式
  1. #include<reg51.h>
  2. #include<stdio.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit DQ=P3^3;
  6. //sbit D1=P1^1;
  7. //sbit D2=P1^2;
  8. //sbit dula=P2^6;
  9. //sbit wela=P2^7;
  10. uint t;
  11. uint temp;
  12. uint warn_h1=300;
  13. uint warn_l1=250;
  14. sbit lcdrs=P2^0;
  15. sbit lcden=P2^1;
  16. uchar num;
  17. uchar code table2[]="Temperature:";
  18. uchar code disp[]="9876543210";
  19. void delay(uint h)
  20. {
  21. uint a,b;
  22. for(a=h;a>0;a--)
  23. for(b=110;b>0;b--);
  24. }
  25. void write_com(unsigned char com)
  26. {  
  27.    lcdrs=0;
  28.    lcden=0;
  29.    P0=com;
  30.    delay(10);
  31.    lcden=1;
  32.    delay(10);
  33.    lcden=0;
  34.   }
  35. void write_date(unsigned char date)
  36. {  
  37.    lcdrs=1;
  38.    lcden=0;
  39.    P0=date;
  40.    delay(600);
  41.    lcden=1;
  42.    delay(600);
  43.    lcden=0;
  44. }
  45. void init()
  46. {
  47.   write_com(0x38);
  48.   write_com(0x01);
  49.   write_com(0x06);
  50.   write_com(0x0c);
  51. }
  52. void dsreset(void)
  53. {
  54. uint n;
  55. DQ=0;
  56. n=110;
  57. while(n>0) n--;
  58. DQ=1;
  59. n=5;
  60. while(n>0) n--;
  61. }
  62. bit tempreadbit(void)
  63. {
  64. uint n;
  65. bit dat;
  66. DQ=0;n++;
  67. DQ=1;n++;
  68. dat=DQ;
  69. n=8;while(n>0)n--;
  70. return(dat);
  71. }
  72. uchar tempread(void)
  73. {
  74. uchar n,j,dat;
  75. dat=0;
  76. for(n=1;n<=8;n++)
  77. {
  78. j=tempreadbit();
  79. dat=(j<<7)|(dat>>1);
  80. }
  81. return(dat);
  82.   }void tempwritebyte(uchar dat){
  83. uint n;
  84. uchar j;
  85. bit tests;
  86. for(j=1;j<=8;j++)
  87. {
  88. tests=dat&0x01;
  89. dat=dat>>1;
  90. if(tests)//write1
  91. {
  92. DQ=0;
  93. n++;n++;
  94. DQ=1;
  95. n=8;while(n>0)n--;
  96. }
  97. else
  98. {
  99. DQ=0;//write0
  100. n=8;while(n>0)n--;
  101. DQ=1;
  102. n++;n++;
  103. }
  104. }
  105. }
  106. void tempchange(void)
  107. {
  108. dsreset();
  109. delay(2);
  110. tempwritebyte(0xcc);
  111. tempwritebyte(0x44);
  112. }
  113. uint get_temp()
  114. {
  115. float tt;
  116. uchar e,r;
  117. dsreset();
  118. delay(2);
  119. tempwritebyte(0xcc);
  120. tempwritebyte(0xbe);
  121. e=tempread();
  122. r=tempread();
  123. temp=r;
  124. temp<<=8;
  125. temp=temp|e;
  126. tt=temp*0.0625;
  127. temp=tt*10+0.5;
  128. tt=tt+0.05;
  129. return temp;
  130. }
  131. void display_tempt(uint date)
  132. {
  133. uchar  a,b,c;
  134. a=date/100;
  135. b=date%100/10;
  136. c=date%100%10;
  137. write_com(0xc0+6);
  138. write_data(disp[a]);
  139. write_data(disp[b]);
  140. write_data('.');
  141. write_data(disp[c]);
  142. t=a*100+b*10+c;
  143. if(t<warn_l1)
  144. {
  145. //LED2=0;
  146. P1=0xfe;
  147. }
  148. if(t>=warn_l1&&t<=warn_h1)
  149. {
  150. P1=0;
  151. }
  152. if(t>warn_h1)
  153. {
  154. //LED1=0;
  155. P1=0xfd;
  156. }
  157. }
  158. void main()
  159. {
  160. uchar n;
  161. init();
  162. write_com(0x80+0x02);
  163. for(num=0;num<12;num++)
  164. {
  165. write_data(table2[num]);
  166. delay(6);
  167. }
  168. while(1)
  169. {
  170. tempchange();
  171. for(n=0;n<10;n++)
  172. {
  173. display_tempt(get_temp());
  174. }
  175. }
  176. }
复制代码
回复

使用道具 举报

ID:213173 发表于 2022-7-10 15:57 | 显示全部楼层
函数名void write_date(unsigned char date)与write_data(disp[a]);不符。
回复

使用道具 举报

ID:1023753 发表于 2022-7-11 08:37 | 显示全部楼层
函数定义参数类型与调用函数参数类型不一致
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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