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

標(biāo)題: 這是定義的問(wèn)題嗎,用的c語(yǔ)言,怎么都改不對(duì) [打印本頁(yè)]

作者: mrj_142378    時(shí)間: 2025-1-7 21:36
標(biāo)題: 這是定義的問(wèn)題嗎,用的c語(yǔ)言,怎么都改不對(duì)


#include <reg51.h>

// 定義端口
sbit SNG = P2^0; // 南北綠燈
sbit SNY = P2^1; // 南北黃燈
sbit SNR = P2^2; // 南北紅燈
sbit EWG = P2^3; // 東西綠燈
sbit EWY = P2^4; // 東西黃燈
sbit EWR = P2^5; // 東西紅燈

// 數(shù)碼管顯示相關(guān)
uchar code SEG[4] = {0x01, 0x02, 0x04, 0x08}; // 數(shù)碼管位選
uchar code distab[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; // 數(shù)碼管顯示0~9
uint timeG, timeY, timeR; // 各燈顯示時(shí)間
uint state; // 狀態(tài)標(biāo)志

// 延時(shí)函數(shù)
void delay_ms(uint q)
{
    uint i, j;
    for (i = 0; i < q; i++)
        for (j = 0; j < 110; j++);
}

// 定時(shí)器0初始化
void Timer0Init(void)
{
    TMOD |= 0X01; // 定時(shí)器0模式1,16位定時(shí)器
    TH0 = 0XFC;   // 定時(shí)1ms
    TL0 = 0X18;
    EA = 1;       // 開(kāi)總中斷
    ET0 = 1;      // 開(kāi)定時(shí)器0中斷
    TR0 = 1;      // 啟動(dòng)定時(shí)器0
}

// 定時(shí)器0中斷服務(wù)程序
void Timer0() interrupt 1
{
    static uint count = 0; // 計(jì)數(shù)器,用于控制狀態(tài)轉(zhuǎn)換
    TH0 = 0XFC;   // 重裝初值
    TL0 = 0X18;
    count++;
    if (count >= 1000) // 每秒更新一次狀態(tài)
    {
        count = 0;
        switch (state)
        {
            case 0: // 南北綠燈,東西紅燈
                timeG--;
                if (timeG == 0)
                {
                    state = 1;
                    timeY = 3;
                }
                break;
            case 1: // 南北黃燈閃爍,東西紅燈
                if (timeY > 0)
                    timeY--;
                else
                {
                    state = 2;
                    timeR = 90;
                }
                break;
            case 2: // 南北紅燈,東西綠燈
                timeR--;
                if (timeR == 0)
                {
                    state = 3;
                    timeY = 3;
                }
                break;
            case 3: // 南北紅燈,東西黃燈閃爍
                if (timeY > 0)
                    timeY--;
                else
                {
                    state = 0;
                    timeG = 20;
                }
                break;
        }
    }

    // 數(shù)碼管顯示倒計(jì)時(shí)
    uchar displayDigit[4] = {0xFF, 0xFF, 0xFF, 0xFF}; // 初始化為全滅
    switch (state)
    {
        case 0:
            displayDigit[0] = distab[timeG / 10];
            displayDigit[1] = distab[timeG % 10];
            break;
        case 1:
            displayDigit[0] = distab[timeY / 10];
            displayDigit[1] = distab[timeY % 10];
            break;
        case 2:
            displayDigit[0] = distab[timeR / 10];
            displayDigit[1] = distab[timeR % 10];
            break;
        case 3:
            displayDigit[0] = distab[timeR / 10];
            displayDigit[1] = distab[timeR % 10];
            break;
    }
    for (uchar i = 0; i < 4; i++)
    {
        P1 = SEG[i];
        P0 = displayDigit[i];
        delay_ms(1);
    }
}

// 主函數(shù)
void main()
{
    Timer0Init(); // 定時(shí)器初始化
    timeG = 20;   // 初始時(shí)間設(shè)置
    state = 0;    // 初始狀態(tài)
    while (1)
    {
        // 主循環(huán)可以為空,因?yàn)樗胁僮鞫荚谥袛嘀型瓿?br />     }
}
顯示4.c(9): error C129: missing ';' before 'code'。
我搜到是沒(méi)有定義就在開(kāi)頭加了
#define uchar unsigned char;
#define uint unsigned int;
結(jié)果顯示4.c(109): error C202: 'P0': undefined identifier


作者: WL0123    時(shí)間: 2025-1-8 06:48
改這樣就可以通過(guò)編譯
  1. #include <reg51.h>
  2. #define uchar unsigned char//;
  3. #define uint unsigned int//;
  4. // 定義端口
  5. sbit SNG = P2^0; // 南北綠燈
  6. sbit SNY = P2^1; // 南北黃燈
  7. sbit SNR = P2^2; // 南北紅燈
  8. sbit EWG = P2^3; // 東西綠燈
  9. sbit EWY = P2^4; // 東西黃燈
  10. sbit EWR = P2^5; // 東西紅燈

  11. // 數(shù)碼管顯示相關(guān)
  12. uchar code SEG[4] = {0x01, 0x02, 0x04, 0x08}; // 數(shù)碼管位選
  13. uchar code distab[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; // 數(shù)碼管顯示0~9
  14. uint timeG, timeY, timeR; // 各燈顯示時(shí)間
  15. uint state; // 狀態(tài)標(biāo)志

  16. // 延時(shí)函數(shù)
  17. void delay_ms(uint q)
  18. {
  19.     uint i, j;
  20.     for (i = 0; i < q; i++)
  21.         for (j = 0; j < 110; j++);
  22. }

  23. // 定時(shí)器0初始化
  24. void Timer0Init(void)
  25. {
  26.     TMOD |= 0X01; // 定時(shí)器0模式1,16位定時(shí)器
  27.     TH0 = 0XFC;   // 定時(shí)1ms
  28.     TL0 = 0X18;
  29.     EA = 1;       // 開(kāi)總中斷
  30.     ET0 = 1;      // 開(kāi)定時(shí)器0中斷
  31.     TR0 = 1;      // 啟動(dòng)定時(shí)器0
  32. }

  33. // 定時(shí)器0中斷服務(wù)程序
  34. void Timer0() interrupt 1
  35. {
  36.     static uint count = 0; // 計(jì)數(shù)器,用于控制狀態(tài)轉(zhuǎn)換
  37.         uchar displayDigit[4] = {0xFF, 0xFF, 0xFF, 0xFF};
  38.         uchar i ;
  39.     TH0 = 0XFC;   // 重裝初值
  40.     TL0 = 0X18;
  41.     count++;
  42.     if (count >= 1000) // 每秒更新一次狀態(tài)
  43.     {
  44.         count = 0;
  45.         switch (state)
  46.         {
  47.             case 0: // 南北綠燈,東西紅燈
  48.                 timeG--;
  49.                 if (timeG == 0)
  50.                 {
  51.                     state = 1;
  52.                     timeY = 3;
  53.                 }
  54.                 break;
  55.             case 1: // 南北黃燈閃爍,東西紅燈
  56.                 if (timeY > 0)
  57.                     timeY--;
  58.                 else
  59.                 {
  60.                     state = 2;
  61.                     timeR = 90;
  62.                 }
  63.                 break;
  64.             case 2: // 南北紅燈,東西綠燈
  65.                 timeR--;
  66.                 if (timeR == 0)
  67.                 {
  68.                     state = 3;
  69.                     timeY = 3;
  70.                 }
  71.                 break;
  72.             case 3: // 南北紅燈,東西黃燈閃爍
  73.                 if (timeY > 0)
  74.                     timeY--;
  75.                 else
  76.                 {
  77.                     state = 0;
  78.                     timeG = 20;
  79.                 }
  80.                 break;
  81.         }
  82.     }

  83.     // 數(shù)碼管顯示倒計(jì)時(shí)
  84. //    uchar displayDigit[4] = {0xFF, 0xFF, 0xFF, 0xFF}; // 初始化為全滅
  85.     switch (state)
  86.     {
  87.         case 0:
  88.             displayDigit[0] = distab[timeG / 10];
  89.             displayDigit[1] = distab[timeG % 10];
  90.             break;
  91.         case 1:
  92.             displayDigit[0] = distab[timeY / 10];
  93.             displayDigit[1] = distab[timeY % 10];
  94.             break;
  95.         case 2:
  96.             displayDigit[0] = distab[timeR / 10];
  97.             displayDigit[1] = distab[timeR % 10];
  98.             break;
  99.         case 3:
  100.             displayDigit[0] = distab[timeR / 10];
  101.             displayDigit[1] = distab[timeR % 10];
  102.             break;
  103.     }
  104. //  for (uchar i = 0; i < 4; i++)
  105.     for (i = 0; i < 4; i++)
  106.     {
  107.         P1 = SEG[i];
  108.         P0 = displayDigit[i];
  109.         delay_ms(1);
  110.     }
  111. }

  112. // 主函數(shù)
  113. void main()
  114. {
  115.     Timer0Init(); // 定時(shí)器初始化
  116.     timeG = 20;   // 初始時(shí)間設(shè)置
  117.     state = 0;    // 初始狀態(tài)
  118.     while (1)
  119.     {
  120.         // 主循環(huán)可以為空,因?yàn)樗胁僮鞫荚谥袛嘀型瓿?br />
  121.     }
  122. }
復(fù)制代碼

作者: xiaobendan001    時(shí)間: 2025-1-8 08:20
#define uchar unsigned char;后面不能加分號(hào)
作者: declansang    時(shí)間: 2025-1-8 10:55
宏定義有問(wèn)題
作者: 明日之星8    時(shí)間: 2025-1-8 12:04
define不是C語(yǔ)言關(guān)鍵字,它是編譯器里面的,也不是一個(gè)語(yǔ)句,所以不能加分號(hào)。
類(lèi)似的還有好幾個(gè),都要注意。
作者: sadv    時(shí)間: 2025-1-9 15:49
#define uchar unsigned char//;
#define uint unsigned int//;
應(yīng)該寫(xiě)成
typedef  unsigned char uchar;
typedef  unsigned uint uint;
這里是因?yàn)槟愫竺娴拇a用了uchar,你是想把unsigned char類(lèi)型重新命名為uchar,所以要用typedef




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 精品少妇3p| 在线日韩欧美 | 夜夜草视频 | 天天操网站 | 国模一区二区三区 | 国产成人aⅴ | 国产精品99久久久久久久久 | 免费看黄色aaaaaa 片 | 亚洲综合在线视频 | 国产成人精品av在线观 | 国产三级视频在线播放 | 91综合在线 | 国产在线小视频 | 欧美三级免费 | 中文字幕在线免费观看 | 深夜福利网 | 在线日韩一区 | 色婷婷免费视频 | 精品三级在线观看 | 91精品久久久久久久久 | 中文字幕在线一区二区三区 | 国产精品久久一区二区三区 | 久久av在线 | 丁香六月综合 | 欧美黑人一区二区三区 | 亚洲手机在线 | 天天爽夜夜爽夜夜爽精品视频 | 日产毛片 | 成人在线免费视频观看 | 天天躁日日躁狠狠躁伊人 | 国产精品天堂 | 亚洲天堂免费视频 | 黄色小说视频网站 | 少妇视频网站 | 国产一区二区不卡 | 国产日产av | 一本色道久久加勒比精品 | 国产福利91 | 日韩色在线 | 一区二区三区免费 | 日韩精品在线观看视频 |