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

合集下载

8X8_LED点阵显示的设计

8X8_LED点阵显示的设计

摘要单片机是计算机技术、大规模集成电路技术和控制技术的综合产物。

经过30多年的发展历程,单片机应用已十分广泛和深入。

所以可以毫不夸张地说,任何设备和产品的自动化、数字化和智能化都离不开单片机。

现在,凡是电脑控制的设备和产品,必有单片机嵌入其中。

这一切表明,单片已成为人类生活中不可或缺的助手。

随着单片机应用的日益广泛,利用单片机控制汉字显示屏被广泛地应用与汽车报站器,广告屏等领域。

本文详细介绍了基于51单片机的LED显示屏控制系统的显示原理,对8*8点阵汉字进行显示,显示屏由1个8*8的LED点阵模块LED。

系统仿真利用PORTEUS 仿真软件和KEIL软件的联调对LED点阵显示屏系统进行调试,并用Protel 99进行PCB布线,制版。

关键词:LED点阵显示屏单片机PROTEUS仿真PCB布线及制版目录第1章系统概述设计任务及目的 (3)第2章系统硬件设计与分析电源电路 (4)复位电路 (4)主体电路 (5)硬件电路连线 (5)显示部分 (5)第3章单片机的配置及简介单片机介绍 (7)单片机系统设计 (9)单片机的发展趋势 (10)第4章系统软件设计数字的编码 (11)字母的编码 (12)程序流程图 (14)完整程序 (15)第5章有关软件的介绍PROTE电路设计及PCB图制作 (18)Keil C51 介绍及使用 (19)烧录器的简介及调试 (20)第6章结束语 (21)参考文献 (21)附图一原理图 (22)附图二PCB图 (23)第1章系统概述LED点阵显示系统中各模块的显示方式有静态和动态显示两种。

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

本文将介绍一种采用单片机AT89S51进行控制的8*8LED点阵。

8乘8(8x8)点阵汉字显示

8乘8(8x8)点阵汉字显示

单片机课程设计题目:8*8点阵汉字显示器专业班级:******姓名:******学号:*********一.摘要:用TOP-23088DH-U 8*8点阵块设计制作一个8*16点阵汉字显示器。

通过51单片机作为控制系统,由8255的A口为段数据口向两块点阵提供行数据,C口提供扫描列信息,通过74LS154译码后进行扫描,当点阵的行接高电平,列为低电平时,同时选通,则在该点的LED点亮。

由于实验箱上所提供的驱动电流太低,不足以点亮二极管,所以在电路中增加一个74LS254芯片,以提供点亮LED 所需的驱动电流。

同时在P1.0-P1.2口接3个开关,形成按键控制功能选择。

点阵模块图如下:如上图所示,本实验通过列扫描方式,扫描同时给行线送显示数据。

当扫描到某列,则该列选通,其他列截止,选通瞬间送显示数据,则所对应的二极管亮。

点阵依靠循环点亮每一列(或行),快速循环形成一屏图像,而每一屏快速交替,可进一步形成动画的效果。

二.设计任务和要求:(1)基本要求:1.能显示8*8的汉字,用两个8*8点阵,显示“大连”。

2.通过键盘控制可以改变显示的汉字与图形。

3.通过键盘控制,可以实现彩灯控制功能,发光管从内向外周期显示和相反显示。

(2)发挥要求:1.增加驱动电路,提高显示亮度。

三.方案选择和论证:3.1:方案论证:控制模块由8051、74LS154,8255组成,其中,采用51单片机制做一个最小系统,包含有时钟信号电路、复位电路等,154是4线转16线译码器,4线端接8255的PC.0-PC.3口,16线端低电平有效,控制点阵的16列,245是对列的驱动,8255的PA.0-PA.7用于将行扫描数据进行高速串-并转换,实验箱内部便可提供较大电流总够控制点阵的8行,这样,点阵的128个点中被选通的就亮。

显示模块由2块8×8点阵组成,通过相互并联转换成16×8点阵。

