導航:首頁 > 操作系統 > 單片機靜態數碼管顯示8位數字

單片機靜態數碼管顯示8位數字

發布時間:2024-08-12 16:05:14

單片機 按鍵控制8位數碼管顯示問題

關於數碼管的顯示,是顯示完一個位的是數字後,在顯示下一個位時要先把上一個位顯示徹底關閉掉,通常可以是把全部數碼管位全部顯示為空的狀態,談後在開下一個位的顯示(有延時),這樣在開下一個位的鎖存時上一個位的數據就不會跑到該位顯示,不然會在下一位顯示時會與上一個位的數字出現重影現象。。。
還有對於數碼管的顯示,最好是一次性顯示完全部數碼管,還沒有得位就顯示0ff(要記得初始化你的數組)。我個人不建議你這種顯示按位數變化方式。。。
for(i=0;i<j;i=i+1)
//每次都顯示完8個數碼管比較好。。。
{
/*
在此增加把所有數碼管顯示為0FF狀態,全部位都打開顯示
*/
display=weima_table[i];
//數碼管需要顯示的位
weima_latch=1;
//鎖存器(位碼)打開
weima_latch=0;
//鎖存器(位碼)關閉
display=cunchudisplay[i];
//數碼管需要顯示的段
anma_latch=1;
//鎖存器(段碼)打開
anma_latch=0;
//鎖存器(段碼)關閉
Delay(100);
}
判斷歸零一個變數,最好緊跟在修改該值的後面,不用放在主循環里每次循環都要判斷,雖然你那沒多大問題但可讀性不夠好。。。
j=j+1;
if(j==8)
{j=0;}

② 51單片機,怎樣編程,讓所有的數碼管都顯示8,給出詳細編程,謝謝!

讓所有的數碼管都顯示8其實是最簡單的,將所有位碼都置為有效,段碼送8的碼就可以了,不需要掃描。
比如:P0為段碼,P2為位碼
ORG 0000H

LJMP MAIN
ORG 0030H
MAIN:
MOV P0,#7FH

MOV P2,#00H

SJMP $

END

③ 設計一位8段數碼管靜態顯示介面電路,選用單片機P0作數據信號,並列表寫出顯示0—9的顯示段碼

#include<reg51.h> // 包含51單片機寄存器定義的頭文件
/**************************************************
函數功能:延時函數,延時一段時間
***************************************************/
void delay(void)
{
unsigned char i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++)
;
}
/**************************************************
函數功能:主函數
***************************************************/
void main(void)
{
unsigned char i;
unsigned char code Tab[10]=;
//數碼管顯示0~9的段碼表,程序運行中當數組值不發生變化時,
//前面加關鍵字code ,可以大大節約單片機的存儲空間
P2=0x7f; //P2.7引腳輸出低電平,數碼顯示器第7位接通電源工作
while(1) //無限循環
{
for(i=0;i<10;i++)
{
P0=Tab[i]; //讓P0口輸出數字的段碼92H
delay(); //調用延時函數
}
}
}
另外,站長團上有產品團購,便宜有保證

④ 51單片機數碼管顯示8位二進制數程序,第6、7位永遠都只顯示0,其他位顯示正常。

MOV 26H,20H ;二進制數第6位送26H單元
MOV 20H,A
RR A
ANL 20H,#01H
MOV 27H,20H ;二進制數第7位送27H單元
這26H,27H是保存第6,7位數據的,但是延時慧粗子程序又用頃鬧26H,27H單元了,延時結束,這兩個單元永遠是0了。
DELAY: MOV 26H,#4 ;延時服務子程序
DLY1: MOV 27H,#250
DJNZ 27H,$
DJNZ 26H,DLY1
RET
這延時子程序要用29H,2AH,兩個單元就好雀碧罩了,還不如用R4,R5更方便呢,也不會出錯。這樣的
DELAY: MOV R4,#4 ;延時服務子程序
DLY1: MOV R5,#250
DJNZ R5,$
DJNZ R4,DLY1
RET
這多好哇

⑤ 單片機 按鍵控制8位數碼管顯示問題

關於數碼管的顯示,是顯示完一個位的是數字後,在顯示下一個位時要先把上一個位顯示徹底關閉掉,通常可以是把全部數碼管位全部顯示為空的狀態,談後在開下一個位的顯示(有延時),這樣在開下一個位的鎖存時上一個位的數據就不會跑到該位顯示,不然會在下一位顯示時會與上一個位的數字出現重影現象。。。
還有對於數碼管的顯示,最好是一次性顯示完全部數碼管,還沒有得位就顯示0ff(要記得初始化你的數組)。我個人不建議你這種顯示按位數變化方式。。。

for(i=0;i<j;i=i+1) //每次都顯示完8個數碼管比較好。。。
{
/*
在此增加把所有數碼管顯示為0FF狀態,全部位都打開顯示
*/
display=weima_table[i]; //數碼管需要顯示的位
weima_latch=1; //鎖存器(位碼)打開
weima_latch=0; //鎖存器(位碼)關閉
display=cunchudisplay[i]; //數碼管需要顯示的段
anma_latch=1; //鎖存器(段碼)打開
anma_latch=0; //鎖存器(段碼)關閉
Delay(100);
}

判斷歸零一個變數,最好緊跟在修改該值的後面,不用放在主循環里每次循環都要判斷,雖然你那沒多大問題但可讀性不夠好。。。
j=j+1;
if(j==8)
{j=0;}

閱讀全文

與單片機靜態數碼管顯示8位數字相關的資料

熱點內容
gcc編譯選項給gdb調試 瀏覽:586
ios和android前景好 瀏覽:62
蘋果如何藍牙傳送安卓app 瀏覽:550
方舟編譯器mod怎麼用 瀏覽:760
伺服器地址欄在哪裡 瀏覽:395
做安檢還是程序員好 瀏覽:526
程序員最火的bug 瀏覽:936
騰訊文件夾英文怎麼寫 瀏覽:125
pdf內碼 瀏覽:432
微信小程序文件夾怎麼發給好友 瀏覽:969
java不能被繼承的類 瀏覽:161
蘋果app網址怎麼添加 瀏覽:910
php明年的今天 瀏覽:115
麒麟970也能用方舟編譯器么 瀏覽:476
金融實驗大作業python 瀏覽:795
雲伺服器搭建聊天室 瀏覽:603
怎麼在手機上下載荔枝app 瀏覽:18
湖南戴爾伺服器雲空間 瀏覽:363
聯想驅動怎麼解壓 瀏覽:268
程序員進化論解說 瀏覽:871