200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 三 51单片机 使用Proteus仿真实现8位数码管滚动显示(仿真及代码)

三 51单片机 使用Proteus仿真实现8位数码管滚动显示(仿真及代码)

时间:2022-09-12 01:54:29

相关推荐

三 51单片机 使用Proteus仿真实现8位数码管滚动显示(仿真及代码)

1,目标

使用51单片机控制8位数码管,分别滚动显示单个数字0~7,程序运行之后,单片机先控制最左边的第一位数码管显示0,其他的熄灭,延时一段时间之后,控制左边第二个数码管显示1,其它熄灭,以此类推,反复循环上述过程。

2,设计方式

使用P0输出段码,P2输出位码,因为单片机的电流不足以点亮数码管,因此,我们可以通过使用由8个NPN型三极管组成的位驱动电路来对数码管进行位驱动和位控制扫描,话不多说,上程序

3,代码如下

#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar code dis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};//共阳数码管段码表 01234567//0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9,0xc07~0void delay(uint t)//延时子函数{uchar i;while(t--) for(i=0;i<200;i++);}void main(){uchar i,j=0x80;//10000000while(1){for(i=0;i<8;i++){j=_crol_(j,1);//_crol_(j,1)——将j循环左移1位P0=dis_code[i];//P0口输出段码P2=j; //P2口输出位控码delay(200);P0=0x00;}}}

4,仿真图如下

5,小结

由于数码管的余晖和人眼的“视觉暂留”,只要控制好数码管的显示时间并减小延时时间,即可实现8位数码管“同时点亮”的效果。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。