痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 10655|回復: 17

七段顯示器,顯示不正常!

  [複製鏈接]
發表於 2012-9-25 18:03:05 | 顯示全部樓層 |閱讀模式
本帖最後由 fatzeros 於 2012-9-25 06:09 PM 編輯

最近在作七段顯示器時鐘,
但是在測試七段顯示時就不正常了,
七段顯示器a段亮後,換b段時,a段還是持續亮了一會才熄!
我的想像中,應該是a段亮後熄滅,亮b段才行是啊!
在實驗板上相同的程序沒有問題啊!
實驗板是stc89c52_12t的單片機,而我用的是stc15f204ea_1t的單片機,
照理論來說,應該是不會有這樣的問題啊!只是執行速度的差異比較大吧!
請教板上問題出在那!

程序:
;腳位功能定義

        CLOCK_H1 EQU P3.4        ;定義H1為P3.5腳
        CLOCK_H2 BIT P3.3        ;定義H2為P3.4腳
        CLOCK_M1 BIT P3.2        ;定義M1為P3.3腳
        CLOCK_M2 BIT P3.5        ;定義M2為P3.6腳
        CLOCK_SS EQU P3.6        ;定義SS為P3.2腳
       
        DS1302_SCLK BIT P1.6        ;DS1302時鐘口P1.0
        DS1302_IO   BIT P1.7        ;DS1302數據口P1.1
        DS1302_CE   BIT P0.0        ;DS1302片選口P1.2
       
;程序開始
START:
ORG 0000H
AJMP MAIN

;數據段
ORG 0100H
TABLE:        ;定義七段顯視器顯的方式
        DB 07FH,0FDH,0F7H,0EFH,0DFH,0BFH,0FBH,0FEH                ;A,B,C,D,E,F,G,DP
        DB 0F5H,049H,061H,0B1H,023H,003H,075H,001H,021H                ;0,1,2,3,4,5,6,7,8,9

;主程序段
ORG 0200H
MAIN:
        ;初始七段顯視器,使SMG_LED為低電位導通
        CLR CLOCK_H1
        CLR CLOCK_H2
        CLR CLOCK_M1
        CLR CLOCK_M2
        CLR CLOCK_SS

;循環功能段
CYCLE:
        MOV R7,#8        ;初始暫存器R7為X,表示使用TABLE表之前X項之數值
        MOV DPTR,#TABLE        ;初始DPTR為數據段之數值

DISPLAY:
        CLR A                ;清除累加器
        MOVC A,@A+DPTR        ;指定累加器為累加器加上循環功能段之DPTR(TABLE表內之數值,由第一個開始)
        MOV P2,A                ;指定P2_I/O腳位為累加器之數值,即七段顯視器依TABLE表內之數值遞增顯視
        ACALL DELAY        ;呼叫延遲程序,使七段顯視器顯視時間加長
        INC DPTR        ;遞增DPTR的顯視TABLE表內之數值
        DJNZ R7,DISPLAY        ;遞減暫存器R7的值,如不為0則跳至DISPLAY段
        AJMP CYCLE        ;遞減暫存器R7的值,如為0則跳至CYCLE段

;使用遞減暫存器R5及R6達成延時效果,暫存器R4為遞減循環次數
DELAY:
        MOV R4,#40                 ;暫存器R4,循環A次
D1:
        MOV R5,#150                 ;D1段,暫存器R5指定初始值為B,最大至255
D2:
        MOV R6,#200                 ;D2段,暫存器R6指定初始值為C,最大至255
        DJNZ R6,$                  ;遞減暫存器R6初始值C
        DJNZ R5,D2              ;遞減暫存器R5初始值B,如不為0時則跳至D2段
        DJNZ R4,D1                 ;遞減暫存器R4初始值A,如不為0時則跳至D1段
        RET                        ;回呼叫點
END

電路圖:
timer.PNG

難道問題是出在電阻不夠大嗎?
謝謝謝謝!
發表於 2012-9-25 20:54:35 | 顯示全部樓層
本帖最後由 antlu 於 2012-9-25 09:16 PM 編輯

FATZEROS大:
   MCU的 DATAPORT 是不是都要加上拉高電阻再送給ULN2803呢!!
