88点阵显示汉子和数字

  • 格式:doc
  • 大小:388.50 KB
  • 文档页数:22

湖南工业大学课程设计资料袋电气与信息工程学院(系、部)2016~2-17 第 1 学期课程名称单片机应用系统指导教师职称副教授学生姓名未知专业班级电气工程及其自动化学题目8*8LED点阵显示文字_____________________成绩起止日期2016 年11 月21 日~2016 年12 月2 日目录清单湖南工业大学课程设计任务书20 16—20 17第一学期电气与信息工程学院电气工程及其自动化专业1404 班级课程名称:单片机应用系统____________________设计题目:8*8LED点阵显示文字______________________指导教师(签字):年月日系(教研室)主任(签字):年月日(单片机应用系统)设计说明书8*8LED点阵显示文字起止日期:2016 年11月21 日至2016年12 月2日学生姓名哈哈班级电气工程0000学号000000000成绩指导教师(签字)电气与信息工程学院(部)2016年12月7日目录第一章系统概述 (1)1.1设计任务及目的 (1)1.2 设计发展前景 (1)第二章系统硬件设计与分析 (3)2.1 复位电路 (3)2.2 晶振电路 (3)2.3 显示电路 (4)第三章程序设计 (6)3.1 汉子与数字的编码 (6)3.2 定时程序 (6)3.3 完整程序 (6)第四章软件仿真与测试 (11)4.1 滚动循环显示 (11)4.2 逐字切换显示 (11)第五章总结 (13)参考文献 (14)附录(单片机源程序) (15)第一章系统概述LED点阵显示系统中各模块的显示方式有静态和动态显示两种。

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

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

该点阵可实现动态显示数字0~9及字符任意简单字符的功能。

1.1设计任务及目的利用8*8LED点阵显示数字0~5和湖南工业大学的字样。

采用AT89S51单片机作为整个控制搭电路的核心,并编制软件程序,实现动态轮流显示。

通过此设计来巩固单片机硬件系统的设计及软件系统的编程,通过设计将平时所学知识付诸实践,提高动手能力。

1.2 设计发展前景点阵 LED 显示器是把一些 LED 组合在同一个包装中,常见的规格有 5×7,8×8,16×16 等几种。

LED 电子显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。

它是集微电子技术、光电子技术、计算机技术、信息处理技术于一体的显示系统,是目前国际上极为先进的显示媒体。

由于它具有发光效率高、使用寿命长、组态灵活、色彩丰富、工作性能稳定以及对室内室外环境适应能力强等优点而日渐成为显示媒体中的佼佼者。

在我国改革开放之后,特别是进入 90 年代国民经济高速增长,对公众场合发布信息的需求日益强烈,LED 显示屏的出现正好适应了这一市场形势,因而在 LED 显示屏的设计制造技术与应用水平上都得到了迅速的提高,生产也得到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。

随着信息产业的高速发展,LED 显示屏作为信息传播的一种重要手段成为现代信息化社会的一个闪亮标志。

近年 LED 显示屏已广泛应用于室内、外需要进行服务内容和服务宗旨宣传的公众场所如银行、营业部、车站、机场、港口、体育场馆等信息的发布,政府机关政策、政令,各类市场行情信息的发部和宣传等。

汉字显示方式是先根据所需要的汉字提取汉字点阵,将点阵文件存入ROM,形成新的汉字编码。

而在使用时则需要先根据新的汉字编码组成语言,再由 MCU 根据新编码提取相应的点阵进行汉字显示。

LED 的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。

第二章系统硬件设计与分析本系统从经济性,电路结构,系统性能等多方面考虑,选用如下主要元器件:单片机AT89C51、电阻1K、按钮开关、共阳8*8LED点阵显示块、排阻RESPACK-8、12MHz晶振、电容若干。

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

本设计中采用按键复位电路,复位电路如图2所示:图1 复位电路图2.2 晶振电路本次使用12MHz晶振,从而使每一个机器周期时间为1S钟。

晶振电路如下图2所示:XTAL218XTAL119ALE 30EA31PSEN 29RST9P0P0P0P0P0P0P0P0P1.0/T21P1.1/T2EX 2P1.23P1.34P1.45P1.56P1.67P1.78P3.P3P3.P3.P PP3P P2P P P2P2P2P2P2U1AT89C52C110uFC222pFC322pFX1CRYSTAL图3 晶振电路图2.3 显示电路1. 8X8 点阵LED 工作原理说明图4为8×8点阵LED 外观及引脚图,其等效电路如图5所示,只要其对应的X 、Y 轴顺向偏压,即可使LED 发亮。

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

应用时限流电阻可以放在X 轴或Y 轴。

