微机课设LED点阵图形显示设计说明.doc

上传人:李司机 文档编号:1180838 上传时间:2022-07-15 格式:DOC 页数:32 大小:554KB
返回 下载 相关 举报
微机课设LED点阵图形显示设计说明.doc_第1页
第1页 / 共32页
微机课设LED点阵图形显示设计说明.doc_第2页
第2页 / 共32页
微机课设LED点阵图形显示设计说明.doc_第3页
第3页 / 共32页
微机课设LED点阵图形显示设计说明.doc_第4页
第4页 / 共32页
微机课设LED点阵图形显示设计说明.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《微机课设LED点阵图形显示设计说明.doc》由会员分享,可在线阅读,更多相关《微机课设LED点阵图形显示设计说明.doc(32页珍藏版)》请在三一办公上搜索。

1、题 目: 阵式图形显示控制 目录一.前言5二. 总体方案设计52.1 系统总框图设计 52.2 元器件介绍72.3 AT89S51单片机工作原理72.4 引脚简介 82.5 8*8点阵式LED 102.5 8*8点阵式LED图形显示原理11三. 硬件设计133.1初始设计方案133.2 系统复位电路设计143.3 晶振电路设计163.4 驱动电路设计183.5 键盘 193.6 最终电路原理图203.7 电路板制作 213.8 元器件清单 22四.软件设计234.1程序流程图234.2 程序清单 23五.系统调试 28六.结论总结 27参考文献 28摘 要 本设计利用单片机最小系统实现在88点

2、阵式LED显示“*、“和心形图,通过按键来选择要显示的图形,显示时间可调时间自定义。利用Keil uVision4软件编译程序,生成he*文件,经过STC_ISP_V483软件将程序烧入STC89S51。利用Altium Designer Winter 09绘出PCB图,按图制作电路板,插入芯片连接电路板显示功能。通过子程序的中断和调用子程序来实现图形的可选择性和时间的可调性。另外本设计还拓展增加了数码管的显示时间的可调性,通过数码管的数字变化频率可以很明显的表示了显示时间可调的功能。关键词: 最小系统;88点阵式LED;STC89S51;子程序中断;调用子程序。一.前 言最小应用系统是指用最

3、少软件组成的单片机可以工作的系统。对52系列单片机来说,最小系统应该包括:单片机、晶振电路、复位电路。本设计主要任务以AT89S51单片机最小应用系统为核心,在88点阵式LED显示“*、“和心形图,通过按键来选择要显示的图形,显示时间可调时间自定义。随着社会的开展,单片机因其高可靠性和高性价比,在工业控制系统、智能化仪器仪表和智能接口等诸多领域内得到了极为广泛的应用。LED电子显示屏是利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,它具有高清晰度、色彩鲜艳、视角大、工作稳定、寿命长、功耗低等优点。由于采用单元模块化构造,屏体大小可按用户要求灵活拼制;它的超高亮度,使它在户内外显示

4、中具有不可替代的作用。随着信息产业的高速开展,LED显示作为信息传播的一种重要手段,已广泛应用于室内外需要进展效劳内容和效劳宗旨宣传的公众场所,例如户内外公共场所广告宣传、机场车站旅客引导信息、公交车辆报站系统、证券与银行信息显示、餐馆报价信息豆示、高速公路可变情报板、体育场馆比赛转播、楼宇灯饰、交通信号灯、景观照明等。显然,LED显示已成为城市亮化、现代化和信息化社会的一个重要标志。因此,本设计具有很强的现实应用性,且是对我们所学知识应用的一个很好的检验。1、通过学习单片机原理,初步了解如何用汇编语言实现对51单片机系统进展控制。通过简单图形显示控制的设计,将所学的知识融会贯穿,锻炼独立设计

