C51 Proteus仿真实验8:8只数码管动态显示多个不同字符

说明

数码管动态扫描显示0-7

Proteus仿真

8只数码管动态显示多个不同字符

注意:
RX8的1-8引脚脚依次连接数码管的A-G和DP
RX8的9-16引脚依次连接P0.0-P0.7
Q1-Q8的基极(B)依次连接P2.0-P2.7
Q1-Q8的集电极(C)依次连接数码管的1-8
Q1-Q8的发射极(E)连接电源

使用到的元器件:
单片机:AT89C51
电容:CAP
极性电容:CAP-ELEC
电阻:RES
晶振:CRYSTAL
数码管:7SEG-MPX8-CA-BLUE
排阻:RX8
三极管:NPN

C51代码

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int

//数码管ABCDEFG七段显示器编码,从左到右分别代表数字0-9
//DSY_CODE数组存储的是低电平点亮的编码
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//延时
void DelayMs(uint ms)
{
	uchar i;
	while(ms--)
	{
		for(i=0;i<120;i++);
	}
}

void main()
{
	uchar i,Pos = 0x80;
	P0 = 0xff;
	P2 = 0xff;//关闭所有位选择
	while(1)
	{
		//应先进行位选择,在进行段选择
		for(i=0;i<8;i++)
		{
			Pos = _crol_(Pos,1);
			P2 = Pos;//位选择
			P0 = DSY_CODE[i];//段选择
			DelayMs(2);
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值