本文旨在介紹單片機入門的基礎知識,為初接觸或即將接觸單片的新手提供一個入門指導。本文章會陸續推出,隔幾天一個章節。所使用單片機為ATMEL公司的AT89C52,軟件為PROTEUS和KEIL;只提供原理圖和KEIL環境下的注釋,希望對廣大即將接觸單片機的人有所幫助,如果有錯誤歡迎回帖指出與本人交流或加入QQ群143586739.
LED數碼管是單片機外圍接口設備中常用的顯示設備,有七段管和米字管兩種,實驗室中常用的是七段管。其工作方式有兩種:共陰極和共陽極。所謂共陰極是把LED的com端都接地,而共陽極就是把com端都接高電平。其驅動顯示方式也有兩種:靜態顯示和動態顯示。 靜態顯示中每個數碼管占用單片機的一個八位口I/O口,工作時點亮的段常亮。于該種方式而言,硬件電路簡單,編程簡單,但是浪費單片機的I/O口。下面簡單演示一下該種驅動方式。 P2口接一個數碼管,數碼管顯示的數字每秒鐘自動加一,加到9后清0,一直循環,本實驗中數碼管采用共陰極接法。 實驗原理圖如下: 分析:共陰數碼管的公共端接地,所以只要段選給出相應的數據數碼管就會做出相應的顯示。程序如下:
第04行:該數組為共陰數碼管的編碼; 第17行:for循環控制循環顯示; 第20行:將數據送給P2口; 第23行:循環次數超過10后,清零; 其實,for循環還可以這樣實現: 
程序中,將循環變量作為數組的查詢變量,程序就簡化了,執行效率得到了提高。運行效果截圖:
|