88点阵显示汉子和数字
8×8LED点阵屏显示数字(韩余)详解

目录1 设计目的 (1)1.1设计目的 (1)1.2设计内容和要求 (1)1.3设计思路 (1)2 设计原理分析 (2)2.1定时器控制8×8LED点阵屏显示数字系统设计 (2)2.2定时器控制8×8LED点阵屏显示数字系统的功能要求 (2)2.2.1计时显示 (2)2.2.2中断设置 (2)2.38×8LED点阵屏显示数字系统的基本构成及原理 (2)3 系统硬件电路的设计 (3)3.1系统硬件总电路构成及原理 (3)3.2主控制部分――AT89C51单片机简介 (3)3.2.1 AT89C51的内部结构功能 (4)3.2.2 51单片机的串行接口工作方式 (5)3.3其它器件 (6)3.4定时器控制8×8LED点阵屏显示数字系统原理图 (7)3.5设计的连线图: (8)3.5.1单片机实物图: (8)3.6硬件资源及其分配 (8)3.7运行步骤 (8)3.8检测与调试 (9)3.8.1硬件调试: (9)3.8.2软件调试: (10)4 系统软件程序的简单设计 (11)4.1程序框图 (11)4.2程序流程图及程序 (12)4.2.1程序流程图: (12)4.2.2程序清单: (12)4.2.3仿真结果图: (14)结论 (15)参考文献 (16)1 设计目的1.1设计目的1、通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
2、通过8×8LED点阵屏显示数字系统的设计,掌握数码管的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。
1.2设计内容和要求内容:设计一个8×8LED点阵屏显示数字。
要求:利用单片机的中断系统,令8×8LED点阵屏循环显示数字0—9。
1.3 设计思路1.先熟悉实验原理,了解8×8LED点阵屏显示数字的工作过程,以及所需要的组件。
2.通过单片机的各个引脚的输出控制8×8LED点阵屏显示数字。
8乘8(8x8)点阵汉字显示

单片机课程设计题目:8*8点阵汉字显示器专业班级:******姓名:******学号:*********一.摘要:用TOP-23088DH-U 8*8点阵块设计制作一个8*16点阵汉字显示器。
通过51单片机作为控制系统,由8255的A口为段数据口向两块点阵提供行数据,C口提供扫描列信息,通过74LS154译码后进行扫描,当点阵的行接高电平,列为低电平时,同时选通,则在该点的LED点亮。
由于实验箱上所提供的驱动电流太低,不足以点亮二极管,所以在电路中增加一个74LS254芯片,以提供点亮LED 所需的驱动电流。
同时在P1.0-P1.2口接3个开关,形成按键控制功能选择。
点阵模块图如下:如上图所示,本实验通过列扫描方式,扫描同时给行线送显示数据。
当扫描到某列,则该列选通,其他列截止,选通瞬间送显示数据,则所对应的二极管亮。
点阵依靠循环点亮每一列(或行),快速循环形成一屏图像,而每一屏快速交替,可进一步形成动画的效果。
二.设计任务和要求:(1)基本要求:1.能显示8*8的汉字,用两个8*8点阵,显示“大连”。
2.通过键盘控制可以改变显示的汉字与图形。
3.通过键盘控制,可以实现彩灯控制功能,发光管从内向外周期显示和相反显示。
(2)发挥要求:1.增加驱动电路,提高显示亮度。
三.方案选择和论证:3.1:方案论证:控制模块由8051、74LS154,8255组成,其中,采用51单片机制做一个最小系统,包含有时钟信号电路、复位电路等,154是4线转16线译码器,4线端接8255的PC.0-PC.3口,16线端低电平有效,控制点阵的16列,245是对列的驱动,8255的PA.0-PA.7用于将行扫描数据进行高速串-并转换,实验箱内部便可提供较大电流总够控制点阵的8行,这样,点阵的128个点中被选通的就亮。
显示模块由2块8×8点阵组成,通过相互并联转换成16×8点阵。
3.2:方案选择:(1).实验仪器(2).流程图:YNNYNYN(3).硬件连接开始不显示K1是否按下?K2是否按下?K3是否按下?静态显示“大连”动态显示“大连”(由内向外再相反显示)静态显示“爱心”(图形)四.实际操作与调试:(1)实际制作使用keil 先对软件程序进行编译测试并进行proteus 仿真,调试成功后开始硬件部分。
点阵显示汉字滚动图解

点阵的汉字滚动实现其实很简单,用一句话概括就是:一边在行(列)上进行扫描,一遍循环依次取出显示代码输入到列(行)上。
以我们板上载有的8×8点阵为例,当要实现2个汉字的滚动时,我们把整个滚动的过程拆开,会发现每一次完整的滚动,点阵要显示2×8=16个状态。
我们可以把两个汉字的行(或列)扫描代码通过字模提取软件提出后保存在数组里,然后顺序循环的去取数组里的数据放到行(或列)上就可。
我们用图示来解析一下整个过程。
我们假设要显示两个汉字”人”和”天”的左右滚动。
首先我们假设在行和列的输入数据中,1代表亮,0代表灭。
数组code里保存好从字模软件中按行提取出来的扫描码,假设code[15]=A0,A1,A2,A3,A4,A5,A6,A7,B0,B1,B2,B3,B4,B5,B6,B7(A代表“人”字的列扫描码,B代表“天”字的列扫描码)思路是这样的:第1个时段T1:(完整的汉字“天”)时刻t0,R=0000_0001,L=A0,R0那一列显示;、时刻t1,R=0000_0010,L=A1,R1那一列显示;时刻t2,R=0000_0100,;L=A2,R2那一列显示;…….时刻t7,R=1000_0000,;L=A7,R7那一列显示;然后又回到时刻t0的扫描状态,循环扫描。
只要在这个T1时间段内按这样扫描的话,就形成了A0—A7所代表的数据,即汉字“人”第2个时段T2:(开始滚入“天”字)时刻t0,R=0000_0001,L=A1,R0那一列显示;、时刻t1,R=0000_0010,L=A2,R1那一列显示;时刻t2,R=0000_0100,L=A3,R2那一列显示;…….时刻t7,R=1000_0000,L=B0,R7那一列显示;“天”字第1列然后又回到时刻t0的扫描状态,循环扫描。
只要在这个T2时间段内按这样扫描的话,就形成了A1—A7和B0所代表的数据,如下图:第3个时段T3:时刻t0,R=0000_0001,L=A2,R0那一列显示;、时刻t1,R=0000_0010,L=A3,R1那一列显示;时刻t2,R=0000_0100,;L=A4,R2那一列显示;…….时刻t6,R=1000_0000,L=B0,R6那一列显示;“天”字第1列时刻t7,R=1000_0000,L=B1,R7那一列显示;“天”字第2列然后又回到时刻t0的扫描状态,循环扫描。
8乘8(8x8)点阵汉字显示

