您的位置 首页 知识

74ls154怎么接单片机及程序共享

74ls154如何接单片机及程序分享-本文主要介绍了74ls154如何接单片机及程序分享。采用AT89C52单片机作控制器,整个电路主要由单片机控制及其接口电路、驱动显示电路、电源电路等部分组成。当某一行线为高电平而某一列线为低时,其行列交叉的点就被点亮;而当其某一列线为高时,其行列交叉的点为暗;当某一行线为低电平时,无论列线如何,对应这一行的点全部为暗。

本体系选用AT89C52单片机作操控器,整个电路主要由单片机操控及其接口电路、驱动显现电路、电源电路等部分组成。为了简化显现屏电路,降低成本,本体系在单片机部分不加字库存储器。而在PC机上修改汉字和字符显现信息,并将其转换为相应的点阵显现数据,然后通过串口(选用RS-232通讯规范)送给单片机存储并进行显现处理。图1所示为其硬件体系原理图。

74ls154怎么接单片机及程序共享

用74LS154规划的16×16点阵屏

图2是一种8×8的LED点阵单色行共阳模块的内部结构图,其单点作业电压Uf为1.8 V,正向电流IF为8~10 mA。当某一行线为高电平而某一列线为低时,其队伍穿插的点就被点亮;而当其某一列线为高时,其队伍穿插的点为暗;当某一行线为低电平时,无论列线怎么,对应这一行的点悉数为暗。

74ls154怎么接单片机及程序共享

用四个8×8点阵显现可构成16×16点阵显现器,其衔接办法如图3所示。图中,将(A)和(B)的8列、(C)和(D)的8列别离对应相连,一起将(A)和(C)的8行、 (B)和(D)的8行别离对应相连。即可构成一个16行(每一行有16个LED)、16列(每一列也有16个LED)的16×16点阵显现器,可将这256个点称为一页,这样,显现字符时。只需对一页中对应的亮灭进行操控即可。

74ls154怎么接单片机及程序共享

LED点阵显现器的扫描驱动

LED显现屏驱动电路的规划应与所用操控体系相配合。驱动一般分为动态扫描型及静态锁存型驱动二大类。本文以动态扫描型驱动电路的规划为例来进行剖析。动态扫描型驱动方法是指显现屏上的16行发光二极管共用一组列驱动寄存器,然后通过行驱动管的分时作业,来使每行LED的点亮时刻占总时刻的1/16。只需每行的改写速率大于50 Hz,利用人眼的视觉暂留效应,人们就能够看到一幅完好的文字或画面。

74HC138 效果原理于高性能的存贮译码或要求传输推迟时刻短的数据传输体系,在 高性能存贮器体系中,用这种译码器能够进步译码体系的功率。将快速赋能电路用于高速存贮器时,译码器的推迟时刻和存贮器的赋能时刻一般小于存贮器的典型存取时刻,这就是说由肖特基钳位的体系译码器所引起的有用体系推迟能够忽略不计。HC138 依照三位二进制输入码和赋能输入条件,从8 个输出端中译出一个 低电平输出。

AT89S52单片机有四个I/O口(P0、P1、P2、P3),每个I/O口有8位,假如都选用并行输出,明显不能满足要求,因而,本规划中的行扫描驱动选用并口输出,而场扫描驱动选用串口输出。

74ls154怎么接单片机及程序共享

行扫描驱动

因为16×64点阵显现器有16行,为充分利用单片机的接口,本电路中加入了一个4-16线译码器74LS154,其输入是一个16进制码,解码输出为低态扫描信号,它们的管脚示意图如图4所示。把74LS154的G1和G2引脚接地,然后以A、B、C、D四脚为输入端。就会构成16种不同的输入状况,别离为0000~1111,然后使每种状况只操控一路输出,即会有16路输出。假如一行64点悉数点亮,则通过74LS154的电流将达640 mA,而实际上,74LS154译码器供给不了满足的吸收电流来一起驱动64个LED一起点亮,因而,应在74LS154每一路输出端与16×64点阵显现器对应的每一行之间用一个三极管来将电流信号扩大,本文选用的是达林顿三极管TIP127。这样,74LS154某一输出脚为低电平时,对应的三极管发射极为高电平,然后使点阵显现器的对应行也为高电平。

