您的当前位置:首页正文

基于C51单片机的8×8 LED点阵屏汉字显示

2022-07-22 来源:好走旅游网


单片机课程设计报告

—8×8 LED点阵屏显示“大”字

第一章 设计内容及要求…………………………………… 3 第二章 总体设计……………………………………………3 2.1 系统框图 …………………………………………………3、4 2.2 设计步骤 ……………………………………………………4 第三章 各部分电路设计 …………………………………4 3. 1 复位电路 ………………………………………………4 、5 3.2时钟电路 ……………………………………………5、 6 3.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

编辑版word

第五章 仿真结果……………………………………………16 第六章 总结与体会…………………………………………17、18 第七章 参考文献………………………………………………18 附录 程序清单……………………………………………19、20

基于C51单片机的8×8 LED点阵屏汉字显示 一 设计要求

1、设计一个8*8点阵LED电子显示屏 2、要求在目测条件下LED显示屏各点亮度均匀、充足,可静态显示一个大字。 二 总体方案设计 2.1系统框图

根据设计要求与设计方案,硬件电路的设计框图如图1所示。硬件电路结构由8个部分组成:时钟电路、复位电路、按键接口电路、电源电路、点阵显示阳极电路、点阵显示阴极电路和8*8点

编辑版word

阵显示电路。

2.2设计步骤

根据设计要求,初步确定设计方案如下: 1. 选择STC89C52单片机(晶振频率为f=12MHZ)作为整个系统的核心器件,对整个系统进行总体控制,发送并时时处理系统信息。 2.由于是8*8点阵屏设计,需要端口16个,可采用静态显示模式,用P0口控制行,P2口控制列 。 3.通过软件编程,即可实现汉字“大”的显示。 4.点阵的点亮过程有程序控制,点阵采用单色显示。

三 各部分电路设计

编辑版word

3.1 复位电路

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

3.2时钟电路

STC89C52单片机内部的振荡电路是一个高增益反向放大器,引线X1和X2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。STC89C52的时钟产生方式有两种:内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。

编辑版word

内部时钟方式:利用其内部的振荡电路在X1和X2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在 X1和X2之间接晶体振荡器与电路构成稳定的自激振荡器,如图4所示电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为12MHz的石英晶体,电容器一般选择30PF左右

3.3显示电路的设计

本次设计中采用8*8点阵LED显示器,简称LED点阵板或LED矩阵板。它是以发光二极管为像素,按照行与列的顺序排列起来,用集成工艺制成的显示器件。有单色和双色之分,这种显示器有共阳极接法和共阴极接法两种,设计中用到的是共阳极的显示器。图中画出了8*8点阵的二极管。每一行发光二极管的阳极接在一起,有一个引出端r,每一列发光二极管的阴极接在一起,有一个引出端c。当给发光二极管阳极引出端r1加高电平,阴极引出端c1加低电平时,左上角的二极管被点亮因此,对于行和列的电平进行扫描控制时,可以达到显示不同字符的目的。

编辑版word

下图为8*8点阵LED外观及引脚图,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴

关于ARK SZ411288K 8*8点阵 ARK SZ411288K 8*8点阵引脚图

a

编辑版word

b

点阵面对自己,有字的那一面朝ARK那一面。然后按照图b那个坐标轴就可以看出引脚图是如何排列的。1~8为负极,一~八为阳极。

3.4关于“大”字的取模

选用8*8点阵

编辑版word

得出”大”字的取模为

0x44,0x24,0x14,0x0C,0x0F,0x14,0x24,0x44,

3.5关于LED显示器

当采用单片机进行控制时,连接点阵显示器的共阳极r端与单片机的P2口相连,而共阴极c端需经限流电阻与单片机的P0口相连。在编程控制时,将8*8点阵LED显示分成行和列两部分,字符数据从P0口输出,扫描控制字从P2口输出,每一列由一个字节的数据组成,数据可一次送入,然后扫描一行,显示一个字需要扫描8次。

3.6整体电路图

编辑版word

四 程序设计

4.1软件流图

P0口外接点阵来驱动行点亮,P2口外接点阵进行列选通,来显示大字

4.2 大字的模

定义行unsigned char code

taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}//P0口输出 定义列unsigned char code

taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}//P2口输出

4.3主程序

void main(void)

编辑版word