我以前的經驗  uln2003 因為是驅動拉下的作用,而MCU平常輸出會高電位,但是,data port是開放集極的設計,沒有加上拉高電阻則會導致亂掉!! 你用實驗板正常 用自製板子出問題,實驗板應該都有配上 拉上電阻10K吧!!
  組合語言我沒經驗!! LEGION大或是YSC大請他們協助吧!!

程式中顯示玩之後為了怕殘影!!一般都會把他關掉再顯示下一個字,你的CPU速度快了12倍會不會跑太快了!!導致殘影嚴重辨明顯了!!

PS:你給的 JJ套件在四樓可以收到較正常的信號!!  程式撰寫中...
 樓主| 發表於 2012-9-26 12:00:38 | 顯示全部樓層
本帖最後由 fatzeros 於 2012-9-26 12:07 PM 編輯

把ULN2083拿掉,直通之後,就正常了,
我再來去爬文看看,ULN2083的驅動到底是要怎麼作!
因為直通後電流還是不夠,有一位顯示都出不太來!
發表於 2012-9-26 12:44:29 | 顯示全部樓層
fatzeros 發表於 2012-9-26 12:00 PM static/image/common/back.gif
把ULN2083拿掉,直通之後,就正常了,
我再來去爬文看看,ULN2083的驅動到底是要怎麼作!
因為直通後電流還 ...

因為ULN2803是算反相器,所以加上ULN2803之後,送出的也要反相,這樣顯示的資料才不會錯誤.
 樓主| 發表於 2012-9-26 13:06:01 | 顯示全部樓層
scottwang 發表於 2012-9-26 12:44 PM static/image/common/back.gif
因為ULN2803是算反相器,所以加上ULN2803之後,送出的也要反相,這樣顯示的資料才不會錯誤. ...

哇!
感謝scottwang兄,
改成反相之後,就都正確了,
謝謝謝謝!

ps.阿乾兄,你上次是不是也可能是這樣的問題,所以沒上uln2003啊!
發表於 2012-9-26 17:45:09 | 顯示全部樓層
fatzeros 發表於 2012-9-26 01:06 PM static/image/common/back.gif
哇!
感謝scottwang兄,
改成反相之後,就都正確了,

恭喜老爺賀喜夫人終於突破逆境完成顯示了!!  我的點陣時鐘已經定位也開始"自強不息"所以就不去打擾他了!!!

日本的電波打到這裡已經很弱了!! 加上釣魚台事件,老婆暫時不買日貨不看日劇,所以JJ信號有一搭沒一搭,異常率頗高!! 每秒鐘一個信號,一分鐘更新一次,被米國的GPS衛星的服務水平打敗了(跟蘋果打敗索尼一樣),階段任務完成後就要收山了!!!  剛剛收到"衛星"訊號!! 時間已經更新!!
發表於 2012-9-26 18:21:45 | 顯示全部樓層
奇怪,0 - 9 有10個數字,你怎才編 9 個碼?
掃描控制線在那?
鬼影不清?
都5V,為何用ULN2083?ULN2003?
 樓主| 發表於 2012-9-26 20:48:50 | 顯示全部樓層
本帖最後由 fatzeros 於 2012-9-26 09:14 PM 編輯
單晶片微電腦 發表於 2012-9-26 06:21 PM static/image/common/back.gif
奇怪,0 - 9 有10個數字,你怎才編 9 個碼?
掃描控制線在那?
鬼影不清?


少編了一個,
這個不是動態掃描的,
鬼影不清是因為我的電流的走向不對!
用uln是為了要加大電流,讓顯示器亮的平均,亮得漂亮!不知道這樣對不對?

另外,爬文一直看到,uln2003及uln2803都是灌電流的集成電路,
像請問,灌電流是說從電片機灌電流後經由uln放大嗎?
發表於 2012-9-26 21:47:54 | 顯示全部樓層
5v 夠led用了。你如果覺得不亮,電阻320改220,亮平均用精密電阻。
(越亮越耗電)
 樓主| 發表於 2012-9-26 21:59:00 | 顯示全部樓層
不知道我這樣算對不對!
四個七段,都是亮兩段就好,
共15*2*4=120ma的電流灌入單片機,
這樣單片機受得了嗎?會不會燒掉啊?

因為,我其實有試過把uln2803拿掉,好像也沒什麼事!
只是不曉得是接觸不良還是電流不夠,亮度好像不是很好!
發表於 2012-9-26 22:33:04 | 顯示全部樓層
怕電流太大,可以加ULN2803當保護。(你顯示的方式很特殊)
一般說來,新買的共陽顯示不掃描是很亮的,掃描以後還是很亮。
通常都是用掃描的方式讓電流流進單晶片,所以電流並不會很多。
建議你用掃描的方式顯示。

