课社.docx

上传人:b****1 文档编号:12520497 上传时间:2023-04-19 格式:DOCX 页数:20 大小:632.76KB
下载 相关 举报
课社.docx_第1页
第1页 / 共20页
课社.docx_第2页
第2页 / 共20页
课社.docx_第3页
第3页 / 共20页
课社.docx_第4页
第4页 / 共20页
课社.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

课社.docx

《课社.docx》由会员分享,可在线阅读,更多相关《课社.docx(20页珍藏版)》请在冰豆网上搜索。

课社.docx

课社

目录

1系统概述1

1.1课程设计内容1

1.2设计目的1

2系统硬件设计与分析2

2.1复位电路2

2.2主体电路2

2.2.1控制电路设计2

2.2.2主要功能特性3

2.3显示部分6

2.3.15*7LED显示屏内部结构6

2.3.2显示时间的分析7

3系统软件设计8

3.1主程序8

3.2显示程序8

3.3程序设计清单9

4有关软件的介绍10

4.1PROTEL电路设计10

4.2KeilC51介绍及使用11

5结束语13

6参考文献14

附录一15

附录二20

1系统概述

1.1课程设计内容

该电路系统是采用AT89C2051单片机为控制器,控制点阵LED显示器进行显示,本电路控制模块有主模块和显示模块组成。

LED点阵显示系统中各模块的显示方式有静态和动态显示两种。

静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可显示各种图形或文字信息。

本实验采用5*7LED点阵LED屏,该点阵可实现动态显示:

上下左右字样,并编制软件程序,实现动态轮流显示。

1.2设计目的

1.通过此设计来巩固单片机硬件系统的设计及软件系统的编程,使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。

2.通过设计将平时所学知识付诸实践,提高动手能力。

3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

4.培养学生从资料文献、科学实验中获得知识的能力。

 

2系统硬件设计与分析

本系统从经济性,电路结构,系统性能等多方面考虑,选用如下主要元器件:

单片机AT89S51、74HC573驱动电路、电阻10K和1K欧、按钮开关、5*7LED点阵显示块、稳压块电容30pf和10uf、直流电源5V、12MHZ晶振。

2.1复位电路

单片机在启动运行时需要复位,使CPU以及其他功能部件处于一个确定的初始状态,并从这个状态开始工作,另外,在单片机工作过程中,如果出现死机时,也必须对单片机进行复位,使其重新开始工作。

本设计中采用按键复位电路,复位电路如图2.1所示:

图2.1复位电路

2.2主体电路

2.2.1控制电路设计

本字符显示器采用AT89C51单片机作控制器,12MHZ晶振,5*7点阵LED显示器,其中,P0作为字符数据输出口,P2为字符显示扫描输出口,P1.0~P1.2口分别接开关K1、K2、K3,用来改变出处字样的方式当按下P1.0时LED显示方式为逐字显示“上下左右”字样,当按下P1.1时LED显示方式为自上而下流动显示“上下左右”字样,当按下P1.2时LED显示方式为自左向右流动显示“上下左右”字样,驱动用74HC573驱动5*7LED显示屏。

通过单片机AT89S51的P0口和P2口去驱动点阵LED芯片块。

电路如图2.2所示:

图2.2主体电路图

2.2.2主要功能特性

所谓单片机,就是将CPU,RAM,ROM,定时/计数器和多种I/O接口电路都集成在一块集成芯片上的微型计算机。

MCS--51系列单片机是美国Intel公司在1980年推出的8位单片微型计算机,包含51和52两个子系列。

51子系列的典型产品有8031,8051和8751三种机型52子系列包括8032,8052二种主要机型。

51子系列的配置如下:

(1)8位CPU;

(2)振荡频率1.2~12MHZ;

(3)128个字节的片内数据存储器(片内RAM);

(4)21个专用寄存器;

(5)4KB的片内程序存储器(8031无);

(6)8位并行I/O口P0,P1,P2,P3;

(7)一个全双工串行I/O口;

(8)2个16位定时器/计数器;

(9)5个中断源,分为2个优先级;

本系统选用ATMEL89S51系列单片机,由于它的模块化设计为适应具体的应用提供了极大的灵活性,便于扩展功能,有效的提高了系统的经济性。

AT89S51是一种低工耗、高性能的片内含有4KB快闪可编程/擦除只读存储器的八位CMOS微控制器,使用高密度、非易失存储编程器对程序存储器重复编程。