图4 8×8点阵LED 外观及引脚图2.点阵LED 扫描法介绍点阵LED 一般采用扫描式显示,实际运用分为三种方式: (1)点扫描; (2)行扫描; (3)列扫描。

若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms 即 可。

若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms 即可符合视觉暂留要求。

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

其等效电路图如下:图5 8×8点阵LED等效电路第三章程序设计本程序主要由两段程序实现,当按下外部中断0,单片机执行轮流刷新滚动显示“工业大学012345”字样,当按下外部中断1,单片机执行逐字切换显示“工业大学012345”字样,具体程序如下:3.1 汉子与数字的编码TAC: DB 00H,7CH,10H,10H,10H,0FEH,00H,00H ;工TAD: DB 28H,28H,0AAH,6CH,28H,28H,0FFH,00H;业TAE: DB 08H,08H,08H,0FFH,18H,24H,42H,81H;大TAF: DB 52H,2CH,7FH,0BAH,10H,7EH,10H,30H;学TAG: DB 00H,3CH,24H,24H,24H,24H,3CH,00H;0TAH: DB 00H,10H,30H,10H,10H,10H,38H,00H;1TAI: DB 00H,7CH,44H,08H,10H,20H,40H,7CH;2TAJ: DB 00H,78H,48H,08H,10H,08H,48H,78H;3TAK: DB 00H,14H,14H,24H,44H,0FFH,04H,04H;4TAL: DB 00H,3CH,20H,20H,3CH,04H,24H,3CH; 53.2 定时程序由以下定是程序可知,没行显示时间300us,共8列,故循环刷新时间为2.4ms,程序如下:DELAY1MS:MOV R3,#100 ;定时300微秒LOOPTM:NOPDJNZ R3,LOOPTMRET3.3 完整程序ORG 0000HLJMP MAIN ;跳到主函数ORG 0003HLJMP OUT0 ;执行外部中断0的滚动显示程序ORG 0013HLJMP OUT1 ;执行外部中1的静止显示程序ORG 0150HOUT0:MOV P1,#00H /* 此段程序为滚动显示程序*/MOV P0,#00H ;消隐,屏蔽开发板七段LED接口CLR P2.6SETB P2.7START: MOV R2,#00H ;程序段开始LOOPST: MOV A,R2 ;赋查表初值给R7MOV R7,ACLR AMOV R4,#100 ;一个字刷新完成后循环刷新次数LOOP2: MOV R6,#08H ;8行矩阵显示一个完整的字MOV R5,#0FEH ;行移位,低电平有效LOOP1: MOV A,R7MOV DPTR,#TAB ;表初值R7赋值给累加器A开始查表指令MOVC A,@A+DPTRMOV B,A ;先将查表得的数据列显示保存到寄存器BCLR AMOV A,R5 ;将行显示保存到累加器AMOV P1,B ;列输出到P1口MOV P0,A ;行输出到P0口LCALL DELAY1MS ;第一行完整字符显示延时300微秒INC R7 ;下一行准备列显示准备查表RL A ;行移位至第二列MOV R5,A ;数据送R2下次使用CLR ADJNZ R6,LOOP1 ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新MOV A,R2 ;一个字刷新完成,准备循环刷新MOV R7,ADJNZ R4,LOOP2 ;第一个字刷新时间到,准备第二个字刷新CLR AINC R2 ;下次查表时初表头地址为R2的值,即第二个字表的首地址CJNE R2,#83,LOOPST ;判断所有要显示的字符码个数,能够顺序显示每个字符LJMP STARTRETIORG 0210HOUT1:MOV P1,#00H /* 此段out1为文字静止显示*/MOV P0,#00H ;消隐,屏蔽开发板七段LED接口CLR P2.6SETB P2.7MOV R4,#250 ;一个字刷新完成后循环刷新次数LOOPZ1: LCALL LOOPXH2LOOPA: MOV A,R7MOV DPTR,#TACLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPA ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ1 ;第一个字刷新时间到,准备第二个字刷新LJMP LOOPZ2 ;跳第二字LOOPZ2:LCALL LOOPXH2LOOPB: MOV A,R7MOV DPTR,#TADLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPB ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ2 ;第二个字刷新时间到,准备第三个字刷新LJMP LOOPZ3 ;跳第三字LOOPZ3:LCALL LOOPXH2LOOPC: MOV A,R7MOV DPTR,#TAELCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPC ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ3 ;第三个字刷新时间到,准备第四个字刷新LJMP LOOPZ4 ;跳第四字LOOPZ4:LCALL LOOPXH2LOOPD: MOV A,R7MOV DPTR,#TAFLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPD ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ4 ;第四个字刷新时间到,准备第五个字刷新LJMP LOOPZ5 ;跳第五字LOOPZ5:LCALL LOOPXH2LOOPE: MOV A,R7MOV DPTR,#TAGLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPE ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ5 ;第五个字刷新时间到,准备第二六字刷新LJMP LOOPZ6 ;跳第六字LOOPZ6:LCALL LOOPXH2LOOPF: MOV A,R7MOV DPTR,#TAHLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPF ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ6 ;第六个字刷新时间到,准备第二七字刷新LJMP LOOPZ7 ; 跳第七字LOOPZ7:LCALL LOOPXH2LOOPG: MOV A,R7MOV DPTR,#TAILCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPG ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ7 ;第七个字刷新时间到,准备第二八字刷新LJMP LOOPZ8 ;跳第八字LOOPZ8:LCALL LOOPXH2LOOPH: MOV A,R7MOV DPTR,#TAJLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPH ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ8 ;第八个字刷新时间到,准备第九个字刷新LJMP LOOPZ9 ; 跳第九字LOOPZ9:LCALL LOOPXH2LOOPI: MOV A,R7MOV DPTR,#TAKLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPI ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ9 ;第九个字刷新时间到,准备第十个字刷新LJMP LOOPZ10 ; 跳第十字LOOPZ10:LCALL LOOPXH2LOOPJ: MOV A,R7MOV DPTR,#TALLCALL LOOPXH1 ;调用查表子程序DJNZ R6,LOOPJ ;判断一个字8行是否扫描完成,否则继续执行一字八列的刷新DJNZ R4,LOOPZ10 ;第十个字刷新时间到,准备返回第一个字重新开始LJMP LOOPZ1 ; 所有显示完毕,返回本段程序重新开始执行RETILOOPXH1:MOVC A,@A+DPTR ;表初值R7赋值给累加器A开始查表指令MOV B,A ;先将查表得的数据列显示保存到寄存器BCLR AMOV A,R5 ;将行显示保存到累加器AMOV P1,B ;列输出到P1口MOV P0,A ;行输出到P0口LCALL DELAY1MS ;第一行完整字符显示延时300微秒INC R7 ;下一行准备列显示准备查表RL A ;行移位至第二列MOV R5,A ;数据送R2下次使用CLR ARETLOOPXH2: MOV R6,#08H ;8行矩阵显示一个完整的字MOV R5,#0FEHMOV R7,#00H ;行移位,低电平有效RETDELAY1MS:MOV R3,#100 ;定时300微秒LOOPTM:NOPDJNZ R3,LOOPTMRETORG 0050HMAIN: CLR IT0 ;中断程序CLR IT1MOV P1,#00HSETB EASETB EX0SETB EX1SJMP $TAB: DB 00H,7CH,10H,10H,10H,0FEH,00H,00H ;滚动显示程序OUT0要显示的字码DB 28H,28H,0AAH,6CH,28H,28H,0FFH,00HDB 08H,08H,08H,0FFH,18H,24H,42H,81H,00H,00HDB 52H,2CH,7FH,0BAH,10H,7EH,10H,30H,00HDB 00H,3CH,24H,24H,24H,24H,3CH,00HDB 00H,10H,30H,10H,10H,10H,38H,00HDB 00H,7CH,44H,08H,10H,20H,40H,7CHDB 00H,78H,48H,08H,10H,08H,48H,78HDB 00H,14H,14H,24H,44H,0FFH,04H,04HDB 00H,3CH,20H,20H,3CH,04H,24H,3CHTAC: DB 00H,7CH,10H,10H,10H,0FEH,00H,00H ;静止显示程序OUT1要显示的字码TAD: DB 28H,28H,0AAH,6CH,28H,28H,0FFH,00HTAE: DB 08H,08H,08H,0FFH,18H,24H,42H,81H,00H,00HTAF: DB 52H,2CH,7FH,0BAH,10H,7EH,10H,30H,00HTAG: DB 00H,3CH,24H,24H,24H,24H,3CH,00HTAH: DB 00H,10H,30H,10H,10H,10H,38H,00HTAI: DB 00H,7CH,44H,08H,10H,20H,40H,7CHTAJ: DB 00H,78H,48H,08H,10H,08H,48H,78HTAK: DB 00H,14H,14H,24H,44H,0FFH,04H,04HTAL: DB 00H,3CH,20H,20H,3CH,04H,24H,3CHEND第四章软件仿真与测试4.1 滚动循环显示按下滚动按钮,执行外部中断0,LED滚动“显示工业大学012345”字样由于人眼存在视觉差,因此只要在特定是时间里让每行显示的等逐行扫描,以此循环多次,则可以让人眼看到一个完整的汉子,列如LED点阵显示“工”字,然后依次让没行列扫描往上移动一行,则可以实现汉子的滚动。