单片机LED点阵课程设计.doc

上传人:豆**** 文档编号:33537182 上传时间:2022-08-11 格式:DOC 页数:18 大小:90KB
返回 下载 相关 举报
单片机LED点阵课程设计.doc_第1页
第1页 / 共18页
单片机LED点阵课程设计.doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《单片机LED点阵课程设计.doc》由会员分享,可在线阅读,更多相关《单片机LED点阵课程设计.doc(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、课 程 设 计 任 务 书题 目 单片机原理及应用课程设计 学 院 信息科学与电气工程学院 专 业 电气工程及其自动化 班 级 电气131 学生姓名 刘海宁 学 号 130812152 6 月 29 日至 7 月 5 日 共 1 周 指导教师(签字) 院长(主任) (签字) 2015年 07 月 05 日一、课程设计内容及要求综合运用单片机(STC15F2K60S2)、模拟/数字电子技术、传感器、Protel等相关知识,自拟题目,完成本次课程设计。全部题目要求经过老师的审定,并以实物形式调试完成,参加最终的课程设计作品答辩。12人一组,鼓励单人单组。二、设计原始资料单片微机原理与接口技术 20

2、14年 12月单片机开发实验板、开发模块单片机综合实验台(箱)、单片机实验指导书PC三、设计完成后提交的文件和图表1计算说明书部分1)方案论证报告打印版或手写版2)程序流程图3)具体程序代码 2图纸部分绘制所设计系统的具体电路原理图3.其他资料提交所设计作品演示的视频文件以及相关作品的照片四、进程安排教学内容 学时 地点资料查阅与学习讨论 1天 现代电子技术实验室分散设计 3天 现代电子技术实验室编写报告 1天 现代电子技术实验室成果验收 1天 现代电子技术实验室五、主要参考资料电子设计自动化技术基础马建国、孟宪元编 清华大学出版 2004年4月 实用电子系统设计基础 姜威 2008年1月 单

3、片机系统的PROTEUS设计与仿真 张靖武 2007年4月指导老师成绩答辩小组成绩总成绩说明:本任务书一式二份,院(部、系)、教务处各一份。 目录一、 系统功能设计要求。1二、 设计方案。2三、 LED点阵的显示原理。3四、 单片机结构。4五、 源程序、程序设计及流程图。5一、 设计要求 设计一个16*16LED点阵位置显示屏,要求可以在显示屏上可以点亮足够的led灯,组成文字和图形,并形成跑马灯、移入移出等显示特色。要求文字显示清晰,图形显示清晰,并且稳定。二、 设计方案从理论上说,不论显示图形还是文字,只要控制组成这些图形或文字的各个点所在的位置相对应的LED器件发光,就可以得到我们想要的

4、显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。1616的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按8位的锁存器来计算,1616的点阵需要256/8=32个锁存器。这个数字很庞大,因为我们仅仅是1616的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。具体就1616的点阵来说,把所有同1行的发光管的阳极连在一起

5、,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动

6、器的数据传输可以采用并列方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并列传输的方案是不可取的。采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。解决串行传输中

7、列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并出的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以1616点阵为例,把所有同一行的发光管的阴极连在一起,把所有同一

8、列的发光管的阳极连在一起(共阴的接法),先送出对应第1列发光管亮灭的数据并锁存,然后选通第1列使其燃亮一定的时间,然后熄灭;再送出第2列的数据并锁存,然后选通第2列使其燃亮相同的时间,然后熄灭;.第16列之后,又重新燃亮第1列,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。显示数据可通过单片机的P0,P2口接驱动电路传输到点阵行引脚。点阵的移动以下以1616点阵为例介绍点阵的移动。要显示一个字符,该字符的点阵数据可以列向(纵向)16点组字,又可以行向(横向)16点组字。无论