AT89S51具有以下特点:

(1)与MCS-51微控制器产品系列兼容。

(2)片内有4KB可在线重复编程的快闪擦写存储器。

(3)32条可编程I/O线。

(4)程序存储器具有三级加密保护。

(5)可编程全全双工串行通道。

(6)空闲状态维持低功耗和掉电状态保存存储内容。

(7)而且与87C51系列的引脚也完全兼容。

89S51单片机结构如图2.3所示

 

图2.3单片机结构图

51系列单片机的引脚功能:

主电源引脚:

Vss:

接地,Vcc:

接+5V电源

外接晶振引脚:

XTAL1:

片内反向放大器输入端,XTAL2:

片内反向放大器输出端

输入/输出引脚:

P0.0~P0.7:

P0口的8个引脚,P0口是8位漏极开路型双向I/0端口,在接有片外存储器或I/0扩展接口时,P0.0~P0.7分时复用,作低8位地址总线与双向8位数据总线

P1.0~P1.7:

P1口的8个引脚,P1口是一个带内部上拉电阻的8位双向I/O口,对于52子系列,P1.0还可用于定时器/计数器2的计数脉冲输入端T2,P1.1还可作定时器/计数器2的外部控制端T2EX。

P2.0~P2.7:

P2口的8个引脚,P2口也是一个带内部上拉电阻的双向I/O口,在访问片外存储器或扩展I/O接口时,还用于提供高8位地址。

P3.0~P3.7:

P3口的8个引脚,P3口也是一个带上拉电阻的I/O口,除可以作双向的输入输出口外,还具有第2功能。

见表2-1

表2-1P3口第二功能表

引脚

第二功能

P3.0

P3.1

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

RXD(串行口输入)

TXD(串行口输出)

INT0(外部中断0输入)

INT1(外部中断1输入)

T0(定时器0的外部中断)

T1(定时器1的外部中断)

WR(片外数据存储器写控制信号)

RD(片外数据存储器读控制信号)

控制线(4条):

ALE/PROG:

双功能引脚。

由于P0口的8个引脚是低8位地址总线与数据总线分时复用,因此必须将P0口输出的低8位地址进行锁存。

在访问片外存储器时,每机器周期该信号出现2次。

其下降沿用于控制锁存P0口输出的低8位地址。

即使不访问片外存储器,该引脚上仍出现上述频率的周期性信号,因此也可作为对外输出的时钟脉冲,频率为振荡器频率的1/6,必须注意的是:

在访问片内外存储器时,ALE脉冲会跳空1个。

对片内含有EPROM的机型,此引脚在编程时可作为编程脉冲PROG的输入端。

PSEN:

片外程序存储器读选通信号输出端,在CPU从片外程序存储器取指期间,此信号每个机器周期两次有效,以通过P0口读入指令,在访问片外数据存储器时,该信号不出现。

EA/Vpp:

双功能引脚,为片外程序存储器选用端。

当该引脚信号有效时,选择片外程序存储器,即EA/Vpp=1时,访问片内程序存储器。

对片内含有EPROM的机型,此引脚在编程期间用于施加+21v的编程电压。

RST/VPO:

双功能引脚,在单片机工作期间,当此引脚上出现连接2个机器周期的高电平时可实现复位操作。

在Vcc掉电期间,若该引脚接备用电源(+5v),可向片内RAM供电,以保存片内RAM中的信息。

2.3显示部分

2.3.15*7LED显示屏内部结构

5*7点阵LED结构如下图所示:

图2.4LED内部结构图

从上图中可以看出,5*7点阵共需要35个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如上图所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:

一根竖柱:

对应的列置1,而行则采用扫描的方法来实现。

一根横柱:

对应的行置0,而列则采用扫描的方法来实现。

此外一次驱动一列或一行时需外加驱动电路提高电流,否则LED亮度会不足。

2.3.2显示时间的分析

对于以动态扫描方式工作的显示系统,扫描时间的确定较为重要,根据人眼的视觉暂留时间,若每秒显示二十四帧以上,便可得到稳定的显示,取每秒二十五帧,即完成对全屏的一次扫描时间为40ms,那么,只要每次完成对全屏的扫描时间不超过该值,将会得到较为稳定的显示。

