点阵设计 Microsoft Word 文档.docx
《点阵设计 Microsoft Word 文档.docx》由会员分享,可在线阅读,更多相关《点阵设计 Microsoft Word 文档.docx(17页珍藏版)》请在冰豆网上搜索。
点阵设计MicrosoftWord文档
单片机课程设计报告
16
*
16
点
阵
指导老师龙慧辉
专业班级09自动化03班
姓 名旭红吴银宪鹏飞
学号280
2011年5月7日
1摘要3
2总体设计方案、3
2.116*16点阵设计论证方案3
2.1.1方案一3
2.1.2方案二3
2.1.3方案二的总设计框图4
2.2芯片介绍4
2.2.151系列单片机简介4
2.2.274LS154芯片介绍4
2.2.374LS373芯片介绍4
3硬件设计6
3.1系统整体硬件电路6
3.2单片机电源电路7
3.3总电路7
4软件设计8
4.1单片机延时子程序8
4.2程序流程图8
5性能或调试分析10
6、结论10
7、参考文献10
16*16点阵
摘要:
单片机是为各类专用控制器而设计的通用或专用的微型计算机系统,高密度集成了普通计算机微处理系统,一定容量的RAM和ROM以及输入/输出接口,定时器等电路于一块芯片上构成的。
它的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形来显示汉字,汉字显示屏也广泛应用到汽车报站器,广告屏等。
LED显示屏分为图文显示屏和视频显示屏,均由LED矩阵块组成。
用点阵方式构成图形或文字,是非常灵活的,可以根据需要任意组成和变化,只要设计好合适的数据文件,就可以得到满意的显示效果,因而采用点阵式图文显示屏显示经常需要变化的信息是非常有效的。
本次课程设计实现LED点阵屏核心功能即汉字的多样化显示。
加深对单片机课程的全面认识和掌握,对单片机课程的应用进一步的了解。
将单片机软硬件结合起来对程序进行编辑,校验,锻炼实践能力和理论联系实际的能力。
关键词:
单片机,LED显示屏,点阵
1引言
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形来显示汉字,汉字显示屏也广泛应用到汽车报站器,广告屏等。
本次设计的16x16点阵需要32个驱动,分别为16个列驱动及16个行驱动。
每个行与每个列可以选中一个发光管,共有256个发光管,采用动态驱动方式。
每次显示一行后再显示下一行。
2总体设计方案
2.16*16点阵设计方案论证
2.1.1方案一
由于本设计是16*16点阵显示电路,现在比较先进的是用EDA来实现16X16点阵功能,设计需要16进制和160进制的译码计数器,移位寄存器,显示译码器,分频器。
随着自动化(EDA)技术的进展,基于可编程ASIC器件的数字电子系统设计的完整方案越来越受到人们的重视,并且以EDA技术为核心能在可编程ASIC器件上进行系统芯片集成的新设计方法
2.1.2方案二
进而考虑到实际资源情况,直接利用PC机的汉字码作为单片机系统的编码。
设计利用AT89C51单片机芯片、LED显示器、寄存器、3-8译码器、4-16译码器、驱动电路等构成硬件电路再加上软件实现检查行、列选择及驱动电路、显示屏电路。
从以上两种方案,很容易看出,采用方案二,虽然比较传统但电路比较简单,软件设计也比较简单,成本较小。
故采用了方案二。
2.1.3方案二的总体设计框图
LED点阵总体框图如图1所示,点阵电路大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。
控制电路部分包括一个51CUP和一些外围电路。
在整个电路当中此控制电路部分相当于一个上位机,它负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路部分发送命令。
点阵显示屏体以及它的行和列的各个驱动电路。
由于两部分的电路在制板时可以放在一起,所以可以将其字库放到控制电路部分使用串行通讯方式来与屏体电路部分进行数据和命令的传送。
此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行扫描(把该行与电源的一端接通)。
另一方面,根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。
接通的列就在该行该列点燃相应的LEDl未接通的列所对应的LED熄灭。
可通过扫描输出口的控制实现颜色的转换。
图1点阵的总体框图
2.2芯片介绍
2.2.151系列单片机简介
单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。
8051单片机的基本结构见图2。
图28051单片机的基本结构
8051系列的部结构可以划分为CPU、存储器、并行口、串行口、定时器/计数器、中断逻辑几部分。
(1)中央处理器
8051的中央处理器由运算器和控制器构成,其中包括若干特殊功能寄存器(SFR)。
算术逻辑单元ALU能对数据进行加、减、乘、除等算术运算;“与”、“或”、“异或”等逻辑运算以及位操作运算。
ALU只能进行运算,运算的操作数可以事先存放到累加器ACC或寄存器TMP中,运算结果可以送回ACC或通用寄存器或存储单元中,累加器ACC也可以写成A。
B寄存器在乘法指令中可以用来存放一个乘数,在除法指令中用来存放除数,运算后B中为部分运算结果。
ALU主要用于完成二进制数据的算术和逻辑运算,并通过对运算结果的判断影响程序状态字寄存器PSW中有关位的状态。
程序状态字PSW是个8位寄存器,用来寄存本次运算的特征信息,用到其中七位。
PSW的格式如下所示,其各位的含义如表1。
表1程序状态字PSW
CY:
进位标志。
在进行加法或减法运算时,若运算结果的最高位有进位或借位,CY=1,否则CY=0,在执行位操作指令时,CY作为位累加器。
AC:
辅助进位标志。
在进行加法或减法运算时,若低半字节向高半字节有进位或借位,AC=1,否则AC=0,AC还作为BCD码运算调整时的判别位。
F0:
用户可设定的标志位,可置位/复位,也可供测试。
RS1和RS0:
工作寄存器组选择,如表2所示。
表2RS1和RS0工作寄存器组选择
RS1
RS0
工作寄存器组
片RAM地址
0
0
第0组
00H~07H
0
1
第1组
08H~0FH
1
0
第2组
10H~17H
1
1
第3组
18H~1FH
OV:
溢出标志。
当两个带符号的单字节数进行运算,结果超出-128~+127的围时,OV=1,表示有溢出,否则OV=0表示无溢出。
P:
奇偶校验标志。
每条指令指行完毕后,都按照累加器A中“1”的个数来决定P值,当“1”的个数为奇数时,P=1,否则P=0。
PSW中的D1位为保留位,对于8051来说没有意义,对于8052来说为用户标志,与F0相同。
控制器包括程序计数器PC、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。
控制电路完成指挥控制工作,协调单片机各部分正常工作。
程序计数器PC:
当一条指令按PC所指向的地址从程序存储器中取出之后,PC的值会自动增量,即指向下一条指令。
堆栈指针SP:
用来指示堆栈的起始地址。
80C51单片机的堆栈位于片RAM中,而且属于“上长型”堆栈,复位后SP被初始化为07H,使得堆栈实际上由08H单元开始。
指令译码器:
当指令送入指令译码器后,由译码器对该指令进行译码,CPU根据译码器输出的电平信号使定时控制电路产生执行该指令所需要的各种控制信号。
数据指针寄存器DRTR:
它是一个16位寄存器,由高位字节DPH和低位字节DPL组成,用来存放16位数据存储器的地址,以便对片外64kB的数据RAM区进行读写操作。
片RAM有256个字节,其中00H~7FH地址空间是直接寻址区,该区域从00H~1FH地址为工作寄存器区,安排了4组工作寄存器,每组都为R0~R7,在某一时刻,CPU只能使用其中任意一组工作寄存器,由程序状态字PSW中RS0和RS1的状态决定。
(2)存储器组织
8051单片机在物理上有三个存储空间:
片数据存储器RAM、片外数据存储器RAM、程序存储器ROM。
程序存储器ROM地址空间为64kB,片外数据存储器RAM也有64kB的寻址区,在地址上是与ROM重迭的。
8051单片机通过不同信号来选通ROM或RAM。
当从外部ROM中取指令时,采用选通信号PSEN,而从外部RAM中读写数据时则采用读RD和写WR信号或来选通,因此不会因地址重迭而发生混乱。
片RAM的20H~2FH地址单元为位寻址区,其中每个字节的每一位都规定了位地址。
每个地址单元除了可进行字节操作之外,还可进行位操作。
片RAM的80H~FFH地址空间是特殊功能寄存器SFR区,对于51子系列在该区域安排了21个特殊功能寄存器,对于52子系列则在该区域安排了26个特殊功能寄器,同时扩展了128个字节的间接寻址片RAM,地址也为80~FFH,与SFR区地址重迭。
8051的存储器组成结构如图3所示。
图38051的存储器组成结构
(3)管脚说明
VCC:
供电电压。
GND:
接地。
P0口(P0.0~P0.7):
该端口为漏极开路的8位准双向口,它为外部低8位地址线和8位数据线复用端口驱动能力为8个LSTTL负载。
P1口(P1.0~P1.7):
它是一个部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。
P2口(P2.0~P2.7):
它为一个部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。
在访问外部程序存储器时,作为高8位地址线。
P3口(P3.0~P3.7):
为部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,每个引脚都具有第二功能。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(计时器0外部输入)
P3.5T1(计时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
时钟电路引脚XTAL1和XTAL2:
XTAL1:
接外部晶振和微调电容的一端,在片它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。
XTAL2:
接外部晶振和微调电容的另一端,在片它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。
地址锁存允许ALE:
系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。
外部程序存储器读选通信号PSEN:
PSEN是外部程序存储器的读选通信号,低电平有效。
程序存储器地址允许输入端EA/VPP:
当EA为高电平时,CPU执行片程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。
当EA为低电平时,CPU只执行片外程序存储器指令。
复位信号RST:
该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。
2.2.274LS154芯片介绍
1、74LS154功能简介
54/74154为4线-16线译码器,当选通端(G1、G2)均为低电平时,可将地址端(ABCD)的二进制编码在一个对应的输出端,以低电平译出。
如果将G1和G2中的一个作为数据输入端,由ABCD对输出寻址,74LS154还可作1线-16线数据分配器。
图4是芯片74LS154管脚。
图4芯片74LS154管脚图
2、引脚功能介绍
A、B、C、D译码地址输入端(低电平有效);
G1、G2选通端(低电平有效);
0-15输出端(低电平有效)。
3、真值表
表374LS154真值表
2.2.374LS373芯片介绍
373为三态输出的八D透明锁存器,共有54/74S373和54/74LS373两种线路结构型式。
373为三态输出的8D透明锁存器,373的输出端O0-O7可直接与总线相连。
当三态允许控制端OE为低电平时,O0-O7为正常逻辑状态,可用来驱动负载和总线。
当OE为高电平时,O0-O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器部的逻辑操作不受影响。
当锁存允许端LE为高电平时,O随数据D而变。
当LE为低电平时,O被锁存在已建立的数据电平中。
当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。
其管脚图如图5。
图574LS373管脚图
1、373引出端符号
D0~D7——数据输入端OE——三态允许控制端(低电平有效)
LE——锁存允许端O0~O7——输出端
2、74LS373真值表
表4373真值表
3硬件设计
3.1系统整体硬件电路
复位信号RST高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。
复位的实现通常用2种方式:
开机上电复位和外部手动复位,本设计用的是外部手动复位。
电路图6如下:
图6单片机复位图
图7单片机最小应用系统原理图
注:
该最小系统由按键复位RESET电路、晶体振荡电路以及I/O接口电路组成。
3.2单片机电源电路
AT89C51工作电压VCC=5V,其EA引脚需接高电平,5V电源电路如图8所示。
图8单片机电源原理图
注:
该电源电路主要模块为IC7805,它能输出稳定的5V电压,图中整流桥是将市电转变为直流电,电容起到滤波作用,由7805的OUT引脚输出5V电压。
3.3总电路
最后,单片机硬件设计总电路图就并联多个8*8的LED组成16*16的点阵,则一个扫描信号同时要驱动两行的LED。
如下图9所示。
这时候就需要靠锁存器(74LS373)将这两组显示信号锁住,此处的锁存器是以低态输出的。
当74LS373得G脚为高态时,数据可以从输入端传输到锁存器中;G脚为低态时,数据被锁住,不会随输入端而变。
另外OC脚为输出控制引脚,当OC脚为高态时,输出呈现高阻抗;OC脚为低态时,数据会由锁存器输出。
在这个电路中驱动的扫描信号总共有16条,如果直接由8051输出,将占用2个PORT口,浪费资源不太理想,在此使用的是一个4对16位译码器(74LS154),这个译码器是将输入的16进位码输出低态的扫描信号。
输出的低态扫描信号可直接接到PNP晶体管的基极,如果太大的话也可以先经过限流电阻在接到PNP晶体管的基极,信号最后经过晶体管的放大后即可推动16个LED点阵了。
图9总电路图
4软件设计
4.1单片机延时子程序
延时子程序在单片机编程中使用非常广泛,也很重要。
程序设计是单片机开发最重要的工作,而程序在执行过程中常常需要完成延时功能。
在本设计中,行向的扫描要控制每行的扫描时间,还有所有的字移动有一定的时间间隔,而在所有的字移动一遍结束的一瞬间到下一遍移动开始的一瞬间要有延时,这时的延时可以和移动的时间相同以保持移动的连贯性,也可以不同作为每次开始的停顿。
1、机器周期和指令周期
(1)机器周期是指单片机完成一个基本操作所花费的时间,一般要用微秒来计量单片机的运行速度,51单片机的一个机器周期包括12个时钟振荡周期,也就是说51单片机采用12MHZ晶振,那么执行一个机器周期就只需要1微秒;如果采用的是6MHZ的晶振,那么执行一个机器周期就只需要2微秒。
(2)指令周期是指单片机执行一条指令所需要的时间,一般利用单片机的机器周期来计量指令周期。
在51单片机里有单周期指令(执行这条指令只需一个机器周期),双周期指令(执行这条指令只需要两个机器周期),四周期指令(执行这条指令需要四个机器周期)。
除了乘、除两条指令是四周期指令,其余均为单周期或双周期指令。
也就是说,如果51单片机采用的是12MHZ晶振,那么它执行一条指令一般只需1~2微秒的时间;如果采用的是6MHZ晶振,那么它执行一条指令一般只需2~4微秒的时间。
振荡周期、时钟周期、机器周期、指令周期的关系是:
振荡周期:
为单片机提供时钟信号的振荡源的周期。
时钟周期:
振荡源信号经二分频后形成的时钟脉冲信号,为振荡周期的2倍。
机器周期:
完成一个基本操作所需的时间,通常为12个振荡周期。
指令周期:
指CPU执行一条指令所需要的时间,一个指令周期通常含有1~4个机器周期。
2、延时指令
在单片机编程里面并没有真正的延时指令,从上面的概念中我们知道单片机每执行一条指令都需要一定的时间,所以要达到延时的效果,只须让单片机不断地执行没有具体实际意义的指令,从而达到了延时的效果。
(1)数据传送指令MOV
数据传送指令功能是将数据从一个地方复制、拷贝到另一个地方。
如:
MOVR7,80H:
将数据80H送到寄存器R7,就单这条指令而言并没有任何实际意义,而执行该指令则需要一个机器周期。
(2)空操作指令NOP
空操作指令功能只是让单片机执行没有意义的操作,消耗一个机器周期。
(3)循环转移指令DJNZ
循环转移指令功能是将第一个数进行减1并判断是否为0,不为0则转移到指定地点;为0则往下执行。
除了可以给定地址标号让其跳转外,还可以将地址符号改成为$,这样程序就跳回本指令执行。
4.2程序流程图
图10程序流程图
5性能或调试分析
调试主要分为硬件调试和软件调试:
硬件调试:
在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。
在对各个硬件模块进行调试时,要保证软件正确的情况下去调试硬件,要不然发生错误时就不知道是哪一方出错了。
当然,在设计的过程中也存在着失误和不足,在调试中进行修改了。
软件调试:
软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是单片机汇编语言,所以这个系统在编写程序过程中都采用汇编语言编写。
刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。
但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行。
4总结与体会
经过将近两周的单片机课程设计,终于完成了我们的16*16点阵的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计我们组员认真做了出来,高兴之余不得不深思呀!
在本次设计的过程中,我发现很多的问题,通过这次设计发现自己在这门课程上落后了好多,真的,发现自己的实力是多么的渺小。
比如在修改程序这方面,因为掌握的知识不牢靠不扎实,比如16*16点阵根据它的硬件电路而有整行,整列两种读取程序的方式,而我们却因为了解得少在一种方式上发了很多时间还没搞定后才了解还有另外一种方式。
因此我们在很多地方发费了不必要的功夫,耽误了太多的时间。
导致没能按时完成课题,事后想想真的很对不起老师,自己。
虽然最终粗略的完成了,但已耽误太多时间,还有很多不足。
通过这次的事情狠狠的给自己敲了个警钟,应该好好做下深刻的反省了,该好好反省下在以后的日子里该怎样合理的利用时间,怎样尽量少乱费时间。
怎样做一个具有责任心的人。
同时也体会到了在我们生活当中有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。
从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。
参考文献
[1]王静霞。
单片机应用技术(C语言版) 。
电子工业,2009,5
[2] 朝青.单片机原理及接口技术(简明修订版).:
航空航天大学,1998
[3] 广弟.单片机基础[M].:
航空航天大学,1994
[4] 阎石.数字电子技术基础(第三版).:
高等教育,1989
[5] 廖常初.现场总线概述[J].电工技术,1999.