找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6800|回復(fù): 0
收起左側(cè)

51單片機(jī)教程--數(shù)碼管的動(dòng)靜結(jié)合

[復(fù)制鏈接]
ID:115111 發(fā)表于 2016-4-28 04:14 | 顯示全部樓層 |閱讀模式
接著上一篇,上一篇我們講了點(diǎn)亮LED,通過編寫程序,讓LED亮起來,而且還能讓LED流動(dòng)起來,設(shè)計(jì)出不同的花樣。那么本篇我們來講數(shù)碼管。

首先,我們先來看一下數(shù)碼管的顯示原理。



數(shù)碼管的實(shí)質(zhì)就是八個(gè)LED,與上一篇差不多。我們開發(fā)板上的數(shù)碼管是共陰極的,如上圖(b)所示。讓數(shù)碼管顯示數(shù)字,只要讓相應(yīng)的LED亮起來就行。如:要讓它顯示“1”,只要讓bc段的LED亮起來就行了(見圖a)。

那么,我們來看數(shù)碼管是怎樣跟單片機(jī)連接的。如下圖所示。







                       
從圖中可以看出數(shù)碼管是先與DM7406連接,再與單片機(jī)連接。我們可以先不用管DM7406,那么數(shù)碼管的a、b、c、d、e、f、g、Dp引腳分別連接單片機(jī)的P00~P07腳,而數(shù)碼管的負(fù)極則接到電源負(fù)極,但在與電源負(fù)極連接時(shí),先接一個(gè)三極管起到開關(guān)的作用。三極管有一個(gè)引腳連接到單片機(jī)的P34引腳,這樣我們就可以通過單片機(jī)控制三極管導(dǎo)通。




這是效果圖。接下來來看一下代碼:

                       
#include<reg51.h>
sbit WE=P3^4;
void main()
{
  WE=0;
  P0=0x06;
}

解釋一下代碼,WE=0是給出低電平讓三極管導(dǎo)通,P0=0x06,十六進(jìn)制的0x06等于二進(jìn)制的0000 0110,0000 0110從右往左對應(yīng)的是P00到P07,即數(shù)碼管的a到Dp,我們給b、c高電平,b、c段自然就亮了。讓數(shù)碼管顯示其他數(shù)字也是同樣的道理,給P0口賦相應(yīng)的值就可以了。顯示{0,1,2,3,4,5,6,7,8,9}對應(yīng)的十六進(jìn)制數(shù)是{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。這就是數(shù)碼管的靜態(tài)顯示。

接下來講一下數(shù)碼管的動(dòng)態(tài)顯示。動(dòng)態(tài)顯示是什么?四個(gè)數(shù)碼管是一個(gè)一個(gè)顯示的,不是同時(shí)顯示,只是變化的太快我們?nèi)庋蹮o法看到。為什么要?jiǎng)討B(tài)顯示,讓它們同時(shí)顯示不行嗎?同時(shí)顯示可以,但是太浪費(fèi)資源。一個(gè)數(shù)碼管有八個(gè)腳要與單片機(jī)相連,那么四個(gè)數(shù)碼管就要與單片機(jī)的32個(gè)引腳相連,這就很浪費(fèi)了,所以我們要?jiǎng)討B(tài)顯示。

要怎么樣實(shí)現(xiàn)數(shù)碼管動(dòng)態(tài)顯示?我們看一段代碼:




這是效果圖。



                       

可以看到,每開一個(gè)數(shù)碼管都要延時(shí)一會(huì),但是不能太長。如果太長的話,就會(huì)看到數(shù)碼管一個(gè)一個(gè)的顯示。你們可以試試看。

這就是數(shù)碼管的動(dòng)靜態(tài)顯示。


   若本文有任何問題和錯(cuò)誤請大家批評指正,信工科技部將每期給您帶來 更多精彩內(nèi)容,敬請關(guān)注!

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

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

快速回復(fù) 返回頂部 返回列表