找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2378|回復(fù): 12
收起左側(cè)

51單片機(jī)新手寫讀秒程序出錯(cuò),有大佬給看看么?

[復(fù)制鏈接]
ID:1000104 發(fā)表于 2022-1-5 20:10 | 顯示全部樓層 |閱讀模式
  1. #include <REGX52.H>
  2. #define uchar unsigned char
  3. #define  shu P0
  4. unsigned char code a[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f};

  5. uchar j,k;
  6. void delay(uchar i)
  7. {
  8.   for(j=i;j>0;j--)
  9.     for(k=125;k>0;k--);
  10. }
  11. void xian(uchar shi,uchar ge)
  12. {
  13.         P2=0xE7;
  14.         shu=a[shi];
  15.         delay(5);
  16.         shu=0x00;
  17.         P2=0xe3;
  18.         shu=a[ge];
  19.         delay(5);
  20. }

  21. uchar i=0,shi1=0,ge1=0,ji=0;
  22. void main()
  23. {
  24.         i=0;
  25.         while(i<60)
  26.         {
  27.                 i++;
  28.                 shi1=i/10;
  29.                 ge1=i%10;
  30.                 while(ji<50)
  31.                 {        
  32.                         ji++;
  33.                         xian(shi1,ge1);        
  34.                 }        
  35.         }
  36. }
復(fù)制代碼
這個(gè)程序?qū)懙目偸强ㄔ?1就不進(jìn)行了。不知道哪里錯(cuò)了有大佬看看嗎



回復(fù)

使用道具 舉報(bào)

ID:1000104 發(fā)表于 2022-1-5 20:32 | 顯示全部樓層
                while(ji<50)
                {      
                        ji++;
                        xian(shi1,ge1);      
                }   
是不是這段出毛病了,我剛剛把這個(gè)循環(huán)去掉只保留
xian(shi1,ge1);
是能運(yùn)行的不過(guò)太快了
回復(fù)

使用道具 舉報(bào)

ID:301191 發(fā)表于 2022-1-5 22:19 | 顯示全部樓層
頂一下
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2022-1-5 22:59 | 顯示全部樓層
本帖最后由 lkc8210 于 2022-1-6 09:06 編輯

ji沒有清零
在29/30行之間
插一句 ji=0;
回復(fù)

使用道具 舉報(bào)

ID:908826 發(fā)表于 2022-1-6 08:11 | 顯示全部樓層
函數(shù)命名的時(shí)候,為了增強(qiáng)可讀性最好用英文吧,注意一下這個(gè)習(xí)慣
回復(fù)

使用道具 舉報(bào)

ID:584814 發(fā)表于 2022-1-6 08:22 | 顯示全部樓層
while(ji<50)
這句是要顯示50次后再顯示下一個(gè),去掉后只顯一次了;
delay(5);
去掉后太快了就調(diào)這個(gè),以前是5*50=250你感覺卡死,現(xiàn)在感覺快就調(diào)到10或適合的數(shù)。

建議先畫框圖再寫程序
回復(fù)

使用道具 舉報(bào)

ID:8222 發(fā)表于 2022-1-6 10:24 | 顯示全部樓層
ji沒有聲明,也許是筆誤。
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2022-1-6 11:46 | 顯示全部樓層

#include <REG51.H>
#define uchar unsigned char
#define  shu P0
unsigned char code a[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f};
uchar i,j;
bit k=0;

void xian(uchar t)
{
        shu=0x00;
        if(k)
        {       
                P2=0xfe;
                shu=a[t/10];
                k=~k;
        }
        else
        {
                P2=0xfd;
                shu=a[t%10];
                k=~k;
        }
}

void main()
{
        TMOD = 0x01;
        TH0 = 0xEC;
        TL0 = 0x78;
        TR0 = 1;
        while(1)
        {
                if(TF0)
                {
                        TF0 = 0;
                        TH0 = 0xEC;
                        TL0 = 0x78;
                        if(++i>=200)
                        {
                                i=0;
                                j=++j%100;
                        }
                        xian(j);
                }
        }
}
回復(fù)

使用道具 舉報(bào)

ID:1000104 發(fā)表于 2022-1-9 19:21 | 顯示全部樓層
lkc8210 發(fā)表于 2022-1-5 22:59
ji沒有清零
在29/30行之間
插一句 ji=0;

寫寫帶=大佬,就是這個(gè)問(wèn)題。解決了
回復(fù)

使用道具 舉報(bào)

ID:1000104 發(fā)表于 2022-1-9 19:23 | 顯示全部樓層
溫xyz 發(fā)表于 2022-1-6 10:24
ji沒有聲明,也許是筆誤。

聲明了的,剛學(xué)寫的不規(guī)范,用3樓的方法解決了
回復(fù)

使用道具 舉報(bào)

ID:1000104 發(fā)表于 2022-1-9 19:30 | 顯示全部樓層
wulin 發(fā)表于 2022-1-6 11:46
#include
#define uchar unsigned char
#define  shu P0

我已經(jīng)學(xué)到定時(shí)器了,大佬的代碼基本看得懂,
大佬這個(gè)顯示代碼寫法第一次見,學(xué)習(xí)了。
        if(k)
        {      
                P2=0xfe;
                shu=a[t/10];
                k=~k;
        }
        else
        {
                P2=0xfd;
                shu=a[t%10];
                k=~k;
        }
回復(fù)

使用道具 舉報(bào)

ID:1000104 發(fā)表于 2022-1-9 19:31 | 顯示全部樓層
13205495918 發(fā)表于 2022-1-6 08:11
函數(shù)命名的時(shí)候,為了增強(qiáng)可讀性最好用英文吧,注意一下這個(gè)習(xí)慣

嗯嗯,我英文不好。盡量
回復(fù)

使用道具 舉報(bào)

ID:1000104 發(fā)表于 2022-1-9 19:32 | 顯示全部樓層

程序框圖是高中學(xué)的那個(gè)么,我試試看把
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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