導航:首頁 > 操作系統 > 單片機數碼管動態顯示

單片機數碼管動態顯示

發布時間:2022-02-10 13:40:22

Ⅰ 基於51單片機數碼管動態顯示程序

你要把你的數碼管電路發出來才能寫程序的!!

Ⅱ 單片機數碼管動態顯示代碼

如下:

Ⅲ 單片機 數碼管動態顯示代碼

if(Countnum[3]++=9) 單片機裡面判斷是否相等是用==的而不是=
你應該寫成if(Countnum[3]++==9)
而且你的寫法和不規范,這個寫法的意思是Countnum[3]是否等於9,然後Countnum[3]加1

其它的錯誤也是一樣

Ⅳ C語言單片機代碼 數碼管動態顯示

這里的16個元素代表的是從十六進制數0~9、A、B、C、D、E、F的段碼,根據什麼來填這些數組元素?那就要看你設計程序時定義數組的作用才能確定.table[1]對應的元素為0x06,是十六進制數,轉換成二進制數是00000110B,分別對應於數碼管的Dp、g、f、e、d、c、b、a 腳,所以在共陰數碼管上點亮b、c兩段,顯示的是數字1,其它同理。

Ⅳ 數碼管動態顯示工作原理

1、多個數碼管的段碼連接在一起,位碼分別控制。

2、由於段碼連接在一起,如果數碼管全亮,則顯示的數據相同,所以為了顯示不同的數字,任何時刻,只能有一個數碼管顯示,其餘不顯示。

3、用軟體使這幾個數碼管輪流顯示我們需要的數字。

4、只要更新頻率足夠快(>100Hz),肉眼看起來,這些數碼管就同時顯示我們需要的數字了。

(5)單片機數碼管動態顯示擴展閱讀:

數碼管的最常見形式有10個陰極,形狀為數字0到9,某些數碼管還有一個或兩個小數點。然而也有其他類型的數碼管顯示字母、標記和符號。如一種「數碼管」,其陰極為一個模板製成的面具,上面有數字形狀的孔。一些俄羅斯的數碼管,如IN-14,使用倒立的數字2代表5,大概是為了節約生產成本,而沒有明顯的技術或美學方面的原因。俄羅斯的數碼管大部分都使用了倒立的2作為5。

將170伏的直流電壓加在陰極和陽極之間,每一個陰極可以發出氖的的紅橙色光。由於混合氣體的不同,不同類型的數碼管之間的顏色有所區別。壽命較長的數碼管在製造中加入了汞,減少了濺射,結果發出的光的顏色為藍色或紫色調。在某些情況下,這些顏色被玻璃上的紅色或橙色過濾塗層過濾。

Ⅵ 幫忙看一下,51單片機的4位數碼管動態顯示

你的現象應該是那兩位數碼管在
16 以前顯示的是 0 和 一個數,如15 時顯示的是 0 和 F、14 時顯示的是 0 和 e。。。
16 時顯示的是 1 和 0 ,17 時顯示的是 1 和 1

disbuf[0]=(((firstdat&0xf0)>>4)&0x0f);
disbuf[1]=firstdat&0x0f;
disbuf[2]=(((seconddat&0xf0)>>4)&0x0f);
disbuf[3]=seconddat&0x0f;
這里不用這么麻煩吧,直接
disbuf[0]=firstdat>>4; 右移時,低四位被移出,高四位移入0,就是你要的結果了
disbuf[1]=firstdat&0x0f;
disbuf[2]=seconddat>>4;
disbuf[3]=seconddat&0x0f;
或者
disbuf[0]=firstdat/16; 除以16 得到 16 進制的十位
disbuf[1]=firstdat%16; 對16取余得到 16進制的個位
disbuf[2]=seconddat/16;
disbuf[3]=seconddat%16;
就行了吧
我想應該不會出現沒消影的,不知道你說的消影是指什麼現象

Ⅶ 51單片機數碼管動態顯示從右往左

這是四位數碼管從右從左流動顯示,像滾動字幕一樣的。用不著矩陣按鍵哪。

其實程序很簡單,沒那麼復雜。程序如下

#include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//共陰段碼碼,0x00為滅

void delay()//延時子程序

{

uint y;

for(y=400;y>0;y--);

}

void main()