5、、制作和调试单片机应用系统的能力,为进一步的科研实践活动打下一定的根底。2、通过单片机最小系统的应用,掌握单片机内部定时/计数器应用与编程、及硬件调试、设计方法。3、在这次的动手设计之后,领会单片机的应用系统的软硬件调试的方法,掌握单片机编程方法,及软件keil C51的使用方法,熟悉软件调试过程及方法,对单片机系统和LED显示技术有了进一步的理解。4、根据课题要求,从提出并选择设计方案、查找确定所用元器件、设计并搭制硬件电路、编程写入并调试等一系列过程,锻炼了分析、解决问题的能力及相互学习的精神。二.总体方案设计2.1 系统总框图设计硬件电路的设计要遵循以下原则:(1)在性价比满足应用系统要

6、求的根底上,选择更可靠、更熟悉的单片机,缩短研制周期。(2)尽可能选择较成熟的典型应用电路,以提高系统的可靠性。(3)单片机内部的资源与外部扩展资源应在满足应用系统设计要求的根底上留有余地,为进一步升级和扩展其功能提供方便。(4)应充分结合软件方案统筹考虑硬件构造,通常硬件功能较完善,其相应的软件就简单,但硬件本钱较高;而硬件功能略低,其相应的软件就复杂。实际中应尽量以软件替代硬件来降低本钱。(5)整个系统的相关器件应尽可能做到性能匹配,如电平、速度的匹配等。(6)充分考虑整个系统的抗干扰设计,如选择具有抗干扰设计的单片机并充分筛选芯片与器件,在电路中采取隔离和屏蔽措施等。根据以上原则,通过分

7、析与比对,我们选用较熟悉的具有内部程序存储器的AT89C52RC单片机作为主控电路,选用8*8LED显示屏作为显示电路来组成硬件电路,其系统总框图如下2-1所示: 图2-1 系统总框图本次设计的LED显示系统使用的核心元件为AT89S51单片机、8*8点阵式LED、电源模块及其指示灯,此外还用到了排阻、开关按键、复位键、电容、晶振器件及电阻。2.2 元器件介绍本次设计的LED显示系统使用的核心元件为AT89S51单片机、8*8点阵式LED、电源模块及其指示灯,此外还用到了排阻、开关按键、复位键、电容、晶振器件及电阻。2.3 AT89S51 单片机工作原理单片机是指一个集成在一块芯片上的完整计算

8、机系统。尽管它的大局部功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大局部部件:CPU、内存、内部和外部总线系统,目前大局部还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机的工作过程实质上是执行用户编制程序的过程,一般程序的机器码都已固化到存储器中,因此开机复位后,就可以执行指令。执行指令又是取指令和执行指令的周而复始的过程。假设机器码74H,E0H已存在0000H开场的单元中,则此表示把E0H这个值送入A累加器。接通电源开机后,PC=0000H,取指令过程如下:PC中的00

9、00H送到片内的地址存放器;PC的内容自动加1变为0001H,指向下一个指令字节;地址存放器中的内容0000H通过地址总线送到存储器,经存储器中的地址译码选中0000H单元;CPU通过控制总线发出读命令;被选中单元的内容74H送内部数据总线上,该内容通过内部数据总线送到单片机内部的指令存放器。到此,取指令过程完毕,进入执行指令过程。执行指令过程:PC的内容为0001H,送地址存放器,选中0001H单元,同时PC的内容自动加1变为0002H;CPU同样通过控制总线发出读命令;0001H单元的内容E0H读经内部数据总线送至A。至此,本指令执行完毕。PC=0002H,机器又进入下一条指令的取指令过程

10、。机器一直重复上述过程直到程序中的所有指令执行完毕。这就是单片机的根本工作过程。AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚构造,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,12

11、8 bytes的随机存取数据存储器RAM,32个外部双向输入/输出I/O口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗WDT电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停顿芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求2.4 引脚简介VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,

12、每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进展校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,

13、当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存 储器进展存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进展读写时,P2口输出其特殊功能存放器 的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流ILL这是

14、由于上拉的缘故。P3口也可作为AT89S51的一些特殊功能口,如下表格表2.1所示:管脚功能管脚功能P3.0R*D串行输入口P3.4T0计数器0外部输入P3. 1T*D串行输出口P3.5T1计数器1外部输入P3.6/WR外部数据存储器写选通P3.7/RD外部数据存储器读选通 表2.1 P3口管脚功能RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对

