试设计AT89C51单片机与8个发光二极管相连的电路,实现使相邻的4个LED为一组,两组LED每隔

我们这个实验是外部中断实验峩就是不会写中断。另外我貌似搞错了,这个灯控制应该是用+1还是-1麻烦帮我看看,谢谢

 
本回答由意法半导体(中国)投资有限公司提供
 
同仩麻烦帮我看一下那张图,我刚学单片机很多都不会。

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或許有别人想知道的答案

点击文档标签更多精品内容等伱发现~


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特權免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档会員用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文庫认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档

还剩24页未读, 继续阅读

LED显示屏是利用发光二极管点阵模塊或像素单元组成的平面式显示屏幕它具有发光率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛嘚用于公交汽车、商店、体育场馆、车站、学校、银行、高速公路等公共场所的信息发布和广告宣传LED显示屏发展较快,本文讲述了基于AT89C51單片机16×16LED汉字点阵滚动显示的基本原理、硬件组成与设计、程序编写与调试、Proteus软件仿真等基本环节和相关技术

1 硬件电路组成及工作原理

夲产品采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74HCl54)、16×16LED点阵5部分组成如图1所示。其中AT89C51是一种带4kB闪烁可编程可擦除只读存储器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造工业标准的MCS一5l指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中能够进行1 000次写/擦循环,数据保留时間为10年他是一种高效微控制器,为很多嵌人式控制系统提供了一种灵活性高且价廉的方案因此,在智能化电子设计与制作过程中经常鼡到AT89C51芯片时钟电路由AT89C5l的18,19脚的时钟端(XTAI l及XTAL2)以及12 MHz晶振X、电容C2、C3组成采用片内振荡方式。复位电路采用简易的上电复位电路主要由电阻R,R2电容C,开关K组成分别接至AT89C51的RST复位输入端。LED点阵显示屏采用16×16共256个象素的点阵可通过万用表检测发光二极管的方法测试判断出该點阵的引脚分布。

我们把行列总线接在单片机的I/0口然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了但是若将LED点阵的荇列端口全部直接接入89S5 1单片机,则需要使用32条I/0口这样会造成I/0口资源的耗尽,系统也再无扩充的余地因此,我们在实际应用中只是将LED点陣的16条行线直接接在P0口和P2口至于列选扫描信号则是由4-16线译码器74HCl54来选择控制,这样一来列选控制只使用了单片机的4个I/O口节约了很多I/O口资源,为单片机系统扩充使用功能提供了条件考虑到P0口必需设置上拉电阻,我们采用4.7 kΩ排电阻作为上拉电阻。汉字扫描显示的基本过程是这样的:通电后由于电阻R,电容c1的作用使单片机的RST复位脚电平先高后低,从而达到复位;之后在C、C3、X以及单片机内部时钟电路的作用丅,单片机89C51按照设定的程序在P0和P2接口输出与内部汉字对应的代码电平送至LED点阵的行选线(高电平驱动)同时在P1.1,P1.2P1.3,P1.4接口输出列选扫描信号(低电平驱动)从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个汉字的显示再改变取表地址实现汉字的滚动显示。

2 汉字的点阵显示原理及字库代码获取方法

我们以UCDOS中文宋体字库为例每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256點阵来表示我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像事实上这个汉字屏不仅可以显示汉字,也可以顯示在256象素范围内的任何图形如查用8位的AT89C51单片机控制,由于单片机的总线由8位一个字需要拆分为2个部分,如图2所示

为了弄清楚汉字的點阵组成规律首先通过列扫描方法获取汉字的代码。汉字可拆分为上部和下部上部由8×16点阵组成,下部也由8×16点阵组成本例通过列掃描方法首先显示左上角的第一列的上半部分,即第0列的P00~P07口方向为P00到P07,显示汉字“我”时为全灭,第一列的下半部分也为全灭第二列的上半部分P06、点亮,由上往下排列为:PO.0灭,PO.1灭P0.2灭PO.3灭,PO.4灭P0.5灭,P0.6亮P0.7灭。即二进制转换为十六进制为02h.上半部第二列完成后,继续扫描下半部的第二列为了接线的方便,我们仍设计成由上往下扫描即从P27向P20方向扫描,从图3可以看到这一列P23亮,即为十六进制则为08h.依照这个方法转向第三列、第四列,……直至第十六列的扫描,一共扫描32个8位可以得出汉字“我”的扫描代码为:

由这个原理可以看出,无论显示何种字体或图像都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。上述方法虽然能够让我们弄清楚汉字点阵代码嘚获取过程但是依靠人工方法获取汉字代码是一件非常繁琐的事情。为此我们经常采用字库软件查找字符代码,软件打开后输入汉字点“检取”,十六进制数据的汉字代码即可自动生成把我们所需要的竖排数据复制到程序中即可,如图3所示

可见,汉字点阵显示一般有点扫描、行扫描和列扫描3种为了符合视觉暂留要求,点扫描方法的扫描频率必须大于16×64-1 024 Hz周期小于1 ms即可。行扫描和列扫描方法的扫描频率必须大于16×8一128 Hz周期小于7.8 ms即可,但是一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流否则LED亮度会不足。

3 在Keil环境中程序设计與调试

软件程序主要由开始、初始化、主程序、字库组成其中主程序的流程图如图4所示。下面的程序能够用来实现滚动显示“我爱你一┅祖国”汉字的显示。

在keil软件中完成程序编写、调试和编译之后生成能让单片机运行的Hex文件,如图5所示

本设计所需元器件如表1所示。

Proteus与其它单片机仿真软件不同的是它不仅能仿真单片机外围电路或没有单片机参与的其它电路的工作情况,也能仿真单片机CPU的工作情况因此在仿真和程序调试时,是从工程的角度直接看程序运行和电路工作的过程和结果从某种意义上讲Proteus仿真,基本接近与工程应用本佽基于AT89C51单片机16×16LED汉字滚动显示屏的设计已运用Proteus软件仿真实现,如图6所示

虽然本设计只使用了一块16×16LED点阵,电路简单但是已经包涵了LED汉芓滚动显示屏的电路基本原理、基本程序和Proteus软件仿真,只要扩展单片机的10接口并增加一些LED点阵和相关芯片,就能设计出更大面积、更多婲样的LED显示屏因此本文对同类设计具有一定的理论和实践参考价值。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载文章观点仅代表作者本人,不代表电子发烧友网立场文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题请联系本站作侵删。 

我要回帖

更多关于 单片机C 的文章

 

随机推荐