单片机课程设计题目:8*8点阵汉字显示器专业班级:******姓名:******学号:*********一.摘要:用TOP-23088DH-U 8*8点阵块设计制作一个8*16点阵汉字显示器。
通过51单片机作为控制系统,由8255的A口为段数据口向两块点阵提供行数据,C口提供扫描列信息,通过74LS154译码后进行扫描,当点阵的行接高电平,列为低电平时,同时选通,则在该点的LED点亮。
由于实验箱上所提供的驱动电流太低,不足以点亮二极管,所以在电路中增加一个74LS254芯片,以提供点亮LED 所需的驱动电流。
同时在P1.0-P1.2口接3个开关,形成按键控制功能选择。
点阵模块图如下:如上图所示,本实验通过列扫描方式,扫描同时给行线送显示数据。
当扫描到某列,则该列选通,其他列截止,选通瞬间送显示数据,则所对应的二极管亮。
点阵依靠循环点亮每一列(或行),快速循环形成一屏图像,而每一屏快速交替,可进一步形成动画的效果。
二.设计任务和要求:(1)基本要求:1.能显示8*8的汉字,用两个8*8点阵,显示“大连”。
2.通过键盘控制可以改变显示的汉字与图形。
3.通过键盘控制,可以实现彩灯控制功能,发光管从内向外周期显示和相反显示。
(2)发挥要求:1.增加驱动电路,提高显示亮度。
三.方案选择和论证:3.1:方案论证:控制模块由8051、74LS154,8255组成,其中,采用51单片机制做一个最小系统,包含有时钟信号电路、复位电路等,154是4线转16线译码器,4线端接8255的PC.0-PC.3口,16线端低电平有效,控制点阵的16列,245是对列的驱动,8255的PA.0-PA.7用于将行扫描数据进行高速串-并转换,实验箱内部便可提供较大电流总够控制点阵的8行,这样,点阵的128个点中被选通的就亮。
显示模块由2块8×8点阵组成,通过相互并联转换成16×8点阵。
3.2:方案选择:(1).实验仪器(2).流程图:YNNYNYN(3).硬件连接开始不显示K1是否按下?K2是否按下?K3是否按下?静态显示“大连”动态显示“大连”(由内向外再相反显示)静态显示“爱心”(图形)四.实际操作与调试:(1)实际制作使用keil 先对软件程序进行编译测试并进行proteus 仿真,调试成功后开始硬件部分。
基于C51单片机的8×8 LED点阵屏汉字显示

单片机课程设计报告—8×8 LED点阵屏显示“大”字第一章设计内容及要求 (3)第二章总体设计 (3)2.1 系统框图.........................................................3、4 2.2 设计步骤 (4)第三章各部分电路设计 (4)3. 1 复位电路………………………………………………4 、5 3.2时钟电路……………………………………………5、 63.3显示电路.........................................................6、7 3. 4大字取模 (7)3.5 LED 引脚连接方式..........................................8、9 3.6总体电路 (9)第四章程序设计 (9)4.1软件流图......................................................9、10 4.2大字的模 (10)4.2主程序......................................................10、11 4.3 C51单片机开发工具:keil 4 Proteus使用方法...11、16 第五章仿真结果 (16)第六章总结与体会................................................17、18 第七章参考文献 (18)附录程序清单……………………………………………19、20基于C51单片机的8×8 LED点阵屏汉字显示一设计要求1、设计一个8*8点阵LED电子显示屏2、要求在目测条件下LED显示屏各点亮度均匀、充足,可静态显示一个大字。
二总体方案设计2.1系统框图根据设计要求与设计方案,硬件电路的设计框图如图1所示。
硬件电路结构由8个部分组成:时钟电路、复位电路、按键接口电路、电源电路、点阵显示阳极电路、点阵显示阴极电路和8*8点阵显示电路。
8×8LED点阵屏显示数字(韩余)详解

2.1定时器控制8×8LED点阵屏显示数字系统设计
通过编写程序,实现用中断系统对8×8LED点阵屏的控制,使其每延时一段时间,LED点阵的显示数字就会进行状态转换。采用单片机内部的I/O口上的P0和P3口可来控制LED点阵。
2.2定时器控制8×8LED点阵屏显示数字系统的功能要求
本设计能模拟基本的LED点阵显示系统,是用中断的方式定时控制LED点阵显示的内容变换。
要求:利用单片机的中断系统,令8×8LED点阵屏循环显示数字0—9。
1.3设计思路
1.先熟悉实验原理,了解8×8LED点阵屏显示数字的工作过程,以及所需要的组件。
2.通过单片机的各个引脚的输出控制8×8LED点阵屏显示数字。
3.绘制电路原理图,编写程序,并进行仿真,基本实现8×8LED点阵屏显示数字。
AT89C51单片机为40引脚双列直插芯片,有4个I/O口,P0,P1,P2,P3,单片机的最小系统如图所示,18引脚和19引脚接时钟脉冲电路,XTAL1接外部晶振和微调电容的一端,在片内它是震荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内她是振荡器倒相放大器的输出端,第9引脚为复位输入端,接上电容,电阻及开关后构成上电复位电路,20引脚为接地端,40引脚为电源端。
如图所示:
图3.1晶振与单片机的连接
3.2.1 AT89C51的内部结构功能
·中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
·数据存储器(内部RAM):
数据存储器用于存放变化的数据。AT89S51中数据存储器的地址空间为256个RAM单元,但其中能作为数据存储器供用户使用的仅有前面128个,后128个被专用寄存器占用。
88点阵显示汉子和数字

湖南工业大学课程设计资料袋电气与信息工程学院(系、部)2016~2-17 第 1 学期课程名称单片机应用系统指导教师职称副教授学生姓名未知专业班级电气工程及其自动化学题目8*8LED点阵显示文字_____________________成绩起止日期2016 年11 月21 日~2016 年12 月2 日目录清单湖南工业大学课程设计任务书20 16—20 17第一学期电气与信息工程学院电气工程及其自动化专业1404 班级课程名称:单片机应用系统____________________设计题目:8*8LED点阵显示文字______________________指导教师(签字):年月日系(教研室)主任(签字):年月日(单片机应用系统)设计说明书8*8LED点阵显示文字起止日期:2016 年11月21 日至2016年12 月2日学生姓名哈哈班级电气工程0000学号000000000成绩指导教师(签字)电气与信息工程学院(部)2016年12月7日目录第一章系统概述 (1)1.1设计任务及目的 (1)1.2 设计发展前景 (1)第二章系统硬件设计与分析 (3)2.1 复位电路 (3)2.2 晶振电路 (3)2.3 显示电路 (4)第三章程序设计 (6)3.1 汉子与数字的编码 (6)3.2 定时程序 (6)3.3 完整程序 (6)第四章软件仿真与测试 (11)4.1 滚动循环显示 (11)4.2 逐字切换显示 (11)第五章总结 (13)参考文献 (14)附录(单片机源程序) (15)第一章系统概述LED点阵显示系统中各模块的显示方式有静态和动态显示两种。
静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可显示各种图形或文字信息。
2、8-8-点阵汉字滚动显示

