欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3098|回復: 15
打印 上一主題 下一主題
收起左側

單片機動態顯示數碼管可以用三極管8550來控制公共端嗎

[復制鏈接]
跳轉到指定樓層
樓主

我根據這圖在Proteus上面畫了仿真,由于沒有8550這個型號的三極管就隨便用了個管子,發現根本不行。


我想顯示34,給我顯示了99.
我覺得可能是三極管的頻率不夠,所以將低了頻率,還是不行。
  1. #include<reg52.h>

  2. typedef unsigned char u8;
  3. typedef unsigned int u16;

  4. sbit smg1=P2^5;
  5. sbit smg2=P2^4;

  6. u8 gsmg_code[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};


  7. void delay_10us(u16 ten_us)
  8. {
  9.         while(ten_us--);        
  10. }


  11. void main()
  12. {
  13.         u8 i=0;
  14.         while(1)
  15.         {
  16.                   P1=gsmg_code[3];
  17.                   smg1=0;
  18.                         smg2=1;
  19.                         delay_10us(5000);
  20.                         P1=0XFF;
  21.                         P1=gsmg_code[4];
  22.                   smg1=1;
  23.                         smg2=0;
  24.                         delay_10us(5000);
  25.                   P1=0XFF;
  26.         }
  27. }
復制代碼

感覺還是頻率的問題,如果用真的8550,可以嗎?
因為沒有實物,也是不了。
我用單片機直接連公共端控制的時候,是可以的。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:883242 發表于 2024-1-13 17:17 | 只看該作者
盲猜你的Proteus模型用錯了。

電路上RN3兩端電壓,從P1.7~P1.0就是十六進制0x9,二進制1001 1001,你注意到沒有?二進制8位里面有4位高,4位低。

而顯示的7段碼“9”有6個高2個低,或者邏輯相反有有2個高6個低,絕對不可能是4高4低!

那么問題的原因就顯而易見了。

你用的不是一般的7段數碼管,而是內置譯碼的數碼管,把你給的0x9電平翻譯成“9”顯示出來了。
回復

使用道具 舉報

板凳
ID:213173 發表于 2024-1-13 21:43 | 只看該作者



電路和代碼都沒有問題,是仿真用的三極管不能截止,導致兩個數碼管同時交替顯示3和4,筆畫疊加在一起就成99。可以用反相器代替三極管就可以正常顯示。
回復

使用道具 舉報

地板
ID:634587 發表于 2024-1-14 11:17 | 只看該作者
三極管的開關頻率應該可以到Mhz以上吧,再不行也可以試試用MOS管。
回復

使用道具 舉報

5#
ID:883242 發表于 2024-1-14 12:41 | 只看該作者
wulin 發表于 2024-1-13 21:43
電路和代碼都沒有問題,是仿真用的三極管不能截止,導致兩個數碼管同時交替顯示3和4,筆畫疊加在一起 ...

你的解釋與他的硬件圖紙中七段數碼管的引腳電平狀態不符。
回復

使用道具 舉報

6#
ID:517951 發表于 2024-1-14 13:15 | 只看該作者
可以用8550控制COM端, 只不過是高電平截止, 低電平導通.
回復

使用道具 舉報

7#
ID:213173 發表于 2024-1-14 14:28 | 只看該作者
Hephaestus 發表于 2024-1-14 12:41
你的解釋與他的硬件圖紙中七段數碼管的引腳電平狀態不符。

你哪來的自信?如果會玩Proteus,按樓主的電路和代碼驗證一下就懂了。圖中數碼管明顯有DP端。共陽段碼“4”=0x99=10011001。怎么絕對不可能是4高4低!內置譯碼的數碼管??想多了吧。
回復

使用道具 舉報

8#
ID:1091094 發表于 2024-1-15 10:02 | 只看該作者
wulin 發表于 2024-1-13 21:43
電路和代碼都沒有問題,是仿真用的三極管不能截止,導致兩個數碼管同時交替顯示3和4,筆畫疊加在一起 ...

不會把,為什么不能截止?
因為我讓基極懸空,這肯定是截止了吧。
截止時很重要的功能呀,Proteus這個功能都不給嗎?那么說現實中應該可以吧。頻率應該夠。我查了有十幾Mhz。
回復

使用道具 舉報

9#
ID:1091094 發表于 2024-1-15 10:05 | 只看該作者
rayin 發表于 2024-1-14 13:15
可以用8550控制COM端, 只不過是高電平截止, 低電平導通.

這就是啊,三極管控制公共端啊,很明顯,你看一下就知道。
回復

使用道具 舉報

10#
ID:275826 發表于 2024-1-15 11:02 | 只看該作者
PNP三極管C極接個下拉電阻就好了
回復

使用道具 舉報

11#
ID:213173 發表于 2024-1-15 15:13 | 只看該作者
3038838599 發表于 2024-1-15 10:02
不會把,為什么不能截止?
因為我讓基極懸空,這肯定是截止了吧。
截止時很重要的功能呀,Proteus這個 ...

你把延時加一個0,delay_10us(50000);就能看明白了。10樓的建議很好。
回復

使用道具 舉報

12#
ID:1091094 發表于 2024-1-15 15:19 | 只看該作者
tyrl800 發表于 2024-1-15 11:02
PNP三極管C極接個下拉電阻就好了

真的 馬上就OK了,不明覺厲。
大佬大佬
大佬 我想問問實物不加下拉電阻可以嗎?
回復

使用道具 舉報

13#
ID:161164 發表于 2024-1-15 15:21 | 只看該作者
第27,32行的消影消了個寂
回復

使用道具 舉報

14#
ID:1091094 發表于 2024-1-15 16:25 | 只看該作者
lkc8210 發表于 2024-1-15 15:21
第27,32行的消影消了個

哈哈哈  我看了一下,確實是這樣
普中的教程視頻里面也是這樣子消影的。
然后你標的語句的順序其實是可以的,在物理成面來說,因為時間很快兩條指令的時間,觀感上面是不影響的

但是你的想法確實是對的。嚴謹。
回復

使用道具 舉報

15#
ID:427868 發表于 2024-1-15 17:07 | 只看該作者
       在切換兩位數碼管輪流顯示時,并沒有先關閉上一位,延時時間又太短,頻繁切換顯示就會每位3與4有重復顯示,造成都是顯示99,如果是實際電路會看到筆畫明暗程度差別較大。
      修改一下,試試。
  1. while(1)
  2.         {
  3.                   P1=gsmg_code[3];
  4.                   smg1=0;
  5.                   delay_10us(5000);
  6.                   P1=0XFF;
  7.                   smg1=1;
  8.                   P1=gsmg_code[4];
  9.                   smg2=0;
  10.                   delay_10us(5000);
  11.                   P1=0XFF;
  12.                   smg2=1;
  13.         }
復制代碼
回復

使用道具 舉報

16#
ID:1034262 發表于 2024-1-15 19:04 | 只看該作者
當然可以,經常用
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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