找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 627|回复: 15
收起左侧

单片机动态显示数码管可以用三极管8550来控制公共端吗

[复制链接]
ID:1091094 发表于 2024-1-13 16:23 | 显示全部楼层 |阅读模式
屏幕截图 2024-01-13 161502.png
我根据这图在Proteus上面画了仿真,由于没有8550这个型号的三极管就随便用了个管子,发现根本不行。
屏幕截图 2024-01-13 161231.png

我想显示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,可以吗?
因为没有实物,也是不了。
我用单片机直接连公共端控制的时候,是可以的。
回复

使用道具 举报

ID:1091094 发表于 2024-1-15 10:02 | 显示全部楼层
wulin 发表于 2024-1-13 21:43
电路和代码都没有问题,是仿真用的三极管不能截止,导致两个数码管同时交替显示3和4,笔画叠加在一起 ...

不会把,为什么不能截止?
因为我让基极悬空,这肯定是截止了吧。
截止时很重要的功能呀,Proteus这个功能都不给吗?那么说现实中应该可以吧。频率应该够。我查了有十几Mhz。
回复

使用道具 举报

ID:1091094 发表于 2024-1-15 10:05 | 显示全部楼层
rayin 发表于 2024-1-14 13:15
可以用8550控制COM端, 只不过是高电平截止, 低电平导通.

这就是啊,三极管控制公共端啊,很明显,你看一下就知道。
回复

使用道具 举报

ID:1091094 发表于 2024-1-15 15:19 | 显示全部楼层
tyrl800 发表于 2024-1-15 11:02
PNP三极管C极接个下拉电阻就好了

真的 马上就OK了,不明觉厉。
大佬大佬
大佬 我想问问实物不加下拉电阻可以吗?
回复

使用道具 举报

ID:1091094 发表于 2024-1-15 16:25 | 显示全部楼层
lkc8210 发表于 2024-1-15 15:21
第27,32行的消影消了个

哈哈哈  我看了一下,确实是这样
普中的教程视频里面也是这样子消影的。
然后你标的语句的顺序其实是可以的,在物理成面来说,因为时间很快两条指令的时间,观感上面是不影响的

但是你的想法确实是对的。严谨。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表