VHDL/EDA实习报告设计题目:基于FPGA的8*8点阵汉字滚动显示目录FPGA设计的特点 (2)设计任务与要求 (3)设计原理 (3)LED点阵原理 (3)汉字的存储 (5)字符样式设计 (7)开发环境介绍 (13)FPGA设计的特点FPGA 通常被认为是ASIC 实现的一种替代手段. 一般ASIC 包括三种, 既全定制、半定制(含标准单元和门阵列) 以及可编程器件。
对于前两种, 需要支付不可重复使用的工程费用NRE (Non recurring Engineering) , 主要用于芯片的流片、中测、分析的工程开销, 一次费用一般在 1 万至数万美元以上。
如果一次不成功、返工、甚至多次返工,NRE 费用将要上升。
成本高、风险大, 而通常对每个ASIC 品种的需求量往往不大,NRE 费用分摊到每个产品上价太高, 用户无法接受。
而对于可编程器件PLD (Programmable Logic Device) 正是可以解决上述问题的新型ASIC, PLD 以其操作灵活、使用方便、开发迅速、投资风险小等突出优点, 特别适合于产品开发初期、科研样品研制或小批量的产品. FPGA 是一种新型的PLD, 其除了具有PLD 的优点外, 其规模比一般的PLD 的规模大。
目前,Xilinx 推出的XC4025 可以达到25000 门的规模,Altera 公司的FLEX10K100 系列芯片可达到十万门的规模,完全可以满足用户的一般设计需要。
FPGA 的主要特点是: 寄存器数目多, 采用查找表计数,适合时序逻辑设计。
但是互连复杂, 由于互连采用开关矩阵,因而使得延时估计往往不十分准确。
FPGA 也有其自身的局限性, 其一就是器件规模的限制,其二就是单元延迟比较大。
所以, 在设计者选定某一FPGA器件后, 要求设计者对器件的结构、性能作深入的了解, 在体系结构设计时, 就必须考虑到器件本身的结构及性能, 尽可能使设计的结构满足器件本身的要求. 这样就增加了设计的难度。
#25单片机点阵式LED“0-9”数字显示技术实验