3.2:方案选择:(1).实验仪器(2).流程图:YNNYNYN(3).硬件连接开始不显示K1是否按下?K2是否按下?K3是否按下?静态显示“大连”动态显示“大连”(由内向外再相反显示)静态显示“爱心”(图形)四.实际操作与调试:(1)实际制作使用keil 先对软件程序进行编译测试并进行proteus 仿真,调试成功后开始硬件部分。

51单片机8X8点阵滚动显示 - C51源代码

51单片机8X8点阵滚动显示 - C51源代码

51单片机8X8点阵滚动显示- C51源代码51单片机8X8点阵滚动显示- C51源代码/*--------------------------------------------------------------*///LED8*8滚动显示//列扫描,低电平有效/*--------------------------------------------------------------*///包含头文件#include <reg52.h>#include "74HC595.H"/*--------------------------------------------------------------*///全局变量定义unsigned char i;unsigned int m,n;/*--------------------------------------------------------------*///代码库#define num sizeof(table) //代码长度unsigned char codeaa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code table[]= {//取模方式阴码列扫描逆向0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/0x00,0x7F,0x7F,0x39,0x6F,0x46,0x00,0x00,/*"R",1 */0x00,0x41,0x7F,0x7F,0x41,0x00,0x00,0x00,/*"I",2 */0x00,0x3E,0x7F,0x41,0x63,0x22,0x00,0x00,/*"C",3 */0x00,0x7F,0x7F,0x08,0x7F,0x7F,0x00,0x00,/*"H",4 */0x00,0x7F,0x7F,0x06,0x7F,0x7F,0x00,0x00,/*"M",5 */0x00,0x3E,0x7F,0x41,0x63,0x22,0x00,0x00,/*"C",6 */0x00,0x3F,0x7F,0x40,0x7F,0x3F,0x00,0x00,/*"U",7 */0x00,0x36,0x7F,0x49,0x7F,0x36,0x00,0x00,/*"8",9 */0x00,0x63,0x7F,0x1C,0x7F,0x63,0x00,0x00,/*"X",1 0*/1*/0x00,0x01,0x7F,0x7F,0x01,0x01,0x00,0x00,/*"T",1 3*/0x00,0x7F,0x7F,0x49,0x49,0x41,0x00,0x00,/*"E",1 4*/0x00,0x26,0x6F,0x49,0x7B,0x32,0x00,0x00,/*"S",1 5*/0x00,0x01,0x7F,0x7F,0x01,0x01,0x00,0x00,/*"T",1 6*/0x00,0x7F,0x7F,0x39,0x6F,0x46,0x00,0x00,/*"R",1 8*/0x00,0x61,0x79,0x5D,0x4F,0x43,0x00,0x00,/*"Z",1 9*/0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00,/*"-",2 0*/0x00,0x62,0x73,0x59,0x4F,0x46,0x00,0x00,/*"2",2 1*/0x00,0x3E,0x7F,0x41,0x7F,0x3E,0x00,0x00,/*"0",2 2*/0x00,0x3E,0x7F,0x41,0x7F,0x3E,0x00,0x00,/*"0",2 3*/4*/0x00,0x7F,0x7F,0x41,0x7F,0x3E,0x00,0x00,/*"D",2 6*/0x00,0x7F,0x7F,0x49,0x49,0x41,0x00,0x00,/*"E",2 7*/0x00,0x7F,0x7F,0x06,0x7F,0x7F,0x00,0x00,/*"M",2 8*/0x00,0x7F,0x7F,0x41,0x7F,0x7F,0x00,0x00,/*"O",2 9*/0x00,0x26,0x6F,0x49,0x7B,0x32,0x00,0x00,/*"S",3 1*/0x03,0x07,0x7C,0x7C,0x07,0x03,0x00,0x00,/*"Y",3 2*/0x00,0x26,0x6F,0x49,0x7B,0x32,0x00,0x00,/*"S",3 3*/0x00,0x01,0x7F,0x7F,0x01,0x01,0x00,0x00,/*"T",3 4*/0x00,0x7F,0x7F,0x49,0x49,0x41,0x00,0x00,/*"E",3 5*/0x00,0x7F,0x7F,0x06,0x7F,0x7F,0x00,0x00,/*"M",3 6*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",37*/};/*--------------------------------------------------------------*///显示函数void Display(void){Ser_IN((aa[i])); //列扫描数据Ser_IN(table[i + n]); //查表取出行扫描数据Par_OUT(); //输出显示i++; if(i == 8) i = 0; //循环扫描m++; if(m == 500) {m = 0; n++;} //滚动速度控制if(n == num-7) n = 0; //循环显示}/*--------------------------------------------------------------*///定时器初始化void T0_init(void){TMOD = 0xf8;TH0 = 0xcc; //5000usTL0 = 0x00;IE = 0x82;TR0 = 1;}/*--------------------------------------------------------------*///定时器中断服务void T0_intservice(void) interrupt 1 using 0 {TH0 = 0xf8;TL0 = 0xcc;Display();}/*--------------------------------------------------------------*///主函数void main (void){T0_init();while(1);}74HC595.H//Note: 74HC595驱动// __ __//Note: MR 主复位接电源正极, OE 使能端,输出有效接电源负极/*--------------------------------------------* /#ifndef __74HC595_H__#define __74HC595_H__/*--------------------------------------------* /sbit SD = P1^4; //串行数据输入sbit ST_CK = P1^5; //存储寄存器时钟输入sbit SH_CK = P1^6; //移位寄存器时钟输入/*--------------------------------------------*///数码管断码和位码的定义//unsigned char codeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00,0x ff};//0 1 2 3 4 5 6 7 8 9 a b c d e f 8 无//unsigned char codepos[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//1 2 3 4 5 6 7 8/*--------------------------------------------* ///函数声明void Ser_IN(unsigned char Data); //串行数据输入void Par_OUT(void); //串行数据输出//void Ser_Par(unsigned char Data); //串行输入,并行输出/*--------------------------------------------* ///串行数据输入void Ser_IN(unsigned char Data)unsigned char i;for(i = 0; i < 8; i++){SH_CK = 0; //CLOCK_MAX=100MHzSD = Data & 0x80;Data <<= 1;SH_CK = 1;}}/*--------------------------------------------* ///并行数据输出void Par_OUT(void){ST_CK = 0;ST_CK = 1;}/*--------------------------------------------* ///串行输入,并行输出/*void Ser_Par(unsigned char Data){Ser_IN(Data);Par_OUT();}*//*--------------------------------------------* /#endif网站统计Powered by Tiki Wiki CMS Groupware | Theme: Fivealive - Lemon。