列扫描驱动

本体系场扫描驱动电路的规划可用串入并出的通用集成电路74HC595来作为数据锁存。74HC595是一个八位串行输入三态并行输出的移位寄存器,其管脚见图4所示,其间SI是串行数据的输入端,RCK是存储寄存器的输入时钟,SCK是移位寄存器的输入时钟,Q‘H是串人数据的输出,G是对输人数据的输出使能操控,QA~QH为串入数据的并行输出。从SI口输入的数据可在移位寄存器的SCK脚上升沿的效果下输入到74HC595中。并在RCK脚的上升沿效果下将输入的数据锁存在74HC595中,这样,当G为低电平时,数据便可并行输出。为了避免与PC机串口输入的数据彼此搅扰,也可运用模仿串口P1.4~P1.7来别离输出串行数据、移位时钟SCK、存储信号RCK和并行输出的使能信号G。

为了消除电源电压的动摇及行扫描管压降(榜首行点亮的点数不同,将引起管压降的改变,然后影响通过LED管的电流)的改变对LED显现屏亮度的影响,规划时可选用列恒流驱动电路,可选用三极管8550和外围元件构成列恒流驱动电路,并通过调整100 kΩ可调电阻使三极管处于扩大状况,一起将集电极电流调整为10 mA,然后使点亮对应点阵时通过LED的电流不变。

扫描显现作业进程

将8片74HC595进行级连,可共用一个移位时钟SCK及数据锁存信号RCK。这样,当榜首行需求显现的数据通过8×8=64个SCK时钟后便可将其悉数移入74HC595中,此刻还将发生一个数据锁存信号RCK将数据锁存在74HC595中,并在使能信号G的效果下,使串入数据并行输出,然后使与各输出位对应的场驱动管处于扩大或截止状况;一起由行扫描操控电路发生信号使榜首行扫描管导通,相当于榜首行LED的正端都接高,明显,榜首行LED管的亮灭就取决于74HC595中的锁存信号;此外,在榜首行LED管点亮的一起,再在74HC595中移入第二行需求显现的数据,随后将其锁存,一起由行扫描操控电路将榜首行扫描管封闭而接通第二行,使第二行LED管点亮,以此类推,当第十六行扫描往后再回到榜首行,这样,只需扫描速度满足高,就可构成一幅完好的文字或图画。

软件规划流程图

74ls154怎么接单片机及程序共享

程序代码

#include《reg52.h》

char tab[32]={

0x00,0x00,0x10,0x00,0x90,0x3F,0x90,0x10,0xFF,0x10,0x90,0x10,0x90,0xBF,0x10,0x40,

0x00,0x30,0xFE,0x0F,0x22,0x02,0x22,0x42,0x22,0x82,0xFE,0x7F,0x00,0x00,0x00,0x00};

char tab1[32]={

0x10,0x04,0x10,0x03,0xD0,0x00,0xFF,0xFF,0x90,0x00,0x10,0x11,0x00,0x08,0x10,0x04,

0x10,0x03,0xD0,0x00,0xFF,0xFF,0xD0,0x00,0x10,0x03,0x10,0x04,0x10,0x08,0x00,0x00};

char tab2[32]={

0x10,0x04,0x60,0x04,0x02,0x7C,0x0C,0x03,0xC0,0x20,0x04,0x20,0x04,0x20,0x04,0x20,

0x04,0x20,0xFC,0x3F,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x00,0x20,0x00,0x00} ;

void delay(int z)

{

int x,y;

for(x=z;x》0;x–)

for(y=10;y》0;y–);

}

void main(void)