15、外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个ALE脉冲。如想制止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOV*,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE制止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器0000H-FFFFH,不管是否有内部程序存储器。注意加密方式1时, /EA将内部锁定为RESET

16、;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源VPP。*TAL1:反向振荡放大器的输入及内部时钟工作电路的输入。*TAL2:来自反向振荡器的输出。2.5 8*8点阵式LEDLED 是英文light emitting diode发光二极管的缩写,它的根本构造是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。当其处于正向工作状态时即两端加上正向电压,电流从LED 阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。发光二极管简称为LED。由镓Ga

17、与砷As、磷P的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管,在电路及仪器中作为指示灯,或者组成文字或数字显示。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。当足够的电压到达晶片穿过发光二极管的导线,电子就非常容易的在P和N的区域

18、穿过分隔处,在P区域正电荷比负电荷要多很多,在n区域中的电子比正电荷多,当电压和电流开场流动,在N区域的电子就有足够的能源移动穿过分隔处进入P区域,由于共有的库仑力的正负电荷之间的互相吸引P区域电子立即吸引到正电荷,当电子足够的移动到与P区域的正电荷的接近,这两种电荷就“重新结合。每次电子和正电荷结合时,电位能转变为电磁能,每次正负电荷的重新结合时,电磁能的量子以半导体材料的频率特性的光电形式发出(通常是镓,砷和磷的化学元素结合)只有当光量子在非常狭的频率*围内才可以发射光不同的半导体材料使发光二极管发出不同的颜色和需要不同的能量去使它们变亮。其内部构造如以下图2-2。2.6 8*8点阵式LE

19、D的工作原理由LED的构造图可知道,8*8点阵式LED是由64个发光二极管构成,每行8个二极管的阳极串接在一起,每列8个二极管的负端串接在一起。当要选中*个点时就得把该点的行接高电平,列接低电平。如:要选中第二行第三个点,即要求DC7接5伏,DR3接地。通过不同的接线可以用点构成所需要的图形。图2-2 点阵构造图“*在8*8LED点阵上显示图如以下图所示:12H,14H,3CH,48H,3CH,14H,12H,00H图2-3 星形显示“在8*8LED点阵上显示图如以下图所示123 45 6 7 800H,00H,38H,44H,44H,44H,38H,00H图2-4 “显示心形图在8*8LED

20、点阵上显示图如以下图所示123 45 6 7 830H,48H,44H,22H,44H,48H,30H,00H图2-5 心形图显示三.硬件设计3.1初始设计方案显示局部显示局部是本次设计最核心的局部,对于LED8*8点阵显示有以下方案:方案一:静态显示,将一帧图像中的每一个二极管的状态分别用0 和1 表示,假设为0 ,则表示LED 无电流,即暗状态;假设为1 则表示二极管被点亮。假设给每一个发光二极管一个驱动电路,一幅画面输入以后,所有LED 的状态保持到下一幅画。对于静态显示方式方式,相对来说,比较容易实现。方案二:动态显示,对一幅画面进展分割,对组成画面的各局局部别显示,是动态显示方式。动

21、态显示方式方式,可以防止静态显示的问题。但设计上如果处理不当,易造成亮度低,闪烁问题。因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。动态显示采用多路复用技术的动态扫描显示方式, 复用的程度不是无限增加的, 因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短, 发光的亮度等因素.当扫描刷新频率(发光二极管的停闪频率) 为50Hz, 发光二极管导通时间1m s 时, 显示亮度较好, 无闪烁感.。 鉴于上述原因, 显示局部我们采用方案二。电路接口局部由于单片机有四个I/O口,可以任意使用其中两个作为点阵的列和行控制端,因此这局部有多种选

