Protues仿真 8X8 LED点阵

Protues仿真 8X8 LED点阵

  • 仿真步骤
  • 原理
  • 代码详解

本博客是关于Protues仿真8X8 LED点阵的具体步骤(包括原理图与代码)

注意:protues中,红色代表高电平,蓝色代表低电平,黄色表示异常
注意:protues中,红色代表高电平,蓝色代表低电平,黄色表示异常
注意:protues中,红色代表高电平,蓝色代表低电平,黄色表示异常

1.仿真所需元件清单:

元件 标号 注释
89C52 U1
74HC595 U2
74HC138 U3
CRYSTAL X1 12MHz
CAP C1,C2 30pF
CAP C3 100uF
RES R1 10K
BUTTON S
MATRIX-8X8-RED D

2.仿真电路图

2.1-晶振电路:

图片:
Protues仿真 8X8 LED点阵_第1张图片

2.2-复位电路:

图片:
Protues仿真 8X8 LED点阵_第2张图片

2.3-单片机:

图片:
Protues仿真 8X8 LED点阵_第3张图片

2.4-8X8 LED点阵:

图片:
Protues仿真 8X8 LED点阵_第4张图片

3.Keil5 代码(C语言):

#include
#include

typedef unsigned char u8;
typedef unsigned int u16;

sbit R3 = P1^2;    //
sbit R2 = P1^1;    //
sbit R1 = P1^0;    //

sbit DS   = P1^5;  //
sbit SHCP = P1^6;  //
sbit STCP = P1^7;  //

data u8 g[]={0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1};

void wrong(u16 i)  //调试用
{
	if(i)
		P0=0xff;
}

void delay1ms(void)   //100ms延时
{
    unsigned char a,b;
    for(b=199;b>0;b--)
        for(a=1;a>0;a--);
}


void row(u8 r)  //选择点亮第几行
{
	switch(r)
	{
		case 1:{R3=1;R2=1;R1=1;};break;
		case 2:{R3=1;R2=1;R1=0;};break;
		case 3:{R3=1;R2=0;R1=1;};break;
		case 4:{R3=1;R2=0;R1=0;};break;
		case 5:{R3=0;R2=1;R1=1;};break;
		case 6:{R3=0;R2=1;R1=0;};break;
		case 7:{R3=0;R2=0;R1=1;};break;
		case 8:{R3=0;R2=0;R1=0;};break;
		
		default :wrong(1);break;
	}
}

void send(u8 d) //选择该行显示的内容
{
	u8 i;
	
	SHCP = 0;
	STCP = 0;
	
	for(i=0;i<8;i++)
	{
		DS = d>>7;
		d<<=1;
		SHCP = 1;
		_nop_();	
		_nop_();	
		SHCP = 0;
	}
	STCP = 1;
	_nop_();
	_nop_();
	STCP = 0;
}

void main()
{
	u8 i;
	
	while(1)
	{
		for(i=0;i<8;i++)
		{
		row(i+1);    //i+1表示第几行
		send(g[i]);
		delay1ms();  //延时
		send(0);     //消隐,和延时一起使用
		}
	}
}

4.仿真结果:

图片:

Protues仿真 8X8 LED点阵_第5张图片
Protues仿真 8X8 LED点阵_第6张图片Protues仿真 8X8 LED点阵_第7张图片

74HC595 串口输入(示波器):

Protues仿真 8X8 LED点阵_第8张图片

74HC138 串口输入(示波器):

Protues仿真 8X8 LED点阵_第9张图片

5.原理:

8X8 LED点阵

Protues仿真 8X8 LED点阵_第10张图片
Protues仿真 8X8 LED点阵_第11张图片
演示图:
阴极 1,3脚接低电平(1,3行可以点亮),阳极1,2脚接高电平( 1,2列可以点亮)。

Protues仿真 8X8 LED点阵_第12张图片

74HC138

Protues仿真 8X8 LED点阵_第13张图片

引脚 功能 用法
4 使能控制 低电平
5 使能控制 低电平
6 使能控制 高电平
1 输入端 二进制最低位
2 输入端 二进制中间位
3 输入端 二进制最高位
Y0~Y7 输出端 对应输入端(从0~7)

示例:

令 A = 0,B = 0 ,C = 0,即输入0b 000,对应八进制数:0o 0,Y0输出低电平
Protues仿真 8X8 LED点阵_第14张图片
A =0,B = 0 ,C = 1,即输入0b 100,对应进八进制0o 4,Y4输出低电平
Protues仿真 8X8 LED点阵_第15张图片

74HC595

引脚 功能 接法
MR 移位寄存器清零 低电平有效
OE 输出使能 低电平有效
Q0~Q7 并行输出
DS 串口输入 一次输入一位
SH_CP 控制数据左移位 高电平有效
ST_CP 数据输出 高电平有效

例如
让并口输出0b 1010 1010(以Q0为最低位),DS按顺序应输入1,0,1,0,1,0,1,0

模拟该输入过程

  • 1-全部置低电平(DS=0,SH_CP=0.ST_CP=0)
    Protues仿真 8X8 LED点阵_第16张图片

  • 2-DS置高电平(输入1)低电平则输入0
    Protues仿真 8X8 LED点阵_第17张图片

  • 3-SH_CP置高电平(产生一个上升电平>2us)

Protues仿真 8X8 LED点阵_第18张图片

  • 4-SH_CP置低电平(恢复低电平)
    Protues仿真 8X8 LED点阵_第19张图片
    2,3,4步重复共8次,即完成1个字节的传输

  • 5-ST_CP置高电平(产生一个上升电平>2us)

注意:第9个引脚输出不用管 !!!
注意:第9个引脚输出不用管 !!!
注意:第9个引脚输出不用管 !!!
Protues仿真 8X8 LED点阵_第20张图片

  • 6-ST_CP置低电平(恢复低电平)
  • Protues仿真 8X8 LED点阵_第21张图片

你可能感兴趣的:(Protues仿真 8X8 LED点阵)