专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
求助,PNP三极管驱动共阳数码管的问题,帮忙看下Protues仿真图哪里有问题?
2020-02-04 09:09
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
12249
9
9
RT,用protues仿真,51单片机连接数码管显示时间,数码管驱动怎么显示不正确呢?不用三极管驱动的话是正确显示的。
。
(原文件名:未命名.jpg)
(原文件名:QQ截图20110514115500.jpg)
(原文件名:QQ截图20110514115539.jpg)
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
Hamyou
1楼-- · 2020-02-04 12:27
在数码管驱动上,库里面的三极管是无法仿真的,因为此时三极管基本就是开关作用,仿真不了,不过我这里有别人做的模型可以仿真。
(原文件名:ff.jpg)
加载中...
perron
2楼-- · 2020-02-04 17:44
精彩回答 2 元偷偷看……
加载中...
cheng307
3楼-- · 2020-02-04 22:58
回复【1楼】Hamyou
-----------------------------------------------------------------------
我改成npn就可以正常显示了。。这什么情况?。。我是用的共阳数码管呀?
加载中...
cheng307
4楼-- · 2020-02-05 00:12
回复【2楼】perron
-----------------------------------------------------------------------
换npn了。。就正常了。。
显示正常了,但是为什么秒比原来那个慢了1秒呢?
(原文件名:QQ截图20110514130124.jpg)
加载中...
cheng307
5楼-- · 2020-02-05 05:05
贴下程序:
#include<reg52.h>
sbit ksec=P3^0;
sbit kmin=P3^1;
sbit khour=P3^2;
sbit P33=P3^3;
unsigned char
secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0;
unsigned int num=0,sec=0,min=0,hour=0,x,n;
unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(unsigned int);
void keyscan();
void display();
main()
{ TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;ET0=1;TR0=1; TR1=0; ET1=1;
while(1)
{
display();
keyscan();
}
}
void delay(unsigned int z)
{unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);}
void time0() interrupt 1
{num++;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
}
void time1() interrupt 3
{
n++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
void display()
{
if(min==0)
{
TR1=1;
}
else
{TR1=0;}
if(n>10)
{
n=0;
P33=~P33;
}
if(num==20)
{num=0;
sec++;
if(sec==60)
{sec=0;
min++;
if(min==60)
{min=0;
hour++;
if(hour==24)
{hour=0;
min=0;
sec=0;
}
}
}
}
secge=sec%10;
secshi=sec/10;
minge=min%10;
minshi=min/10;
hourge=hour%10;
hourshi=hour/10;
P2=1;
P0=table[secge];
delay(5);
P2=2;
P0=table[secshi];
delay(5);
P2=4;
P0=191;
delay(5);
P2=8;
P0=table[minge];
delay(5);
P2=16;
P0=table[minshi];
delay(5);
P2=32;
P0=191;
delay(5);
P2=64;
P0=table[hourge];
delay(5);
P2=128;
P0=table[hourshi];
delay(5);
}
void keyscan()
{
if(ksec==0)
{delay(10);
if(ksec==0)
{sec++;
if(sec>=60)
sec=0;
}
while(ksec==0)
display();}
if(kmin==0)
{delay(10);
if(kmin==0)
{min++;
if(min>=60)
min=0;
}
while(kmin==0)
display();
}
if(khour==0)
{delay(10);
if(khour==0)
{hour++;
if(hour>=24)
hour=0;
}
while(khour==0)
display();
}
}
加载中...
Hamyou
6楼-- · 2020-02-05 07:51
换成PNP的三极管,不管怎么改都不能正常工作
我不用库里面的三极管,对于数码管来说不好使
加载中...
1
2
下一页
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
东软载波ESF0654 PDS开发板串口USART0代码分享
1 个回答
普通32位单片机使用linux的应用代码
5 个回答
东软载波ESF0654 PDS开发板AT24C04的调试
9 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
(原文件名:ff.jpg)
-----------------------------------------------------------------------
我改成npn就可以正常显示了。。这什么情况?。。我是用的共阳数码管呀?
-----------------------------------------------------------------------
换npn了。。就正常了。。
显示正常了,但是为什么秒比原来那个慢了1秒呢? (原文件名:QQ截图20110514130124.jpg)
#include<reg52.h>
sbit ksec=P3^0;
sbit kmin=P3^1;
sbit khour=P3^2;
sbit P33=P3^3;
unsigned char
secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0;
unsigned int num=0,sec=0,min=0,hour=0,x,n;
unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(unsigned int);
void keyscan();
void display();
main()
{ TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;ET0=1;TR0=1; TR1=0; ET1=1;
while(1)
{
display();
keyscan();
}
}
void delay(unsigned int z)
{unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);}
void time0() interrupt 1
{num++;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
}
void time1() interrupt 3
{
n++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
void display()
{
if(min==0)
{
TR1=1;
}
else
{TR1=0;}
if(n>10)
{
n=0;
P33=~P33;
}
if(num==20)
{num=0;
sec++;
if(sec==60)
{sec=0;
min++;
if(min==60)
{min=0;
hour++;
if(hour==24)
{hour=0;
min=0;
sec=0;
}
}
}
}
secge=sec%10;
secshi=sec/10;
minge=min%10;
minshi=min/10;
hourge=hour%10;
hourshi=hour/10;
P2=1;
P0=table[secge];
delay(5);
P2=2;
P0=table[secshi];
delay(5);
P2=4;
P0=191;
delay(5);
P2=8;
P0=table[minge];
delay(5);
P2=16;
P0=table[minshi];
delay(5);
P2=32;
P0=191;
delay(5);
P2=64;
P0=table[hourge];
delay(5);
P2=128;
P0=table[hourshi];
delay(5);
}
void keyscan()
{
if(ksec==0)
{delay(10);
if(ksec==0)
{sec++;
if(sec>=60)
sec=0;
}
while(ksec==0)
display();}
if(kmin==0)
{delay(10);
if(kmin==0)
{min++;
if(min>=60)
min=0;
}
while(kmin==0)
display();
}
if(khour==0)
{delay(10);
if(khour==0)
{hour++;
if(hour>=24)
hour=0;
}
while(khour==0)
display();
}
}
我不用库里面的三极管,对于数码管来说不好使
一周热门 更多>