8×8LED点阵显示汉字课程设计

8×8LED点阵显示汉字课程设计
4.在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
图2-1硬件连接图
2.2
1
双色8×8LED点阵是由64个双色LED构成,用它可以显示英文字符、数字和一些简单的图片和简单的汉字。
实验箱双色8×8LED点阵电路原理图如图2-2,用行驱动和列驱动可以点亮LED点阵模块。图中RCOL1~RCOL8分别控制着8×8LED的每一列显示成红色,称为红色LED的列驱动,低电平有效;而GCOL1~GCOL8分别控制着8×8LED的每一列显示成绿色,称为绿色LED的列驱动,同样是低电平有效;COM1~COM8是他们的数据口,当送入其中一个口高电平时,相应行的LED被点亮,而当送入其中一个口低电平时,相应行LED就会被熄灭,所以也称为行驱动。比如,当想要第一行(从下到上)的第一个LED显示成红色的时候,只需送RCOL1一个低电平,而且送COM1一个高电平即可,也即选中红色的第一列(从右到左),并给第一行(从下到上)送一个高电平,就可以使得第一行第一列(同前)的LED显示成红色。注意J32、J33和J34中引针的接法,1号引针引出的是RCOL8、GCOL8和COM8,这是因为在8×8LED点阵的实物图中,如果按照从上到下的顺序RCOL8、GCOL8控制第一列LED点亮,按照从左到右的顺序COM8控制第一行LED点亮,在下文中都是按照这种顺序。
(3)应用领域
凌阳单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:

8乘8(8x8)点阵汉字显示

8乘8(8x8)点阵汉字显示

单片机课程设计题目:8*8点阵汉字显示器专业班级:******姓名:******学号:*********一.摘要:用TOP-23088DH-U 8*8点阵块设计制作一个8*16点阵汉字显示器。

通过51单片机作为控制系统,由8255的A口为段数据口向两块点阵提供行数据,C口提供扫描列信息,通过74LS154译码后进行扫描,当点阵的行接高电平,列为低电平时,同时选通,则在该点的LED点亮。

由于实验箱上所提供的驱动电流太低,不足以点亮二极管,所以在电路中增加一个74LS254芯片,以提供点亮LED 所需的驱动电流。

同时在P1.0-P1.2口接3个开关,形成按键控制功能选择。

点阵模块图如下:如上图所示,本实验通过列扫描方式,扫描同时给行线送显示数据。

当扫描到某列,则该列选通,其他列截止,选通瞬间送显示数据,则所对应的二极管亮。

点阵依靠循环点亮每一列(或行),快速循环形成一屏图像,而每一屏快速交替,可进一步形成动画的效果。

二.设计任务和要求:(1)基本要求:1.能显示8*8的汉字,用两个8*8点阵,显示“大连”。

2.通过键盘控制可以改变显示的汉字与图形。

3.通过键盘控制,可以实现彩灯控制功能,发光管从内向外周期显示和相反显示。

(2)发挥要求:1.增加驱动电路,提高显示亮度。

三.方案选择和论证:3.1:方案论证:控制模块由8051、74LS154,8255组成,其中,采用51单片机制做一个最小系统,包含有时钟信号电路、复位电路等,154是4线转16线译码器,4线端接8255的PC.0-PC.3口,16线端低电平有效,控制点阵的16列,245是对列的驱动,8255的PA.0-PA.7用于将行扫描数据进行高速串-并转换,实验箱内部便可提供较大电流总够控制点阵的8行,这样,点阵的128个点中被选通的就亮。

显示模块由2块8×8点阵组成,通过相互并联转换成16×8点阵。

3.2:方案选择:(1).实验仪器(2).流程图:YNNYNYN(3).硬件连接开始不显示K1是否按下?K2是否按下?K3是否按下?静态显示“大连”动态显示“大连”(由内向外再相反显示)静态显示“爱心”(图形)四.实际操作与调试:(1)实际制作使用keil 先对软件程序进行编译测试并进行proteus 仿真,调试成功后开始硬件部分。

基于51单片机点阵LED汉字显示屏设计

基于51单片机点阵LED汉字显示屏设计
3.产品结构多样化
信息化社会的形成,信息领域愈加广泛,LED显示屏的应用前景更为广阔。预计大型或超大型LED显示屏的主流产品局面将会发生改变,适合于服务行业特点和专业性要求的小型LED显示屏会有较大提高,面向信息服务领域的LED显示屏产品门类和品种体系将更加丰富,部分潜在市场需求和应用领域将会有所突破,如公共交通、停车场、餐饮、医院等综合服务方面的信息显示屏需求量将有更大的提高,大批量、小型化的标准系统LED显示屏在LED显示屏市场总量中将会占有多数份额。
在短短的十来年中,LED点阵显示屏就以亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定的优点迅速成长为平板显示的主流产品,在信息显示领域得到了广泛的应用。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性、可靠性、全色化方向发展。LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所,具有投影仪、电视墙、液晶显示屏无法比拟的优点。因此对它的研究已经成为一种需要,它在社会中的广泛应用促使我们不断的去更新它、改进它,达到我们的各种需要。LED显示屏的发展是很迅猛的,在技术上有它的独特之处,虽然现在的我们还无法做出很高端的关于LED显示屏的产品,但是我们可以做一些小的作品,了解它的基本原理,基本结构,通过不断的实践来提高我们的动手能力以及我们对知识的掌握。对于本次毕业设计,我充满了信心,与其说是让我们完成学校给我们的任务,还不如说是给我们一次检验自己,锻炼自己的机会。科技是第一生产力,为了明天,我一定会高质1.1.1 选题背景
LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。它是八十年代后期在全球迅速发展起来的新型信息显示媒体,显示屏由几万……几十万个半导体发光二极管像素点均匀排列组成,具有亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定等特点。

单片机课程设计报告 8乘以8点阵 汉字显示

单片机课程设计报告  8乘以8点阵   汉字显示

一、设计题目点阵式汉字LED显示屏的制作使用了64个高亮度发光管,组成了8行8列的发光点阵。

制作了一个轮流显示。

二、课程设计目的为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的单片机课程设计。

通过实训使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。

单片机课程设计的目的是培养学生综合设计的能力,训练学生灵活应用所学知识,独立完成问题分析、总体设计和编程实现等软硬件开发全过程的综合实践能力。

巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的学习作风。

为今后学习其他计算机课程打下基础。

课程设计为学生提供了一个既动手又动脑,独立实践的机会,将书本上的理论知识和工作、生产实际有机结合起来,从而锻炼学生分析问题、解决实际问题的能力,提高学生的编程能力和创新意识。

本课题实训目的:(1)掌握驱动LED8×8点阵模块显示电路的原理(2)掌握8×8点阵组成一个轮换显示汉字及取字模块软件的使用方法三、课程设计要求在处理题目时,要求从分析题目的需求入手,设计硬件电路图,编制上机程序和上机调试等若干步骤完成题目,最终写出完整的课程设计与程序分析报告。

前期准备工作完备与否直接影响到后续上机调试工作的效果。

四、课程设计内容功能说明本程序执行将字型“江海学院”轮流显示实现本功能所使用的电路如图4.1所示图4.1 电路图流程图如图4.2所示图4.2流程图8×8点阵显示如图4.3所示图4.3 8×8点阵显示本设计采用了A T89C51单片机作控制器,12MHz晶振, 8×8点阵共需要64个发光二极管组成,当接高电平的时候则相应的二极管就亮。

先开始清屏100MS,置码指针初值设置每个字的停留时间,每个字8个码,存入R0,然后扫描输出,再扫描下一个,输出到P2,再取下一个码,扫描1MS,八个码完,如果不完就循环到扫描输出,下一步每个字的码时间是否到了不到就从每个字八个码开始循环,下一步8个字48个码是否完成,如果没有完成就从每个字停留时间。

基于51单片机的LED8X8点阵设计

基于51单片机的LED8X8点阵设计

毕业设计报告题目基于51单片机点阵设计姓名学校班级学号专业指导教师完成时间摘要LED点阵显示屏是一种简单的汉字显示器,具有价廉、易于控制、使用寿命长等特点,可广泛应用于各种公共场合,如车站、码头、银行、学校、火车、公共汽车显示等。

现在大街小巷随处可见,所以研究LED点阵屏显得格外重要。

点阵 LED 显示屏作为一种现代电子媒体,具有灵活的显示面积可任意分割和拼装、高亮度、长寿命、数字化、实时性等特点,应用非常广泛。

目录目录第一章系统设计方案 (3)1.1系统方案 (3)第二章电路硬件设计 (4)2.1 单片机介绍 (4)2.2晶振时钟电路 (6)2.3复位电路 (6)2.4 按键模块 (7)2.5 点阵模块 (7)2.6 下载模块 (7)2.7 电源模块 (8)软件设计 (9)结论 (9)附录:原理图 (10)第一章系统设计方案1.1系统方案本设计由单片机最小系统,按键模块,点阵模块,下载接口,电源电路组成。

单片机最小由主控MCU,复位,晶振时钟组成,按键模块由8个独立按键组成,该系统完成了单片机控制数据输出到点阵模块。

RP1为P0口的上拉电阻。

按键设置功能,单片机数把据发送给点阵,显示出来。

第二章电路硬件设计2.1 单片机介绍本设计采用的是AT89C52单片机, AT89C52是一种可编程可擦除,低电压,8位微处理器。

1.电源引脚:Vcc (40脚):电源端,接+5V电源。

Vss(Gnd) (20脚):接地端,接+5V电源地端2. 外接晶体引脚:XTAL1和XTAL289C52内部有一个振荡器和时钟产生电路。

XTAL1(19脚):片内振荡电路反相放大器输入XTAL2(18脚):片内振荡电路反相放大器输出当采用内部时钟时,片外连接石英晶体和微调电容,产生原始的振荡脉冲信号。

采用外部时钟时, XTAL1输入外部时钟脉冲信号, XTAL2悬空.3. 控制信号引脚:RST、ALE、PSEN、EARST (9脚) : 复位信号输入端,高电平有效。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计报告—8×8 LED点阵屏显示“大”字第一章设计容及要求 (3)第二章总体设计 (3)2.1 系统框图…………………………………………………3、42.2 设计步骤 (4)第三章各部分电路设计 (4)3. 1 复位电路………………………………………………4 、53.2时钟电路……………………………………………5、 6 3.3显示电路…………………………………………………6、73. 4大字取模…………………………………………………73.5 LED 引脚连接方式……………………………………8、93.6总体电路 (9)第四章程序设计 (9)4.1软件流图......................................................9、10 4.2大字的模 (10)4.2主程序………………………………………………10、11 4.3 C51单片机开发工具:keil 4 Proteus使用方法…11、16第五章仿真结果 (16)第六章总结与体会................................................17、18 第七章参考文献 (18)附录程序清单……………………………………………19、20 基于C51单片机的8×8 LED点阵屏汉字显示一设计要求1、设计一个8*8点阵LED电子显示屏2、要求在目测条件下LED显示屏各点亮度均匀、充足,可静态显示一个大字。

二总体方案设计2.1系统框图根据设计要求与设计方案,硬件电路的设计框图如图1所示。

硬件电路结构由8个部分组成:时钟电路、复位电路、按键接口电路、电源电路、点阵显示阳极电路、点阵显示阴极电路和8*8点阵显示电路。

2.2设计步骤根据设计要求,初步确定设计方案如下: 1. 选择STC89C52单片机(晶振频率为f=12MHZ)作为整个系统的核心器件,对整个系统进行总体控制,发送并时时处理系统信息。

2.由于是8*8点阵屏设计,需要端口16个,可采用静态显示模式,用P0口控制行,P2口控制列。

3.通过软件编程,即可实现汉字“大”的显示。

4.点阵的点亮过程有程序控制,点阵采用单色显示。

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

本设计中采用按键复位电路3.2时钟电路STC89C52单片机部的振荡电路是一个高增益反向放大器,引线X1和X2分别是放大器的输入端和输出端。

单片机部虽然有振荡电路,但要形成时钟,外部还需附加电路。

STC89C52的时钟产生方式有两种:部时钟电方式和外部时钟方式。

由于外部时钟方式用于多片单片机组成的系统中,所以此处选用部时钟方式。

部时钟方式:利用其部的振荡电路在X1和X2引线上外接定时元件,部振荡电路产生自激振荡。

最常用的是在X1和X2之间接晶体振荡器与电路构成稳定的自激振荡器,如图4所示电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为12MHz的石英晶体,电容器一般选择30PF左右3.3显示电路的设计本次设计中采用8*8点阵LED显示器,简称LED点阵板或LED矩阵板。

它是以发光二极管为像素,按照行与列的顺序排列起来,用集成工艺制成的显示器件。

有单色和双色之分,这种显示器有共阳极接法和共阴极接法两种,设计中用到的是共阳极的显示器。

图中画出了8*8点阵的二极管。

每一行发光二极管的阳极接在一起,有一个引出端r,每一列发光二极管的阴极接在一起,有一个引出端c。

当给发光二极管阳极引出端r1加高电平,阴极引出端c1加低电平时,左上角的二极管被点亮因此,对于行和列的电平进行扫描控制时,可以达到显示不同字符的目的。

下图为8*8点阵LED外观及引脚图,只要其对应的X、Y轴顺向偏压,即可使LED发亮。

例如如果想使左上角LED点亮,则Y0=1,X0=0即可。

应用时限流电阻可以放在X轴或Y轴关于ARK SZ411288K 8*8点阵ARK SZ411288K 8*8点阵引脚图ab点阵面对自己,有字的那一面朝ARK那一面。

然后按照图b那个坐标轴就可以看出引脚图是如何排列的。

1~8为负极,一~八为阳极。

3.4关于“大”字的取模选用8*8点阵得出”大”字的取模为0x44,0x24,0x14,0x0C,0x0F,0x14,0x24,0x 44,3.5关于LED显示器当采用单片机进行控制时,连接点阵显示器的共阳极r端与单片机的P2口相连,而共阴极c端需经限流电阻与单片机的P0口相连。

