单片机课程设计1616点阵式汉字显示资料讲解Word文档格式.docx
《单片机课程设计1616点阵式汉字显示资料讲解Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计1616点阵式汉字显示资料讲解Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
MCS-51;
MCU
1设计原理
1.1MCS-51单片机的结构及编程方法
MCS-51单片机的组成:
CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、内部总线和中断系统等。
8051单片机的组成框图
(1)cpu中央处理器
由运算器和控制器组成,是8位的cpu,具有布尔运算和8位寻址功能。
运算器
完成算术运算和逻辑运算。
CPU根据PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,以产生执行本条指令所需的全部信号。
(2)存储器
MCS-51单片机按程序存储器可分为内部无ROM
型(如8031)和内部有ROM型(如8051)两种,
连接时引脚有区别。
程序存储器结构如右图所示:
程序存储器:
一般将只读存储器(ROM)用做程序
存储器。
可寻址空间为64KB,用于存放用户程序、
数据和表格等信息。
数据存储器:
一般将随机存储器(RAM)用做数据存储器。
可寻址空间为64KB。
MCS-51数据存储器可分为片内和片外两部分。
(3)特殊功能寄存器(SFR)
MCS-51有21个特殊功能寄存器(也称为专用寄存器),包括算术运算寄存器、指针寄存器、I/O口锁存器、定时器/计数器、串行口、中断、状态、控制寄存器等,它们被离散地分布在内部RAM的80H~FFH地址单元中(不包括PC),共占据了128个存储单元,构成了SFR存储块。
其字节地址可被8整除的SFR可位寻址。
SFR反映了MCS-51单片机的运行状态。
80C51内部结构
(4)I/O接口
I/O接口是MCS-51单片机对外部实现控制和信息交换的必经之路,用于信息传送过程中的速度匹配和增加它的负载能力。
8051内部有4个8位并行接口P0,P1,P2,P3,有1个全双工的可编程串行I/O接口。
(5)定时器/计数器
8051内部有两个16位可编程序的定时器/计数器,均为二进制加1计数器,分别命名为T0和T1。
(6)中断系统
8051可处理5个中断源(2个外部,3个内部)发出的中断请求,并可对其进行优先权处理。
外部中断的请求信号可以从P3.2,P3.3引脚上输入,有电平或边沿两种触发方式;
内部中断源有3个,2个定时器/计数器中断源和1个串行口中断源。
8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。
1.216*16点阵LED原理
下图为8×
8点阵LED外观及引脚图,其等效电路如下图所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
应用时限流电阻可以放在X轴或Y轴。
因为在当前Proteus仿真库中找不到16*16的LED点阵,所以在该设计中可以用4块8*8的LED连线来代替,这点不难理解。
点阵LED扫描法介绍:
点阵LED一般采用扫描式显示,实际运用分为三种方式:
(1)点扫描;
(2)行扫描;
(3)列扫描。
若使用第一种方式,其扫描频率必须大于16×
64=1024Hz,周期小于1ms即可。
若使用第二和第三种方式,则频率必须大于16×
8=128Hz,周期小于7.8ms即可符合视觉暂留要求。
此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。
1.33-8译码器原理
由于3-8译码器74LS138的原理及功能我们都已经很熟悉,在这里就不重复累赘了。
2.设计方案介绍
2.1设计总体思路
本次课程设计的要求是在16×
16点阵的显示器件上滚动显示,汉字由于要用16*16点阵显示汉字,而80C51的I/O接口是8位的,我们可以用4个8*8点阵来组成。
由于80C51的I/O口不多(只有4组,32个),为了节约I/O口,我们用74HC138(3线-8译码器)作为点阵的列驱动,P2口和P0口作为数据线。
为了显示16*16的点阵汉字,我们需建一个表先将要显示的汉字的点阵码存起来,然后编写一个合适的查表程序就可以按给定要求显示汉字。
2.2与题目相关的具体设计
1).汉字的显示:
可以采用扫描的方式,先使一个I/O口产生一个选行(列)信号(通过74HC138),先选中一行,对选中的行进行扫描,然后用另外2组I/O口输送数据,这样一个字的1/16就送到LED点阵上了,接着选下一行,这样经过16次就可以显示一个字了,再适当延时使显示的字清晰。
2).汉字的移动:
在LED上显示一个汉字并延时后,可以通过增加所取表的地址,这样下一次LED上显示的字就移动了一个点阵,可以通过适当的设计来控制汉字移动循环的的次数。
3).键盘控制汉字:
可以用单片机的P3口实现键盘的控制作用P3.0到P3.3作为行扫描信号,P3.4到P3.7作为列扫描信号,这样的话4行4列可以形成16个按键。
每个按键可以对应相应的汉字显示。
2.3程序设计流程图
进入中断
开始
选点阵行号并增一
系统初始化
P3赋初值0
送新行数据
消隐
切换显示数据
送新行号,打开显示
键盘进行扫描
判断是那个键被按下
执行相应的子程序
退出
退出中断
系统主程序流程图显示驱动程序流程图
3.源程序,原理图和仿真图
3.1程序清单(见附录)
3.2电路图
3.2.1电路原理图
3.2.2电路图分析
该原理图中89C51单片机为基础一共分成三大部分:
汉字显示部分,汉字移动部分以及键盘选择部分。
P1.0到P1.3接两个74LS138给16*16点阵提供选行信号。
P0.0到P0.7接16*16点阵的上半块作为数据线,给16*16点阵上部提供数据,点亮相应的LED,P2.0到P2.7接16*16点阵的下半块作为数据线,给16*16点阵下部提供数据,点亮相应的LED。
74LS138的八个输出Y0到Y7一次连到4个8*8LED用于对行进行扫描与选通。
P3.0到P3.7用作键盘扫描输入输出,接16个按键,P3.0到P3.3为行扫描信号,P3.4到P3.7为列扫描信号。
通过键盘部分可以进行汉字选择,一个按键对应一个不同的字。
就有16种不同的汉字。
3.3仿真图
4性能分析
程序通过keil软件编译生成.hex文件加载到protues软件的原理原理图中能够进行仿真,该程序段要实现以下功能:
1、点阵式汉字显示电路;
2、单个汉字滚动显示功能;
3、多个汉字滚动显示功能;
4、4×
4键盘进行文字选择;
5、显示内容可以保存在存储器中;
系统开始显示后,汉字先从左向右移动,汉字显示很清晰明亮,效果很不错。
用键盘进行汉字选择依次显示不同汉字。
既可以单个汉字滚动显示,又可以多个汉字滚动显示。
显示内容可以保存在存储器中。
那马就有16种不同的汉字显示。
基本上实现了上述功能。
5.总结和心得
作为一名电信专业的大三学生,我觉得这个单片机是十分有意义的,而且是十分必要的。
在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,学习单片机已经有一年了,已经掌握了单片机的原理和如何用汇编语言编写程序,但是很少有机会取实践。
我想做类似的课程设计,就为我们提供了良好的实践平台,这样能使我们对单片机及其应用认识和应用更加熟练,为我们以后走向社会工作打下良好基础。
在做单片机课程设计的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。
为了写好程序,完成任务需查阅很多的资料,首先要先搞懂原理,比如8*8点阵的组成及其是如何工作的,汉字在16*16点阵是如何显示的,键盘是如何扫描,怎样实现汉字滚动显示,只有搞懂这些才能更好的设计出一个完善的系统。
其次,在这次单片机课程设计中,我们运用到了以前所学的专业课知识,如:
单片机、汇编语言、模拟和数字电路知识等,还学会了应用新的软件(如PROTEUS,KEIL),虽然过去没用综合的应用过它们,但在做课程设计过程中带着问题和目标去应用这些软件和知识,我发现效率很高,这是我做这次课程设计的又一收获。
最后,要做好这个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;
要有一个清晰的思路和一个完整的的软件流程图;
在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;
要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;
在设计过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
1周的单片机课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作。
6.参考文献
1.《单片机原理及接口技术》李全利高等教育出版社200