找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 21959|回復: 0
收起左側

51單片機控制數(shù)碼管顯示程序 (STC89C52RC)

[復制鏈接]
ID:101489 發(fā)表于 2016-1-3 00:51 | 顯示全部樓層 |閱讀模式
51單片機控制數(shù)碼管顯示程序 (STC89C52RC)
本文針對蝦米I代單片機開發(fā)板

觀察單片機實物圖,在左上角,共有6個數(shù)碼管,從左至右DS6-DS1。怎樣控制它們顯示字母或數(shù)字呢。當然是查開發(fā)板原理圖。

從原理圖可知,6個數(shù)碼管是共陽極接法,+V電源接到6個PNP三極管,三極管集電極接到數(shù)碼管,基極通向74HC138譯碼器。DS6-DS1對應于譯碼器的LEDS5-LEDS1。在同一時間,只能啟用一個數(shù)碼管,啟用哪個數(shù)碼管由譯碼器控制。

查譯碼器部分電路可知,譯碼器的Y0-Y6對應于LEDS0-LEDS6。譯碼器的控制,我們在關于LED跑馬燈程序中已經(jīng)講過了。如果要讓左邊第一只數(shù)碼管啟用,譯碼器控制代碼如下:

sbit enableG1 = P1^3;
sbit enableG2 = P1^4;

sbit selectC = P1^2;
sbit selectB = P1^1;
sbit selectA = P1^0;

//74HC138譯碼器
void hc138()
{
        enableG1 = 1;
        enableG2 = 0;

        selectC = 1;
        selectB = 0;
        selectA = 1;
}

在這塊板子上,數(shù)碼管的abcdefg dp分別對應于P0的8個IO口。共陽數(shù)碼管的特點是低電平0點亮,高電平1關閉。我們采用一次給P0 byte 賦值的辦法,設定數(shù)碼管的顯示內容。

下面我們試著寫出共陽數(shù)碼管的真值表。這是一個很好的想像練習。一定要在腦子里想像并計算出真值,千萬不要到紙上去寫或畫,要知道想像練習比單純的知識重要得多,想像力提高了,智力就提高了,以后學習任何知識都會更加快。

1. 想像出數(shù)碼管的樣子,及相應部位的字母: abcdefg dp
2. 想像出顯示數(shù)字0的數(shù)碼管
3. 在想像中寫出數(shù)字0的二進制值,從高位寫起,也就是從dp 到a
   要亮的小燈,寫0,不亮的寫1
   dp = 1 表示小數(shù)點,不用亮
   g  = 1 中間那橫不用亮
   f  = 0 左邊上面一豎要亮
   e  = 0 左邊下面一豎要亮
   d  = 0 下面橫要亮
   e  = 0 右下豎要亮
   b  = 0 右上豎亮
   a  = 0 上面橫亮

   二進制的1100 0000,我們分成二部分轉化成16進制,1100也就是8+4=12,10進制的12就是16進制的C,0000換算成16進制還是0。于是得到C0H。我們只要把P0設成C0H,就能顯示我們想要的數(shù)字0.

下面就是完整代碼:

#include <reg52.h>

sbit enableG1 = P1^3;
sbit enableG2 = P1^4;

sbit selectC = P1^2;
sbit selectB = P1^1;
sbit selectA = P1^0;

//74HC138譯碼器
void hc138()
{
        enableG1 = 1;
        enableG2 = 0;

        selectC = 1;
        selectB = 0;
        selectA = 1;
}



/**
   共陽數(shù)碼管真值表

   0 C0H    1 F9H
   2 A4H    3 B0H
   4 99H    5 92H
   6 82H    7 F8H
   8 80H    9 90H   
   A 88H    b 83H
   C C6H    d A1H
   E 86H    F 8EH
**/
void turnDigitalLED()
{
         while(1)
        {
                 P0 = 0xC0;
        }
}

int main(void)                 
{        
        hc138();        
        turnDigitalLED();

        return 0;
}








回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表