从理论上讲,显示屏的大小是任意的,但从上面的分析可知,显示屏做得越大,即屏幕的点阵规模越大,往显示屏上所送的数据就越多,数据传输与控制的时间也会增加即完成一屏扫描的时间也将越长,然而,40ms的时间却是固定的,多于40ms会有闪烁感。

在设计显示屏的大小时,该因素是必需考虑的。

为了满足这一要求,关键在于提高微机的程序执行速度,可以选择更快的CPU,或数字信号处理芯片(DSP)。

事实上,LED显示屏控制器,要求的数字信号处理能力并不高,主要要求的是显示数据的访问和控制信号的产生。

对于这两项功能,采用基于ARM核的32位嵌入式R工SC微处理器是完全可以胜任的。

基于ARM核的32位微处理器的速度不仅比8位/16位单片机执行程序的速度要高得多,而且存储容量要大得多,因此,本课题采用基于ARM核的32位嵌入式R工SC微处理器组成大屏幕LED显示系统,与传统的基于8位/16位单片机的LED显示系统相比,在不显著增加系统成本的情况下,可支持更大可视区域的稳定显示,同时可存储更多的显示内容。

3系统软件设计

3.1主程序

在刚上电时对系统进行初始化,然后读一次键开关状态,由键标志位值(00H、01H、02H)决定显示的方式。

主程序流程图如下:

图3.1主程序流程图

3.2显示程序

显示主程序负责每次显示时的显示地址首址(在B寄存器中)、每个字的显示时间(由30H中的数据决定)和下一个显示地址的间隔(31H中的数据决定)的处理。

显示子程序则负责对指定8个地址单元的数据进行输出显示,显示一个完整文字的时间约为8ms。

下图为逐字显示及向上滚动显示方式时的显示控制程序流程图:

图3.2控制程序流程图

3.3程序设计清单

详细程序请参见附录三

 

4有关软件的介绍

4.1PROTEL电路设计

Protel99SE是桌面环境下第一个以设计管理和协作技术为核心的全方位印刷电路板设计系统,它集强大的设计能力,复杂工艺的可生产性和设计过程管理于一体,可完整实现电子产品从概念设计到生成物理生产数据的全过程,以及中间的所有分析,仿真和验证。

整个过程包括以下几个步骤:

(1)构想电路模型

(2)设计电路原理图(3)校对后输出原理图(4)产生网络表(5)设计印刷电路板(6)检查后输出PCB板图

图4.1PROTEL设计流程图

原理图设计:

先进入PROTEL99SE主界面。

执行File/New命令,进入一个新的项目设计,新建一个设计管理数据库文件。

在Document下新建一个原理图文件然后进入编辑窗口,进行原理图的设计与编辑。

本设计绘制好的原理图见附录所示。

在调用元器件时,如果需要用到一些现存库中没有的元件,要对原理图设计软件包中的库做些补充,添加一些新的元件。

以使原理图上的所有元件都能在库中找到。

绘制完原理图需要对各个元件进行封装,一般器件封装库内都有相应的封装,没有适当的封装时应当自己进行封装图设计,并将该封装图设计调入封装库中,以便自己对元器件封装时可以用到。

然后对所设计的电路图进行ERC检查,不通过检查的话根据提示进行修改,例如没有接好线,封装不当,引脚定义设定不正确等。

如果通过ERC检查,则可以执行Design/CreateNetlist命令生成网络表。

4.2KeilC51介绍及使用

本设计中源程序程序的编写与调试是在KeilC51集成环境uVision中进行的。

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,界面友好,操作简单。

另外重要的一点是只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

(1)建立一个新的工程:

:

单击“Ptoject”菜单,在弹出的下拉菜单中选择“NewProject”选项。

然后选择你要保存的路径,输入工程的名字然后点击保存。

这时会弹出一个对话框,要求你选择单片机的型号,根据你所用的单片机来选择,KeilC51几乎支持所有的51内核的单片机,在本设计中选择的是AT89S51。

(2)编写程序:

单击“File”菜单,在下拉菜单中选择“New”,这时编辑窗口会出现一个Text1窗口,光标在该窗口中闪烁,首先保存该空白文档,单击菜单上的“File”,在弹出的下拉菜单中选择“SaveAs”选项,在出现的对话框中键入欲使用的文件名并同时键入正确的后缀名(本设计中为.asm),然后保存。

