1、數碼管實際上是由7個發光二極管組成一個8字形,另外一個發光二極管做成圓點型,這樣就構成了一個數碼管。所有的8個二級管的正極或者負極都連到一個公共端點上,對于公共端連在正極的數碼管,稱為共陽極數碼管,反之稱為共陰極數碼管。
根據數碼管的內部結構原理,可以很清楚的知道數碼管顯示數字的原理。
2、由于單片機的IO口的驅動能力有限,而數碼管點亮時需要較大的電流,所以在用單片機構成數碼管顯示系統時,需要增加驅動電路,最簡單的驅動電路就是利用三極管的電流放大能力來輸出較大的電流,
3、讓數碼管顯示數字的步驟為:
1)使數碼管的公共端連到電源(共陽極)或者地(共陰極)上。
2)向數碼管的各個段輸出不同的電平。
本例使用單個數碼管循環顯示0-9這10個數字。
4、在keil c51中新建工程ex47,編寫如下程序代碼,編譯并生成ex47.hex文件
#include //包含頭文件
//延時函數,延時約200ms
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] = {0xc0,0xf9,0xa4,0xb0,0x99,0x82,0xf8,0x80,0x90};
//定義數字0-9的段碼表
P2 = 0xfe; //P2.0輸出低電平,數碼管電源導通
while(1)
{
for(i = 0;i < 10;i++) //循環10次。數碼管循環顯示數字0-9
{
P0 = Tab[i]; //P0口輸出數字0-9對應的段碼
delay(); //延時
}
}
}
5、在proteus中新建仿真文件ex47.dsn,電路原理圖如下所示:
需要說明的是在proteus中,查找排阻(不帶公共端)和數碼管的方法。
查詢數碼管元件時,輸入關鍵字“7seg-com..”后,就可以看到各種數碼管的電路符號。根據需要選擇相應數碼管即可。
排阻的查找方法:查找帶公共端的排阻時,輸入關鍵字“respack”即可。
不帶公共端的排阻,輸入關鍵字“RX8”即可
6、將ex47.hex文件載入at89c51中,啟動仿真,按動按鍵,觀察程序運行結果,下圖是某一時刻程序運行結果
上一篇:二叉樹算法在單總線上的C51軟件實現
下一篇:單片機C8051F020及其在露點測試系統中的應用
推薦閱讀
史海拾趣
設計資源 培訓 開發板 精華推薦
- 浩亭革新D-Sub連接|推拉鎖扣設計, 安裝效率倍增!
- 星云智聯,高速互聯,DeepSeek,AI計算,集群通信
- 加速釋放AI推理能力,Akamai攜多項云計算技術創新亮相KubeCon China大會
- 優化電機控制以提高能效
- Proximus Global旗下公司BICS與兩家新運營商合作,擴展全球獨立5G漫游范圍
- MiR 發布物流行業重磅電子書,以技術創新與智能設備重塑倉儲物流格局
- Nordic Semiconductor nRF9151 蜂窩物聯網模組通過日本NTT DOCOMO LTE-M 網絡使用驗證
- 2025“最能打的中國芯”評選:概述、流程與申報
- 芯原可擴展的高性能GPGPU-AI計算IP賦能汽車與邊緣服務器AI解決方案
- 全球晶圓代工TOP10出爐