找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 3098|回復(fù): 16
打印 上一主題 下一主題
收起左側(cè)

求助各位大神,單片機(jī)代碼出什么錯(cuò)了

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:954926 發(fā)表于 2021-7-27 15:50 來自觸屏版 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
#include<reg52.h>
#define uint unsigned int;
#define uchar unsigned char;
uchar tt,num,ge,shi,bai;
sbit wei=P2^7;
sbit zi=P2^6;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void init();
void xianshi(uchar bai,shi,ge);
void delay(uint z);
void main()
{
    init();
          while(1)
                {
                    if(tt==20)
                                {
                                    tt=0;
                                          num++;
                                          if(num==100)
                                                {
                                                    num=0;
                                                }
                                    bai=num/100;
                                                shi=num%100/10;
                                                ge=num%10;
                                }
                                xianshi(uchar bai,shi,ge);
                }
}

void delay(uint z)
{
    uint x,y;
          for(x=110;x>0;x--)
              for(y=z;y>0;y--);
}

void init()
{
    num=0;
          TMOD=0x01;
          TH0=(65535-50000)/256;
          TL0=(65535-50000)%256;
          EA=1;
          ET0=1;
          TR0=1;
}

void xianshi(uchar bai,shi,ge)
{
    zi=1;
          P0=table[bai];
          zi=0;
          P0=0xff;
          wei=1;
          P0=0xfe;
          wei=0;
          delay(1);
        
          zi=1;
          P0=table[shi];
          zi=0;
          P0=0xff;
          wei=1;
          P0=0xfd;
          wei=0;
          delay(1);
        
          zi=1;
          P0=table[ge];
          zi=0;
          P0=0xff;
          wei=1;
          P0=0xfb;
          wei=0;
          delay(1);
}

void timer0() interrupt 1
{
          TH0=(65535-50000)/256;
          TL0=(65535-50000)%256;
          tt++;
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

17#
ID:954926 發(fā)表于 2021-7-28 12:51 來自觸屏版 | 只看該作者
感謝各位,我自己已經(jīng)解決了
回復(fù)

使用道具 舉報(bào)

16#
ID:954926 發(fā)表于 2021-7-28 12:45 來自觸屏版 | 只看該作者
Y_G_G 發(fā)表于 2021-7-27 21:24
我?guī)湍愀暮昧?自己找一下有什么地方不一樣的
這都是C語言的基礎(chǔ)知識(shí),我也是才開始幾天的C語言,一般這種問 ...

還是錯(cuò)誤的哦
回復(fù)

使用道具 舉報(bào)

15#
ID:954926 發(fā)表于 2021-7-28 12:44 來自觸屏版 | 只看該作者
開心就好hhhh 發(fā)表于 2021-7-28 11:22
你這個(gè)代碼燒進(jìn)去試了嗎,正確嗎?我怎么看著有點(diǎn)奇怪

還是錯(cuò)誤的
回復(fù)

使用道具 舉報(bào)

14#
ID:386001 發(fā)表于 2021-7-28 11:56 | 只看該作者
這個(gè)程序,目前可能語法上沒錯(cuò)誤了,功能還是錯(cuò)誤的,后面跑出來的結(jié)果應(yīng)該還是錯(cuò)誤的,形參定義有問題
回復(fù)

使用道具 舉報(bào)

13#
ID:745085 發(fā)表于 2021-7-28 11:45 | 只看該作者
  1. #include<reg52.h>

  2. #define uint unsigned int;
  3. #define uchar unsigned char;

  4. uchar tt,num,ge,shi,bai;
  5. sbit wei=P2^7;
  6. sbit zi=P2^6;

  7. uchar code table[]={
  8. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,
  9. 0x39,0x5e,0x79,0x71};

  10. void init();
  11. void xianshi(uchar bai,uchar shi,uchar ge);
  12. void delay(uint z);

  13. void main()
  14. {
  15.           init();
  16.           while(1)
  17.           {
  18.                     if(tt==20)
  19.                      {
  20.                               tt=0;
  21.                               num++;
  22.                               if(num==100)
  23.                              {
  24.                                   num=0;
  25.                              }
  26.                              bai=num/100;
  27.                              shi=num%100/10;
  28.                              ge=num%10;
  29.                      }
  30.                     xianshi(bai,shi,ge);
  31.            }
  32. }

  33. void delay(uint z)
  34. {
  35.     uint x,y;
  36.     for(x=110;x>0;x--)
  37.         for(y=z;y>0;y--);
  38. }

  39. void init()
  40. {
  41.           num=0;
  42.           TMOD=0x01;
  43.           TH0=(65535-50000)/256;
  44.           TL0=(65535-50000)%256;
  45.           EA=1;
  46.           ET0=1;
  47.           TR0=1;
  48. }

  49. void xianshi(uchar bai,uchar shi,uchar ge)
  50. {
  51.           zi=1;
  52.           P0=table[bai];
  53.           zi=0;
  54.           P0=0xff;
  55.           wei=1;
  56.           P0=0xfe;
  57.           wei=0;
  58.           delay(1);
  59.         
  60.           zi=1;
  61.           P0=table[shi];
  62.           zi=0;
  63.           P0=0xff;
  64.           wei=1;
  65.           P0=0xfd;
  66.           wei=0;
  67.           delay(1);
  68.         
  69.           zi=1;
  70.           P0=table[ge];
  71.           zi=0;
  72.           P0=0xff;
  73.           wei=1;
  74.           P0=0xfb;
  75.           wei=0;
  76.           delay(1);
  77. }

  78. void timer0() interrupt 1
  79. {
  80.           TH0=(65535-50000)/256;
  81.           TL0=(65535-50000)%256;
  82.           tt++;
  83. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

12#
ID:745085 發(fā)表于 2021-7-28 11:39 | 只看該作者
開心就好hhhh 發(fā)表于 2021-7-28 11:22
你這個(gè)代碼燒進(jìn)去試了嗎,正確嗎?我怎么看著有點(diǎn)奇怪

我覺得還是會(huì)報(bào)錯(cuò)
回復(fù)

使用道具 舉報(bào)

11#
ID:934353 發(fā)表于 2021-7-28 11:22 | 只看該作者

你這個(gè)代碼燒進(jìn)去試了嗎,正確嗎?我怎么看著有點(diǎn)奇怪
回復(fù)

使用道具 舉報(bào)

10#
ID:954926 發(fā)表于 2021-7-28 10:04 來自觸屏版 | 只看該作者
Y_G_G 發(fā)表于 2021-7-27 21:24
我?guī)湍愀暮昧?自己找一下有什么地方不一樣的
這都是C語言的基礎(chǔ)知識(shí),我也是才開始幾天的C語言,一般這種問 ...