{

int i,j;

while(1)

{

for(i=200;i》0;i–)

{

P3 = 0xf0;

P0 = tab[0];

P2 = tab[1];

delay(1);

P3 = 0xf1;

P0 = tab[2];

P2 = tab[3];

delay(1);

P3 = 0xf2;

P0 = tab[4];

P2 = tab[5];

delay(1);

P3 = 0xf3;

P0 = tab[6];

P2 = tab[7];

delay(1);

P3 = 0xf4;

P0 = tab[8];

P2 = tab[9];

delay(1);

P3 = 0xf5;

P0 = tab[10];

P2 = tab[11];

delay(1);

P3 = 0xf6;

P0 = tab[12];

P2 = tab[13];

delay(1);

P3 = 0xf7;

P0 = tab[14];

P2 = tab[15];

delay(1);

P3 = 0xf8;

P0 = tab[16];

P2 = tab[17];

delay(1);

P3 = 0xf9;

P0 = tab[18];

P2 = tab[19];

delay(1);

P3 = 0xfa;

P0 = tab[20];

P2 = tab[21];

delay(1);

P3 = 0xfb;

P0 = tab[22];

P2 = tab[23];

delay(1);

P3 = 0xfc;

P0 = tab[24];

P2 = tab[25];

delay(1);

P3 = 0xfd;

P0 = tab[26];

P2 = tab[27];

delay(1);

P3 = 0xfe;

P0 = tab[28];

P2 = tab[29];

delay(1);

P3 = 0xff;

P0 = tab[30];

P2 = tab[31];

}

for(j=200;j》0;j–)

{

P3 = 0xf0;

P0 = tab1[0];

P2 = tab1[1];

delay(1);

P3 = 0xf1;

P0 = tab1[2];

P2 = tab1[3];

delay(1);

P3 = 0xf2;

P0 = tab1[4];

P2 = tab1[5];

delay(1);

P3 = 0xf3;

P0 = tab1[6];

P2 = tab1[7];

delay(1);

P3 = 0xf4;

P0 = tab1[8];

P2 = tab1[9];

delay(1);

P3 = 0xf5;

P0 = tab1[10];

P2 = tab1[11];

delay(1);

P3 = 0xf6;

P0 = tab1[12];

P2 = tab1[13];

delay(1);

P3 = 0xf7;

P0 = tab1[14];

P2 = tab1[15];

delay(1);

P3 = 0xf8;

P0 = tab1[16];

P2 = tab1[17];

delay(1);

P3 = 0xf9;

P0 = tab1[18];

P2 = tab1[19];

delay(1);

P3 = 0xfa;

P0 = tab1[20];

P2 = tab1[21];

delay(1);

P3 = 0xfb;

P0 = tab1[22];

P2 = tab1[23];

delay(1);

P3 = 0xfc;

P0 = tab1[24];

P2 = tab1[25];

delay(1);

P3 = 0xfd;

P0 = tab1[26];

P2 = tab1[27];

delay(1);

P3 = 0xfe;

P0 = tab1[28];

P2 = tab1[29];

delay(1);

P3 = 0xff;

P0 = tab1[30];

P2 = tab1[31];

}

for(j=200;j》0;j–)

{

P3 = 0xf0;

P0 = tab2[0];

P2 = tab2[1];

delay(1);

P3 = 0xf1;

P0 = tab2[2];

P2 = tab2[3];

delay(1);

P3 = 0xf2;

P0 = tab2[4];

P2 = tab2[5];

delay(1);

P3 = 0xf3;

P0 = tab2[6];

P2 = tab2[7];

delay(1);

P3 = 0xf4;

P0 = tab2[8];

P2 = tab2[9];

delay(1);

P3 = 0xf5;

P0 = tab2[10];

P2 = tab2[11];

delay(1);

P3 = 0xf6;

P0 = tab2[12];

P2 = tab2[13];

delay(1);

P3 = 0xf7;

P0 = tab2[14];

P2 = tab2[15];

delay(1);

P3 = 0xf8;

P0 = tab2[16];

P2 = tab2[17];

delay(1);

P3 = 0xf9;

P0 = tab2[18];

P2 = tab2[19];

delay(1);

P3 = 0xfa;

P0 = tab2[20];

P2 = tab2[21];

delay(1);

P3 = 0xfb;

P0 = tab2[22];

P2 = tab2[23];

delay(1);

P3 = 0xfc;

P0 = tab2[24];

P2 = tab2[25];

delay(1);

P3 = 0xfd;

P0 = tab2[26];

P2 = tab2[27];

delay(1);

P3 = 0xfe;

P0 = tab2[28];

P2 = tab2[29];

delay(1);

P3 = 0xff;

P0 = tab2[30];

P2 = tab2[31];

}

}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/347827.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部