25.点阵式LED“0-9”数字显示技术1.实验任务利用8X8点阵显示数字0到9的数字。
2.电路原理图图4.25.13.硬件系统连线(1>.把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上;(2>.把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上;4.程序设计内容(1>.数字0-9点阵显示代码的形成如下图所示,假设显示数字“0”123 45 6 7 8●●●●●●●●●●●●●●●●00 00 3E 41 41 41 3E 00因此,形成的列代码为00H,00H,3EH,41H,41H,3EH,00H,00H;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。
送显示代码过程如下所示送第一列线代码到P3端口,同时置第一行线为“0”,其它行线为“1”,延时2ms左右,送第二列线代码到P3端口,同时置第二行线为“0”,其它行线为“1”,延时2 ms左右,如此下去,直到送完最后一列代码,又从头开始送。
数字“1”代码建立如下图所示123 45 6 7 8●●●●●●●●●●其显示代码为00H,00H,00H,00H,21H,7FH,01H,00H数字“2”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●●●●00H,00H,27H,45H,45H,45H,39H,00H 数字“3”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●●00H,00H,22H,49H,49H,49H,36H,00H 数字“4”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●00H,00H,0CH,14H,24H,7FH,04H,00H 数字“5”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●●●●00H,00H,72H,51H,51H,51H,4EH,00H 数字“6”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●●●●00H,00H,3EH,49H,49H,49H,26H,00H 数字“7”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●00H,00H,40H,40H,40H,4FH,70H,00H 数字“8”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●00H,00H,36H,49H,49H,49H,36H,00H 数字“9”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●●●●00H,00H,32H,49H,49H,49H,3EH,00H 5.汇编源程序TIM EQU 30HCNTA EQU 31HCNTB EQU 32HORG 00HLJMP STARTORG 0BHLJMP T0XORG 30HSTART: MOV TIM,#00HMOV CNTA,#00HMOV CNTB,#00HMOV TMOD,#01HMOV TH0,#(65536-4000>/256MOV TL0,#(65536-4000> MOD 256SETB TR0SETB ET0SETB EASJMP $T0X:MOV TH0,#(65536-4000>/256MOV TL0,#(65536-4000> MOD 256MOV DPTR,#TABMOV A,CNTAMOVC A,@A+DPTRMOV P3,AMOV DPTR,#DIGITMOV A,CNTBMOV B,#8MUL ABADD A,CNTAMOVC A,@A+DPTRMOV P1,AINC CNTAMOV A,CNTACJNE A,#8,NEXTMOV CNTA,#00HNEXT: INC TIMMOV A,TIMCJNE A,#250,NEXMOV TIM,#00HINC CNTBMOV A,CNTBCJNE A,#10,NEXMOV CNTB,#00HNEX: RETITAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FHDIGIT: DB 00H,00H,3EH,41H,41H,41H,3EH,00HDB 00H,00H,00H,00H,21H,7FH,01H,00HDB 00H,00H,27H,45H,45H,45H,39H,00HDB 00H,00H,22H,49H,49H,49H,36H,00HDB 00H,00H,0CH,14H,24H,7FH,04H,00HDB 00H,00H,72H,51H,51H,51H,4EH,00HDB 00H,00H,3EH,49H,49H,49H,26H,00HDB 00H,00H,40H,40H,40H,4FH,70H,00HDB 00H,00H,36H,49H,49H,49H,36H,00HDB 00H,00H,32H,49H,49H,49H,3EH,00HEND6.C语言源程序#include <AT89X52.H>unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}。
点阵式LED“0-9”数字显示技巧

1.实验任务利用8X8点阵显示数字0到9的数字。
2.电路原理图图4.25.13.硬件系统连线(1).把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上;(2).把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上;4.程序设计内容(1).数字0-9点阵显示代码的形成如下图所示,假设显示数字“0”00123 4 5 6 78●●●●●●●●●●●●●●●●00 00 3E 41 41 41 3E 00因此,形成的列代码为00H,00H,3EH,41H,41H,3EH,00H,00H;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。
送显示代码过程如下所示送第一列线代码到P3端口,同时置第一行线为“0”,其它行线为“1”,延时2ms左右,送第二列线代码到P3端口,同时置第二行线为“0”,其它行线为“1”,延时2ms左右,如此下去,直到送完最后一列代码,又从头开始送。
数字“1”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●其显示代码为00H,00H,00H,00H,21H,7FH,01H,00H数字“2”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●●●●●●●●00H,00H,27H,45H,45H,45H,39H,00H数字“3”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●●●●●●00H,00H,22H,49H,49H,49H,36H,00H 数字“4”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●●●●●00H,00H,0CH,14H,24H,7FH,04H,00H00123 4 5 6 78●●●●●●●●●●●●●●●●●00H,00H,72H,51H,51H,51H,4EH,00H 数字“6”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●●●●●●●●00H,00H,3EH,49H,49H,49H,26H,00H00123 4 5 6 78●●●●●●●●●●●00H,00H,40H,40H,40H,4FH,70H,00H 数字“8”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●●●●●●●●00H,00H,36H,49H,49H,49H,36H,00H 数字“9”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●●●●●●●●00H,00H,32H,49H,49H,49H,3EH,00H 5.汇编源程序TIM EQU 30HCNTA EQU 31HCNTB EQU 32HORG 00HLJMP STARTORG 0BHLJMP T0XORG 30HSTART: MOV TIM,#00HMOV CNTA,#00HMOV CNTB,#00HMOV TMOD,#01HMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256SETB TR0SETB ET0SETB EASJMP $T0X:MOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256MOV DPTR,#TABMOV A,CNTAMOVC A,@A+DPTRMOV P3,AMOV DPTR,#DIGITMOV A,CNTBMOV B,#8MUL ABADD A,CNTAMOVC A,@A+DPTRINC CNTAMOV A,CNTACJNE A,#8,NEXTMOV CNTA,#00HNEXT: INC TIMMOV A,TIMCJNE A,#250,NEXMOV TIM,#00HINC CNTBMOV A,CNTBCJNE A,#10,NEXMOV CNTB,#00HNEX: RETITAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH DIGIT: DB 00H,00H,3EH,41H,41H,41H,3EH,00HDB00H,00H,00H,00H,21H,7FH,01H,00HDB00H,00H,27H,45H,45H,45H,39H,00H00H,00H,22H,49H,49H,49H,36H,00HDB00H,00H,0CH,14H,24H,7FH,04H,00HDB00H,00H,72H,51H,51H,51H,4EH,00HDB00H,00H,3EH,49H,49H,49H,26H,00HDB00H,00H,40H,40H,40H,4FH,70H,00HDB00H,00H,36H,49H,49H,49H,36H,00HDB00H,00H,32H,49H,49H,49H,3EH,00HEND6.C语言源程序#includeunsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code digittab[10][8]={ {0x00,0x00,0x3e,0x41,0x 41,0x41,0x3e,0x00}, //0{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00},//1{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},//2{0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00},//3{0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},//4{0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00}, //5 {0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00}, //6{0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00},//7{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},//8{0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00} //9}; unsigned int timecount;unsigned char cnta;unsigned char cntb;void main(void){TMOD=0x01;TH0=(65536-3000)/256;TL0=(65536-3000)%6;TR0=1;ET0=1;EA=1;while(1){;}}void t0(void) interrupt 1 using 0{TH0=(65536-3000)/256;TL0=(65536-3000)%6; P3=tab[cnta];P1=digittab[cntb][cnta]; cnta++;if(cnta==8){cnta=0;}timecount++;if(timecount==333){timecount=0;cntb++;if(cntb==10){cntb=0;}}}00。
88点阵数字滚动显示

项目一8×8点阵数字滚动显示LED点阵的元件符号及内部结构图:对应编码:00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;NULL00H, 00H, 3EH, 41H, 41H, 41H, 3EH, 00H ; 000H, 00H, 00H, 00H, 21H, 7FH, 01H, 00H ; 100H, 00H, 27H, 45H, 45H, 45H, 39H, 00H ; 200H, 00H, 22H, 49H, 49H, 49H, 36H, 00H ; 300H, 00H, 0CH, 14H, 24H, 7FH, 04H, 00H ; 400H, 00H, 72H, 51H, 51H, 51H, 4EH, 00H ; 500H, 00H, 3EH, 49H, 49H, 49H, 26H, 00H ; 600H, 00H, 40H, 40H, 40H, 4FH, 70H, 00H ; 700H, 00H, 36H, 49H, 49H, 49H, 36H, 00H ; 800H, 00H, 32H, 49H, 49H, 49H, 3EH, 00H ; 900H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;NULL硬件设计原理:单片机利用外部晶振作为时钟信号输入,RST端口接入上电复位信号使它加电后自动进行复位操作。
将要显示的字符码表编入单片机的程序中,由单片机控制时序输出相应的扫描数据和字符数据。
行码数据由单片机P0口输出,经一个双向总线收发器控制传输方向后进入LED点阵,点亮相应的发光二极管。
列码扫描信号由P3口输出后,直接输入LED点阵控制8列的扫描,每列选通时间为5ms,看上去就像8列同时显示的效果一样。
加上行中相应的LED灯被点亮,就能看到显示的字符了。
三、源程序代码:R_CNT EQU 31H ;列码R_NCT=31H单元NUMB EQU 32H ;行码NUMB=32H单元TCOUNT EQU 33H;拉幕计数值TCOUNT=33H单元ORG 00H ;程序起始地址LJMP STARTORG 0BH;中断入口地址LJMP INT_T0ORG 30H;子程序入口地址START: ;主程序开始MOV R0, #00H ;每列的行码起始序号置0MOV R_CNT, #00H;列:初值00送到31H单元MOV NUMB, #00H;行:初值00送到32H单元MOV TCOUNT, #00H;计数单元初值置0MOV TMOD, #01H;计数定时器选用16位的计数器,工作在方式1MOV TH0, #(65536-5000)/256;定时5ms。
8×8LED点阵显示数字与字符

5. C 语言程序:
#include "AT89X52.H" unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code digittab[][8]={ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",0*/ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",0*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF},/*"_",0*/ {0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF},/*"_",0*/ {0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF},/*"_",0*/ {0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF},/*"_",0*/ {0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF},/*"_",0*/ {0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"_",0*/ {0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"_",0*/ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"_",0*/ {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},/*"|",0*/ {0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},/*"|",0*/ {0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},/*"|",0*/ {0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},/*"|",0*/ {0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},/*"|",0*/ {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},/*"|",0*/ {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},/*"|",0*/ {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},/*"|",0*/ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",0*/ //图形 1 {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*"未命名文件",0*/ {0x00,0x00,0x3C,0x24,0x24,0x3C,0x00,0x00},/*"未命名文件",0*/ {0x00,0x7E,0x42,0x42,0x42,0x42,0x7E,0x00},/*"未命名文件",0*/ {0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0xFF},/*"未命名文件",0*/ //图形 2 {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*"未命名文件",0*/ {0x00,0x00,0x24,0x18,0x18,0x24,0x00,0x00},/*"未命名文件",0*/ {0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00},/*"未命名文件",0*/ {0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81},/*"未命名文件",0*/ //图形 3 {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*"未命名文件",0*/ {0x00,0x00,0x24,0x18,0x18,0x24,0x00,0x00},/*"未命名文件",0*/ {0x00,0x10,0x24,0x1A,0x58,0x24,0x08,0x00},/*"未命名文件",0*/ {0x08,0x10,0x24,0x9A,0x59,0x24,0x08,0x10},/*"未命名文件",0*/ {0x0C,0x10,0xA4,0x9A,0x59,0x25,0x08,0x30},/*"未命名文件",0*/ {0x0E,0x90,0xA4,0x9A,0x59,0x25,0x09,0x70},/*"未命名文件",0*/ {0x8F,0x90,0xA4,0x9A,0x59,0x25,0x09,0xF1},/*"未命名文件",0*/
88点阵LED字符显示器设计

河南理工大学计算机科学与技术学院课程设计报告2011— 2012学年第1学期8×8点阵LED字符显示器设计一 .设计目的与要求:设计一8×8点阵LED字符显示器,要求显示“电子设计”四个汉字,显示方式提供三种:逐字显示,向上滚动显示,向右滚动显示。
二 .设计原理:在单片机系统中,常用的显示器有:发光二极管显示器,简称LED(Light Emitting Diode);液晶显示器,简称LCD(Liquid Crystal Display);荧光管显示管。
前两种显示器都有两种显示结构;段显示(8段,“米”字型等)和点阵显示(5×7,5×8,8×8点阵等)。
点阵图形显示模块有两种连接方式:一种是直接访问方式,另一种是间接控制方式。
直接访问方式就是将显示器模块的接口作为存储器或I/O设备直接挂在单片机总线上,单片机过地址译码控制E1和E2的选通;读/写操作信号R/W由地址线A1控制;命令/数据寄存器选择信号由地址线A0控制。
间接控制方式是通过单片机自身或系统扩展并行接口与显示模块连接在一起的。
单片机通过对并行接口输出状态的编程操作,完成对模块所需的时序操作和数据传输。
1.LED显示器结构LED显示器是由发光二极管组成的显示器,有8段和“米”字段之分。
BS202型共阴极BS212型共阳极上图中的BS202型为共阴极LED,BS212型是共阳极LED,它们的几何尺寸和字符相同。
每一种LED又有不同的发光颜色。
例如,BS202型中,BSR202型发红光,BSG202型发绿光;BS212型中,BSR212型发红光,BSG212型发绿光。
图1 ,点阵式LED显示器用8×8的LED显示模块可以显示各种字符,通常通过适当的驱动电路控制各LED 发光与不发光来显示点阵型。
如用8×8模块显示字符“电”的点阵码为:10H、FFH、91H、BDH、91H、FFH、12H、1EH(如下图)。
8×8LED点阵屏显示数字(韩余)

目录1 设计目的 (1)1.1设计目的 (1)1.2设计内容和要求 (1)1.3设计思路 (1)2 设计原理分析 (2)2.1定时器控制8×8LED点阵屏显示数字系统设计 (2)2.2定时器控制8×8LED点阵屏显示数字系统的功能要求 (2)2.2.1计时显示 (2)2.2.2中断设置 (2)2.38×8LED点阵屏显示数字系统的基本构成及原理 (2)3 系统硬件电路的设计 (3)3.1系统硬件总电路构成及原理 (3)3.2主控制部分――AT89C51单片机简介 (3)3.2.1 AT89C51的内部结构功能 (4)3.2.2 51单片机的串行接口工作方式 (5)3.3其它器件 (6)3.4定时器控制8×8LED点阵屏显示数字系统原理图 (7)3.5设计的连线图: (8)3.5.1单片机实物图: (8)3.6硬件资源及其分配 (8)3.7运行步骤 (8)3.8检测与调试 (9)3.8.1硬件调试: (9)3.8.2软件调试: (10)4 系统软件程序的简单设计 (11)4.1程序框图 (11)4.2程序流程图及程序 (12)4.2.1程序流程图: (12)4.2.2程序清单: (12)4.2.3仿真结果图: (14)结论 (15)参考文献 (16)1 设计目的1.1设计目的1、通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
2、通过8×8LED点阵屏显示数字系统的设计,掌握数码管的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。
1.2设计内容和要求内容:设计一个8×8LED点阵屏显示数字。
要求:利用单片机的中断系统,令8×8LED点阵屏循环显示数字0—9。
1.3 设计思路1.先熟悉实验原理,了解8×8LED点阵屏显示数字的工作过程,以及所需要的组件。
2.通过单片机的各个引脚的输出控制8×8LED点阵屏显示数字。
8×8LED点阵屏显示数字(韩余).

目录1 设计目的 (1)1.1设计目的 (1)1.2设计内容和要求 (1)1.3设计思路 (1)2 设计原理分析 (2)2.1定时器控制8×8LED点阵屏显示数字系统设计 (2)2.2定时器控制8×8LED点阵屏显示数字系统的功能要求 (2)2.2.1计时显示 (2)2.2.2中断设置 (2)2.38×8LED点阵屏显示数字系统的基本构成及原理 (2)3 系统硬件电路的设计 (3)3.1系统硬件总电路构成及原理 (3)3.2主控制部分――AT89C51单片机简介 (3)3.2.1 AT89C51的内部结构功能 (4)3.2.2 51单片机的串行接口工作方式 (5)3.3其它器件 (6)3.4定时器控制8×8LED点阵屏显示数字系统原理图 (7)3.5设计的连线图: (8)3.5.1单片机实物图: (8)3.6硬件资源及其分配 (8)3.7运行步骤 (8)3.8检测与调试 (9)3.8.1硬件调试: (9)3.8.2软件调试: (10)4 系统软件程序的简单设计 (11)4.1程序框图 (11)4.2程序流程图及程序 (12)4.2.1程序流程图: (12)4.2.2程序清单: (12)4.2.3仿真结果图: (14)结论 (15)参考文献 (16)1 设计目的1.1设计目的1、通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
2、通过8×8LED点阵屏显示数字系统的设计,掌握数码管的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。
1.2设计内容和要求内容:设计一个8×8LED点阵屏显示数字。
要求:利用单片机的中断系统,令8×8LED点阵屏循环显示数字0—9。
1.3 设计思路1.先熟悉实验原理,了解8×8LED点阵屏显示数字的工作过程,以及所需要的组件。
2.通过单片机的各个引脚的输出控制8×8LED点阵屏显示数字。
任务一 8×8点阵模块显示数字

项目实施
•1.硬件电路连接:按照硬件电路接线图连线,选择所需的模块并进行布局, 然后将电源模块、主机模块和显示模块LED点阵用导线进行连接。 •2.打开KEIL软件,通过菜单“项目/新建项目”,新建立一个工程项目3216DZ1 ,然后再建一个文件名为3216DZ1.C的源程序文件,将上面的参考程序输入并保 存,同时将该文件添加到项目中。需要注意的是:数字1的字模需要用取模软件 建立图像得出,这里不再详细说明。 •3.对源程序进行编译和链接,如果有错误则必须修改错误,直到编译成功, 设置生成目标代码。 •4.将目标代码通过编程器写入到单片机中。 •5.接通电源,让单片机运行,观察点阵的显示是否正常。
第2帧
0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1
第3帧
0 0 0 0 0 0 1 0 1 1 1 1 0 1 1 1
第4帧
0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1
第5帧
第6帧
第7帧
第8帧
(3)取模软件的使用(zimo221)
②
①
ቤተ መጻሕፍቲ ባይዱ
③
(4)LED点阵硬件驱动程序
项目四
LED点阵屏广告牌制作
任务一
8×8点阵模块显示数字
任务一 8×8点阵模块显示数字
任务要求
任务分析
硬件电路的 设计与搭建
软件编写
任务实施
任务书:
• 使用YL-236单片机实训考核 装置显示模块中的LED点阵显 示屏单元中最左上角的一个 8X8点阵模块显示数字1,显 示效果如左图所示。
任务分析
(2)LED点阵字符显示原理
1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 0 0 0 0
8x8点阵循环显示数字0-9

write_com(0xca);
write_data(0x43);
}
/********************************************
1602写.读及初始化
********************************************/
{
display_xianshi1();
delay(5);
js4=0;//标志位清零,以便下次判断
}
}
void display_shezhi()
{
uchar num,num1;
write_com(0x8b);//第一行的个位
write_com(0x0b);//显示光标,光标闪烁
if(add==0)//是否按加一按键
lcden=1;
delay_1ms(5);
lcden=0;
}
void init_1602()//1602初始化函数
{
write_com(0x38);//设置16X2显示,5X7点阵,8位数据端口
write_com(0x06);//写一个字符后,地址加一
write_com(0x0c);//设置开显示,不显示光标
void write_data(uchar date); //1602写数据函数
void init_1602();//1602初始化函数
void delay(uint t)//1us延时
{
while(t--);
}
void delay_1ms(uint z)
{
uint x,y;
for(x=z;x>0;x--)
void write_com(uchar com)//1602写函数
8 8点阵显示汉字课程设计含程序、sch、pcb

课程设计说明书课程名称:单片机原理及接口技术设计课题:8 8点阵显示汉字专业:计算机控制技术班级: Z 1 1 0 4 5 5 姓名:凌春光2013年 5 月 20 日目录第一章系统概述1.1 设计任务及目的 (4)第2章系统硬件设计与分析2.1 电源电路 (5)2.2 复位电路 (5)2.3 主体电路 (6)2.4 硬件电路连线 (6)2.5 显示部分 (7)2.5.1 LED点阵内容结构 (9)2.5.2 等效电路图 (9)2.5.3 点阵LED扫描法介绍 (10)第3章单片机的配置及简介3.1 单片机介绍 (11)第4章系统软件设计4.1 汉字的编码 (12)4.2 字母的编码 (12)4.3 完整程序 (12)第5章有关软件的介绍5.1 PROTE电路设计及PCB图制作 (15)5.1.1 原理图设计 (15)5.1.2 PCB图制作 (16)5.1.3 印制板的制作 (16)5.2 Keil C51 介绍及使用 (16)5.3 烧录器的使用 (1)结束语 (18)参考文献 (18)附录一PCB图 (19)附录二运行截图 (23)第一章系统概述LED点阵显示系统中各模块的显示方式有静态和动态显示两种。
静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可显示各种图形或文字信息。
本文将介绍一种采用单片机AT89C51进行控制的8*8LED点阵。
该点阵可实现动态显示任意四个数字、字母或汉字的功能,如动态显示“凌”“春”“光””LCG”。
1.1设计任务及目的利用8*8LED点阵显示数字0~9和26个英文字符的字样。
采用AT89C51单片机作为整个控制搭电路的核心,并编制软件程序,实现动态轮流显示。
通过此设计来巩固单片机硬件系统的设计及软件系统的编程,通过设计将平时所学知识付诸实践,提高动手能力。
用51单片机实现在88 LED点阵上显示汉字“中”

用51单片机实现在8*8 LED点阵上显示汉字“中”1.实验任务用汇编语言利用51单片机在8*8 LED点阵上显示单个汉字“中”2.硬件电路连线图把“单片机系统”区域中的P0端口与P2端口分别用8芯排芯连接到“8*8LED点阵模块”的端口上,如下图所示。
3.8*8 LED点阵工作原理8*8 LED点阵结构如下图所示8*8 LED点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,要使某一个二极管发光,只需该二极管对应的列输入‘0’,其他列输入‘1’,该二极管对应的行输入‘1’,其他行输入‘0’。
本次采用逐列扫描的方式,即P2口输出列码决定哪一列能亮,P0口输出行码决定列上哪些LED亮,能亮的列从左向右扫描完8列即显示出一帧完整的图像,因为单片机扫描速度很快,人的视觉有暂停现象,所以看见的就是一个字了。
4.汇编程序ORG 0000HLJMP L0ORG 0050HL0: MOV P0,#00HMOV P2,#7FHMOV P0,#0HMOV P0,#00HMOV P2,#0BFHMOV P0,#10HMOV P0,#00HMOV P2,#0DFHMOV P0,#7CHMOV P0,#00HMOV P2,#0EFHMOV P0,#54HMOV P0,#00HMOV P2,#0F7HMOV P0,#7CHMOV P0,#00HMOV P2,#0FBHMOV P0,#10HMOV P0,#00HMOV P2,#0FDHMOV P0,#10HMOV P0,#00HMOV P2,#0FEHMOV P0,#10HLJMP L0END5 . 执行结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南工业大学课程设计资料袋电气与信息工程学院(系、部)2016~2-17 第 1 学期课程名称单片机应用系统指导教师职称副教授学生姓名未知专业班级电气工程及其自动化学题目8*8LED点阵显示文字_____________________成绩起止日期2016 年11 月21 日~2016 年12 月2 日目录清单湖南工业大学课程设计任务书20 16—20 17第一学期电气与信息工程学院电气工程及其自动化专业1404 班级课程名称:单片机应用系统____________________设计题目:8*8LED点阵显示文字______________________指导教师(签字):年月日系(教研室)主任(签字):年月日(单片机应用系统)设计说明书8*8LED点阵显示文字起止日期:2016 年11月21 日至2016年12 月2日学生姓名哈哈班级电气工程0000学号000000000成绩指导教师(签字)电气与信息工程学院(部)2016年12月7日目录第一章系统概述 (1)1.1设计任务及目的 (1)1.2 设计发展前景 (1)第二章系统硬件设计与分析 (3)2.1 复位电路 (3)2.2 晶振电路 (3)2.3 显示电路 (4)第三章程序设计 (6)3.1 汉子与数字的编码 (6)3.2 定时程序 (6)3.3 完整程序 (6)第四章软件仿真与测试 (11)4.1 滚动循环显示 (11)4.2 逐字切换显示 (11)第五章总结 (13)参考文献 (14)附录(单片机源程序) (15)第一章系统概述LED点阵显示系统中各模块的显示方式有静态和动态显示两种。
静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可显示各种图形或文字信息。
本文将介绍一种采用单片机AT89C51进行控制的8*8LED点阵。
该点阵可实现动态显示数字0~9及字符任意简单字符的功能。
1.1设计任务及目的利用8*8LED点阵显示数字0~5和湖南工业大学的字样。
采用AT89S51单片机作为整个控制搭电路的核心,并编制软件程序,实现动态轮流显示。
通过此设计来巩固单片机硬件系统的设计及软件系统的编程,通过设计将平时所学知识付诸实践,提高动手能力。
1.2 设计发展前景点阵 LED 显示器是把一些 LED 组合在同一个包装中,常见的规格有 5×7,8×8,16×16 等几种。
LED 电子显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。
它是集微电子技术、光电子技术、计算机技术、信息处理技术于一体的显示系统,是目前国际上极为先进的显示媒体。
由于它具有发光效率高、使用寿命长、组态灵活、色彩丰富、工作性能稳定以及对室内室外环境适应能力强等优点而日渐成为显示媒体中的佼佼者。
在我国改革开放之后,特别是进入 90 年代国民经济高速增长,对公众场合发布信息的需求日益强烈,LED 显示屏的出现正好适应了这一市场形势,因而在 LED 显示屏的设计制造技术与应用水平上都得到了迅速的提高,生产也得到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。
随着信息产业的高速发展,LED 显示屏作为信息传播的一种重要手段成为现代信息化社会的一个闪亮标志。
近年 LED 显示屏已广泛应用于室内、外需要进行服务内容和服务宗旨宣传的公众场所如银行、营业部、车站、机场、港口、体育场馆等信息的发布,政府机关政策、政令,各类市场行情信息的发部和宣传等。
汉字显示方式是先根据所需要的汉字提取汉字点阵,将点阵文件存入ROM,形成新的汉字编码。
而在使用时则需要先根据新的汉字编码组成语言,再由 MCU 根据新编码提取相应的点阵进行汉字显示。
LED 的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。
第二章系统硬件设计与分析本系统从经济性,电路结构,系统性能等多方面考虑,选用如下主要元器件:单片机AT89C51、电阻1K、按钮开关、共阳8*8LED点阵显示块、排阻RESPACK-8、12MHz晶振、电容若干。
2.1 复位电路单片机在启动运行时需要复位,使CPU以及其他功能部件处于一个确定的初始状态,并从这个状态开始工作,另外,在单片机工作过程中,如果出现死机时,也必须对单片机进行复位,使其重新开始工作。
本设计中采用按键复位电路,复位电路如图2所示:图1 复位电路图2.2 晶振电路本次使用12MHz晶振,从而使每一个机器周期时间为1S钟。
晶振电路如下图2所示:XTAL218XTAL119ALE 30EA31PSEN 29RST9P0P0P0P0P0P0P0P0P1.0/T21P1.1/T2EX 2P1.23P1.34P1.45P1.56P1.67P1.78P3.P3P3.P3.P PP3P P2P P P2P2P2P2P2U1AT89C52C110uFC222pFC322pFX1CRYSTAL图3 晶振电路图2.3 显示电路1. 8X8 点阵LED 工作原理说明图4为8×8点阵LED 外观及引脚图,其等效电路如图5所示,只要其对应的X 、Y 轴顺向偏压,即可使LED 发亮。
例如如果想使左上角LED 点亮,则Y0=1,X0=0即可。
应用时限流电阻可以放在X 轴或Y 轴。
图4 8×8点阵LED 外观及引脚图2.点阵LED 扫描法介绍点阵LED 一般采用扫描式显示,实际运用分为三种方式: (1)点扫描; (2)行扫描; (3)列扫描。
若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms 即 可。
若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms 即可符合视觉暂留要求。
此外一次驱动一列或一行(8颗LED )时需外加驱动电路提高电流,否则LED 亮度会不足。
其等效电路图如下:图5 8×8点阵LED等效电路第三章程序设计本程序主要由两段程序实现,当按下外部中断0,单片机执行轮流刷新滚动显示“工业大学012345”字样,当按下外部中断1,单片机执行逐字切换显示“工业大学012345”字样,具体程序如下:3.1 汉子与数字的编码TAC: DB 00H,7CH,10H,10H,10H,0FEH,00H,00H ;工TAD: DB 28H,28H,0AAH,6CH,28H,28H,0FFH,00H;业TAE: DB 08H,08H,08H,0FFH,18H,24H,42H,81H;大TAF: DB 52H,2CH,7FH,0BAH,10H,7EH,10H,30H;学TAG: DB 00H,3CH,24H,24H,24H,24H,3CH,00H;0TAH: DB 00H,10H,30H,10H,10H,10H,38H,00H;1TAI: DB 00H,7CH,44H,08H,10H,20H,40H,7CH;2TAJ: DB 00H,78H,48H,08H,10H,08H,48H,78H;3TAK: DB 00H,14H,14H,24H,44H,0FFH,04H,04H;4TAL: DB 00H,3CH,20H,20H,3CH,04H,24H,3CH; 53.2 定时程序由以下定是程序可知,没行显示时间300us,共8列,故循环刷新时间为2.4ms,程序如下:DELAY1MS:MOV R3,#100 ;定时300微秒LOOPTM:NOPDJNZ R3,LOOPTMRET3.3 完整程序ORG 0000HLJMP MAIN ;跳到主函数ORG 0003HLJMP OUT0 ;执行外部中断0的滚动显示程序ORG 0013HLJMP OUT1 ;执行外部中1的静止显示程序ORG 0150HOUT0:MOV P1,#00H /* 此段程序为滚动显示程序*/MOV P0,#00H ;消隐,屏蔽开发板七段LED接口CLR P2.6SETB P2.7START: MOV R2,#00H ;程序段开始LOOPST: MOV A,R2 ;赋查表初值给R7MOV R7,ACLR AMOV R4,#100 ;一个字刷新完成后循环刷新次数LOOP2: MOV R6,#08H ;8行矩阵显示一个完整的字MOV R5,#0FEH ;行移位,低电平有效LOOP1: MOV A,R7MOV DPTR,#TAB ;表初值R7赋值给累加器A开始查表指令MOVC A,@A+DPTRMOV B,A ;先将查表得的数据列显示保存到寄存器BCLR AMOV A,R5 ;将行显示保存到累加器AMOV P1,B ;列输出到P1口MOV P0,A ;行输出到P0口LCALL DELAY1MS ;第一行完整字符显示延时300微秒INC R7 ;下一行准备列显示准备查表RL A ;行移位至第二列MOV R5,A ;数据送R2下次使用CLR ADJNZ R6,LOOP1 ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新MOV A,R2 ;一个字刷新完成,准备循环刷新MOV R7,ADJNZ R4,LOOP2 ;第一个字刷新时间到,准备第二个字刷新CLR AINC R2 ;下次查表时初表头地址为R2的值,即第二个字表的首地址CJNE R2,#83,LOOPST ;判断所有要显示的字符码个数,能够顺序显示每个字符LJMP STARTRETIORG 0210HOUT1:MOV P1,#00H /* 此段out1为文字静止显示*/MOV P0,#00H ;消隐,屏蔽开发板七段LED接口CLR P2.6SETB P2.7MOV R4,#250 ;一个字刷新完成后循环刷新次数LOOPZ1: LCALL LOOPXH2LOOPA: MOV A,R7MOV DPTR,#TACLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPA ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ1 ;第一个字刷新时间到,准备第二个字刷新LJMP LOOPZ2 ;跳第二字LOOPZ2:LCALL LOOPXH2LOOPB: MOV A,R7MOV DPTR,#TADLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPB ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ2 ;第二个字刷新时间到,准备第三个字刷新LJMP LOOPZ3 ;跳第三字LOOPZ3:LCALL LOOPXH2LOOPC: MOV A,R7MOV DPTR,#TAELCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPC ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ3 ;第三个字刷新时间到,准备第四个字刷新LJMP LOOPZ4 ;跳第四字LOOPZ4:LCALL LOOPXH2LOOPD: MOV A,R7MOV DPTR,#TAFLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPD ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ4 ;第四个字刷新时间到,准备第五个字刷新LJMP LOOPZ5 ;跳第五字LOOPZ5:LCALL LOOPXH2LOOPE: MOV A,R7MOV DPTR,#TAGLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPE ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ5 ;第五个字刷新时间到,准备第二六字刷新LJMP LOOPZ6 ;跳第六字LOOPZ6:LCALL LOOPXH2LOOPF: MOV A,R7MOV DPTR,#TAHLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPF ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ6 ;第六个字刷新时间到,准备第二七字刷新LJMP LOOPZ7 ; 跳第七字LOOPZ7:LCALL LOOPXH2LOOPG: MOV A,R7MOV DPTR,#TAILCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPG ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ7 ;第七个字刷新时间到,准备第二八字刷新LJMP LOOPZ8 ;跳第八字LOOPZ8:LCALL LOOPXH2LOOPH: MOV A,R7MOV DPTR,#TAJLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPH ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ8 ;第八个字刷新时间到,准备第九个字刷新LJMP LOOPZ9 ; 跳第九字LOOPZ9:LCALL LOOPXH2LOOPI: MOV A,R7MOV DPTR,#TAKLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPI ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ9 ;第九个字刷新时间到,准备第十个字刷新LJMP LOOPZ10 ; 跳第十字LOOPZ10:LCALL LOOPXH2LOOPJ: MOV A,R7MOV DPTR,#TALLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPJ ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ10 ;第十个字刷新时间到,准备返回第一个字重新开始LJMP LOOPZ1 ; 所有显示完毕,返回本段程序重新开始执行RETILOOPXH1:MOVC A,@A+DPTR ;表初值R7赋值给累加器A开始查表指令MOV B,A ;先将查表得的数据列显示保存到寄存器BCLR AMOV A,R5 ;将行显示保存到累加器AMOV P1,B ;列输出到P1口MOV P0,A ;行输出到P0口LCALL DELAY1MS ;第一行完整字符显示延时300微秒INC R7 ;下一行准备列显示准备查表RL A ;行移位至第二列MOV R5,A ;数据送R2下次使用CLR ARETLOOPXH2: MOV R6,#08H ;8行矩阵显示一个完整的字MOV R5,#0FEHMOV R7,#00H ;行移位,低电平有效RETDELAY1MS:MOV R3,#100 ;定时300微秒LOOPTM:NOPDJNZ R3,LOOPTMRETORG 0050HMAIN: CLR IT0 ;中断程序CLR IT1MOV P1,#00HSETB EASETB EX0SETB EX1SJMP $TAB: DB 00H,7CH,10H,10H,10H,0FEH,00H,00H ;滚动显示程序OUT0要显示的字码DB 28H,28H,0AAH,6CH,28H,28H,0FFH,00HDB 08H,08H,08H,0FFH,18H,24H,42H,81H,00H,00HDB 52H,2CH,7FH,0BAH,10H,7EH,10H,30H,00HDB 00H,3CH,24H,24H,24H,24H,3CH,00HDB 00H,10H,30H,10H,10H,10H,38H,00HDB 00H,7CH,44H,08H,10H,20H,40H,7CHDB 00H,78H,48H,08H,10H,08H,48H,78HDB 00H,14H,14H,24H,44H,0FFH,04H,04HDB 00H,3CH,20H,20H,3CH,04H,24H,3CHTAC: DB 00H,7CH,10H,10H,10H,0FEH,00H,00H ;静止显示程序OUT1要显示的字码TAD: DB 28H,28H,0AAH,6CH,28H,28H,0FFH,00HTAE: DB 08H,08H,08H,0FFH,18H,24H,42H,81H,00H,00HTAF: DB 52H,2CH,7FH,0BAH,10H,7EH,10H,30H,00HTAG: DB 00H,3CH,24H,24H,24H,24H,3CH,00HTAH: DB 00H,10H,30H,10H,10H,10H,38H,00HTAI: DB 00H,7CH,44H,08H,10H,20H,40H,7CHTAJ: DB 00H,78H,48H,08H,10H,08H,48H,78HTAK: DB 00H,14H,14H,24H,44H,0FFH,04H,04HTAL: DB 00H,3CH,20H,20H,3CH,04H,24H,3CHEND第四章软件仿真与测试4.1 滚动循环显示按下滚动按钮,执行外部中断0,LED滚动“显示工业大学012345”字样由于人眼存在视觉差,因此只要在特定是时间里让每行显示的等逐行扫描,以此循环多次,则可以让人眼看到一个完整的汉子,列如LED点阵显示“工”字,然后依次让没行列扫描往上移动一行,则可以实现汉子的滚动。