51单片机:单个数码管动态显示

本文介绍了如何在Proteus软件中进行51单片机的仿真,包括选用的元件如AT89C51RC2单片机和共阴极数码管7SEG-MPX1-CC,以及详细的操作步骤,如新建工程、添加元件、连接电路。同时,文章还展示了在Keil中插入的数码管动态显示的代码片段。

仿真电路(软件为Proteus)

所用元件目录

1、AT89C51RC2:单片机
2、BUTTON:按键
3、CAP:电容
4、CRYSTAL:晶振
5、RES:电阻
6、7SEG-MPX1-CC(红色,共阴极数码管)

注:
1.在Proteus里数码管名称后CC表示共阴极,CA表示共阳极,在选择的时候需要注意跟你写的程序是否匹配。

步骤

对Proteus软件操作步骤:

  1. 新建工程;
  2. 添加元件;
  3. 添加电源:(正:POWER;负:GROUND);
  4. 放置元件,按电路图连接(因单个数码管引脚较近,连接时需得注意,如果不行可换个一端连接);

插入电路图

请添加图片描述
上图就是用仿真软件制作的线路原理图,此时是仿真状态截的图。

插入一段漂亮的代码片(软件为Keil)

下面展示高亮的 代码片.

#include"reg51.h"

unsigned char m[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 
                 //硬件图上我们是正极连接单片机,所以输出1才能点亮数码管
				 //0,1,2,3,4,5,6,7,8,9,这是共阴极数码管0-9的段码

void delay1ms(unsigned char c)  //c=1时,大约为1ms
{  
	unsigned char a,b;  
	for(c ;c>0;c--)  
		for(b=142;b>0;b--)  
			for(a=2;a>0;a--);  
}

void main()
{
	unsigned char i; //设定两个变量
	P2=0x00;  //在开始点亮前,初始化;
	delay1ms(100); //大约延时100ms	
	while(1)
	{										  	
		for(i=0;i<10;i++)	    //把0移到最右边需要10次
		{
			P2=m[i];   //P2口的8个引脚输出轮流输出m数组中的段码
			delay1ms(100000); 	  //延时函数有最大值,因此我设置了三个,
			delay1ms(100000); 	  //这样可以明显看到数码管的数值在滚动显示
			delay1ms(100000);	  //如果要精确的按秒显示,还是得用单片机内的定时器,这个后续会写
		}									
	}		
}

段码

显示0~9的值
共阴极数码管
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 

共阳极数码管
{0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值