9、哪一种组字方法,都既可以显示字符的水平方向的移动,又可以显示竖直方向的移动。本设计主要采用汉字的左移,所以以下只作左移显示的解释列扫描方式左移动:列向组字显示字符水平方向的移动(左滚动)延长数组法。将原来字符点阵数组的16个数据重复一遍延长,点阵数组的数据个数为32个。每扫描一帧取8个数据显示,下一帧取数要在数组中后移一个数取数。循环一遍扫16帧。可以假想有两块1616的点阵模块(共32帧)水平平行排列,用一个恰好能罩住16列点阵的中空方框去罩这个点阵,第1(第1帧)罩住最左边数起第一列开始的16列,就扫描显示这16列;第2次(第2帧)使方框右移一列,罩住做左边数起第2列开始的16列,就扫描显

10、示这16列;这样每扫描完一帧使方框右移一列,最后第16次(第16帧)时,罩住左边数起的第16列开始的16列,就扫描显示这16列。如此完成16帧画面的扫描显示,也就完成了整个一次移动循环扫描、之后反复循环,即可呈现显示字符沿水平向左移动的图像因为是列向组字(列扫描方式,点阵数据为行码,上边为低位下面为高位),希望显示移动的一个字符,第1次扫描从行码的点阵数组中取第116个数据,送行码输出口,对应于这8个数据,同时用列码输出口输出列码,分别控制第116列。扫描完前16个数据之后,第2次扫描从点阵数组中取第318个数据(第18个数据与第1个数据同),送行码输出口,对应于这16个数据,同时用列码输出口

11、输出列码,仍分别控制扫第116列。第3次扫描从点阵数组中取第520个数据(第20个数据码与第2个数据码相同)扫描;如此实现字符向左移动。以上完成一个图形移动的方法,也可以看成是移动16个不同的字形。如图2.13所示,首先扫描第一个字型,同样是16行,16次扫描,16次显示;完成一个字型的扫描以后,再扫描第二个字型;完成第二个字型的扫描之后,再扫描第三个字型依此类推,即可产生该文字的左移的感觉。三、 单片机系统结构51单片机的概述单片机也被称作“单片机微型计算机”、“微控制器”、“嵌入式微控制器”,国际上采用“MCU”(MicroControllerUnit)称呼单片机。如果将8位单片机的推出作

12、为起点(1976年),那么单片机的发展的历史大致可以分为4个阶段。第一阶段是单片机探索阶段,主要探索如何把计算机的主要部件集成在单芯上;第二阶段是单片机完善阶段,完善了8位单片机的并行总线结构、外围功能单元由CPU集中管理模式、体现控制特性的位地址空间和位操作方式、指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令;第三阶段是向微控制器发展的阶段,说的是在51系列的基本结构的基础上,加强了外围电路的功能,突出了单片机的控制功能,将一些用测控对象的模数转换器、数模转换器、程序运行监视器、脉宽调制器等纳入芯片中,体现单片机的微控制器特征;第四阶段是单片机的全面发展阶段,很多大半导体和电气厂商

13、都开始加入单片机的研制和生产,单片机世界出现了百花齐放,欣欣向荣的景象。随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位、16位、32位通用型单片机,以及小型谦价的专用型单片机。目前,单片机正朝着高性能和多品种方向发展,今后单片机的发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装等方面发展。 单片机的组成单片机通过内部总线把计算机的各主要部件连为一体,其内部总线包括地址总线、数据总线和控制总线。其中,地址总线的作用是为进行数据交换时提供地址,CPU通过将地址输出到存储器或I/O接口;数据总线用于在CPU与存储器或I/O接口

