51单片机并行口驱动LED数码管显示电路及程序.docx

上传人:b****4 文档编号:1476221 上传时间:2022-10-22 格式:DOCX 页数:7 大小:71.14KB
下载 相关 举报
51单片机并行口驱动LED数码管显示电路及程序.docx_第1页
第1页 / 共7页
51单片机并行口驱动LED数码管显示电路及程序.docx_第2页
第2页 / 共7页
51单片机并行口驱动LED数码管显示电路及程序.docx_第3页
第3页 / 共7页
51单片机并行口驱动LED数码管显示电路及程序.docx_第4页
第4页 / 共7页
51单片机并行口驱动LED数码管显示电路及程序.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

51单片机并行口驱动LED数码管显示电路及程序.docx

《51单片机并行口驱动LED数码管显示电路及程序.docx》由会员分享,可在线阅读,更多相关《51单片机并行口驱动LED数码管显示电路及程序.docx(7页珍藏版)》请在冰豆网上搜索。

51单片机并行口驱动LED数码管显示电路及程序.docx

51单片机并行口驱动LED数码管显示电路及程序

51单片机并行口驱动LED数码管显示电路及程序

介绍利用51单片机的一个并行口实现多个LED数码管显示的方法,给出了利用此方法设计的多路LED显示系统的硬件电路结构原理图和软件程序流程,同时给出了采用51汇编语言编写程序。

1硬件电路

 多位LED显示时,常将所有位的段选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别由另一个8位I/O口控制;也可采用并行扩展口构成显示电路,通常,需要扩展器件管脚的较多,价格较高。

本文将介绍一种利用单片机的一个并行I/O口实现多个LED显示的简单方法,图1所示是该电路的硬件原理图。

其中,74LS138是3线-8线译码器,74LS164是8位并行输出门控串行输入移位寄存器,LED采用L05F型共阴极数码管。

   显示时,其显示数据以串行方式从89C52的P12口输出送往移位寄存器74LS164的A、B端,然后将变成的并行数据从输出端Q0~Q7输出,以控制开关管WT1~WT8的集电极,然后再将输出的LED段选码同时送往数码管LED1~LED8。

位选码由89C52的P14~P16口输出并经译码器74LS138送往开关管Y1~Y8的基极,以对数码管LED1~LED8进行位选控制,这样,8个数码管便以100ms的时间间隔轮流显示。

由于人眼的残留效应,这8个数码管看上去几乎是同时显示。

<51单片机并行口驱动LED数码管显示电路>

2软件编程

  该系统的软件编程采用MCS-51系列单片机汇编语言完成,并把显示程序作为一个子程序,从而使主程序对其进行方便的调用。

图2所示是其流程图。

具体的程序代码如下:

<51单片机并行口驱动LED数码管显示程序>

pic单片机驱动led数码管显示程序

;*****该程序用于驱动led数码管显示,在8个LED数码管上依次显示数字1、2、3、4、5、6、7、8*******

;****单片机学习网经典程序已测试,led数码管共阴和共阳不同请修改码值转换表部分

LISTP=18F458

INCLUDE"P18F458.INC"

;所用的寄存器

XIANREQU0X20

ORG0X00

GOTOMAIN

ORG0X30

;****************以下为码值转换表********************

CONVERTADDWFPCL,1

RETLW0XC0;0,显示段码与具体的硬件连接有关

RETLW0XF9;1

RETLW0XA4;2

RETLW0XB0;3

RETLW0X99;4

RETLW0X92;5

RETLW0X82;6

RETLW0XD8;7

RETLW0X80;8

RETLW0X90;9

RETLW0X88;A

RETLW0X83;B

RETLW0XC6;C

RETLW0XA1;D

RETLW0X86;E

RETLW0X8E;F

RETLW0X7F;"."

RETLW0XBF;"-"

RETLW0X89;H

RETLW0XFF;DARK

RETURN

;**************初始化子程序*****************

INITIAL

BCFTRISA,5;置RA5为输出方式,以输出锁存信号

BCFTRISC,5

BCFTRISC,3;设置SCK与SDO为输出方式

BCFINTCON,GIE;关闭所有中断

MOVLW0XC0

MOVWFSSPSTAT;设置SSPSTAT寄存器

MOVLW0X30

MOVWFSSPCON1;设置SPI的控制方式,允许SSP方式,并且时钟下降

;沿发送数据,与"74HC595当其SCLK从低到高电平

;跳变时,串行输入数据(DI)移入寄存器"的特点相对应

MOVLW0X11;显示值寄存器赋初值,每个值占两个字节,

MOVWFXIANR;从8开始显示

RETURN;返回

;***************led数码管显示子程序******************

;SPI发送显示子模块

DISPLAY

TRANSMITCLRFPORTA;LACK送低电平,为锁存做准备

MOVWFSSPBUF;启动发送

WAIT

BTFSSPIR1,SSPIF

GOTOWAIT;等待发送结束

BCFPIR1,SSPIF;清除中断标志

NOP

BSFPORTA,5;最后给一个锁存信号,代表一显示任务完成

RETURN

;*****************pic单片机驱动led显示程序的主程序开始***************

MAINNOP

CALLINITIAL;调用系统初始化子程序

LOOPMOVFXIANR,W

CALLCONVERT;查出XIANR的显示段码值

CALLDISPLAY

DECFXIANR

DECFXIANR;显示值减2,因为按字存放,按字节读取

MOVFXIANR,W

SUBLW0X01

BTFSSSTATUS,Z

GOTOLOOP;若送完显示的数,则退出显示

HEREGOTOHERE

END

C语言源程序如下:

/*************************************************

程序名称:

8位数码管移位显示0-F

简要说明:

使用共阳型数码管

                     P0口输出数码管段码,P2口输出数码管位码

编   写:

JiangX.net

时   间:

2008-8-21

*************************************************/

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineduanP0   //定义段码输出

#defineweiP2    //定义位码输出

uchara=0,b=0;    //全局变量。

a:

定时器循环次数;b:

移位量

ucharcodeTAB[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,//空白

                 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,//数字0-9

                 0x88,0x83,0xC6,0xa1,0x86,0x8e,//字母A-F

     0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff//空白

     };

/*****************延时子程序*****************/

voiddelay(n)

   {

 while(n--){

  uintj;

  for(j=0;j<125;j++);

 }

   }

/*****************程序初始化*****************/

voidinit()

  {

   TMOD=0x1;     //定时方式1

   TH0=0xb8;

   TL0=0x63;     //设置计时时间为50ms

 wei=~0;       //设置位扫描初值 

  }

/*****************定时器中断0****************/

voidtimer0(void)interrupt1

  {

   TH0=0xb8;

   TL0=0x63;

 a++;    //移位变量累加

 if(a==20){

   a=0;

   b++;

   }

 if(b==24){

   b=0;

   }

 }

/******************显示子程序****************/

voiddisplay()

  {

 uchari;

 uchark;

 for(i=0;i<8;i++)

   {

  k=1<

  wei=~k;      //位扫描

       duan=TAB[i+b];//输出段码

  delay

(1);                

    }

   }

      

/******************主函数******************/             

voidmain()

  {

 init();

 TR0=1;

 ET0=1;

 EA=1;

 while

(1)

  display();

  }

.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1