目录
1 课题名称…… … … … … … … … … … … … … … 12 设计任务及要求…… … … … … … … … … … … 13 工作原理… … … … … … … … … … … … … … … 2 3. 1 阵屏原理… … … … … … … … … … … … … .2 3. 2 8 9 S C 5 1 引脚及相关功效…… … … … .. 3 4 方案选择… … … … … … … … … … … … … … … 4 4. 1 方案一…… … … … … … … … … … … … … … 4
4 . 2 方案二… … … … … … … … … … … … … … . . . 5 4 . 3 方案选择 … … … … … … … … … … … … … . . 6 |
5. 1 . 1 硬件设计…… … … … … … … … … … … 6 5. 1 . 2 软件设计…… … … … … … … … … … … 7 5. 2 绘制电路图及印刷板图…… … … … … … .. 1 1 5. 3 计算机仿真…… … … … … … … … … … … .. 1 1 6课设总结… … … … … … … … … … … … … … … 14
7 参考文件 … … … … … … … … … … … … … … … 1 4 | |
1 课题名称 | |
LED点阵显示器设计
2 设计任务及要求
1、掌握LED显示器控制系统显示原理,学习LED点阵显示数字和字符编程方法。
2、结合微机原理、单片机技术知识,查阅相关资料,设计一个以单片机为关键LED点阵显示器系统,采取点阵LED作为显示器显示0-9及其它字符(比如显示"X")。
3.1 阵屏原理 |
正向电流是(If)=8~10mA。静态点亮器件时(64 点全部亮)总 |
电流是640mA,总电压是1.8V,总功率为1152mW。动态时取决和扫描频率(1/8s或1/16s),单点瞬间电流可达80~160mA。
点阵内部结构及外形如上,8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线交叉点上,当对应某一行置1电平,某一列置0电平,则对应二极管就亮;如要将第一个点点亮,则9脚接高电平13脚接低电平,则第一个点就亮了;假如要将第一行点亮,则第9脚要接高电平,而(13、3、4、10、6、11、15、16)这些引脚接低电平,那么第一行就会点亮;
如要将第一列点亮,则第13 脚接低电平,而(9、14、8、12、 1、7、2、5)接高电平,那么第一列就会点亮 。 |
3.2 89SC51 引脚及相关功效
40个引脚按引脚功效大致可分为4个种类:电源、时钟、控制和I/O引脚。如右图
⒈)电源:
⑴VCC - 芯片电源,接+5V;
⑵VSS - 接地端;
注:用万用表测试单片机引脚电流通常为
0v或5v,这是标准TTL电平,但有时候
在单片机程序正在工作时候测试结果并
不是这个值而是介于0v-5v 之间,其实 这之是万用表反应没这么快而已,在某 |
电路反相输入端和输出端。
⒊)控制线:控制线共有4根,
⑴ALE/PROG:地址锁存许可/片内EPROM编程脉冲
①ALE 功效:用来锁存P0口送出低8位地址
②PROG 功效:片内有EPROM芯片,在EPROM编程期间,
此引脚输入编程脉冲。 ⑵ PSEN:外ROM 读选通信号。 | |
⑶ RST/VPD:复位/备用电源。
① RST(Reset)功效:复位信号输入端。
② VPD功效:在Vcc掉电情况下,接备用电源。
⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。 ①EA 功效:内外ROM选择端。
②Vpp 功效:片内有EPROM芯片,在EPROM编程期间,施加编程电源Vpp。
⒋)I/O 线
80S51 共有4 个8 位并行I/O 端口个引脚。P3 口还含有第二功效,用于特殊信号输入输出和控制信P0、P1、P2、P3 口,共32 |
4方案选择
4.1方案一
4.1.1方案原理图:
4.1.2方案分析:
LED 通常采取扫描式显示,实际利用分为三种方法: 点扫 |
据信号,低电平有效。
以8x8 LED 点阵列显示器为例说明字符显示原理,8列次序扫描结束后,将完成一帧字符显示。一帧扫描结束后,列扫描从第一行重新开始,周而复始。若行数据保持不变,则显示静态字符。反之,行数据发生改变,则显示内容将发生改变,假如保持 前后帧内容连贯性,就能够显示动态字符。
4.2方案二
4.2.1方案原理图:
4.2.2 方案分析:
由24块8*8 点阵led组成一块大屏幕,单片机控制进行循环
扫描,用多块移位寄存器控制输出内容,并由单片机串行输出显
示内容行编码,显示器会滚动显示数字、字母。汉字等内容。
4.3方案选择
第一个方案,选择器件较少,控制比较简单,显示内容比较丰 |
果好,但所用器件较多,控制比较复杂,所以我们选择第一个方案
5设计和仿真
5.1软硬件设计
5.1.1硬件设计
方案一中系统电路图可知系统整体由两大部分组成:以单片机AT89S51为关键模块;由1块8*8LED点阵显示器组成显示模
块; 以下是各单元电路具体设计: |
脉冲、复位电路和程序存放器设定电路,只是接收少许数字和字符,不用外接存放扩展。
时钟脉冲:AT89S51单片机最高时钟脉冲频率已经达成了24MHz,它内部已经含有了振荡电路,只要在AT89S51两个引脚(即19、18脚)连接到简单石英振荡晶体2个管脚即可,同时
晶体2 个管脚也要用30pF 电容耦合到地。 | |
复位电路:89S51 复位引脚(RESET)是第9 脚,当此引脚 |
连接高电平超出2个机器周期,即可产生复位动作。以12MHz时钟脉冲为例,每个时钟脉冲为0.5μS,两个机器周期为1µS,所以,在第9脚上连接一个2μS高电平脉冲,即可产生复位动作。最简单就是只有一个电阻跟一个电容就可可靠复位电路,电阻通常选择10K,电容通常选择10µF。
程序存放器设定电路:31脚接VCC,默认采取内部程序存放器。
2、LED显示模块
5.1.2 软件设计此次设计中8*8LED 电子显示器制作。相对而言是比较简单。 |
1 2 3 4 5 6 7 8
● | ● | ● | ● | ● | |
● | ● | ||||
● | ● | ||||
● | ● | ||||
|
● | ● | ● | ● | ● |
00 00 3E 41 41 41 3E 00
所以,形成列代码为00h,00h,3eh,41h,41h,41h,3eh,00h;只要把这些代码按扫描次序分别送到对应列线上面,即可实现“0”数字显示。其它列代码用类似方法设计。
送显示代码过程以下所表示
行线为“1”,延时2ms 左右,送第二列线代码到P3 端口,同时 |
睛看到是完整数字。则类似可得其它数字及字符编码。(2)程序设计
1.步骤图
程序采取循环扫描显示,
中止刷新显示内容方法,
字符转换周期为1秒,
行扫描和字符控制用查
表程序完成。
2.程序设计
TIM | EQU 30H |
ORG 00H
LJMP START
ORG0BH //中止入口
LJMPT0X
ORG30H
START: | MOV TIM,#00H | //初始化 |
MOVCNTA,#00H
MOVCNTB,#00H
MOVTMOD,#01H
MOVTH0,#(65536-4000)/256//中止赋值
MOV TL0,#(65536-4000) MOD 256 SETB TR0 //开中止 |
SJMP$ //循环等候
T0X: MOV TH0,#(65536-4000)/256 //中止程序
MOVTL0,#(65536-4000) MOD 256//恢复
t0 计数初值 | MOV DPTR,#TAB | |
//查表,找到行 |
选通信号
MOVA,CNTA
MOVCA,@A+DPTR
MOVP3,A //行选通信号给p3口
MOVDPTR,#DIGIT
MOVA,CNTB
MOVB,#8
MUL AB ADD A,CNTA |
p1
INCCNTA
MOVA,CNTA
CJNEA,#8,NEXT
MOVCNTA,#00H
NEXT: | INC TIM | |
MOV A,TIM | |
CJNEA,#250,NEX //一秒后调整显示值
MOVTIM,#00H
INCCNTB
MOVA,CNTB
CJNEA,#10,NEX
MOVCNTB,#00H
NEX: | RETI | |
TAB: | DB | |
0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH //行选通 DIGIT: DB 00H,00H,3EH,41H,41H,41H,3EH,00H |
//1
DB00H,00H,27H,45H,45H,45H,39H,00H //2
DB00H,00H,22H,49H,49H,49H,36H,00H //3
//4 | DB 00H,00H,0CH,14H,24H,7FH,04H,00H |
DB00H,00H,72H,51H,51H,51H,4EH,00H //5
DB00H,00H,3EH,49H,49H,49H,26H,00H //6
DB00H,00H,40H,40H,40H,4FH,70H,00H //7
DB00H,00H,36H,49H,49H,49H,36H,00H //8
//9 DB 00H,00H,32H,49H,49H,49H,3EH,00H |
调试程序采取KeiluVision3,首先开启keil软件集成开发环境,点击“Project—>NewProject”建立新工程,选择AT89S51作为目标芯片。建立新源文件,将程序输入并将源文件添加到工程中。
编译程序并更正程序中错误,当程序没错误后点击“Debug—>Start/Stop Debug ”进入程序动态调试状态,验
证程序能不能正确实施,不能则从新修改源程序,假如能则调试 工作结束。 |
5.2 绘制电路图及印刷板图
用protell99SE画出电路原理图以下:
5.3 计算机仿真 | |
|
(1) 打开Keil uVision3,新建Keil 项目,选择AT89S51 单 |
片机作为CPU,新建C语言源文件,编写程序,并将其导入到“SourceGroup”中。在“Optionfor Target”对话窗口中,选中“Output”选项卡中“CreateHEX”选项和“Debug”选项卡中“Use:ProteusVSM Simulator”选项。编译源程序,更正程序中错误。
(2)在ProteusISIS 中,选中AT89S51并单击鼠标左键,打 “EditCompoment”对话窗口,设置单片机晶振频率为12MHZ,开
在此窗口中“ProgramFile”栏中,选择先前用Keil生成.HEX文
件。在Proteus ISIS 菜单栏中选择“File”->“Save Design”选 项,保留设计。在Proteus ISIS 菜单栏中,打开“Debug”下拉 |
(3)在Keil菜单栏中选择“Debug”->“Star/StopDebug Session”选项,或直接单击工具栏“Debug>Star/StopDebug Session”图标,进入程序调试环境。按“F5”键,次序运行程序。
调出“Proteus ISIS”界面,能够看到以下图显示内容。 | |
仿真结果 | |
(1)显示数字 | |
|
(2)显示字符 | |
|
6 课设总结 | |
单片机是目前流行控制技术,使用简单、功效强大、成本也很低,对于我们以后工作有很大用处,这次课设我们用单片机来完成不仅提升了我们对单片机爱好,而且使我们所学知识在实际中得到应用,提升了我们应用能力。
课设使用了点阵,我们上课并没有学习这方面内容,经过我们查资料,很快领会了点阵使用方法,课设使用了多个软件帮助设计,让我们对设计方法有了深入了解,而且我们设计了不一样显示内容,让我们对点阵显示有了基础掌握,我们感觉很有成就
感。 我在这个学期做了一个单片机小项目,对单片机已经比较熟 |
仿真结果做了出来。作出结果可能不能让老师十分满意,但我们已经为我们结果欢呼雀跃了。这只是一次简单课设,在实际中应用还会更难,这全部需要我们不停学习新技术,不停提升自己应用能力。
7参考文件
1、郑初华主编 汇编语言、微机原理及接口技术 第2版北京:电子工业出版社 20XX
2、张友德等单片微型机原理、应用和试验 第五版 上海:复旦大学出版社20XX
3、网站:电子工程师之家