回到编辑界面后,单击“Target1”前面的“+”,然后在“SourceGroup1”上单击右键,在弹出菜单中选择“AddFilestoGroup’SourceGroup1’”,选中设计所需要的源程序文件,然后单击“Add”,这时注意到“SourceGroup1”文件夹中多了若干个子项,子项的多少跟所增加的源程序的多少相同。

这时就可以键入应用程序了。

KeilC51会自动识别关键字,并以不同的颜色提醒用户加以注意,这样会使用户少犯错误,有利于提高编程效率。

(3)编译并生成HEX文件:

程序编写完成以后,单击“Ptoject”菜单,在下拉菜单中选择“BuiltTarget”选项,或者使用快捷键F7。

编译成功后右击“Target1”在弹出菜单中选择“OptionsForTarget’Target1’”,在弹出的对话框中选择“Output”选项中的“CreatHEXFile”选项使程序编译后产生HEX代码,供下载器软件使用。

KeiluVision2的界面如图4.1所示

图4.1keiluVision2界面图

 

5结束语

经过近两个星期的努力,在老师和同学的帮助和讨论下,我成功地完成了5*7字幕显示系统的设计,从基本方案的制定,到硬件电路的选择和程序调试,这在期间我遇到很多困难,但经过不懈努力,终于击破了各个难点,达到了所需要的效果。

回顾这些天我感到学到了很多东西。

总结本文的设计工作,我有以下收获:

(1)通过查阅大量的相关资料,详细了解了LED的发光原理和LED显示屏的原理,了解了LED的现状,清楚地了解了LED显示屏与其它显示屏相比较有那些优点,明确了研究目标。

并且通过对单片机资料的查阅和应用,更进一步增加了对单片机知识的理解和运用能力。

并证实了自己的思路:

“查资料→思考总结→运用→找出差错,再查资料和向别人询问→再次运用”的正确性。

(2)在这次课程设计的过程中学会了PROTEUS的基本使用,感到PROTEUS对电子专业的同学来说是一个很有用的软件。

在运用PROTEUS时可以运用一些快捷的标号,总线的方法画图,这样既能使电路图清晰,简单,更能大大提高画图速度

(3)通过这次课程设计,重新复习并进一步增强了动手的能力,学以致用,把只是运用到实际生活中才是根本目的。

总体来说这次的课程设计实践很成功,达到了预想的目的:

学到了知识,提高了能力,完成了任务。

在此感谢指导老师的悉心教导,改正了很多不曾发现的问题,为即将的毕业设计打下了基础。

 

6参考文献

[1]李光飞,楼然苗.51系列单片机设计实例[M].北京航空航天大学出版社,2003,3.

[2]韩志军,沈晋源,王振波.单片机应用系统设计——入门向导与设计实例[M]北京:

机械工业出版社,2005,1.

[3]王幸之,钟爱琴,王雷,王闪.AT89系列单片机原理与接口技术[M].北京航空航天大学出版社,2004,5.

[4]朱定华.单片机原理及接口技术[M]北京:

电子工业出版社,2001,4.

[5]刘东红.利用单片机89C51的一个并行I∕O口实现多个LED显示的一种简单方法[J].国外电子元器件,2002年第8期.

[6]周润景,张丽娜,丁莉.基于PROTEUS的电路及单片机设计与仿真[M].北京:

北京航天航空大学出版社,2010

[7]张培仁.基于C语言编程MCS-51单片机原理与应用[M].北京:

清华大学出版社,2002

 

附录一

程序设计如下:

//使用AT89C51单片机,12MHZ晶振,P0口输出一行数据,P2口作行扫描,用共阳LED管

//P1口接三个按键,用于逐字显示、向上滚动显示文字、向左滚动显示文字。

#include"reg51.h"

unsignedintn,h,m;

sbitf0=P1^0;

sbitf1=P1^1;

sbitf2=P1^2;

//****逐字显示*********************************************

unsignedcharcodedistab0[]={0x04,0x04,0x07,0x04,0x04,0x04,0x1f,

0x1f,0x04,0x04,0x07,0x04,0x04,0x04,

0x04,0x04,0x1f,0x04,0x0f,0x12,0x07,

0x04,0x04,0x1f,0x04,0x0f,0x15,0x07};

//****向左滚动显示*********************************************