14、之间或存储器与外设之间交换数据;控制总路线包括CPU发出的控制信号线和外部送入CPU的应答线等。四、 源程序、程序设计及流程图显示驱动程序(显示屏扫描函数)流程图。定时器赋初值读取行号并增1送新行显示数据消隐切换显示数据送新行号、打开显示进入中断退出中断图7.4显示驱动程序流程图系统初始化“卷帘出”显示效果“上滚屏”显示效果“左跑马”显示效果“卷帘入”显示效果开始图7.5系统主程序流程图以下是1616点阵LED电子显示屏的源程序,分别采用C及汇编编写,C程序在Keil uVision2 V2.30(C51.exe V7.0)环境下调试通过。/*-1616点阵LED显示屏程序MCU AT89C5

15、1 XAL 24MHzBuilde by Gavin Hu, 2003.8.15-*/#include #define BLKN 2 /列锁存器数sbit G = 0x97; /P1.7为显示允许控制信号端口sbit RCLK = 0x96; /P1.6为输出锁存器时钟信号端sbit SCLR = 0x95; /P1.5为移位寄存器清端void delay(unsigned int); /延时函数unsigned char data dispram32; /显示缓存/*- 主函数 void main(void)-*/void main(void) unsigned char code Bmp3

16、2=/字模表 0xF9,0xBF,0xC7,0xAF,0xF7,0xB7,0xF7,0xB7,0xF7,0xBF,0x00,0x01,0xF7,0xBF,0xF7,0xB7, 0xF1,0xD7,0xC7,0xCF,0x37,0xDF,0xF7,0xAF,0xF6,0x6D,0xF7,0xF5,0xD7,0xF9,0xEF,0xFD /*我*/, 0xFF,0x07,0xC0,0x6F,0xED,0xEF,0xF6,0xDF,0xC0,0x01,0xDD,0xFD,0xBD,0xFF,0xC0,0x03, 0xFB,0xFF,0xF8,0x0F,0xF3,0xDF,0xF4,0xBF,0xEF

17、,0x3F,0x9C,0xCF,0x73,0xF1,0xCF,0xFB /*爱*/, 0xF7,0xDF,0xF9,0xCF,0xFB,0xBF,0xC0,0x07,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,0xDE,0xF7, 0xC0,0x07,0xDE,0xF7,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF /*单*/, 0xFF,0xBF,0xEF,0xBF,0xEF,0xBF,0xEF,0xBB,0xE0,0x01,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF, 0xE0,0x0

18、F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xDF,0xEF,0xDF,0xEF,0xBF,0xEF,0x7F,0xEF /*片*/, 0xEF,0xFF,0xEF,0x07,0xEF,0x77,0x01,0x77,0xEF,0x77,0xEF,0x77,0xC7,0x77,0xCB,0x77, 0xAB,0x77,0xAF,0x77,0x6E,0xF7,0xEE,0xF5,0xED,0xF5,0xED,0xF5,0xEB,0xF9,0xEF,0xFF /*机*/, 0xF8,0x3F,0xE7,0xCF,0xDF,0xF7,0xBF,0xFB,0xB3,0x9B,0x7

19、3,0x9D,0x7F,0xFD,0x7F,0xFD, 0x6F,0xED,0x67,0xCD,0xB3,0x9B,0xB8,0x3B,0xDF,0xF7,0xE7,0xCF,0xF8,0x3F,0xFF,0xFF /*J*/;register unsigned char i,j,k,l;SCON = 0x00; /串口工作模式0:移位寄存器方式TMOD = 0x01; /定时器T0工作方式1:16位方式TR0 = 1; /启动定时器T0P1 = 0x3f; /P1端口初值:允许接收、锁存、显示IE = 0x82; /允许定时器T0中断while (1) delay(2000); /延时2秒

20、for (i=0;i32;i+) /显示效果:卷帘出 disprami = Bmp5i; if (i%2) delay(100); / delay(3000); for (i=0; i6; i+) /显示效果:上滚屏 for (j=0; j16; j+) for (k=0; k15; k+) dispramk*BLKN = dispram(k+1)*BLKN; dispramk*BLKN+1 = dispram(k+1)*BLKN+1; dispram30 = Bmpij*BLKN; dispram31 = Bmpij*BLKN+1; delay(100); / delay(3000); fo