受教了
回復(fù)

使用道具 舉報(bào)

9#
ID:161164 發(fā)表于 2021-7-27 22:47 | 只看該作者
不是回答了你了嗎?
又開新貼子問同一個(gè)問題?
不要用#define
#define uint unsigned int;
#define uchar unsigned char;
改用 typedef
typedef unsigned int uint;
typedef unsigned char uchar;
回復(fù)

使用道具 舉報(bào)

8#
ID:954926 發(fā)表于 2021-7-27 22:05 來自觸屏版 | 只看該作者
51heiqwer 發(fā)表于 2021-7-27 21:33
xianshi(uchar bai,shi,ge);
這個(gè)函數(shù)你還帶 uchar  干嘛  ,又不是聲明

請問是上中下哪一個(gè)呢
回復(fù)

使用道具 舉報(bào)

7#
ID:155507 發(fā)表于 2021-7-27 21:48 | 只看該作者
#define 是宏定義 不用加分號(hào)
typedef  是類型重定義 得加分號(hào)

你可以用
#define uint unsigned int     //不要添加分號(hào)
#define uchar unsigned char   //不要添加分號(hào)
改用 typedef
typedef unsigned int uint;    //要添加分號(hào)
typedef unsigned char uchar;  //要添加分號(hào)


回復(fù)

使用道具 舉報(bào)

6#
ID:956921 發(fā)表于 2021-7-27 21:33 | 只看該作者
xianshi(uchar bai,shi,ge);
這個(gè)函數(shù)你還帶 uchar  干嘛  ,又不是聲明
回復(fù)

使用道具 舉報(bào)

5#
ID:401564 發(fā)表于 2021-7-27 21:24 | 只看該作者
我?guī)湍愀暮昧?自己找一下有什么地方不一樣的
這都是C語言的基礎(chǔ)知識(shí),我也是才開始幾天的C語言,一般這種問題都是可以自己找到答案的
自己想盡腦子的去解決一個(gè)問題,那么你對這個(gè)問題的印象肯定是深刻的,對于自己的學(xué)習(xí)也有好處
網(wǎng)上"拿來主義"倒是快,估計(jì)下回還是會(huì)犯同樣的錯(cuò)誤
我就不告訴你哪里了,你自己找找
還有,編程要養(yǎng)成一個(gè)有注釋的習(xí)慣,每個(gè)人寫程序的寫法都不一樣,你倒是看明白,別人不一定能看明白的

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar tt,num,ge,shi,bai;
sbit wei=P2^7;
sbit zi=P2^6;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void init();
void xianshi(uchar bai,shi,ge);
void delay(uint z);
void main()
{                                                       
    init();
          while(1)
                {
                    if(tt==20)
                                {
                                    tt=0;
                                          num++;
                                          if(num==100)
                                                {
                                                    num=0;
                                                }
                                    bai=num/100;
                                                shi=num%100/10;
                                                ge=num%10;
                                }
                                xianshi(bai,shi,ge);
                }
}

void delay(uint z)
{
    uint x,y;
          for(x=110;x>0;x--)
              for(y=z;y>0;y--);
}

void init()
{
    num=0;
          TMOD=0x01;
          TH0=(65535-50000)/256;
          TL0=(65535-50000)%256;
          EA=1;
          ET0=1;
          TR0=1;
}

void xianshi(uchar bai,shi,ge)
{
    zi=1;
          P0=table[bai];
          zi=0;
          P0=0xff;
          wei=1;
          P0=0xfe;
          wei=0;
          delay(1);
        
          zi=1;
          P0=table[shi];
          zi=0;
          P0=0xff;
          wei=1;
          P0=0xfd;
          wei=0;
          delay(1);
        
          zi=1;
          P0=table[ge];
          zi=0;
          P0=0xff;
          wei=1;
          P0=0xfb;
          wei=0;
          delay(1);
}

void timer0() interrupt 1
{
          TH0=(65535-50000)/256;
          TL0=(65535-50000)%256;
          tt++;
}
回復(fù)

使用道具 舉報(bào)

地板
ID:476415 發(fā)表于 2021-7-27 20:05 來自觸屏版 | 只看該作者
TH0之類能手工計(jì)算的,先算好。
回復(fù)

使用道具 舉報(bào)

板凳
ID:954926 發(fā)表于 2021-7-27 19:20 來自觸屏版 | 只看該作者
錯(cuò)誤如下

16273847855647564644268576528796.jpg (1.47 MB, 下載次數(shù): 54)

16273847855647564644268576528796.jpg
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2021-7-27 17:24 | 只看該作者
應(yīng)該要把編譯錯(cuò)誤的信息也上圖,什么錯(cuò)誤 定位在哪一行,大家如果這樣肉眼直接看,效率太低了
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表