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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1501|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

為什么下面的單片機(jī)代碼運(yùn)行出來(lái),P0口輸出的數(shù)據(jù)并不是0,1,2,3…這樣循序增加的?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:893526 發(fā)表于 2021-3-18 18:45 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
問(wèn):為什么下面的代碼運(yùn)行出來(lái) p0口輸出的數(shù)據(jù)并不是0,1,2,3……這樣循序增加的,而且我分明限制了c不會(huì)大于9,但是最后數(shù)碼管顯示出來(lái)的還有超過(guò)9的數(shù),就像是A、E什么的。

單片機(jī)源程序如下:
#include <reg51.h>
void csh()                    
        {
        SM0=0;                     
        SM1=1;
        REN=1;                     
        TI=0;                        
        RI=0;                        
        PCON=0;                    
        TH1=0xF3;                    
        TL1=0XF3;                    
        TMOD=0X20;                  
        EA=1;                     
        ET1=0;                     
        ES=1;                     
        TR1=1;                     
        }

void main()                    
        {
        int i,j;
        char c=0;                    
        csh();                     
        while(1)                    
                {
                ES=0;                     
                TI=0;                     
                P0=c;                    
                SBUF=c;                  
                while(!TI)               
                ;
                TI=0;                       
                ES=1;                    
                for(j=0;j<50;j++)        
                for(i=0;i<5000;i++)
                ;
                c++;                       
                if (c>9)                  
                c=0;
               
                }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:89515 發(fā)表于 2021-3-19 01:52 來(lái)自手機(jī) | 只看該作者
顯示程序在哪里?難道數(shù)碼管是靜態(tài)顯示!
回復(fù)

使用道具 舉報(bào)

板凳
ID:893526 發(fā)表于 2021-3-19 06:46 來(lái)自手機(jī) | 只看該作者
動(dòng)態(tài),數(shù)碼管連在p0口
回復(fù)

使用道具 舉報(bào)

地板
ID:893526 發(fā)表于 2021-3-19 07:25 來(lái)自手機(jī) | 只看該作者
mengzhixinheng 發(fā)表于 2021-3-19 01:52
顯示程序在哪里?難道數(shù)碼管是靜態(tài)顯示!

動(dòng)態(tài);
p0口連接數(shù)碼管。
回復(fù)

使用道具 舉報(bào)

5#
ID:814525 發(fā)表于 2021-3-19 08:43 | 只看該作者
看樓主程序應(yīng)該是P0直接驅(qū)動(dòng)共陰數(shù)碼管。而數(shù)碼管是要用顯示代碼來(lái)轉(zhuǎn)換顯示,如
/********************共陰數(shù)碼管代碼*******************/
u8 code tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};        //0--F

要顯示就寫(xiě)為:
P0=tab[c];  
回復(fù)

使用道具 舉報(bào)

6#
ID:89515 發(fā)表于 2021-3-19 09:35 來(lái)自手機(jī) | 只看該作者
1793332955 發(fā)表于 2021-3-19 07:25
動(dòng)態(tài);
p0口連接數(shù)碼管。

段數(shù)據(jù),位數(shù)據(jù)都不見(jiàn)
回復(fù)

使用道具 舉報(bào)

7#
ID:213173 發(fā)表于 2021-3-19 13:39 | 只看該作者
P0=c;只能輸出二進(jìn)制數(shù),并不能通過(guò)數(shù)碼管顯示數(shù)字而是亂碼,需要把數(shù)轉(zhuǎn)換為筆段碼。
  1. #include <reg51.h>
  2. unsigned char code table[]={//共陰數(shù)碼管段碼"0~f-."
  3.                 0x3f,0x06,0x5b,0x4f,
  4.                 0x66,0x6d,0x7d,0x07,
  5.                 0x7f,0x6f,0x77,0x7c,
  6.                 0x39,0x5e,0x79,0x71,0x40,0x80};
  7. void csh()                    
  8. {
  9.         SM0=0;
  10.         SM1=1;
  11. //        REN=1;
  12. //        TI=0;
  13. //        RI=0;
  14. //        PCON=0;
  15.         TH1=0xF3;
  16.         TL1=0XF3;
  17.         TMOD=0X20;                  
  18. //        EA=1;
  19. //        ET1=0;
  20. //        ES=1;
  21.         TR1=1;
  22. }

  23. void main()
  24. {
  25.         int i,j;
  26.         char c=0;
  27.         csh();
  28.         while(1)
  29.         {
  30. //                ES=0;
  31. //                TI=0;
  32. //                P0=c;
  33.                 P0=table[c];//在此插入數(shù)碼管段碼
  34.                 SBUF=c;
  35.                 while(!TI);
  36.                 TI=0;
  37. //                ES=1;
  38.                 for(j=0;j<50;j++)
  39.                 for(i=0;i<5000;i++);
  40.                 c++;
  41.                 if (c>9)
  42.                 c=0;
  43.         }
  44. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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