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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6646|回復: 16
打印 上一主題 下一主題
收起左側

error C141: syntax error near 'sbit', expected 'hdata'

[復制鏈接]
跳轉到指定樓層
樓主
ID:1051543 發表于 2022-11-11 20:36 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
STC8實現定時器T060s倒計時代碼求改

#include <STC8H.H>
void delay_ms(void)

/*74HC245*/
#define OUTPUT P0


sbit A0 = P2^2;
sbit A1 = P2^3;
sbit A2 = P2^4;

unsigned char second = 60;
unsigned char count = 200;
char code LED_7SEG_CAT[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
char code LED[10]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};   

void Timer0Init(void)               
{
        AUXR &= 0X7F;         
        TMOD &= 0XF0;         
        TL0 = 0XF0;                 
        TH0 = 0XD8;                 
        TF0 = 0;                 
        TR0 = 1;                 
}

void main(void)
{

        P0M0 = 0X00;
        P0M1 = 0X00;
        P2M0 = 0X00;
        P2M1 = 0XE3;
        EA = 1;         
        ET0 = 1;               

        Timer0Init();        
        while(1)
        {
                A0 = 1;
                A1 = 0;
                A2 = 0;
                OUTPUT = LED_7SEG_CAT[second/10];
                Delay_ms(5);
               
                A0 = 0;
                A1 = 0;
                A2 = 0;
                OUTPUT = LED_7SEG_CAT[second%10];
                Delay_ms(5);        
        }        
}

void Timer0() interrupt 1  
{
        count--;
        if(count == 0)
        {
                count = 200;
                second--;
                if(second == 0)
                {
                        second = 60;
                }
        }
}


STC8實現定時器T060s倒計時顯示這個錯誤main.c(8): error C141: syntax error near 'sbit', expected 'hdata'
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:384109 發表于 2022-11-11 20:50 | 只看該作者
void delay_ms(void),末尾少了分號
回復

使用道具 舉報

板凳
ID:81249 發表于 2022-11-11 21:30 | 只看該作者
void delay_ms(void),這個后面加一個英文的分號
回復

使用道具 舉報

地板
ID:81249 發表于 2022-11-11 21:32 | 只看該作者
錯誤C141:“sbit”附近的語法錯誤,應為“hdata”
回復

使用道具 舉報

5#
ID:399179 發表于 2022-11-11 21:49 來自觸屏版 | 只看該作者
sbit上邊的函數后沒加分號
回復

使用道具 舉報

6#
ID:1034262 發表于 2022-11-11 22:26 | 只看該作者
sbit后面的A0 A1 A2換個,名字看看。
回復

使用道具 舉報

7#
ID:1051543 發表于 2022-11-12 13:14 來自觸屏版 | 只看該作者
人中狼 發表于 2022-11-11 20:50
void delay_ms(void),末尾少了分號

加了分號后還是有錯誤
main.c(44): warning C206: 'Delay_ms': missing function-prototype                                            main.c(44): error C267: 'Delay_ms': requires ANSI-style prototype
回復

使用道具 舉報

8#
ID:1051543 發表于 2022-11-12 13:14 來自觸屏版 | 只看該作者
豆子十三 發表于 2022-11-11 21:30
void delay_ms(void),這個后面加一個英文的分號

加了分號后還是有錯誤
main.c(44): warning C206: 'Delay_ms': missing function-prototype                                            main.c(44): error C267: 'Delay_ms': requires ANSI-style prototype
回復

使用道具 舉報

9#
ID:81249 發表于 2022-11-12 13:28 | 只看該作者
3627277 發表于 2022-11-12 13:14
加了分號后還是有錯誤
main.c(44): warning C206: 'Delay_ms': missing function-prototype             ...

前面聲明了延時函數,但是就沒有寫這個函數
回復

使用道具 舉報

10#
ID:624769 發表于 2022-11-12 14:01 | 只看該作者
你 void delay_ms(void) 聲明的無參函數,

調用  Delay_ms(5);  卻傳了參。 不報錯才奇怪了。
回復

使用道具 舉報

11#
ID:1051543 發表于 2022-11-12 14:25 來自觸屏版 | 只看該作者
188610329 發表于 2022-11-12 14:01
你 void delay_ms(void) 聲明的無參函數,

調用  Delay_ms(5);  卻傳了參。 不報錯才奇怪了。

那要怎么改呢T_T
回復

使用道具 舉報

12#
ID:1051543 發表于 2022-11-12 14:27 來自觸屏版 | 只看該作者
豆子十三 發表于 2022-11-12 13:28
前面聲明了延時函數,但是就沒有寫這個函數

要怎么改才對呀
回復

使用道具 舉報

13#
ID:155507 發表于 2022-11-12 14:42 | 只看該作者

