三、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 int

uchar code dis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};//共阳数码管段码表 01234567
  
//0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9,0xc0	7~0
void  delay(uint t)		//延时子函数
{
	uchar i;
	while(t--) for(i=0;i<200;i++);
}

void  main()
{	
	uchar i,j=0x80;//10000000
	while(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位数码管“同时点亮”的效果。

  • 17
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
要在 Proteus使用八段数码管显示学号,首先需要准备好器材。需要一块单片机开发板、八段数码管、导线以及相应的编程工具。 我们可以使用 C 语言编写程序,在程序中将学号以字符串的形式存储进数组中。然后,将数组中的每一个字符经过转换处理,转化为可以在八段数码管显示的数码。最后,按照数码管的位数,以及对应的引脚接口,向数码管传递对应的信号,使其正确显示出学号。 具体步骤如下: 1. 安装 Proteus 软件并打开。 2. 在工具栏选择“元件模式”,然后在搜索框中输入“AT89S52”来寻找单片机开发板元件,将其拖放进工作区中。 3. 在元件库中找到“数码管”元件,将其拖放进工作区中。 4. 将数码管的引脚与单片机开发板的引脚连接起来。具体连接方式如下: 数码管引脚 连接开发板引脚 A G1 B G2 C G3 D G4 E G5 F G6 G G7 DP P20 5. 根据学号长度,定义对应的数组,并将学号赋值给数组。 6. 在程序中,通过 for 循环遍历数组中的每一个字符,并通过 switch 语句将对应字符转化为数码。 7. 在程序中定义数组来存储数码,然后将对应的数码根据数码管引脚传递给数码管实现数字的显示。 8. 编译代码并上传到单片机开发板中,然后启动调试模式。 9. 在调试模式中查看是否正确显示学号。 通过这些步骤,我们就可以在 Proteus实现八段数码管显示学号。这样的小实验有利于我们进一步学习数字电路和嵌入式开发的知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值