在编程控制时,将8*8点阵LED显示分成行和列两部分,字符数据从P0口输出,扫描控制字从P2口输出,每一列由一个字节的数据组成,数据可一次送入,然后扫描一行,显示一个字需要扫描8次。

3.6整体电路图四程序设计4.1软件流图P0口外接点阵来驱动行点亮,P2口外接点阵进行列选通,来显示大字4.2 大字的模定义行unsigned char codetaba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}//P0口输出定义列unsigned char codetaba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}//P2口输出4.3主程序void main(void){TMOD=0X10; //设置定时器1为工作方式1TH1=(65536-50000)/256;TL1=(65536-50000)%256; //定时50000usEA=1; //开总中断ET1=1; //开定时器1中断TR1=1; //启动定时器14.4显示函数while(1){for(i=0;i<8;i++){P0=taba[i];P2=tabb[i];}}}4.5定时中断函数void ext1() interrupt 3{TH1=(65536-50000)/256;TL1=(65536-50000)%256;t++;}程序清单在最后的附录中4.3打开keil,先建立一个工程建议先新建一个文件夹用来存放,不然待会儿找不着。

输入工程名后点保存,出现单片机型号选择框,一般用stc的51单片机,由于上面没有stc的,选择atmel 的就可以,因为它们是兼容的。

选好后点击OK新建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文件Proteus基本使用方法功能模块:元件选择端口模块测量仪器点击P可以添加元器件本次实验所用元器件搭建电路选中元器件然后放在电路图合适位置,连线。

本实验的vcc和地在端口原件,分别是power和ground 双击单片机然后将编译好的hex导入,点确定。

最后运行仿真即可。

五仿真结果六总结及体会1在这次课程设计的整个过程中,我们做了一次全面、较规的设计练习,全面地温习了以前所学过的知识,用理论联系实际并结合单片机原理课程和解决实际问题,巩固、加深和扩展了有关单片机设计方面的知识。

尤其重要的是让我们养成了科学的习惯,在设计过程中一定要注意掌握设计进度,按预定计划完成阶段性的目标,在底图设计阶段,注意设计计算与结构设计画图交替进行,采用正确的设计方法。

在整个设计过程中注意对设计资料和计算数据的保存和积累,保持记录的完整性。

在课程设计的实践中进行了设计基本技能的训练,掌握了查阅和使用标准、规、手册、图册、及相关技术资料的基本技能以及计算、数据处理等方面的能力。

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

3还有就是增强了自身的动手能力。

在这次课程设计中,我主要负责的是程序设计和单片机部件焊接。

通过参考相关的程序设计,自己写出了主要的程序代码。

同时将元器件正确焊接到基板上。

这些都是将以前书本上讲的或是没有讲的,通过一次课程设计具体的实施,使自己的动手能力和独立设计能力真正得到锻炼,对于以后我们的发展与学习来说,都可以看作一笔不小的财富,前面还有很多需要我们去尝试。

同时不能忽略的是,这一次课程设计是以小组为单位的。

在这次课程设计中,我和自己的小组成员学会了密切分工配合。

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

七参考文献[1]《单片机原理及应用》薛峰.朱晓骏编著:理工大学,2011,9附录程序清单#include <reg52.h>#include <REGX51.H>unsigned char codetaba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xb f,0x7f};//行选unsigned char codetabb[]={0x44,0x24,0x14,0x0F,0x14,0x24,0x4 4,0x04};//列选unsigned char i;void main(void){TMOD=0X10; //设置定时器1为工作方式1TH1=(65536-50000)/256;TL1=(65536-50000)%256; //定时50000usEA=1;//开总中断ET1=1;//开定时器1中断TR1=1;//启动定时器1while(1){//*****************显示函数****************//for(i=0;i<8;i++) {P0=taba[i];P2=tabb[i]; }}}//*****************定时中断函数****************//void ext1() interrupt 3 {TH1=(65536-50000)/256;TL1=(65536-50000)%256;t++;}。

相关文档
最新文档