發表於 2012-9-27 02:07:56 | 顯示全部樓層
fatzeros 發表於 2012-9-26 09:59 PM static/image/common/back.gif
不知道我這樣算對不對!
四個七段,都是亮兩段就好,
共15*2*4=120ma的電流灌入單片機,

>四個七段,都是亮兩段就好,
>共15*2*4=120ma的電流灌入單片機,

因為是掃描,所以同一時間只有一個LED位數被驅動,15mA x2 =30mA.

stc15f204ea的文件說明,page 7,每個I/O最多提供20mA,全部晶片最多提供90mA.
http://www.stcmcu.com/datasheet/ ... -series-chinese.pdf

所以是晶片本身就限制了總電流量,以單一個LED點亮時來說,每個LED靜態最高10mA,若以80%計算為10mA x 80% = 8mA,當單一七節式LED顯示為8之電流為 8mA x 8 = 64mA,而I/O之輸出電流Imax=20mA,以80%計, 20mA x 80% = 16mA, (5V-0.2V(BJT)-2V(LED)) / 16mA = 175Ω,用180Ω,反推電流I=(5V-0.2V-2V)/180Ω=15.56mA,若以4個掃描來算,15.56mA/4=3.89mA,也就是其亮度可能只有靜態時3.89mA的亮度,若以最高電流20mA來算,大約是20mA/4=5mA的亮度,不管是3.89mA或者是5mA,若是LED本身的亮度不足的話,經過掃描的亮度看起來就不大亮.

LED亮度不足的問題,處理的方式有:
1. 找發光效率更佳的七節式LED.
2. 用電晶體或ULN2803來驅動以增加電流量.
3. 用深色,如紅色,咖啡色等壓克力板做濾色處理,以增加字節的辨識度.
 樓主| 發表於 2012-9-27 08:48:48 | 顯示全部樓層
本帖最後由 fatzeros 於 2012-9-27 08:54 AM 編輯
scottwang 發表於 2012-9-27 02:07 AM static/image/common/back.gif
>四個七段,都是亮兩段就好,
>共15*2*4=120ma的電流灌入單片機,


感謝scottwang兄,真是受教啦!
看樣子,我好像還是錯很大,
七段的顯示電流算得太高了,
謝謝謝謝!
發表於 2012-9-28 04:34:15 | 顯示全部樓層
A1015 接腳對嗎?
發表於 2012-9-28 07:34:38 | 顯示全部樓層
單晶片微電腦 發表於 2012-9-28 04:34 AM static/image/common/back.gif
A1015 接腳對嗎?

A1015 接腳.看起來.好像C極和E極接相反了????.....
 樓主| 發表於 2012-9-28 08:50:52 | 顯示全部樓層
本帖最後由 fatzeros 於 2012-9-28 09:04 AM 編輯

嗯!
關於這個問題,我也想問電料行,
我運氣好,人品佳,
買到了這一種,我自己也量過了,
是這樣沒錯!

這個圖,是小弟不才我自己畫的,
雖然畫得很爛,也沒有什麼電路概念,
但是,都是自己一點一點畫出來的!
我還在學習!

感謝大家的不吝賜教啊!:sam43 :sam08
發表於 2012-9-28 18:08:56 | 顯示全部樓層
fatzeros 發表於 2012-9-28 08:50 AM static/image/common/back.gif
嗯!
關於這個問題,我也想問電料行,
我運氣好,人品佳,

FATZEROS大:
    作玩具?還是 作來賣? 假如只是玩具,那就可以不惜血本 換用亮度很高的LED,要不就是 忍受它的亮度不足,反正自己爽就好了!! 亮度不夠就把電壓拉高在使用 驅動IC 或是電晶體,亮度會很夠吧!!
 樓主| 發表於 2012-9-28 18:11:02 | 顯示全部樓層
antlu 發表於 2012-9-28 06:08 PM static/image/common/back.gif
FATZEROS大:
    作玩具?還是 作來賣? 假如只是玩具,那就可以不惜血本 換用亮度很高的LED,要不就是 忍受 ...

玩具啦!作來賣,我可能會賠死!
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-11-23 12:07 PM , Processed in 0.247606 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.