22、择。但由于P3口的两个口要用来作为下载接口,用来承受和传送数据,通过实验发现假设用此I/O口会对下载有一点影响,而P2口拉低时是虚地,不是真正的电压为零,由于P0口的独特的内部构造,使得它的灌电流能力比较好,因此我们选用了P0、P2口作为单片机的行和列接口。最终选择设计方案最终所用的方案就是静态态显示,本方案在几本要求的根底上加了一些其他功能,使得本方案更加完善。IO的利用率有了很大的提高。3.2系统复位电路设计复位是单片机的初始化操作。单片机在启动运行时,都需要先复位,起作用是使CPU和系统中其他部位都处于一个确定的初始状态,并从这个状态开场工作。因而,复位是一个很重要的操作方式。但是单片机

23、本身是不 能自动进展复位的,必须配合相应的外部电路才能实现。当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种根本形式:上电复位和开关复位。上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如以下图所示。图3-1 开关复位电路开关复位要求电源接通后,在单片机运行期间,用开关操作也能使单片机复位。本次设计中的开关复位电路如上图所示。当单片机已在运行当中时,按下复位键SW1后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。根

24、据实际操作的经历,下面给出这两种复位电路的电容、电阻参考值。C10-30F,R10K单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开场工作,例如复位后PC=0000H,使单片机从第一个取指令。无论是在单片机刚开场接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚MCS-51型单片机复位条件、复位电路和复位后状态。AT89S51的系统重置是由RESET引脚控制的。当此引脚送入高电位超过24个震荡周期时。AT89S51即进入芯片内部重置状态,而且一直在此状态下等待,直到RESET为低电位后,才检测EA为高电位或是低电位,假设为高电位,则实行内部的程序

25、代码,假设为低电位,则实行外部的程序代码。单片机复位期间不产生ALE和PSEN信号,即ALE=1和PSEN=1。这说明单片机复位期间不会有任何取址操作。复位后,内部各专用存放器状态如下表3-1所示。其中,*表示无关位。请注意:(1) 复位后PC值为0000H,说明复位后程序从0000H开场执行(2) SP值为07H,说明堆栈底部在07H。一般需重新设置SP值。(3) P0P1口值为FFH。P0P1口用做输入口时,必须先写如“1”。单片机在复位后,已使P0P1口每一端线为“1,为这些端线用做输入口做好了准备。P1P3口值为FFH。P0P1口用做输入口时,必须先写如“1”。单片机在复位后,已使P0

26、P1口每一端线为“1”,为这些端线用做输入口做好了准备。系统的重置是任何微处理机系统运行的第一步,使整块控制芯片回到预先设定的硬件状态下。PC:0000HTMOD:00HACC:00HTCON:00HB:00HTH0:00HPSW:00JHTL0:00HSP:07HTH1:00HDPTR:0000HTL1:00HP0P3:FFHSCON:00HIP:*00000BSBUF:不定IE:0*00000BPCON:0*0000B 表3-1 内部各专用存放器状态3.3 晶振电路设计51单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。*TAL1和*TAL2分别为反向放大器的输入和输出

27、。该反向放大器可以配置为片内振荡器。如采用外部时钟源驱动器件,*TAL2应不接。由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的上下电平要求的宽度。计数电路是用于产生单片机工作所需要的数字信号,而时序所研究的是指令执行中各信号之间的相互关系。在芯片的外部,*TAL1和*TAL2之间跨接晶体震荡器和微调电容,从而构成一个稳定的自激震荡器,这就是单片机的数字电路。数字电路产生的震荡脉冲经过触发器进展二分频之后,才成为单片机的数字脉冲信号。外接晶振及电容C1、C2 接在放大器的反响回路中构成并联振荡电路。对外接电容C1、C2 虽然没有十分严格的要求,

28、但电容容量的大小会轻微影响振荡频率的上下、振荡器工作的稳定性、起振的难易程序及温度稳定性。内部振荡方式的外部电路如以下图图所示。图中,电容器Cl,C2起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF,晶振频率的典型值为12MHz。一般地,电容C2和C3取30pF左右,可使系统更稳定,防止杂波干扰而导致死机;而对晶振来说,震荡频率高,则系统的数字频率也高,单片机运行速度也就快,MCS-51在通常情况下,使用震荡频率为6MHz或12MHz。图3-2 内部振荡方式电路图3-3 外部振荡方式外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。外部

