《单片机原理与应用 1616LED点阵汉字分批显示器的Proteus软件仿真》由会员分享,可在线阅读,更多相关《单片机原理与应用 1616LED点阵汉字分批显示器的Proteus软件仿真(8页珍藏版)》请在金锄头文库上搜索。
1、O O 引言引言ProteusProteus 是目前最先进、最完整的多种型号微处理器系统的仿真设计平台,由是目前最先进、最完整的多种型号微处理器系统的仿真设计平台,由 ISISISIS和和 ARESARES 两个构成,其中两个构成,其中 ISISISIS 是一款智能电路原理图输入系统软件,可作为电子系统仿是一款智能电路原理图输入系统软件,可作为电子系统仿真平台,真平台,ARESARES 是一款高级布线编辑软件,用于制作是一款高级布线编辑软件,用于制作 PCBPCB 印制电路板。开发者可以在无硬印制电路板。开发者可以在无硬件条件下直接使用件条件下直接使用 Pro-teusPro-teus 进行电
2、路设计和仿真调试,真正实现了在计算机中完成电进行电路设计和仿真调试,真正实现了在计算机中完成电路原理图设计、电路分析与仿真、系统测试到形成印制电路板的完整电子设计、研发过路原理图设计、电路分析与仿真、系统测试到形成印制电路板的完整电子设计、研发过程。程。因此,本课题利用因此,本课题利用 AT89C5lAT89C5l 单片机作为主控制器,采用单片机作为主控制器,采用 ProteusProteus 软件实现对软件实现对 1616LED1616LED点阵汉字的分批显示点阵汉字的分批显示. .仿真运行通过后再进行点阵显示电路制作,大大缩减实际开发周仿真运行通过后再进行点阵显示电路制作,大大缩减实际开发
3、周期,节约了开发成本。期,节约了开发成本。1 1 硬件电路设计硬件电路设计在很多在很多 LEDLED 显示的场合,需要实现一系列显示的场合,需要实现一系列 LEDLED 点阵汉字的分批显示,为简化设计,点阵汉字的分批显示,为简化设计,每批只显示每批只显示 2 2 个汉字,分若干次完成全部显示。利用个汉字,分若干次完成全部显示。利用 ProteusISISProteusISIS 平台画出的硬件电路平台画出的硬件电路如图如图 l l 所示。所示。该硬件电路的核心是利用单片机读取显示字型码,通过驱动电路对该硬件电路的核心是利用单片机读取显示字型码,通过驱动电路对 16161616 共阴极共阴极LED
4、LED 点阵进行动态列扫描,以实现点阵汉字的分批显示。设计选用的单片机为点阵进行动态列扫描,以实现点阵汉字的分批显示。设计选用的单片机为 AtrnelAtrnel 公公司的司的 AT89C51AT89C51,它是一种低功耗,高性能,它是一种低功耗,高性能 CMOS8CMOS8 位单片机,片内含位单片机,片内含 4KB4KB 可反复擦写的可反复擦写的FLASHROMFLASHROM,采用,采用 AtmelAtmel 公司的高密度、非易失性存储技术制造,兼容标准公司的高密度、非易失性存储技术制造,兼容标准 MCS-51MCS-51 指令指令系统及系统及 80518051 引脚结构,内置看门狗电路。
5、功能强大的引脚结构,内置看门狗电路。功能强大的 AT89C5lAT89C5l 可为许多嵌入式控制应可为许多嵌入式控制应用系统提供高性价比的解决方案。时钟电路用于产生单片机工作时所必需的时钟信号,用系统提供高性价比的解决方案。时钟电路用于产生单片机工作时所必需的时钟信号,其中晶振频率为其中晶振频率为 12MHz12MHz。上电复位电路可保证单片机的在程序运行出错或操作错误使系。上电复位电路可保证单片机的在程序运行出错或操作错误使系统处于死锁状态时,重启运行。统处于死锁状态时,重启运行。显示单元是显示单元是 LEDLED 汉字显示屏,由汉字显示屏,由 2 2 片片 1616LED1616LED 点
6、阵模块组成。但由于点阵模块组成。但由于 ProteusProteus 软软件目前版本中还没有件目前版本中还没有 16161616 点阵模块,设计中采用点阵模块,设计中采用 Pro-teusPro-teus 软件中的软件中的 4 4 个个 8888 点阵点阵模块组合成模块组合成 1 1 个个 16161616 点阵模块。点阵汉字的阳极驱动是由单片机的点阵模块。点阵汉字的阳极驱动是由单片机的 POPO 口和口和 P2P2 口各口各自经过一片输出缓冲器自经过一片输出缓冲器 74LS27374LS273 向向 4 4 个个 88LED88LED 点阵输出字型码作为行驱动信号点阵输出字型码作为行驱动信号
7、; ;点阵点阵的阴极驱动由的阴极驱动由 P1.0P1.0P1.3P1.3 经过经过 4-164-16 线译码器线译码器 74HCl5474HCl54 译码后输出列选信号,对译码后输出列选信号,对 4 4 个个8888 点阵进行列扫描,从而控制点阵进行列扫描,从而控制 LEDLED 点阵的相应像素点亮。点阵的相应像素点亮。2 2 个个 LEDLED 点阵汉字中的列选点阵汉字中的列选信号则分别由信号则分别由 P3.OP3.O 和和 P3.1P3.1 控制来选择相应的控制来选择相应的 74HCl5474HCl54,因此需要两片,因此需要两片 74HCl5474HCl54 译码器。译码器。RP1RP1
8、 为排阻,含有为排阻,含有 8 8 个电阻,作为个电阻,作为 POPO 口各位的上拉电阻,以保证口各位的上拉电阻,以保证 POPO 口能够输出高电平。口能够输出高电平。2 2 点阵汉字分批显示原理与软件设计点阵汉字分批显示原理与软件设计16161616 共阴极共阴极 LEDLED 点阵由点阵由 4 4 个个 8888 点阵构成,需要显示汉字字符串点阵构成,需要显示汉字字符串“单片机仿真单片机仿真! !”,可通过建立数据表格的形式进行。通过,可通过建立数据表格的形式进行。通过 16161616 点阵汉字字模提取软件,可提取各点阵汉字字模提取软件,可提取各显示汉字的字模数据,详见程序设计中的显示字
9、符代码表显示汉字的字模数据,详见程序设计中的显示字符代码表 1 1。在进行汉字分批输出显示时采用动态扫描驱动方式,可按行或列进行扫描。当按在进行汉字分批输出显示时采用动态扫描驱动方式,可按行或列进行扫描。当按“列列”扫描时,需要建立列的扫描代码表如下:扫描时,需要建立列的扫描代码表如下:现以列扫描为例,阐述现以列扫描为例,阐述 1616LED1616LED 点阵汉字分批显示原理。在初始化设置点阵汉字分批显示原理。在初始化设置( (关显示关显示) )后,首先,后,首先,P1P1 送出第送出第 1 1 列扫描代码,同时使列扫描代码,同时使 P3=0xFDP3=0xFD 选中选中 U2U2 的的 7
10、4HCl5474HCl54 和和 U4U4,对,对 P0P0输出段码给左边汉字上半部的第输出段码给左边汉字上半部的第 1 1 列以驱动相应段点亮列以驱动相应段点亮; ;接着,使接着,使 P3=OxFAP3=OxFA 选中选中 U2U2 的的74HCl5474HCl54 和和 U5U5,对,对 P2P2 输出段码值给左边汉字下半部的第输出段码值给左边汉字下半部的第 1 1 列以驱动相应段点亮,即送列以驱动相应段点亮,即送出了第一个汉字出了第一个汉字“单单”的第的第 1 1 列的字模数据列的字模数据(16(16 位段码值位段码值););再设置再设置 P3=0xF5P3=0xF5 选中选中 U3U3
11、 的的74HC-l5474HC-l54 和和 U4U4,对,对 P0P0 输出段码给右边汉字的上半部的第输出段码给右边汉字的上半部的第 1 1 列以驱动相应段点亮。接着,列以驱动相应段点亮。接着,使使 P3=OxF9P3=OxF9 亦选中亦选中 U3U3 的的 74HCl5474HCl54 和和 U5U5,对,对 P2P2 输出段码值给由边汉字下半部的第输出段码值给由边汉字下半部的第 1 1 列以列以驱动相应段点亮,即送出了第驱动相应段点亮,即送出了第 2 2 个汉字个汉字“片片”的第的第 1 1 列的字模数据列的字模数据(16(16 位段码值位段码值) )。然后,。然后,给给 P1P1 送第
12、送第 2 2 列的扫描代码,同理再送出第列的扫描代码,同理再送出第 1 1 个汉字个汉字“单单”、第、第 2 2 个汉字个汉字“片片”的各自的各自第第 2 2 列的字模数据,列的字模数据,如此进行,经过如此进行,经过 1616 次列扫描,分时送完两个汉字的各自次列扫描,分时送完两个汉字的各自 1616 个段个段码值,就可显示第码值,就可显示第 1 1 批汉字批汉字“单单”、“片片”;”;再进行第再进行第 2 2 批汉字批汉字“机机”、“仿仿”的显示的显示; ;,直到汉字字符串显示完成。若字符显示完毕,又从头开始循环显示。,直到汉字字符串显示完成。若字符显示完毕,又从头开始循环显示。LEDLED
13、 点阵汉字点阵汉字分批显示的程序流程如分批显示的程序流程如 2 2 所示。在某一时刻,只有所示。在某一时刻,只有 1 1 行或行或 1 1 列发光二极管被对应的字模列发光二极管被对应的字模数据驱动点亮,但只要扫描间隔时间合适数据驱动点亮,但只要扫描间隔时间合适( (一般为数毫秒一般为数毫秒) ),利用人眼的视觉暂留特性,利用人眼的视觉暂留特性,看上去整批字符就显示在看上去整批字符就显示在 LEDLED 点阵显示器上。点阵显示器上。主要的主要的 C C 语言源程序如下:语言源程序如下:3 3 程序调试与仿真程序调试与仿真(1)(1)生成目标代码文件。利用生成目标代码文件。利用 ProteusPr
14、oteus 平台在进行仿真时,需要加载程序到单片机平台在进行仿真时,需要加载程序到单片机中,加载的程序为目标代码文件中,加载的程序为目标代码文件.HEX.HEX。方法是:利用单片机软件仿真系统。方法是:利用单片机软件仿真系统KeilUVsion3KeilUVsion3,在新建项目中选择,在新建项目中选择 AT89C51AT89C51 单片机作为单片机作为 CPUCPU,同时将创建,同时将创建 C C 语言源程序文语言源程序文件并将其加载到新建项目中。在件并将其加载到新建项目中。在“P-roject”“P-roject”下拉菜单中,选择下拉菜单中,选择“OpTIonsforTarget”“OpT
15、IonsforTarget”对话框,在对话框中选中对话框,在对话框中选中“Output”“Output”选项卡中的选项卡中的“CreateHEXFile”“CreateHEXFile”选项。在选项。在“Proje-“Proje-ct”ct”下拉菜单中选择下拉菜单中选择“RebuiIdallTargetFiles”“RebuiIdallTargetFiles”选项,编译成功后将生成选项,编译成功后将生成.HEX.HEX 目标代目标代码文件。码文件。(2)(2)调试与仿真:在调试与仿真:在 ProteusISISProteusISIS 平台中,按图平台中,按图 1 1 画出硬件电路,单击鼠标右键将
16、画出硬件电路,单击鼠标右键将AT89C51AT89C51 单片机选中并单击鼠标左键,弹出单片机选中并单击鼠标左键,弹出“EditComp-onent”“EditComp-onent”对话框,在其中的对话框,在其中的“ClockFreqlaency”“ClockFreqlaency”栏中设置单片机晶振频率为栏中设置单片机晶振频率为 12MHz12MHz,在,在“ProgramFile”“ProgramFile”栏选择生栏选择生成的成的.HEX.HEX 文件。保存设计,生成文件。保存设计,生成.DSN.DSN 文件。在文件。在“Debug”“Debug”菜单中选择菜单中选择“Execute”“Execute”,可,可得到仿真运行效果。仿真调试成功后,可看见得到仿真运行效果。仿真调试成功后,可看见“单片机仿真单片机仿真!”!”点阵汉字的分批显示。点阵汉字的分批显示。显示次序为显示次序为“单片单片- -机仿机仿- -真真!”!”,其中,其中“机仿机仿”如图如图 3 3 所示。通过所