51單片機入門之四:靜態(tài)數(shù)碼管
LED數(shù)碼管是單片機外圍接口設備中常用的顯示設備,有七段管和米字管兩種,實驗室中常用的是七段管。其工作方式有兩種:共陰極和共陽極。所謂共陰極是把LED的com端都接地,而共陽極就是把com端都接高電平。其驅(qū)動顯示方式也有兩種:靜態(tài)顯示和動態(tài)顯示。
靜態(tài)顯示中每個數(shù)碼管占用單片機的一個八位口I/O口,工作時點亮的段常亮。于該種方式而言,硬件電路簡單,編程簡單,但是浪費單片機的I/O口。下面簡單演示一下該種驅(qū)動方式。
P2口接一個數(shù)碼管,數(shù)碼管顯示的數(shù)字每秒鐘自動加一,加到9后清0,一直循環(huán),本實驗中數(shù)碼管采用共陰極接法。
實驗原理圖如下:
實驗程序如下:
[cpp]view plaincopy
#include
#defineucharunsignedchar;
#defineuintunsignedint;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰極數(shù)碼管數(shù)據(jù)表
uchara,i,j,z;
voiddelay(z)//延時子函數(shù)
{
for(j=z;j>0;j--)
for(i=110;i>0;i--);
}
voidmain()//主函數(shù)
{
while(1)
{
for(a=0;a<10;a++)//從0到9,共10次循環(huán)
{
P2=table[a];//P2口從數(shù)據(jù)表中取數(shù)據(jù)
delay(1000);//延時大約1s
}
}
}
試驗結果如下: