靜態數碼管工作原理及代碼實現


單片機系統常用的顯示器有:發光二極管LED顯示器、液晶LCD顯示器、TFT液晶顯示器等等。LED顯示器有兩種顯示結構:段顯示(7段、米字型等)和點陣顯示(5x8、8x8點陣等)。

LED數碼管根據LED的不同接法可以分為2類:共陰和共陽

使用LED顯示器時,要注意區分這兩種不同的接法。為了顯示數字或字符,必須對數字或字符進行編碼。七段數碼管加上一個小數點,共計8段。因此為LED顯示器提供的編碼正好是一個字節。我們實驗板用共陰LED

顯示器根據電路連接圖顯示16進制數的編碼如下圖:

靜態顯示原理:LED顯示器工作方式有兩種:靜態顯示方式和動態顯示方式。靜態顯示的特點是每個數碼管的段選必須接一個8位數據線來保持顯示的字形碼。當送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優點是占用CPU時間少,顯示便於檢測可控制。缺點是硬件電路比較復雜,成本較高。

其中321是控制74HC573鎖存功能。

靜態數碼管顯示數字0的代碼如下:

#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;

sbit LSA P2^2;
sbit LSB P2^3;
sbit LSC P2^4;

u8 code smgduan[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 
             0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};

void main()
{
    LSA=0;
    LSB=0;
    LSC=0;
    P0=smgduan[0];
    while(1);
}

code的作用:code的作用是告訴單片機,我定義的數據要放在ROM(程序存儲區)里面,寫入后就不能再更改。程序可以簡單的分為code(程序)區,和data (數據)區,code區在運行的時候是不可以更改的,data區放全局變量和臨時變量,是要不斷的改變的。code區也可以放在rom里面,也可以放在ram里面,data只能放在ram中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM