單片機STC89C52學(xué)習(xí)——10 靜態(tài)數(shù)碼管
匯總:00 單片機STC89C52學(xué)習(xí)
參考教程:普中科技
1 工作原理
1.1 顯示器及其接口
單片機系統(tǒng)中常用的顯示器有:
- 發(fā)光二極管LED(Light Emitting Diode)顯示器
- 液晶LCD(Liquid Crystal Display)顯示器
- TFT液晶顯示器等
LED顯示器有兩種顯示結(jié)構(gòu):
- 段顯示(7段祟剔、米字型等)
- 點陣顯示(5×8、8×8點陣等)
1.2 8段LED數(shù)碼管
共陰(本開發(fā)板使用) | 共陽 |
---|---|
共陰數(shù)碼管碼表(0~F):
0x3f , 0x06 , 0x5b , 0x4f ,
0x66 , 0x6d , 0x7d , 0x07 ,
0x7f , 0x6f , 0x77 , 0x7c ,
0x39 , 0x5e , 0x79 , 0x71 ,
0x00 無顯示
靜態(tài)顯示原理:
靜態(tài)顯示的特點是每個數(shù)碼管的段選必須接一個8位數(shù)據(jù)線來保持顯示的字形碼(若要顯示8個數(shù)字則需要8*8=64個IO口控制)。當送入一次字形碼后缰犁,顯示字形可一直保持猴鲫,直到送入新字形碼為止权均。這種方法的優(yōu)點是占用CPU時間少具伍,顯示便于監(jiān)測和控制钞脂。缺點是硬件電路比較復(fù)雜燥狰,成本較高棘脐。
1.3 74H573鎖存器
- OE為使能端:低電有效
- LE為鎖存端:
當LE為高電平時,Q0 ~ Q7與D0 ~ D7狀態(tài)相同龙致;
當LE為低電平時蛀缝,Q0 ~ Q7鎖存數(shù)據(jù),無論D0 ~ D7如何變化目代,Q0 ~ Q7保持不變
2 程序:靜態(tài)數(shù)碼管——控制1個數(shù)碼管顯示1個數(shù)字
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define LED P0// 段選
sbit LSA = P2^2;// 38譯碼器的位選
sbit LSB = P2^3;
sbit LSC = P2^4;
//sbit LE = P1^0;// 鎖存器的鎖存端
u8 code LEDSeg[] = { 0x3f , 0x06 , 0x5b , 0x4f ,
0x66 , 0x6d , 0x7d , 0x07 ,
0x7f , 0x6f , 0x77 , 0x7c ,
0x39 , 0x5e , 0x79 , 0x71 , 0x00};// 定義數(shù)組屈梁,并保存到flash中嗤练,否則在data中
void main()
{
LSA = 1; LSB = 1; LSC = 0;// 38譯碼器控制LED1為低,選中LED1俘闯,1110 0011
// LE = 1;// 高電平開放
LED = LEDSeg[0];// 顯示0
while (1);
}
效果:經(jīng)測試位選沒問題潭苞,段選總是顯示"8."即0xff,暫未找到原因真朗。結(jié)果第二天下載同樣的程序此疹,可以在正確的位顯示正確的數(shù)字了,然后一會兒又不能了(圖中改了位選)...