unsignedcharcodedistab1[]={

0x04,0x04,0x07,0x04,0x04,0x04,0x1f,0x08,0x08,0x0e,0x08,0x08,0x08,0x1e,0x11,0x10,0x1c,0x10,0x10,0x10,0x1c,0x03,0x00,0x18,0x00,0x00,0x00,0x18,0x07,0x01,0x11,0x01,0x01,0x01,0x11,0x0f,0x02,0x02,0x03,0x02,0x02,0x02,0x1f,0x04,0x04,0x07,0x04,0x04,0x04,0x1e,0x08,0x08,0x0e,0x08,0x08,0x08,0x1c,0x10,0x11,0x1c,0x10,0x11,0x10,0x18,0x00,0x03,0x18,0x01,0x02,0x00,0x11,0x01,0x07,0x11,0x03,0x04,0x01,0x02,0x02,0x0f,0x02,0x07,0x09,0x03,0x04,0x04,0x1f,0x04,0x0f,0x12,0x07,0x08,0x08,0x1e,0x08,0x1e,0x04,0x0e,0x10,0x10,0x1d,0x10,0x1c,0x09,0x1c,0x00,0x00,0x1b,0x00,0x19,0x12,0x18,0x01,0x01,0x17,0x01,0x13,0x05,0x11,0x02,0x02,0x0f,0x02,0x07,0x0a,0x03,0x04,0x04,0x1f,0x04,0x0f,0x15,0x07,0x08,0x08,0x1e,0x08,0x1e,0x0a,0x0e,0x10,0x10,0x1c,0x10,0x1c,0x14,0x1d,0x00,0x00,0x18,0x00,0x18,0x08,0x1b,0x01,0x01,0x11,0x01,0x11,0x11,0x17,0x02,0x02,0x03,0x02,0x02,0x02,0x0f};

//****向上滚动显示*********************************************

unsignedcharcodedistab2[]={

0x04,0x04,0x07,0x04,0x04,0x04,0x1f,0x04,0x07,0x04,0x04,0x04,0x1f,0x00,0x07,0x04,0x04,0x04,0x1f,0x00,0x1f,0x04,0x04,0x04,0x1f,0x00,0x1f,0x04,0x04,0x04,0x1f,0x00,0x1f,0x04,0x04,0x04,0x1f,0x00,0x1f,0x04,0x04,0x07,0x1f,0x00,0x1f,0x04,0x04,0x07,0x04,0x00,0x1f,0x04,0x04,0x07,0x04,0x04,0x1f,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x00,0x04,0x07,0x04,0x04,0x04,0x00,0x04,0x07,0x04,0x04,0x04,0x00,0x04,0x04,0x04,0x04,0x04,0x00,0x04,0x04,0x1f,0x04,0x04,0x00,0x04,0x04,0x1f,0x04,0x04,0x00,0x04,0x04,0x1f,0x04,0x0f,0x00,0x04,0x04,0x1f,0x04,0x0f,0x12,0x04,0x04,0x1f,0x04,0x0f,0x12,0x07,0x04,0x1f,0x04,0x0f,0x12,0x07,0x00,0x1f,0x04,0x0f,0x12,0x07,0x00,0x04,0x04,0x0f,0x12,0x07,0x00,0x04,0x04,0x0f,0x12,0x07,0x00,0x04,0x04,0x1f,0x12,0x07,0x00,0x04,0x04,0x1f,0x04,0x07,0x00,0x04,0x04,0x1f,0x04,0x0f,0x00,0x04,0x04,0x1f,0x04,0x0f,0x15,0x04,0x04,0x1f,0x04,0x0f,0x15,0x07,0x04,0x1f,0x04,0x0f,0x15,0x07,0x00,0x1f,0x04,0x0f,0x15,0x07,0x00,0x04,0x04,0x0f,0x15,0x07,0x00,0x04,0x04,0x0f,0x15,0x07,0x00,0x04,0x04,0x07,0x15,0x07,0x00,0x04,0x04,0x07,0x04,0x07,0x00,0x04,0x04,0x07,0x04,0x04,0x00,0x04,0x04,0x07,0x04,0x04,0x04};

//***列扫描控制字***********************************

unsignedcharcodescan_con[]={0x7e,0x7d,0x7b,0x77,0x6f,0x5f,0x3f};

//****1毫秒延时程序************//

delay()

{

unsignedintk;

for(k=0;k<=52;k++){

TMOD=0x01;

TH0=-(50000)/256;

TL0=-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1