51单片机仿真_用8个LED模拟数码管显示数字0-9以及小数点(含Proteus文件和代码)

目录

0.引言

1.演示视频

2.代码

3.Proteus文件(包含项目文件和代码)

4.二极管显示数字的简易思路(真值表)


0.引言

Q0:题目意义?

A0:平常用的数码管都是别人封装好的直接用即可,并不需要关心内部如何实现。而这个题目就是自己模仿了数码管的数字0-9显示功能,便于理解数码管的显示构造和基本原理。

Q1:为什么想做这个题?

A1:当然是因为hh老师对学生的期望了(bushi)。

Q2:如何实现?

A2:首先,用7个led显示数字(以及1个led显示小数点,在该题中常亮即可),其实就是将数字0-9的显示通过7个点的采样表示(如下图)。通过同时点亮不同的点,达到显示不同的数字。

 

Q3:前置知识?

A3:电路(需要会在仿真电路中点亮多个led,共阴极或共阳极皆可)、数字逻辑(真值表与逻辑表达式,用于优化电路)。

1.演示视频

51单片机仿真_用LED模拟数码管显示数字

2.代码

#include<reg51.h>
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;
sbit led9=P2^0;
sbit led10=P2^1;
void delay(void)
{
	unsigned int i;
	for(i=0;i<40000;i++);
}
int main(void)
{	
	while(1)
	{
	unsigned char led,a,b;
	led=0xfe;
	while(1)
	{
		led1=0;		delay();		led1=1;
		led2=0;		delay();		led2=1;
		led3=0;		delay();		led3=1;
		led4=0;		delay();		led4=1;
		led5=0;		delay();		led5=1;
		led6=0;		delay();		led6=1;
		led7=0;		delay();		led7=1;
		led8=0;		delay();		led8=1;	
		led9=0;		delay();		led9=1;
		led10=0;		delay();		led10=1;
	}
}	 
}

3.Proteus文件(包含项目文件和代码)

下载路径

链接:https://pan.quark.cn/s/f67b34c27953

提取码:xj3u

Proteus版本:Proteus 8 Professional

打开工程,选择文件num8_suc_bus.pdsprj

若LED无法正常跳动显示数字,请将Proteus以管理员身份运行

4.二极管显示数字的简易思路(真值表)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值