本文旨在介紹單片機入門的基礎知識,為初接觸或即将接觸單片的新手提供一個入門指導。本文章會陸續推出,隔幾天一個章節。所使用單片機為ATMEL公司的AT89C52,軟體為PROTEUS和KEIL;隻提供原理圖和KEIL環境下的注釋,希望對廣大即将接觸單片機的人有所幫助,如果有錯誤歡迎回帖指出與本人交流或加入QQ群143586739. 微信公衆号:micropoint8.
LED數位管是單片機外圍接口裝置中常用的顯示裝置,有七段管和米字管兩種,實驗室中常用的是七段管。其工作方式有兩種:共陰極和共陽極。所謂共陰極是把LED的com端都接地,而共陽極就是把com端都接高電平。其驅動顯示方式也有兩種:靜态顯示和動态顯示。
靜态顯示中每個數位管占用單片機的一個八位口I/O口,工作時點亮的段常亮。于該種方式而言,硬體電路簡單,程式設計簡單,但是浪費單片機的I/O口。下面簡單示範一下該種驅動方式。
P2口接一個數位管,數位管顯示的數字每秒鐘自動加一,加到9後清0,一直循環,本實驗中數位管采用共陰極接法。
實驗原理圖如下:
實驗程式如下:
#include<reg52.h>
#define uchar unsigned char;
#define uint unsigned int;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰極數位管資料表
uchar a,i,j,z;
void delay(z) //延時子函數
{
for(j=z;j>0;j--)
for(i=110;i>0;i--);
}
void main() //主函數
{
while(1)
{
for(a=0;a<10;a++)//從0到9,共10次循環
{
P2=table[a]; //P2口從資料表中取資料
delay(1000); //延時大約1s
}
}
}
試驗結果如下:
更多電子知識請關注微信公衆号: