找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求助!數(shù)碼管動態(tài)顯示。!

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:101451 發(fā)表于 2016-7-9 18:56 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
我想用4位共陰數(shù)碼管顯示動態(tài)顯示八個固定的數(shù)字,不知道程序該如何編寫
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報

沙發(fā)
ID:111634 發(fā)表于 2016-7-9 22:18 | 只看該作者
本帖最后由 zl2168 于 2016-7-9 22:22 編輯

實例61  8位LED數(shù)碼管滾動顯示10個數(shù)字
原理相同,可參照。


Proteus仿真一下,確認有效。
實例61 控制8位LED數(shù)碼管滾動顯示.rar (45.38 KB, 下載次數(shù): 23)




以上摘自張志良編著《80C51單片機Proteus仿真設(shè)計實例教程》清華大學(xué)出版社ISBN 978-7-302-41682-1


書中電路和程序設(shè)計有詳細說明,程序語句條條有注解。




回復(fù)

使用道具 舉報

板凳
ID:129868 發(fā)表于 2016-7-10 09:58 | 只看該作者
可以去論壇找資料
回復(fù)

使用道具 舉報

地板
ID:129923 發(fā)表于 2016-7-10 17:01 | 只看該作者
同求!大神們來幫幫忙
回復(fù)

使用道具 舉報

5#
ID:123289 發(fā)表于 2016-7-11 01:09 | 只看該作者
查我16-6-16發(fā)的"LED移位顯示的方式"
回復(fù)

使用道具 舉報

6#
ID:129790 發(fā)表于 2016-7-11 10:53 | 只看該作者
網(wǎng)上找啊
回復(fù)

使用道具 舉報

7#
ID:122633 發(fā)表于 2016-7-14 22:03 | 只看該作者
/*數(shù)碼管的動態(tài)顯示
  第一個數(shù)碼管顯示1,時間0.5s,然后第二個數(shù)碼管顯示2,時間0.5s....*/

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;

uchar num;
uchar code table[]={
0x06,0x5b,0x4f,0x66,0x6d,0x7d
};                       //段選數(shù)碼管顯示1-6
uchar code weixuan[]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf
};                       //位選1-6

void delayms(uint);                //延時

void main()
{        int a;
        while(1)
        {        for(a=0;a<6;a++)                //一到六數(shù)碼管循環(huán)顯示       
                {P0=0xff;                                //消影 防止前次段選信號通過位選鎖存器加在數(shù)碼管上,造成混亂
                 wela=1;                                //打開位選鎖存器
                 P0=weixuan[a];                        //送入位選信號
                 wela=0;                                //關(guān)閉位選鎖存器
                 dula=1;                                //打開段選鎖存器
                 P0=table[a];                        //送入段選信號
                 dula=0;                                //關(guān)閉段選鎖存器
                 delayms(500);                        //延時500ms
                }
        }
}

void delayms(uint xms)
{
        uint i,j;
        for(i=xms;i>0;i--)                        //i=xms即延時約xms毫秒
                for(j=110;j>0;j--);
}
這是我之前寫過的不是完全一樣 你可以參考看看
回復(fù)

使用道具 舉報

8#
ID:136575 發(fā)表于 2016-8-23 10:57 | 只看該作者
網(wǎng)上找找程序
回復(fù)

使用道具 舉報

9#
ID:137420 發(fā)表于 2016-8-23 18:09 | 只看該作者
網(wǎng)上找找程序
回復(fù)

使用道具 舉報

10#
ID:135253 發(fā)表于 2016-8-23 19:50 | 只看該作者
段碼,位碼,段碼,位碼。。。。。循環(huán)
回復(fù)

使用道具 舉報

11#
ID:135676 發(fā)表于 2016-8-24 13:43 | 只看該作者
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,aa,bai,shi,ge;
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void display(uchar bai,uchar shi,uchar ge);
void delay(uint z);
void init();
void main()
{       
        init();//初始化子程序
        while(1)
        {
                if(aa==20)
                  {
                        aa=0;
                        temp++;
                        if(temp==100)
                           {
                                        temp=0;
                           }
                        bai=temp/100;
                        shi=temp%100/10;
                        ge=temp%10;
                  }
                display(bai,shi,ge);
        }
}

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

void display(uchar bai,uchar shi,uchar ge)
{
        dula=1;
                P0=table[bai];
                dula=0;
                P0=0xff;
                wela=1;
                P0=0xfe;
                wela=0;
                delay(1);

                dula=1;
                P0=table[shi];
                dula=0;
                P0=0xff;
                wela=1;
                P0=0xfd;
                wela=0;
                delay(1);

                dula=1;
                P0=table[ge];
                dula=0;
                P0=0xff;
                wela=1;
                P0=0xfb;
                wela=0;
                delay(1);
}

void init()
{       
        wela=0;
        dula=0;
        temp=0;
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;       
}

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

使用道具 舉報

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

本版積分規(guī)則

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

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

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