29、振荡方式的外部电路如图6-3所示。由上图可见,外部振荡信号由*TAL2引入,*TAL1接地。为了提高输入电路的驱劝能力,通常使外部信号经过一个带有上拉电阻的TTL反相门后接入*TAL2。石英晶体振荡器的根本原理:石英晶体振荡器是利用石英晶体二氧化硅的结晶体的压电效应制成的一种谐振器件,它的根本构成大是:从一块石英晶体上按一定方位角切下薄片简称为晶片,它可以是正方形、矩形或圆形等,在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚 上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。假设在石英晶体的两个

30、电极上加一电场,晶片就会产生机械变形。反之,假设在晶片的两侧施加机械压力,则在晶片相应的方向上将产生电场,这种物理现象称为压电效应。如果在晶片的两极上加交变电压,晶片就会产生机械振动,同时晶片的机械振动又会产生交变电场。在一般情况下,晶片机械振动的振幅和交变电场的振幅非常微小,但当外加交变电压的频率为*一特定值时,振幅明显加大,比其他频率下的振幅大得多,这种现象称为压电谐振,它与LC回路的谐振现象十分相似。它的谐振频率与晶片的切割方式、几何形状、尺寸等有关。当晶体不振动时,可把它看成一个平板电容器称为静电电容C,它的大小与晶片的几何尺寸、电极面积有关,一般约几个PF到几十PF。当晶体振荡时,机

31、械振动的惯性可用电感L来等效。一般L的值为几十mH 到几百mH。晶片的弹性可用电容C来等效,C的值很小,一般只有0.00020.1pF。晶片振动时因摩擦而造成的损耗用R来等效,它的数值约为100。由于晶片的等效电感很大,而C很小,R也小,因此回路的品质因数Q很大,可达100010000。加上晶片本身的谐振频率根本上只与晶片的切割方式、几何形状、尺寸有关,而且可以做得准确,因此利用石英谐振器组成的振荡电路可获得很高的频率稳定度。晶体振荡电路的两个电容的作用。这两个电容叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容,一般在几十皮法。它会影响到晶振的谐振频率和输出幅度。各种逻辑芯片的晶振引脚可

32、以等效为电容三点式振荡器。晶体旁边的两个个电容接地,实际上就是电容三点式电路的分压电容,接地点就是分压点。以接地点即分压点为参考点,振荡引脚的输入和输出是反相的,但从并联谐振回路即石英晶体两端来 ,形成一个正反响以保证电路持续振荡。在芯片设计时,这两个电容就已经形成了,一般是两个的容量相等,容量大小依工艺和幅员而不同,但终归是比较小,不一顶适合很宽的频率*围。外接时大约是数PF到十PF,依频率和石英晶体的特性而顶。需要注意的是:这两个电容串联在谐振回路上的,会影响振荡频率。当两个电容量相等时,反响系数是0.5,一般是可以满足振荡条件的,但如果不易起振荡或振荡不稳定可以减少输入端对地电容量,而增

33、加输出端的值以提高反响量。通过上述分析,所次设计中选的电容的大小为30PF。且在实际连接中,为了减少寄生电容,更好地保证振荡器稳定,可靠地工作,振荡器和电容应尽可能安装得与单片机蕊片靠近。3.4 驱动电路设计我们的第一个方案是对点阵直接要单片机I/O口驱动板子做好后,经过调试发现led的亮度不够,这是由于单片机的P0、P2出来时的电压较低,假设来驱动二极管发光的话,二极管的光会太暗。第二个方案是在P2口加上上拉电阻,故在P0、P1采用上拉排阻来驱动二极管发光,光度足够亮。第三个方案是用三极管驱动,做出来后效果很好,但对于8*8的点阵而言与用上拉电阻所得的效果差不多。考虑到连接电路及本钱等因素,

