实验室数码管仿真实验

1、数码管工作原理:使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。
2、共阴数码管管表
 0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d
 0 1 2 3 4 5
 0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c
 6 7 8 9 A B
 0x39 , 0x5e , 0x79 , 0x71 , 0x00
 C D E F 无显示
3、74H573的使用
在这里插入图片描述
1.) OE为使能端,当他为低电平的时候, 锁存器开始工作
2. )VCC和GND为电源和地端
3. )LE为锁存端,当LE为高电平的时候,Q0 ~ Q7都跟D0 ~ D7状态一样,当LE为低电平的时候,Q0 ~ Q7都锁存数据,无论D0~ D7怎么变化,Q0~Q7都保持锁存之前的那个状态。

数码管亮灯程序:

#include<reg52.h>

#define uint unsigned int
#define uchar unsigned char

sbit LE = P1^0;

uint number = 21;
uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,
						0x6d,0x7d,0x07,0x7f,0x6f};

void delay_ms(uint xms)
{
	uint i,j;
	for(i = xms;i > 0;i--)
		for(j = 110;j > 0;j--);
}

void display()
{
	LE = 1;
	P2 = 0xfe;
	LE = 0;
	P2 = table[number%10];
	delay_ms(5);
	P2 = 0x00;

	LE = 1;
	P2 = 0xfd;
	LE = 0;
	P2 = table[number/10];
	delay_ms(5);
	P2 = 0x00;
}

void main()
{
	while(1)
	{
		display();
	}
}

仿真程序如图:
在这里插入图片描述

发布了43 篇原创文章 · 获赞 41 · 访问量 1813

猜你喜欢

转载自blog.csdn.net/weixin_45662626/article/details/102025392