{

TMOD=0X10; //设置定时器1为工作方式1 TH1=(65536-50000)/256;

TL1=(65536-50000)%256; //定时50000us EA=1; //开总中断 ET1=1; //开定时器1中断 TR1=1; //启动定时器1

4.4显示函数

while(1) { for(i=0;i<8;i++) { P0=taba[i]; P2=tabb[i]; } } }

4.5定时中断函数

void ext1() interrupt 3 {

编辑版word

TH1=(65536-50000)/256; TL1=(65536-50000)%256; t++; }

程序清单在最后的附录中

4.3

打开keil,先建立一个工程

建议先新建一个文件夹用来存放,不然待会儿找不着。输入工程名后点保存,出现单片机型号选择框,一般用stc的51单片机,由于上面没有stc的,选择atmel的就可以,因为它们是兼容的。选好后点击OK

编辑版word

新建c程序

点击file/new后点左上角的保存按钮,输入文件名,记住扩展名.c,接着点击target 1,右键source group 1,出现可以选择。点击add files to group's source ,选择刚才的c文件,点击add,后close。

如果要烧录到单片机中,还得创建hex,在上面方框target 1的右边的第一个按钮,单击。选择output,勾选creat hex file,编程完后编译,连接等步骤。

最好生成hex文件

编辑版word

Proteus基本使用方法

功能模块:元件选择 端口模块 测量仪器 点击P可以添加元器件

本次实验所用元器件

编辑版word

搭建电路

选中元器件然后放在电路图合适位置,连线。 本实验的vcc和地在端口原件,分别是power和ground

双击单片机

编辑版word

然后将编译好的hex导入,点确定。

最后运行仿真即可。

编辑版word

五 仿真结果

六 总结及体会

1

在这次课程设计的整个过程中,我们做了一次全面、较规范的设计练习,全面地温习了以前所学过的知识,用理论联系实际并结合单片机原理课程和解决实际问题,巩固、加深和扩展了有关单片机设计方面的知识。尤其重要的是让我们养成了科学的习惯,在设计过程中一定要注意掌握设计进度,按预定计划完成阶段性的目标,在底图设计阶段,注意设计计算与结构设计

编辑版word

画图交替进行,采用正确的设计方法。在整个设计过程中注意对设计资料和计算数据的保存和积累,保持记录的完整性。在课程设计的实践中进行了设计基本技能的训练,掌握了查阅和使用标准、规范、手册、图册、及相关技术资料的基本技能以及计算、数据处理等方面的能力。 2

通过对通用51系列单片机机处理器、常用元器件的设计,掌握了一般单片机设计的程序和方法,让我们对整个单片机程序的设计,C51语言有了一个比较深的理解。 3

还有就是增强了自身的动手能力。在这次课程设计中,我主要负责的是程序设计和单片机部件焊接。通过参考相关的程序设计,自己写出了主要的程序代码。同时将元器件正确焊接到基板上。这些都是将以前书本上讲的或是没有讲的,通过一次课程设计具体的实施,使自己的动手能力和独立设计能力真正得到锻炼,对于以后我们的发展与学习来说,都可以看作一笔不小的财富,前面还有很多需要我们去尝试。

同时不能忽略的是,这一次课程设计是以小组为单位的。在这次课程设计中,我和自己的小组成员学会了

编辑版word

密切分工配合。而这样的合作能力和团队精神在今后的学习工作中是很重要的。

七 参考文献

[1]《单片机原理及应用》 薛峰.朱晓骏 编著 北京:北京理工大学出版社,2011,9

附录 程序清单 #include #include unsigned char code

taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//行选

unsigned char code

编辑版word

tabb[]={0x44,0x24,0x14,0x0F,0x14,0x24,0x44,0x04};//列选

unsigned char i; void main(void) {

TMOD=0X10; //设置定时器1为工作方式1 TH1=(65536-50000)/256;

TL1=(65536-50000)%256; //定时50000us EA=1; //开总中断 ET1=1; //开定时器1中断 TR1=1; //启动定时器1

while(1) {

//*****************显示函数****************// for(i=0;i<8;i++) { P0=taba[i]; P2=tabb[i]; }

} }

//*****************定时中断函数

编辑版word

****************// void ext1() interrupt 3 {

TH1=(65536-50000)/256; TL1=(65536-50000)%256; t++; }

(此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容,

供参考,感谢您的配合和支持)

编辑版word

因篇幅问题不能全部显示,请点此查看更多更全内容