34、我们采用了第二种方案。 最终驱动电路见以下图:图3.4 终驱动电路3.5键盘键盘是使用比较简单的独立式键盘,键盘各项功能如下:复位键:复位系统。 SW2选择键:用于显示“*“和心形图形。SW3用于增加图形变化时间,减小延时。SW4用于减小图形变化时间,增加延时。图3.5 键盘电路3.6最终电路原理图如下:图3-6 初始板电路图图3-7 改进的电路原理图3.7电路板制作1翻开Altium Designer Winter 09软件,根据已画好的电路图在软件上绘制出来。生成PCB图,并打印出来。2利用熨斗将图纸上的电路印到已经用砂纸擦好的铜板上,熨的过程中要用力压下,并来回移动,保证电路各线路在铜板

35、上清晰可见。3熨好之后,将印好的铜板放进腐蚀液中腐蚀,待腐蚀液变黑时用木棒捞起铜板,用布裹住同伴一角拿起晾干。4待铜板晾干后,将铜板放到打孔机下打孔,打孔时要专心注意,以防打得过大。5打好孔后,把电路所需元器件按电路焊接上去,由于线路密集,孔洞相邻较近,所以焊接过程必须小心,防止锡过多将相邻孔连在一起。3.8元器件清单 元器件清单如下表3-2所示,名称数量规格1k*8排阻28*8电子点阵式led13mm白发红高亮度30P2贴片电容10uf1电解电容40pin Ic座1插89S51用数码管1电阻922欧姆排针1二极管2晶振1按键4STC89C51RC1 表3-2 元器件清单四.软件设计4.1 程

36、序流程图本系统的显示处理采用动态扫描法,而键盘处理采用查询法并注意按键的消抖处理。整个程序可以分为键盘扫描、点阵行列的扫描。主程序流程图如图4-1所示: 图4-1 电路流程图4.2 程序清单#include #include#define uint unsigned int#define uchar unsigned char#define dz_* P0#define dz_y P2#define smg P1sbit key_jia = P37;sbit key_jian = P36;sbit key_chose = P35;sbit led1 = P33;sbit led2 = P34;

37、unsigned int smg_flag = 0,smg_sudu=20,key_sudu=20;unsigned int tu*ing_flag=4;uchar code table10 = 0*3f,0*06,0*5b,0*4f,0*66,0*6d,0*7d,0*07,0*7f,0*6f;/心形显示unsigned char code tabP0_*in=0*30,0*48,0*44,0*22,0*44,0*48,0*30,0*00;unsigned char code tabP2_*in=0*7F,0*BF,0*DF,0*EF,0*F7,0*FB,0*FD,0*FE;/圆形显示unsi

38、gned char code tabP0_yuan=0*00,0*3c,0*42,0*42,0*42,0*42,0*3c,0*00;unsigned char code tabP2_yuan=0*7F,0*BF,0*0DF,0*0EF,0*0F7,0*0FB,0*0FD,0*0FE;/星形显示unsigned char code tabP2_shi = 0*7F,0*BF,0*0DF,0*0EF,0*0F7,0*0FB,0*0FD,0*0FE;unsigned char code tabP0_shi = 0*18,0*18,0*3C,0*FF,0*7E,0*3C,0*66,0*42;/* 名称

39、 : Delay_1ms()* 功能 : 延时子程序,延时时间为 1ms * * 输入 : * (延时一毫秒的个数)* 输出 : 无*/void Delay_1ms(uchar i)/1ms延时 uchar *,j; for(j=0;ji;j+) for(*=0;*=148;*+);/*void InitTimer0(void) TMOD = 0*01; TH0 = 0*15; TL0 = 0*0A0; EA = 1; ET0 = 1; TR0 = 1;void tu*ing_dis() char i=0; switch(tu*ing_flag%3) case 0 : for(i=0;i8;i+) dz_*=0; dz_y=tabP2_*ini; dz_*=tabP0_*ini; Delay_1ms(3); break; case 1 : for(i=0;i8;i+) dz_*=0; dz_y=tabP2_yuani; dz_*=tabP0_yuani; Delay_1ms

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号