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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

各位大佬看看為什么我的單片機數碼管無法正常顯示?

[復制鏈接]
跳轉到指定樓層
樓主

#include<reg52.h>
              #include<intrins.h>
              #define uint unsigned int
              #define uchar unsigned char
              uchar temp,aa,nn;
              sbit rn=P2^0;                              
              sbit nb=P2^1;
              sbit gn=P2^2;
              sbit rw=P2^3;
              sbit dx=P2^4;
              sbit gw=P2^5;
              sbit shi=P3^6;
              sbit ge=P3^7;                            /*對要使用的單片機各個口進行定義*/
              bit flag=0;
              uchar code table[]={
              0x3f,0x06,0x5b,0x4f,
              0x66,0x6d,0x7d,0x07,
              0x7f,0x6f,0x77,0x7c,
              0x39,0x5e,0x79,0x71};         /*將數字0123456789的16進制數定義成數組用以顯示*/
              void delay(uint z);
              void disp(uint n);
              void nb_flash(void);
              void dx_flash(void);
              void  xint0();
              void timer0();
              void  LED_ON();
              void  xint1();
              void  LED_OFF();
              void nanbei();
              void dongxi();                 /*將所使用的子函數定義*/
              void main()
              {
                            uint num;
                            num=0;
                            aa=0;
                            TMOD=0x01;
                            TH0=(65536-50000)/256;
                            TL0=(65536-50000)%256;
                            EA=1;
                            ET0=1;
                            TR0=1;
                            EX0=1;
                            IT0=0;
                            EX1=1;
                            IT1=1;                       /*中斷初始化*/
                            while(1)
                            {
                                          nanbei();            
                                          nb_flash();
                                          dongxi();
                                          dx_flash();                /*主函數中顯示部分*/
        }
              }
              void delay(uint z)                    /*延時子函數*/
              {
                            uint x,y;
                            for(x=z;x>0;x--)
                                          for(y=110;y>0;y--);
              }
              void timer0() interrupt 1             /*定時器初始化*/
              {
                            TH0=(65536-50000)/256;
                            TL0=(65536-50000)%256;
                            aa++;
                            if(aa==18)
                            {
                                          aa=0;
                                          flag=1;
                            }            
              }
              void disp(uint n)                    /*顯示子函數*/
              {
                while(!flag)
                {
                              ge=0;
                              P0=table[n%10];
                              delay(50);
                              shi=1;ge=1;
                              shi=0;
                              P0=table[n/10];
                              delay(50);
                              shi=1;ge=1;
                 }
                if(flag==1)
                   flag=0;
              }
              void nanbei()                    /*南北方向的紅綠燈和數碼管顯示子函數*/
              {                            uint num;
                                          num=60;
                                          disp(num);
                                          while(num<=60&&num>0)
                                          {              num--;
                                               P2=0xde;
                                                           disp(num);                                         
                                          }
              }
              void dongxi()                     /*東西方向的紅綠燈和數碼管顯示子函數*/
              {                            uint num;                                         
                                          num=60;
                                          while(num<=60&&num>0)
                                          {              P2=0xf3;               
                                                        disp(num);
                                                        num--;
                                          }
              }
              void nb_flash(void)              /*南北方向的黃燈和數碼管顯示子函數*/
              {
                            uint a;
                            for(a=3;a>0;a--)
                            {              P2=0xdd;
                                          nb=1;
                                          delay(100);
                                          nb=0;
                                          disp(a);
                            }
              }
              void dx_flash(void)                /*東西方向的黃燈和數碼管顯示子函數*/
              {
                            uint a;
                            for(a=3;a>0;a--)
                            {              P2=0xeb;
                                          dx=1;
                                          delay(100);
                                          dx=0;
                                          disp(a);
                            }
              }
              void  xint0()  interrupt 2                     /*中斷定義*/
{            
              TH0=(65536-50000)/256;
              TL0=(65536-50000)%256;            
}               

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:789121 發表于 2020-7-2 15:24 | 只看該作者
數碼管用的是共陽的還是共陰的
回復

使用道具 舉報

板凳
ID:332444 發表于 2020-7-2 15:25 | 只看該作者
看圖像好似數碼數據不對,取反一下試看 P0=~table[n%10];
回復

使用道具 舉報

地板
ID:744327 發表于 2020-7-2 15:36 | 只看該作者
如果數碼管是共陰極的,程序的延時子函數有問題,仿真軟件對延時要求很高。
回復

使用道具 舉報

5#
ID:636538 發表于 2020-7-2 16:27 | 只看該作者
無論是共陰還是共陽延時都是有問題,建議先靜態顯示一個一個調試
回復

使用道具 舉報

6#
ID:795538 發表于 2020-7-2 17:12 | 只看該作者
SKYLAR123 發表于 2020-7-2 16:27
無論是共陰還是共陽延時都是有問題,建議先靜態顯示一個一個調試

多謝,我去試試
回復

使用道具 舉報

7#
ID:795538 發表于 2020-7-2 17:12 | 只看該作者
不要黑 發表于 2020-7-2 15:24
數碼管用的是共陽的還是共陰的

共陰的。
回復

使用道具 舉報

8#
ID:795538 發表于 2020-7-2 17:13 | 只看該作者
烈火 發表于 2020-7-2 15:36
如果數碼管是共陰極的,程序的延時子函數有問題,仿真軟件對延時要求很高。

這樣啊 ,咋個改呢?
回復

使用道具 舉報

9#
ID:795538 發表于 2020-7-2 17:24 | 只看該作者
SKYLAR123 發表于 2020-7-2 16:27
無論是共陰還是共陽延時都是有問題,建議先靜態顯示一個一個調試

多謝帖吧大佬
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕丁香5月 | 毛片区 | 蜜臀网 | 久久福利 | 在线成人一区 | 久久久久久亚洲精品 | 97色在线视频 | 综合国产第二页 | 亚洲欧美第一视频 | 成人免费视频网站在线观看 | 亚洲精品中文在线 | 亚洲精品乱码8久久久久久日本 | 精品亚洲一区二区 | 国产精品激情 | 成人欧美一区二区三区在线播放 | 成人3d动漫一区二区三区91 | 欧美黄色一区 | 亚洲成人久久久 | 中文字幕一区二区三区在线乱码 | 草久久 | 午夜影院视频 | 欧美一区二区三区一在线观看 | 中文字幕高清av | 亚洲精品久久久久久下一站 | 国产精品自拍视频网站 | 精品一区二区三区视频在线观看 | 中文一区 | 精品国产91乱码一区二区三区 | 中文字幕在线播放不卡 | 国产精品久久福利 | 婷婷综合五月天 | 久久精品免费观看 | 羞羞色在线观看 | 国产一区二区在线播放视频 | 天天夜夜操 | 亚洲成人毛片 | 嫩草研究影院 | 国产在线一区二区三区 | 日韩欧美综合 | av在线免费观看不卡 | 欧美成人免费在线 |