21、r (i=0; i6; i+) /显示效果:左跑马 for (j=0; j2; j+) for (k=1; k9; k+) for (l=0; l16; l+) dispraml*BLKN = dispraml*BLKN7; dispraml*BLKN+1 = dispraml*BLKN+1(8-k); delay(100); /end (k=0; k16; k+) /end for (i=0; i; i+)/ delay(3000); for (i=0;i32;i+) /显示效果:卷帘入 disprami = 0x00; if (i%2) delay(100); / /end while (

22、1)/*延时函数*/void delay(unsigned int dt)register unsigned char bt;for (; dt; dt-) for (bt=0; bt255; bt+);/*显示屏扫描(定时器T0中断)函数*/void leddisplay(void) interrupt 1 using 1register unsigned char i, j=BLKN;TH0 = 0xF8; /设定显示屏刷新率每秒62.5帧TL0 = 0x30;i = P1; /读取当前显示的行号i = +i & 0x0f; /行号加1,屏蔽高4位do j-; SBUF = dispram

23、i*BLKN + j; /送显示数据 while (!TI); TI = 0; while (j); /完成一行数据的发送G = 1; /消隐(关闭显示)P1 &= 0xf0; /行号端口清RCLK = 1; /显示数据打入输出锁存器P1 |= i; /写入行号RCLK = 0; /锁存显示数据G = 0; /打开显示以下为用汇编编写的字符显示控制程序:; *; * *; * 单个16*16点阵电子屏字符显示器 *; * AT89C52 12MHZ晶振 *; * 2004.2.11 LRM *; *;显示字用查表法,不占内存,字符用16*16共阳LED点阵,;效果:向上滚动显示19个字,再重复

24、循环。;R1:查表偏址寄存器,B:查表首址,R2:扫描地址(从00-0FH)。;R3:滚动显示时控制移动速度,单字显示可控制静止显示的时间。;*;中断入口程序;*;ORG 0000HLJMP STARTORG 0003HRETIORG 000BHLJMP INTT0ORG 0013HRETIORG 001BHRETIORG 0023HRETIORG 002BHRETI;*; 初始化程序 ;*;*; 主程序 ;*;START: MOV 20H,#00H ;清标志,00H为第16行开始扫描标志,01为1帧扫描结束标志 MOV A,#0FFH ;端口初始化 MOV P1,A MOV P2,A MOV

25、 P3,A MOV P0,A CLR P1.6 ;串行寄存器输入打入输出控制位 MOV TMOD,#01H ;使用T0作16位定时器,行扫描用。 MOV TH0,#0FCH ;1ms初值(12MHZ) MOV TL0,#18H MOV SCON,#00H ;串口0方式传送显示字节 MOV IE,#82H ;T0中断允许,总中断允许 MOV SP,#70HMAIN: LCALL DIS1 ;显示准备,黑屏,1.5秒 MOV DPTR,#TAB LCALL MOVDISP ;向上滚动显示一页(8个字) INC DPH LCALL MOVDISP ;向上滚动显示一页(8个字) INC DPH LCA

26、LL MOVDISP ;向上滚动显示一页(8个字) AJMP MAIN;*; 多字滚动显示子程序 ;*;每次8个字,入口时定义好DPTR值;MOVDISP: MOV B,#00H ;向上移动显示,查表偏址暂存(从00开始)DISLOOP: MOV R3,#07H ;移动速度DISMOV: MOV R2,#00H ;第0行开始 MOV R1,B ; SETB TR0 ;开扫描(每次一帧)WAITMOV: JBC 01H,DISMOV1 ;标志为1扫描一帧结束(16毫秒为1帧,每行1毫秒) AJMP WAITMOVDISMOV1: DJNZ R3,DISMOV ;1帧重复显示(控制移动速度) IN