{

uchar n,x;

while(1)

{

n++;

if(n>50)//n為顯示一屏顯示次數,n大小可調節流動速度

{

n=0;

x++;//從下一個位置開始顯示

if(x>8)x=0;

}

}

}

模擬結果

Ⅷ 單片機數碼管動態顯示,急救!求C語言程序

我這里有我親自寫匯編源程序,功能是從1-99顯示再返回從99-1顯示,如此循環。這里我剛學單片機的時候寫出來的,不過我沒有現成C程序,用C寫更簡單。要不要這個匯編程序?要的話我就貼出來。

Ⅸ 單片機數碼管動態掃描顯示,時間這樣設置才能更好的顯示一連串數在屏幕上,有沒有數碼規律、

要根據數碼管的數量來定的。
但是,一般來說,每一位數碼管需要一定的顯示時間,也就是說,你輸出一位數碼管的數據點亮這個數碼管之後,需要一定的時間才能熄滅它並點亮下一個數碼管,而不能一輸出就馬上熄滅它,否則亮度會非常低。
另外,全部數碼管全部掃描一遍的總時間最好不要超過25mS,否則閃爍會比較嚴重,通常總的掃描頻率要在60Hz以上,才看不到閃爍。
比如說你要掃描8位數碼管,那麼可以讓每一位數碼管點亮1mS,這樣全部顯示一遍就大約是8mS或稍微多一點點(算上顯示處理的指令執行時間),此時的總掃描頻率就是125Hz左右,這樣的話,即能保證亮度,又看不到閃爍。

Ⅹ 單片機數碼管動態顯示0-100

給你簡單的修改了一下,如果你的數碼管編碼沒錯,應該可以顯示 0~99的
沒添加百位顯示,所以只有 0~99

//數碼管動態顯示+1,顯示範圍0-100,定時時間1s
#include<reg52.h>

sbit la=P2^6; //定義段選信號
sbit wela=P2^7; //定義位選信號

char aa,temp,,shi,ge;
char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void delay(int z); //延遲函數聲明
void display(char d); //顯示函數聲明
void init(); //初始化函數聲明
/*******************************************************************************/
/*******************************************************************************/
void main()
{
init(); //調用初始化子函數
while(1)
{
display(temp); //調用顯示子函數
}
}
/*******************************************************************************/
/*******************************************************************************/
void delay(int z) //延遲子函數
{
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/*******************************************************************************/
/*******************************************************************************/
void display(char d) //顯示子函數
{
char d1,d2;
d2=d%10; //取個位 %求余
d1=(d/10)%10; //取十位

P0=table[d2]; la=0; delay(10); la=1;//個位顯示

P0=table[d1]; wela=0; delay(10); wela=1;//十位顯示
}
/*******************************************************************************/
/*******************************************************************************/
void init() //初始化子函數
{
la=0;
wela=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++;
if(aa==20) //判斷定時是否到達1s
{ aa=0; temp++ ; }
if(temp==100) //限制temp變化的范圍,使之不超過100
{ temp=0; }
}
/*******************************************************************************/
/*******************************************************************************/
/*/////////////////////////////////////////////////////////////////////////////*/

閱讀全文

與單片機數碼管動態顯示相關的資料

熱點內容
群暉怎麼設置用戶訪問指定文件夾 瀏覽:555
安卓怎麼測觸摸屏 瀏覽:593
javastring原理 瀏覽:315
如何關閉手機dhcp伺服器 瀏覽:981
php免費ide 瀏覽:200
程序員詞句 瀏覽:976
伺服器如何禁止某個ip段 瀏覽:329
便簽手機文件夾 瀏覽:768
gameloft的java游戲 瀏覽:110
神佑釋放怎麼轉伺服器 瀏覽:735
洋蔥app軟體怎麼登錄 瀏覽:788
兩相電空氣壓縮機 瀏覽:396
基於51單片機的智能語音密碼鎖設計 瀏覽:845
mac如何用ssh登錄伺服器 瀏覽:446
appstore怎麼設置 瀏覽:954
在哪個app買韓國女裝 瀏覽:111
php寫入文件換行 瀏覽:749
dsp實現fft演算法 瀏覽:485
棋牌源碼轉讓交易手續費 瀏覽:293
雲上伺服器貴州 瀏覽:647