![]() |
發布時間: 2024-1-13 16:23
正文摘要:我想顯示34,給我顯示了99. 我覺得可能是三極管的頻率不夠,所以將低了頻率,還是不行。 #include<reg52.h> typedef unsigned char u8; typedef unsigned int u16; sbit smg1=P2^5; sbit smg2=P2^4; ... |
當然可以,經常用 |
在切換兩位數碼管輪流顯示時,并沒有先關閉上一位,延時時間又太短,頻繁切換顯示就會每位3與4有重復顯示,造成都是顯示99,如果是實際電路會看到筆畫明暗程度差別較大。 修改一下,試試。
|
lkc8210 發表于 2024-1-15 15:21 ![]() 普中的教程視頻里面也是這樣子消影的。 然后你標的語句的順序其實是可以的,在物理成面來說,因為時間很快兩條指令的時間,觀感上面是不影響的 但是你的想法確實是對的。嚴謹。 |
第27,32行的消影消了個寂
![]() |
tyrl800 發表于 2024-1-15 11:02 真的 馬上就OK了,不明覺厲。 大佬大佬 大佬 我想問問實物不加下拉電阻可以嗎? |
3038838599 發表于 2024-1-15 10:02 你把延時加一個0,delay_10us(50000);就能看明白了。10樓的建議很好。 |
PNP三極管C極接個下拉電阻就好了 |
rayin 發表于 2024-1-14 13:15 這就是啊,三極管控制公共端啊,很明顯,你看一下就知道。 |
wulin 發表于 2024-1-13 21:43 不會把,為什么不能截止? 因為我讓基極懸空,這肯定是截止了吧。 截止時很重要的功能呀,Proteus這個功能都不給嗎?那么說現實中應該可以吧。頻率應該夠。我查了有十幾Mhz。 |
Hephaestus 發表于 2024-1-14 12:41 你哪來的自信?如果會玩Proteus,按樓主的電路和代碼驗證一下就懂了。圖中數碼管明顯有DP端。共陽段碼“4”=0x99=10011001。怎么絕對不可能是4高4低!內置譯碼的數碼管??想多了吧。 |
可以用8550控制COM端, 只不過是高電平截止, 低電平導通. |
wulin 發表于 2024-1-13 21:43 你的解釋與他的硬件圖紙中七段數碼管的引腳電平狀態不符。 |
三極管的開關頻率應該可以到Mhz以上吧,再不行也可以試試用MOS管。 |
![]() 電路和代碼都沒有問題,是仿真用的三極管不能截止,導致兩個數碼管同時交替顯示3和4,筆畫疊加在一起就成99?梢杂梅聪嗥鞔嫒龢O管就可以正常顯示。 |
盲猜你的Proteus模型用錯了。 電路上RN3兩端電壓,從P1.7~P1.0就是十六進制0x9,二進制1001 1001,你注意到沒有?二進制8位里面有4位高,4位低。 而顯示的7段碼“9”有6個高2個低,或者邏輯相反有有2個高6個低,絕對不可能是4高4低! 那么問題的原因就顯而易見了。 你用的不是一般的7段數碼管,而是內置譯碼的數碼管,把你給的0x9電平翻譯成“9”顯示出來了。 |