ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:71.14KB ,
资源ID:1476221      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1476221.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51单片机并行口驱动LED数码管显示电路及程序.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、51单片机并行口驱动LED数码管显示电路及程序51单片机并行口驱动LED数码管显示电路及程序介绍利用51单片机的一个并行口实现多个LED数码管显示的方法,给出了利用此方法设计的多路LED显示系统的硬件电路结构原理图和软件程序流程,同时给出了采用51汇编语言编写程序。 1 硬件电路多位LED显示时,常将所有位的段选线并联在一起,由一个8位IO口控制,而共阴极点或共阳极点分别由另一个8位IO口控制;也可采用并行扩展口构成显示电路,通常,需要扩展器件管脚的较多,价格较高。本文将介绍一种利用单片机的一个并行IO口实现多个LED显示的简单方法,图1所示是该电路的硬件原理图。其中,74LS138是3线8线

2、译码器,74LS164是8位并行输出门控串行输入移位寄存器,LED采用L05F型共阴极数码管。显示时,其显示数据以串行方式从89C52的P12口输出送往移位寄存器74LS164的A、B端,然后将变成的并行数据从输出端Q0Q7输出,以控制开关管WT1WT8的集电极,然后再将输出的LED段选码同时送往数码管LED1LED8。位选码由89C52的P14P16口输出并经译码器74LS138送往开关管Y1Y8的基极,以对数码管LED1LED8进行位选控制,这样,8个数码管便以100ms的时间间隔轮流显示。由于人眼的残留效应,这8个数码管看上去几乎是同时显示。2 软件编程该系统的软件编程采用MCS51系列

3、单片机汇编语言完成,并把显示程序作为一个子程序,从而使主程序对其进行方便的调用。图2所示是其流程图。具体的程序代码如下:pic单片机驱动led数码管显示程序;*该程序用于驱动led数码管显示,在8个LED数码管上依次显示数字1、2、3、4、5、6、7、8*;* 单片机学习网经典程序已测试,led数码管共阴和共阳不同请修改码值转换表部分LIST P=18F458INCLUDE P18F458.INC;所用的寄存器XIANR EQU 0X20ORG 0X00GOTO MAINORG 0X30;*以下为码值转换表*CONVERT ADDWF PCL,1RETLW 0XC0 ;0,显示段码与具体的硬件

4、连接有关RETLW 0XF9 ;1RETLW 0XA4 ;2RETLW 0XB0 ;3RETLW 0X99 ;4RETLW 0X92 ;5RETLW 0X82 ;6RETLW 0XD8 ;7RETLW 0X80 ;8RETLW 0X90 ;9RETLW 0X88 ;ARETLW 0X83 ;BRETLW 0XC6 ;CRETLW 0XA1 ;DRETLW 0X86 ;ERETLW 0X8E ;FRETLW 0X7F ;.RETLW 0XBF ;-RETLW 0X89 ;HRETLW 0XFF ;DARKRETURN;*初始化子程序*INITIALBCF TRISA,5 ;置RA5为输出方式,以

5、输出锁存信号BCF TRISC,5BCF TRISC,3 ;设置SCK与SDO为输出方式BCF INTCON,GIE ;关闭所有中断MOVLW 0XC0MOVWF SSPSTAT ;设置SSPSTAT寄存器MOVLW 0X30MOVWF SSPCON1 ;设置SPI的控制方式,允许SSP方式,并且时钟下降;沿发送数据,与74HC595当其SCLK从低到高电平;跳变时,串行输入数据(DI)移入寄存器的特点相对应MOVLW 0X11 ;显示值寄存器赋初值,每个值占两个字节,MOVWF XIANR ;从8开始显示RETURN ;返回;*led数码管显示子程序*;SPI发送显示子模块DISPLAYTR

6、ANSMIT CLRF PORTA ;LACK送低电平,为锁存做准备MOVWF SSPBUF ;启动发送WAITBTFSS PIR1,SSPIFGOTO WAIT ;等待发送结束BCF PIR1,SSPIF ;清除中断标志NOPBSF PORTA,5 ;最后给一个锁存信号,代表一显示任务完成RETURN;*pic单片机驱动led显示程序的主程序开始*MAIN NOPCALL INITIAL ;调用系统初始化子程序LOOP MOVF XIANR,WCALL CONVERT ;查出XIANR的显示段码值CALL DISPLAYDECF XIANRDECF XIANR ;显示值减2,因为按字存放,按

7、字节读取MOVF XIANR,WSUBLW 0X01BTFSS STATUS,ZGOTO LOOP ;若送完显示的数,则退出显示HERE GOTO HEREENDC语言源程序如下:/*程序名称:8位数码管移位显示0-F简要说明:使用共阳型数码管 P0口输出数码管段码,P2口输出数码管位码编 写:JiangX.net时 间:2008-8-21*/#include#define uchar unsigned char#define uint unsigned int #define duan P0 /定义段码输出#define wei P2 /定义位码输出uchar a=0,b=0; /全局变量。

8、a:定时器循环次数;b:移位量uchar code TAB=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/空白 ;/*延时子程序*/void delay(n) while(n-)uint j;for (j=0;j125;j+); /*程序初始化*/void init() TMOD=0x1; /定时方

9、式1 TH0=0xb8; TL0=0x63; /设置计时时间为50mswei=0; /设置位扫描初值 /*定时器中断0*/void timer0(void) interrupt 1 TH0=0xb8; TL0=0x63;a+; /移位变量累加if (a=20) a=0; b+; if (b=24) b=0; /*显示子程序*/void display() uchar i;uchar k;for (i=0;i8;i+) k=1i;wei=k; /位扫描 duan=TABi+b;/输出段码delay(1); /*主函数*/ void main () init();TR0=1;ET0=1;EA=1;while(1) display(); .

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

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