給你改了一下試試。

  1. #include <STC8H.H>

  2. void Delay_ms(unsigned int ms);

  3. /*74HC245*/
  4. #define OUTPUT P0


  5. sbit A0 = P2^2;
  6. sbit A1 = P2^3;
  7. sbit A2 = P2^4;

  8. unsigned char second = 60;
  9. unsigned char count = 200;
  10. char code LED_7SEG_CAT[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
  11. char code LED[10]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};   

  12. void Delay_ms(unsigned int ms)                //@12.000MHz
  13. {
  14.         unsigned char i, j;
  15.     do
  16.         {
  17.                 i = 16;
  18.                 j = 147;
  19.                 do
  20.                 {
  21.                         while (--j);
  22.                 } while (--i);
  23.         } while (--ms);
  24. }


  25. void Timer0Init(void)               
  26. {
  27.         AUXR &= 0X7F;         
  28.         TMOD &= 0XF0;         
  29.         TL0 = 0XF0;                 
  30.         TH0 = 0XD8;                 
  31.         TF0 = 0;                 
  32.         TR0 = 1;                 
  33. }

  34. void main(void)
  35. {

  36.         P0M0 = 0X00;
  37.         P0M1 = 0X00;
  38.         P2M0 = 0X00;
  39.         P2M1 = 0XE3;
  40.         EA = 1;         
  41.         ET0 = 1;               

  42.         Timer0Init();        
  43.         while(1)
  44.         {
  45.                 A0 = 1;
  46.                 A1 = 0;
  47.                 A2 = 0;
  48.                 OUTPUT = LED_7SEG_CAT[second/10];
  49.                 Delay_ms(5);
  50.                
  51.                 A0 = 0;
  52.                 A1 = 0;
  53.                 A2 = 0;
  54.                 OUTPUT = LED_7SEG_CAT[second%10];
  55.                 Delay_ms(5);        
  56.         }        
  57. }

  58. void Timer0() interrupt 1  
  59. {
  60.         count--;
  61.         if(count == 0)
  62.         {
  63.                 count = 200;
  64.                 second--;
  65.                 if(second == 0)
  66.                 {
  67.                         second = 60;
  68.                 }
  69.         }
  70. }

復制代碼
回復

使用道具 舉報

14#
ID:77589 發表于 2022-11-14 14:15 | 只看該作者
angmall 發表于 2022-11-12 14:42
給你改了一下試試。

正確!
原來不僅預聲明函數沒有傳入參數,而且開頭還是d,
調用的時候傳入了參數,而且開頭還是D。
所以編譯器就認為調用的函數沒有預聲明。
回復

使用道具 舉報

15#
ID:34149 發表于 2022-11-14 14:57 | 只看該作者
聲明錯誤!
函數調用錯誤!
語法錯誤!
回復

使用道具 舉報

16#
ID:1051543 發表于 2022-11-15 13:01 來自觸屏版 | 只看該作者
angmall 發表于 2022-11-12 14:42
給你改了一下試試。

謝謝你,編譯沒有錯誤了,但是燈不亮T_T
回復

使用道具 舉報

17#
ID:161164 發表于 2022-11-15 13:28 | 只看該作者
  1. void main()
  2. {
  3.         A0 = 0;
  4.         A1 = 0;
  5.         A2 = 0;
  6.         OUTPUT = 0xC0;
  7.         while(1);
  8. }
復制代碼


如果這樣都不亮,就要檢查接線了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天堂在线www | 免费看片国产 | 国产一区三区在线 | 国内久久| 亚洲精品高清视频 | 免费一级淫片aaa片毛片a级 | 九九热免费看 | 天天久久 | 日日操操 | 亚洲综合中文字幕在线观看 | 国产一区二区在线看 | 国产精品毛片一区二区在线看 | 午夜影院视频在线观看 | 亚洲精品一区二 | 久热国产在线 | 99re热这里只有精品视频 | 欧美精品一区三区 | 成人在线中文字幕 | 欧美国产日韩在线观看成人 | 天天舔天天 | 久久久久久九九九九九九 | 国产精品美女久久久久久久久久久 | 色综合一区二区 | 久久av一区二区三区 | 亚洲一区电影 | 91精品久久久久久久久 | 亚洲视频1区 | 国产女人叫床高潮大片免费 | 无码日韩精品一区二区免费 | 四虎精品在线 | 欧美日韩在线成人 | 日韩伦理一区二区 | 国产精品视频网站 | 日韩久久久久 | 欧美一级免费 | 久久精品一区二区三区四区 | 免费黄篇| 国产精品jizz在线观看老狼 | 国产不卡视频在线 | 九九热精品视频在线观看 | 国产高清视频在线观看 |