27、C B ;显示字的下一行(每行2字节) INC B ; MOV A,R1 ;R1为0,8个字显示完 JZ MOVOUT ; AJMP DISLOOP ;MOVOUT: RET ;移动显示结束;*; 单字显示子程序 ;*;显示表中某个字DIS1: MOV R3,#5AH ;静止显示时间控制(16MS*#=1.6秒)DIS11: MOV R2,#00H ;一帧扫描初始值(行地址从00-0FH) MOV DPTR,#TAB ;取表首址 MOV R1,#00H ;查表偏址(显示第一个字) SETB TR0 ;开扫描(每次一帧)WAIT11: JBC 01H,DIS111 ;为1,扫描一帧结束 AJMP

28、 WAIT11DIS111: DJNZ R3,DIS11 RET;*; 扫描程序 ;*;1MS刷新一次,每行显示1秒INTT0: PUSH ACC MOV TH0,#0FCH ;1ms初值重装 MOV TL0,#18H JBC 00H,GOEND ;16行扫描标志为1,结束 INC R1 ;取行右边字节偏址 MOV A,R1 MOVC A,A+DPTR ;查表 MOV SBUF,A ;串口0方式发送WAIT: JBC TI,GO ;等待发送完毕 AJMP WAIT ;GO: DEC R1 ;取行左边字节偏址 MOV A,R1 MOVC A,A+DPTR MOV SBUF,AWAIT1: JBC

29、 TI,GO1 AJMP WAIT1GO1: SETB P1.7 ;关行显示,准备刷新 NOP ;串口寄存器数据稳定 SETB P1.6 ;产生上升沿,行数据打入输出端 NOP ; NOP ; CLR P1.6 ;恢复低电平 MOV A,R2 ;修改显示行地址 ORL A,#0F0H ;修改显示行地址 MOV R2,A ;修改显示行地址 MOV A,P1 ;修改显示行地址 ORL A,#0FH ;修改显示行地址 ANL A,R2 ;修改显示行地址 MOV P1,A ;修改完成 CLR P1.7 ;开行显示 INC R2 ;下一行扫描地址值 INC R1 ; INC R1 ;下一行数据地址 MO

30、V A,R2 ANL A,#0FH JNZ GO2 SETB 00H ;R2为10H,现为末行扫描,置标志GO2: POP ACC RETIGOEND: CLR TR0 ;一帧扫描完,关扫描 SETB 01H ;一帧扫描完,置结束标志 POP ACC RETI ;退出;*; 扫描文字表 ;*; TAB: DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH ;黑屏 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F

31、FH,0FFH,0FFH,0FFH,0FFH DB 0F7H,0DFH,0F9H,0CFH,0FBH,0BFH,0C0H,007H,0DEH,0F7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H ;单 DB 0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH DB 0FFH,0BFH,0EFH,0BFH,0EFH,0BFH,0EFH,0BBH,0E0H,001H,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH ; 片 DB 0E0H,00FH,0EFH,0EF

32、H,0EFH,0EFH,0EFH,0EFH,0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0EFH DB 0EFH,0FFH,0EFH,007H,0EFH,077H,001H,077H,0EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H ; 机 DB 0ABH,077H,0AFH,077H,06EH,0F7H,0EEH,0F5H,0EDH,0F5H,0EDH,0F5H,0EBH,0F9H,0EFH,0FFH DB 0FFH,0FFH,0F0H,00FH,0F7H,0EFH,0F0H,00FH,0F7H,0EFH,0F0H,00FH,0FFH,

33、0FFH,000H,001H ;是 DB 0FEH,0FFH,0F6H,0FFH,0F6H,007H,0F6H,0FFH,0EAH,0FFH,0DCH,0FFH,0BFH,001H,0FFH,0FFH DB 0FFH,0FFH,0C0H,003H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH ;工 DB 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,000H,001H,0FFH,0FFH,0FFH,0FFH DB 0FBH,0BFH,0FBH,0BFH,0FBH,0BFH,0FBH,0BBH,0BBH,0B9H,0DBH,0B3H,0DBH,0B7H,0EBH,0AFH ;业 DB 0E3H,0AFH,0EBH,09FH,0FBH,0BFH,0FBH,0BFH,0FBH,0BBH,000

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com