8 16X16LED点阵显示程序
LED1616点阵的使用.
1. 8 位串行输入-并行输出移位寄存器 74HC595 的使用说明
74HC595 芯片是一种串入并出的芯片,在电子显示屏制作当中有广泛的应用。74HC595 使用一根输入 线(串行输入 8 位数据),并将该 8 位数据一次性并行输出。
74HC595 有一个 8 位输入移位寄存器和一个输出 8 位锁存器,分别由 SH_CP 和 ST_CP 两个时钟控制。 数据从 DS 引脚被逐位送入(高位在前,低位在后),在 SH_CP 的上升沿输入到 8 位输入移位寄存器。在 ST_CP 的上升沿被送入输出 8 位锁存器中,从输出引脚输出。如果没有 ST_CP 的上升沿,则输入的数据 会不断的从串行输出引脚(Q7’)被一位一位的输出。此外,74HC595 还有一个异步的低电平复位和使能 OE(低电平有效)控制引脚。
6
LED16 16 点阵的使用
单片机原理与应用
74HC164 和 74HC595 的区别 74HC164 和 74HC595 功能相仿,都是 8 位串行输入转并行输出移位寄存器。74HC164 的驱动电流(25mA) 比 74HC595 (35mA)的要小,14 脚封装,体积也小一些。 74595 的主要优点是具有输出锁存寄存器,在移位的过程中,输出端的数据可以保持不变。这在串行 速度慢的场合很有用处,数码管没有闪烁感。 与 164 只有数据清零端相比,595 还多有输出端时能/禁止控制端,可以使输出为高阻态。
74HC595 的引脚如图 5 所示。
5
LED16 16 点阵的使用
单片机原理与应用
图5
引脚说明
符号
引脚
描述
Q0…Q7
15, 1~7,
并行数据输出
GND
8地Biblioteka Q7’9串行数据输出
16×16点阵LED显示屏整个过程及C语言程序
16×16点阵LE D显示屏整个过程及C语言程序7.1功能要求设计一个室内用16×16点阵LE D图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
7.2方案论证从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16×16的点阵,在实际应用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。
具体就16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮一定的时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮相同的时间,然后熄灭;……第十六行之后又重新燃亮第一行,这样反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。
基于8x16x16LED点阵显示屏设计
重庆三峡学院单片机课程设计报告书学院(系):年级专业:学号:学生姓名:指导教师:教师职称:成绩:制作日期2012年11月27日目录一、引言................................ 错误!未定义书签。
1.1 课题背景 ........................ 错误!未定义书签。
1.2 点阵LED 国内外研究现状综述 ...... 错误!未定义书签。
二、硬件系统的设计 ...................... 错误!未定义书签。
2.1 LED行线锁存器................... 错误!未定义书签。
2.2 16x16LED点阵.................... 错误!未定义书签。
2.3 8x16x16LED点阵显示屏的构建 ...... 错误!未定义书签。
2.4 系统电路原理图................... 错误!未定义书签。
2.5 驱动原理及驱动能力............... 错误!未定义书签。
三、软件系统的设计 ...................... 错误!未定义书签。
3.1 主程序 .......................... 错误!未定义书签。
3.2 子程序 .......................... 错误!未定义书签。
四、系统调试 ............................ 错误!未定义书签。
五、设计心得 ............................ 错误!未定义书签。
六、参考文献 ............................ 错误!未定义书签。
附录.................................... 错误!未定义书签。
致谢................................... 错误!未定义书签。
基于单片机的LED点阵显示屏设计重庆三峡学院摘要:本设计以TA89C51单片机为主芯片,设计了一个由单片机控制的8x16x16LED点阵滚动显示屏控制系统。
16×16点阵显示汇编程序
ORG 0000HAJMP READYORG 000BHAJMP INT_0;只需更改点阵数据和要显示的总字数READY:MOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV SP,#70HMOV 36H,#2DMOV 37H,#00H;************************************************ MOV 3AH,#17D ;设置要显示的总字数;************************************************ LCALL DATA_CHUSHISETB EASETB ET0MOV TMOD,#01HMOV TH0,#0A6HMOV TL0,#00HSETB TR0;主程序MAIN:ACALL DISP_READYACALL KEYAJMP MAIN;*********************************************** DA TA_CHUSHI:MOV 35H,#00HMOV 38H,#00HMOV 39H,#01H ;初始化时已显示第一个字MOV 3BH,#0A0H ;暂存r0指向地址MOV DPTR,#DATA1MOV R0,#0A0H ;点阵数据存放地址MOV 30H,#32D ;数据字节数SEND_DATA0:MOV A,#00HMOVC A,@A+DPTRMOV @R0,AINC R0INC DPTRDJNZ 30H,SEND_DA TA0;*********************************************** MOV R0,#0C0H ;点阵数据存放地址MOV 30H,#32D ;数据字节数SEND_DATA1:MOV A,#00HMOVC A,@A+DPTRMOV @R0,AINC R0INC DPTRDJNZ 30H,SEND_DA TA1;*********************************************** MOV DPTR,#DATA1+32MOV R0,#80H ;点阵数据存放地址MOV 30H,#32D ;数据字节数SEND_DATA2:MOV A,#00HMOVC A,@A+DPTRMOV @R0,AINC R0INC DPTRDJNZ 30H,SEND_DA TA2RET;*********************************************** KEY:MOV P3,#0FFHMOV A,P3ANL A,#00000011BCJNE A,#00000011B,KEY_PANDUANRETKEY_PANDUAN:MOV 34H,AACALL KEY_DELAYMOV A,P3ANL A,#00000011BCJNE A,34H,KEY_EXITACALL KEY_CHULIKEY_EXIT: RET;***************************KEY_CHULI:JB ACC.0,KEY_2MOV A,37HADD A,#40HMOV 37H,ALCALL DATA_CHUSHIRETKEY_2: JB ACC.1,KEY_CHULI_EXITINC 36HINC 36HMOV A,36HCJNE A,#14D,CHANGE_36HMOV A,#2DCHANGE_36H:MOV 36H,AMOV 35H,#00HRETKEY_CHULI_EXIT:RET;*************************** KEY_DELAY:DL Y_LP1: MOV R1,#20MOV R6,#50DL Y_LP2:NOPNOPNOPDJNZ R6,DL Y_LP2DJNZ R7,DL Y_LP1END_DL YMS:RET;***************************;显示程序DISP_READY:MOV R0,3BHMOV 30H,#16DMOV 31H,#00HDISP:MOV A,@R0MOV P0,AINC R0MOV A,@R0MOV P2,AMOV P1,31HACALL DISP_DELAYMOV P0,#00HMOV P1,#0FFHMOV P2,#00HINC 31HINC R0DJNZ 30H,DISPDISP_EXIT:RET;显示延时DISP_DELAY:MOV 32H,#2D1:MOV 33H,#150DJNZ 33H,$DJNZ 32H,D1RET;中断处理程序INT_0:PUSH ACCMOV TH0,#0A6HMOV TL0,#00HINC 35HMOV A,35HCJNE A,36H,INT0_EXITMOV 35H,#00HACALL WHICH_WAYINT0_EXIT:POP ACCRETI;********************************************* WHICH_W AY:MOV A,37HCJNE A,#00H,WAY2ACALL YIDONG1RETWAY2: CJNE A,#40H,WAY3ACALL YIDONG2RETWAY3: CJNE A,#80H,WAY4ACALL YIDONG3RETWAY4: ACALL YIDONG4RET;********************************************* YIDONG1: MOV 50H,#0A1HMOV 51H,#0C1HMOV 3CH,#16DINC 38HMOV A,38HCJNE A,#16D,YIDONG1_THEN1MOV 38H,#00HINC 39HMOV A,39HCJNE A,3AH,YIDONG1_THENMOV 39H,#00HMOV DPTR,#DATA1YIDONG1_THEN:MOV 3CH,#32DMOV R1,#0C0HYIDONG1_SEND_DA TA:MOV A,#00HMOVC A,@A+DPTRMOV @R1,AINC R1INC DPTRDJNZ 3CH,YIDONG1_SEND_DA TAMOV 3CH,#16DYIDONG1_THEN1:MOV R1,51HMOV A,@R1RLC AMOV @R1,ADEC R1MOV A,@R1RLC AMOV @R1,AMOV R1,50HMOV A,@R1RLC AMOV @R1,ADEC R1MOV A,@R1RLC AMOV @R1,AINC 50HINC 50HINC 51HINC 51HDJNZ 3CH,YIDONG1_THEN1RET;********************************************* YIDONG2:MOV 50H,#0A0HMOV 51H,#80HMOV 3CH,#16DINC 38HMOV A,38HCJNE A,#16D,YIDONG2_THEN1MOV 38H,#00HINC 39HMOV A,39HCJNE A,3AH,YIDONG2_THENMOV 39H,#00HMOV DPTR,#DA TA1YIDONG2_THEN:MOV 3CH,#32DMOV R1,#80HYIDONG2_SEND_DA TA:MOV A,#00HMOVC A,@A+DPTRMOV @R1,AINC R1INC DPTRDJNZ 3CH,YIDONG2_SEND_DATAMOV 3CH,#16DYIDONG2_THEN1:MOV R1,51HMOV A,@R1RRC AMOV @R1,AINC R1MOV A,@R1RRC AMOV @R1,AMOV R1,50HMOV A,@R1RRC AMOV @R1,AINC R1MOV A,@R1RRC AMOV @R1,AINC 50HINC 50HINC 51HINC 51HDJNZ 3CH,YIDONG2_THEN1RET;********************************************* YIDONG3:INC 3BHINC 3BHMOV 30H,#01HINC 38HMOV A,38HCJNE A,#16D,YIDONG3_EXITMOV 3BH,#0A0HMOV 38H,#00HMOV 3CH,#32DMOV 50H,#0A0HMOV 51H,#0C0HYIDONG3_LOOP:MOV R1,51HMOV A,@R1MOV R1,50HMOV @R1,AINC 50HINC 51HDJNZ 3CH,YIDONG3_LOOPINC 39HMOV A,39HCJNE A,3AH,YIDONG3_THENMOV 39H,#00HMOV DPTR,#DATA1YIDONG3_THEN:MOV R1,#0C0HMOV 3CH,#32DYIDONG3_THEN2:MOV A,#00HMOVC A,@A+DPTRMOV @R1,AINC R1INC DPTRDJNZ 3CH,YIDONG3_THEN2 YIDONG3_EXIT:RET;********************************************* YIDONG4:DEC 3BHDEC 3BHMOV 30H,#01HINC 38HMOV A,38HCJNE A,#16D,YIDONG4_EXITMOV 3BH,#0A0HMOV 38H,#00HMOV 3CH,#32DMOV 50H,#0A0HMOV 51H,#80HYIDONG4_LOOP:MOV R1,51HMOV A,@R1MOV R1,50HMOV @R1,AINC 50HINC 51HDJNZ 3CH,YIDONG4_LOOPINC 39HMOV A,39HCJNE A,3AH,YIDONG4_THENMOV 39H,#00HMOV DPTR,#DATA1YIDONG4_THEN:MOV R1,#80HMOV 3CH,#32DYIDONG4_THEN2:MOV A,#00HMOVC A,@A+DPTRMOV @R1,AINC R1INC DPTRDJNZ 3CH,YIDONG4_THEN2YIDONG4_EXIT:RET;*********************************************DA TA1:DB00H,00H,03H,00H,73H,7EH,13H,66H,0FH,0E6H,4FH,0E6H,73H,7EH,17H,66H,07H,0E6H,37H ,0FEH,3FH,66H,2BH,66H,23H,66H,63H,7EH,63H,66H,00H,00HDB00H,00H,0FH,0FEH,7FH,0FEH,30H,0B0H,07H,0FEH,44H,0B6H,67H,0FEH,33H,0FCH,07H,0F CH,17H,0FCH,16H,04H,37H,0FCH,36H,62H,6FH,0FFH,20H,60H,00H,60HDB00H,00H,7EH,00H,7FH,0FCH,24H,84H,3CH,84H,3CH,84H,24H,84H,24H,84H,3CH,0FCH,24H ,00H,27H,48H,7FH,6CH,74H,0C6H,05H,86H,05H,02H,00H,00HDB00H,00H,06H,60H,06H,60H,06H,60H,66H,64H,26H,6CH,36H,6CH,36H,6CH,16H,68H,1EH,78 H,16H,60H,06H,60H,06H,60H,7FH,0FEH,7FH,0FEH,00H,00HDB00H,00H,18H,60H,18H,60H,1BH,0FEH,7DH,0FEH,7CH,60H,19H,60H,1BH,0FCH,3CH,8CH,7 8H,0C8H,18H,0D8H,18H,70H,18H,70H,3BH,0DEH,33H,06H,00H,00HDB00H,00H,01H,90H,01H,98H,01H,88H,7FH,0FEH,7FH,0FEH,03H,0C0H,07H,0C0H,05H,0E0H,0 DH,0B0H,19H,98H,31H,9CH,61H,8EH,01H,80H,01H,80H,00H,00HDB00H,00H,19H,98H,19H,98H,08H,30H,7FH,0FEH,60H,06H,60H,06H,1FH,0F8H,00H,0F0H,00H, 80H,7FH,0FEH,40H,80H,00H,80H,00H,80H,03H,80H,00H,00HDB00H,00H,00H,60H,7CH,20H,6BH,0FEH,6BH,02H,79H,04H,79H,0FCH,68H,00H,6FH,0FEH,64 H,0D0H,7CH,0D0H,78H,0D0H,60H,92H,63H,13H,66H,1EH,00H,00HDB00H,00H,18H,60H,18H,60H,17H,0FEH,30H,00H,33H,0FEH,70H,00H,53H,0FEH,12H,00H,10H,00H,13H,0FCH,13H,04H,13H,04H,13H,0FCH,13H,04H,00H,00HDB02H,00H,03H,00H,1FH,0F8H,10H,08H,1FH,0F8H,10H,08H,1FH,0F8H,10H,08H,1FH,0F8H,00 H,00H,0DH,88H,2CH,0CCH,6CH,16H,64H,30H,07H,0E0H,00H,00HDB00H,00H,00H,00H,3FH,0FCH,21H,84H,01H,80H,01H,80H,01H,80H,01H,80H,01H,80H,01H,80 H,01H,80H,01H,80H,41H,82H,7FH,0FEH,00H,00H,00H,00HDB00H,00H,0CH,00H,7DH,0FCH,19H,84H,19H,84H,7FH,0FCH,7CH,00H,19H,0FCH,3DH,0FEH, 3EH,20H,79H,0FCH,59H,0FCH,18H,20H,19H,0FEH,1BH,0FEH,00H,00HDB00H,00H,00H,7CH,3FH,0F0H,03H,80H,06H,38H,1FH,0E0H,1FH,90H,07H,18H,3DH,0FCH,1F H,0FEH,00H,90H,1CH,98H,30H,8CH,63H,86H,03H,80H,00H,00HDB00H,00H,00H,0C0H,00H,0C0H,7EH,0FEH,06H,0FEH,25H,84H,35H,2CH,1CH,20H,18H,60H,1 CH,70H,16H,70H,36H,0D8H,60H,0CCH,63H,86H,03H,02H,00H,00HDB00H,00H,20H,80H,33H,0BEH,32H,26H,12H,26H,02H,26H,72H,26H,12H,26H,12H,26H,13H,0A 6H,17H,0ACH,12H,20H,10H,20H,3FH,0FEH,41H,0FEH,00H,00HDB00H,00H,08H,0C0H,19H,0FCH,3BH,0FCH,3EH,6CH,58H,60H,19H,68H,1BH,64H,1EH,0E2H,1 8H,0C0H,04H,88H,34H,0CCH,34H,16H,27H,0F0H,27H,0F0H,00H,00HDB00H,00H,00H,00H,04H,00H,0EH,00H,0EH,00H,0EH,00H,0EH,00H,0EH,00H,0EH,00H,04H,00 H,00H,00H,0EH,00H,0EH,00H,00H,00H,00H,00H,00H,00HEND。
16×16点阵LED显示屏整个过程及C语言程序(1).
16×16点阵LED显示屏整个过程及C语言程序7.1功能要求设计一个室内用16×16点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
7.2方案论证从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16×16的点阵,在实际应用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。
具体就16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮一定的时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮相同的时间,然后熄灭;……第十六行之后又重新燃亮第一行,这样反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。
采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
8X16LED点阵屏滚动显示说明书
湄洲湾职业技术学院8*16LED点阵屏滚动显示说明书系别:自动化工程系年级:10级专业:电气自动化姓名:俞成坦学号:********** 导师姓名:邱兴阳职称:讲师2013年 5 月 29 日1.前言 (1)2.系统设计技术参数要求 (2)3.系统设计 (3)3.1系统设计总体框图 (3)3.2系统各模块说明 (3)3.3系统总原理图说明 (4)3.4印刷电路板的制作图 (5)3.5系统操作说明 (5)3.6系统操作注意事项 (5)参考文献 (6)致谢词 (7)附录 (8)附录1 元件清单 (8)附录2 系统印刷电路板图 (9)附录3 系统电路总图 (10)附录4 系统程序 (11)众所周知,现在市面上已出现很多有关点阵显示器的商品,如广告活动字幕机、股票显示板、活动布告栏等。
它的优点是可按需要的大小、形状、单色、或彩色来组合,可与微处理器连接,做各种广告栏文字或图形变化。
因此可知汉字显示系统在人民的生活当中是何等的重要,也是研究的课题之一。
8*8点阵LED字符显示器系统在工业、各种比赛场合及日常生活应用中占有十分重要的地位,多年来,研究此项目的工程技术人员曾为简化电路、提高可靠性、降低成本,付出了很大的努力,做出不少成绩。
如今,美观、价廉、体积小、高可靠性8*8点阵LED字符显示器的出现,为这一领域的技术打开了新的天地。
LED字符显示器发展到今天已经从模拟化、分立化迈进数字化、集成化LED系统。
它的最大优点在于采用STC89C52掉电工作方式构成高可靠、低功耗系统方法。
在单片机程序设计中,采用“模块化”思路,设计中大量硬件尽量用软件代替,从而简化了系统结构,减少电子元件虚焊,接触不良和漂移等引起的一些故障,而且使用方便,只须改变软件中几条伪指令即可。
另外,本系统还可以方便的设计监控、故障自诊断、故障自动复原程序,以提高系统的可靠性。
系统的抗干扰设计,提高了系统的抗干扰能力。
在设计中重点要考虑单片机应用系统的设计。
计算机接口程序设计-16X16点阵LED显示
信息工程学院接口技术课程设计论文(2008~2009学年第 2 学期)论文题目:_点阵LED显示系统设计_姓名:学号:专业:计算机科学与技术年级班级:06 级 3 班指导教师:蒲攀完成日期:2009年7月10日成绩:摘要本论文主要介绍的是16×16点阵LED显示系统。
硬件部分主要使用星研ES598PCI 实验箱中的可编程并行接口芯片8155,可编程并行接口芯片8255,16×16点阵LED,8位开关等连接组成点阵LED显示控制系统的基本电路。
软件部分采用了汇编语言编写程序代码,通过判断、跳转、循环等基本技术实现LED显示点阵汉字,汉字的滚动显示;并用8位开关结合8155,实现汉字滚动显示速度和方向的控制等。
该系统显示直观,工作稳定,操作简单,与商用LED显示具有类似的显示和滚动原理,具备较强的实用价值。
关键词:点阵LED显示,16×16 LED,星研ES598PCI,8155,8255SummaryThis thesis mainly describe the LED system with 16×16. The hardwares rely on programmable parallel interface chip 8155 and 8255, LED system with 16×16, 8-bit switches of STAR ES598PCI to compose the basic electrocircuit of LED control system. The software is written in assemble language. The Chinese character rolling display is realized through determination, jumping and looping. The speed and direction of rolling is controlled with 8155 along with the 8-bit switch. This system is intuitionistic, works steadily, and is easy to manipulate. It shares the same theory of displaying and rolling with the commercial LED system, which means it have a strong use value.Keyword:LED display system, 16×16 LED, STAR ES598PCI, 8155, 8255目录1. 引言.............................................................................................................. - 5 -2. 设计环境....................................................................................................... - 5 -3. 设计要求....................................................................................................... - 6 -4. 总体设计....................................................................................................... - 6 -5. 硬件设计....................................................................................................... - 6 -5.1. 16×16点阵LED ...................................................................................... - 7 -5.2.可编程并行接口芯片8255........................................................................... - 8 -5.3.可编程并行接口芯片8155........................................................................... - 9 -5.4.总体电路构架......................................................................................... - 10 -6. 软件设计......................................................................................................- 11 -6.1.主程序流程.............................................................................................- 11 -6.2.显示子程序流程...................................................................................... - 12 -6.3.重复显示流程......................................................................................... - 12 -6.4.横/纵向显示流程 .................................................................................... - 13 -6.5.按键测试流程......................................................................................... - 15 -6.6.延时流程 ............................................................................................... - 15 -7. 系统测试..................................................................................................... - 16 -8. 总结............................................................................................................ - 17 -引言1. 引言LED(Light Emitting Diode),发光二极管,简称LED,,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。
单片机的16X16LED点阵式汉字电子显示屏的
单片机的16X16LED点阵式汉字电子显示屏的武汉理工大学《单片机课程设计》实验报告学号:0121018700318课程设计题目4个8x8点阵LED电子显示屏的设计学院物流学院专业物流工程班级物流ZY1001姓名宋金龙指导教师朱宏辉2013 年 6 月25 日武汉理工大学《单片机课程设计》报告武汉理工大学《单片机课程设计》实验报告摘要本设计是基于MCS-51的16x16点阵LED电子显示屏的设计,16x16的点阵共有256个发光二极管,我们采用动态扫描的显示方法,更节省锁存器也就节省了成本。
扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。
具体就16x16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(即我们采用共阳极的接法)。
采用扫描方式进行显示时,每一行和每一列都有一个行驱动器和列驱动器,各行的同名列和各列的同名行共用一个驱动器。
我们采用四个74LS273锁存器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
编写点阵显示程序,利用proteus画出电路原理图并装入程序仿真调试,仿真成功后完成电路焊接并装入程序完成实物设计。
整个设计过程让我们学到许多实践知识!LED显示屏作为一种新型的显示器件,是由多个发光二极管按矩阵形式排列封装而成,通常用来显示时间、图文等信息,由点阵LED组成的汉字显示屏在工工程所应用非常广泛。
LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。
在实际应用中的显示屏由于成本和可靠性的因素常采用一种称为动态扫描的显示方法。
本文设计的是一个室内用16x16的点阵LED图文显示屏,图形或文字显示有静止、移入移出等显示方式。
本设计是基于MCS-51单片机的16x16显示屏,其中包含了硬件、软件、调试等方案的设计。
16x16点阵显示实验报告
16*16点阵显示实验报告一、实验目的(1)学习点阵显示字符的基本原理。
(2)掌握用数控分频控制速度,实现点阵扫描的基本方式。
(3)会使用Quartus II软件中的Verilog HDL语言实现点真的行列循环显示。
二、实验设备与器件Quartus II 软件、EP2C8Q208C8实验箱三、实验方案设计1.实验可实现的功能可通过编写Verilog HDL语言,实现点阵的行列交替扫描。
先是行扫描,扫描间隔为1s,16行都扫描完之后开始列扫描,扫描间隔仍然为1s,16列扫描完之后,行继续扫描,依次循环。
2.点阵基本知识16*16扫描LED点阵只要其对应的X、Y轴顺向偏压,即可使LED发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
应用时限流电阻可以放在X轴或Y轴。
它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。
LED点阵每个点都有一个红色的发光二极管。
点阵内的二极管间的连接都是行共阳,列共阴。
本实验采用共阴,当二极管的共阳极为高电平,共阴极为低电平时,所接点发光;反之处于截止状态,不放光。
3.系统工作原理本系统用了两个模块,其中dianzhen.v是顶层文件,而hangsaomiao.v和liesaomiao.v是两个子模块,总体的系统功能框图如图3.3.1所示。
图3.3.1 系统功能图示通过流程图可以看到,体统是先将试验箱的50MHz时钟信号分频为1s,因为要实现16*16的点阵扫描,所以用一个16s的计时器计时,每经过16s行扫描与列扫描的状态转换一次,通过点阵显示出来。
4.模块化程序设计(1)点阵显示顶层程序设计module dianzhen (clk50mhz,row,sel0,sel1,sel2,sel3,line);input clk50mhz; //实验箱提供50MHz时钟信号output sel0,sel1,sel2,sel3; //设置引脚选通点阵output reg [15:0] row; //行output reg [3:0] line; //列wire [15:0] row1,row2;wire [3:0] line1,line2;reg [24:0] cnt=0; //1Hz计数子reg [4:0] cnt1=0; //16s计数子assign sel0=1'b0;assign sel1=1'b1;assign sel2=1'b0;assign sel3=1'b0;always@(posedge clk50mhz)beginif(cnt>=25'd5*******)begincnt<=25'b0; //1Hz计时器cnt1<=cnt1+1; //16s计时器endelsecnt<=cnt+1;endhangsaomiao u1(.clk50mhz(clk50mhz),.row(row1),.line(line1)); liesaomiao u2(.clk50mhz(clk50mhz),.row(row2),.line(line2));always@(*)if(cnt1<=5'd15)beginrow<=row1; //行扫描line<=line1;endelsebeginrow<=row2; //列扫描line<=line2;endendmodule(2)行扫描模块hangsaomiao.v程序设计module hangsaomiao(clk50mhz,line,row);input clk50mhz; //实验箱输入50MHz时钟信号output reg [15:0] row; //列output reg [3:0] line; //行reg [24:0] cnt1,cnt2; //计数子reg clkrow,clkline; //行脉冲、列脉冲always@(posedge clk50mhz)beginif(cnt1>=25'd5*******)begincnt1<=25'b0;clkrow=~clkrow; //1s列脉冲endelsecnt1<=cnt1+1;endalways@(posedge clk50mhz)beginif(cnt2>=25'd500)begincnt2<=25'b0;clkline=~clkline; //50KHz行脉冲endelsecnt2<=cnt2+1;endalways@(posedge clkline)begincase(line)4'd0:line<=4'd1; //高速行扫描4'd1:line<=4'd2;4'd2:line<=4'd3;4'd3:line<=4'd4;4'd4:line<=4'd5;4'd5:line<=4'd6;4'd6:line<=4'd7;4'd7:line<=4'd8;4'd8:line<=4'd9;4'd9:line<=4'd10;4'd10:line<=4'd11;4'd11:line<=4'd12;4'd12:line<=4'd13;4'd13:line<=4'd14;4'd14:line<=4'd15;4'd15:line<=4'd0;default:line<=4'd0;endcaseendalways@(posedge clkrow) //时间间隔为1s的列扫描begincase(row)16'b0000000000000001: row<=16'b0000000000000010;16'b0000000000000010: row<=16'b0000000000000100;16'b0000000000000100: row<=16'b0000000000001000;16'b0000000000001000: row<=16'b0000000000010000;16'b0000000000010000: row<=16'b0000000000100000;16'b0000000000100000: row<=16'b0000000001000000;16'b0000000001000000: row<=16'b0000000010000000;16'b0000000010000000: row<=16'b0000000100000000;16'b0000000100000000: row<=16'b0000001000000000;16'b0000001000000000: row<=16'b0000010000000000;16'b0000010000000000: row<=16'b0000100000000000;16'b0000100000000000: row<=16'b0001000000000000;16'b0001000000000000: row<=16'b0010000000000000;16'b0010000000000000: row<=16'b0100000000000000;16'b0100000000000000: row<=16'b1000000000000000;16'b1000000000000000: row<=16'b0000000000000001;default : row<=16'b0000000000000001;endcaseendendmodule(3)列扫描模块liesaomiao.v程序设计module liesaomiao(clk50mhz,row,line);input clk50mhz; //实验箱输入50MHz 时钟信号output reg [15:0] row; //行output reg [3:0] line; //列reg [24:0] cnt; //计数子reg clk;always@(posedge clk50mhz)beginif(cnt>=25'd5*******)begincnt<=25'b0;clk=~clk; //1sendelsecnt<=cnt+1;endalways @ (posedge clk) //列扫描begincase(line)4'h0:begin row=16'b1111111111111111;line<=4'h1; end4'h1:begin row=16'b1111111111111111;line<=4'h2; end4'h2:begin row=16'b1111111111111111;line<=4'h3; end4'h3:begin row=16'b1111111111111111;line<=4'h4; end4'h4:begin row=16'b1111111111111111;line<=4'h5; end4'h5:begin row=16'b1111111111111111;line<=4'h6; end4'h6:begin row=16'b1111111111111111;line<=4'h7; end4'h7:begin row=16'b1111111111111111;line<=4'h8; end4'h8:begin row=16'b1111111111111111;line<=4'h9; end4'h9:begin row=16'b1111111111111111;line<=4'ha; end4'ha:begin row=16'b1111111111111111;line<=4'hb; end4'hb:begin row=16'b1111111111111111;line<=4'hc; end4'hc:begin row=16'b1111111111111111;line<=4'hd; end4'hd:begin row=16'b1111111111111111;line<=4'he; end4'he:begin row=16'b1111111111111111;line<=4'hf; end4'hf:begin row=16'b1111111111111111;line<=4'h0; enddefault:line<=4'h0;endcaseendendmodule5.下载电路及引脚分配设计设计中用实验箱自带的50MHz时钟信号作为输入端,用sel0、sel1、sel2、sel3四个使能端选通点阵,EP2C8Q208C8就会工作在给点阵下命令的状态,并用line和row分别作为点阵的行、列选通端,最终使得点阵正常工作,如图3.5.1所示。
16x16LED点阵实验
16x16LED点阵实验实验名称:16x16 LED点阵实验实验⽬的:利⽤单⽚机I/O⼝实现LED点阵的⾏扫描动态显⽰。
实验原理:1、LED显⽰器的基本结构:七段显⽰器:将发光⼆极管封装成数码显⽰的形式。
共阳七段显⽰器:共阴七段显⽰器:点阵式显⽰器:发光⼆极管封装成点阵形式,构成不同的字符甚⾄汉字、图形。
发光⼆极管排列成矩阵,由亮与暗来产⽣字符或图形。
每⼀⾏的阳极连在⼀起,每⼀列的阴极连在⼀起。
2、点阵显⽰的原理:点阵显⽰器每⼀列的阴极连在⼀起,对每⼀列⽽⾔相当于⼀个共阴显⽰器。
同时每⼀⾏的阳极连在⼀起,相当于七段显⽰器的笔划。
这样,可以把5X7的发光⼆极管点阵看作⼀个五位显⽰器。
可采⽤动态显⽰电路,以笔划锁存器控制⾏信号,以位锁存器控制列信号。
3、实验原理图使⽤两⽚8位输出锁存移位寄存器74HC595(三态输出、串⼊并出),将单⽚机I/O⼝发出的串⾏数据转换为并⾏数据LD_QA~LD_QP,作为16×16 LED点阵显⽰器的⾏线,使⽤另外两⽚8位74HC595作为 16×16 LED点阵显⽰器的列线LD_1~LD_16。
当⾏输出⾼电平、列输出低电平时,可以点亮点阵。
74HC595:LD-QA~LD-QP:点阵⾏控制信号LD-1~LD-16:点阵列控制信号SER(14脚):串⾏数据输⼊端-SCLR(10脚):低电平时将移位寄存器的数据清零。
通常将它接Vcc。
SCK(11脚):上升沿时将串⾏数据移⼊移位寄存器。
RCK(12脚):上升沿时移位寄存器的数据锁存⼊数据寄存器。
-G(13脚): ⾼电平时禁⽌输出(⾼阻态)时序图:实验内容:在16×16LED点阵上分别⽤静态⽅式和滚屏⽅式显⽰⾃⼰的姓(⾏扫描)。
实验步骤:使⽤导线将A2区的P10~P14与C3区的L_DAT_H 、L_DAT_L、L_CLK、L_OE 、 L_STR 实验设计:电路图:(修改后加上了74HC595输出端⼝与LED点阵相连的端⼝名称)流程图:代码及注释:HL EQU 70H ;⾏信号低位内存地址LL EQU 72H ;列信号低位内存地址HD EQU P1.0 ;p1.0⼝连⾏信号输⼊端LD EQU P1.1 ;P1.1⼝连列信号输⼊端SCK EQU P1.2 ;P1.2⼝连移位寄存器OE EQU P1.3 ;P1.3⼝连使能端RCK EQU P1.4 ;P1.4⼝连锁存器ORG 8000H ;硬件仿真程序LJMP MAINORG 8100H ;硬件仿真程序MAIN:MOV DPTR,#DISPLAY ;字模表地址MOV R1,#00H ;字模表起始地址偏移量MOV HL,#01H ;⾏扫描信号的初值0001HMOV HL+1,#00HLOOP:MOV A,R1MOVC A,@A+DPTRMOV LL,A ;找到列低位数据,存⼊内存地址中INC R1MOV A,R1MOVC A,@A+DPTRMOV LL+1,A ;找到列⾼位数据,存⼊内存地址中LCALL SENDD ;调⽤传输数据的程序LCALL DELAY ;调⽤延时程序CLR C ;位处理累加器清零MOV A,HLRLC A ;左移⾏扫描信号低8位MOV HL,AMOV A,HL+1RLC A ;左移⾏扫描信号⾼8位MOV HL+1,AINC R1CJNE R1,#20H,LOOP ;判断⼀轮扫描是否结束LJMP MAINSENDD:CLR OE ;使能信号低电平有效CLR RCK ;RCK信号置0MOV R2,#08HMOV R3,LL+1 ;列信号⾼⼋位地址MOV R4,HL+1 ;⾏信号⾼⼋位地址BACK:CLR SCK ;SCK信号置0MOV A,R3RLC AMOV R3,AMOV LD,C ;列信号逐位传输MOV A,R4RLC AMOV R4,AMOV HD,C ;⾏信号逐位传输SETB SCK ;SCK信号上升沿到来,将串⾏数据移⼊移位寄存器DJNZ R2,BACK ;判断⾼8位信号是否传输完毕MOV R2,#08HMOV R3,LL ;列信号低8位地址MOV R4,HL ;⾏信号低8位地址BACK1:CLR SCK ;SCK信号置0MOV A,R3RLC AMOV R3,AMOV LD,C ;列信号逐位传输MOV A,R4RLC AMOV R4,AMOV HD,C ;⾏信号逐位传输SETB SCK ;SCK信号上升沿到来,将串⾏数据移⼊移位寄存器DJNZ R2,BACK1 ;判断低8位信号是否传输完毕SETB RCK ;RCK信号上升沿到来,移位寄存器的数据锁存⼊数据寄存器RET DELAY: ;延时⼦程序MOV R7,#50DELAY1:MOV R6,#10DELAY2:DJNZ R6,$DJNZ R7,DELAY1RETDISPLAY:DB 0xFF,0xFE,0xE0,0xEE,0xEF,0xCE,0xEF,0xF6,0xE1,0xFA,0xFD,0xFC,0xFD,0xFE,0x3D,0x80;DB 0xE0,0xFA,0xED,0xFA,0xEF,0xF6,0xEF,0xF6,0xEF,0xEE,0xEF,0x9A,0x6B,0xDC,0xF7,0xFE;"张" END 2、滚屏⽅式流程图:代码及注释:HL EQU 70H ;⾏信号低位内存地址LL EQU 72H ;列信号低位内存地址HD EQU P1.0 ;p1.0⼝连⾏信号输⼊端LD EQU P1.1 ;P1.1⼝连列信号输⼊端SCK EQU P1.2 ;P1.2⼝连移位寄存器OE EQU P1.3 ;P1.3⼝连使能端RCK EQU P1.4 ;P1.4⼝连锁存器ORG 8000H ;硬件仿真程序LJMP MAINORG 8100H ;硬件仿真程序MAIN:MOV DPTR,#DISPLAY ;字模表地址MOV R1,#00HMOV R7,#00H ;R7⽤来表⽰字模表起始位置偏移量LOOP:MOV R5,#20 ;R5⽤来表⽰延时,改变R5的值可改变滚屏速度LOOP1: MOV R6,#10H ;R6⽤来判断是否扫描完⼀轮MOV A,R7 ;将R7的值赋值给R1MOV R1,AMOV HL,#01H ;⾏扫描信号的初值0001HMOV HL+1,#00HLOOP2:MOV A,R1MOVC A,@A+DPTRMOV LL,A ;找到列低位数据,存⼊内存地址中INC R1MOV A,R1MOVC A,@A+DPTRMOV LL+1,A ;找到列⾼位数据,存⼊内存地址中LCALL SENDD ;调⽤传输数据的程序LCALL DELAY ;调⽤延时程序CLR C ;位处理累加器清零MOV A,HLRLC A ;左移⾏扫描信号低⼋位MOV HL,AMOV A,HL+1RLC A ;左移⾏扫描信号⾼⼋位MOV HL+1,AINC R1DEC R6CJNE R6,#00H,LOOP2 ;通过R6判断是否扫描完⼀轮,R6减为0,⼀轮扫描结束DJNZ R5,LOOP1 ;通过R5判断⼀帧的延时是否达到INC R7 ;改变字模表的偏移量INC R7 ;R7连续加2,相当于换⾏CJNE R7,#40H,LOOP ;判断字模表是否结束LJMP MAINSENDD:CLR OE ;使能信号低电平有效CLR RCK ;RCK信号置0MOV R2,#08HMOV R3,LL+1 ;列信号⾼8位地址MOV R4,HL+1 ;⾏信号⾼8位地址BACK:CLR SCK ;SCK信号置0MOV A,R3RLC AMOV R3,AMOV LD,C ;列信号逐位传输MOV A,R4RLC AMOV R4,AMOV HD,C ;⾏信号逐位传输SETB SCK ;SCK信号上升沿到来,将串⾏数据移⼊移位寄存器DJNZ R2,BACK ;判断⾼⼋位信号是否传输完毕MOV R2,#08HMOV R3,LL ;列信号低⼋位地址MOV R4,HL ;⾏信号低⼋位地址BACK1:CLR SCK ;SCK信号置0MOV A,R3RLC AMOV R3,AMOV LD,C ;列信号逐位传输MOV A,R4RLC AMOV R4,AMOV HD,C ;⾏信号逐位传输SETB SCK ;SCK信号上升沿到来,将串⾏数据移⼊移位寄存器DJNZ R2,BACK1 ;判断低⼋位信号是否传输完毕SETB RCK ;RCK信号上升沿到来,移位寄存器的数据锁存⼊数据寄存器RETDELAY: ;延时⼦程序MOV R2,#50DELAY1:MOV R3,#10DELAY2:DJNZ R3,$DJNZ R2,DELAY1RETDISPLAY:DB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFFDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF;预留空⽩DB 0xFF,0xFE,0xE0,0xEE,0xEF,0xCE,0xEF,0xF6,0xE1,0xFA,0xFD,0xFC,0xFD,0xFE,0x3D,0x80;DB 0xE0,0xFA,0xED,0xFA,0xEF,0xF6,0xEF,0xF6,0xEF,0xEE,0xEF,0x9A,0x6B,0xDC,0xF7,0xFE;"张" END实验结果与分析:1、程序正确运⾏后,可看到16x16 LED点阵显⽰屏上显⽰“张”,LED灯的亮暗程度有些不均匀。
LED点阵显示仿真----由浅入深之8X8,16X16,24X24LED点阵流动显示
一直以来,对LED点阵显示很感兴趣,特别是流动点阵显示。
论坛里有不少例子,效果都不是很满意。
于是,自己动手。
先试作了8X8点阵。
8X8的点太少,只适合数字显示,从0 ~9流动,效果还不错。
有了8X8的经验,对流动显示的原理已经了解,又试了16X16的,觉得也不难。
但16X16的点仍嫌少了,又做了个24X24的,汉字漂亮。
动画可能效果差些,软件运行显示效果好多了。
8X8初学点阵仿真,常点不亮LED 。
首先,可能是点阵的极性没有正确的接线。
下面的简单方法可判断点阵的逻辑引脚。
运行proteus,在编辑区里放上一个8X8LED,如MA TRIX-8x8-GREEN。
在某些引脚上接上电源和地,试试能不能点亮。
8X8默认是上下引脚,按习惯接法,上面接电源,下面接地,不亮(图左)。
用左下角垂直翻转工具,垂直翻转,再接上电源和地,就可以点亮了(下图)。
如果是做左移显示,可再左旋90°。
如图:这里可看到,左边引脚是行控制,右边引脚是列控制。
然后就可以画线路图了,点阵就保持上面那个方向。
由于点阵引线较多,特别是以后做24X24点阵,所以布线方式不用连线,而用终端加上网络标号,这样可以使画面简洁明了。
连续标号的快捷画法,我以前有帖子介绍过。
这里还是再啰嗦一下。
proteus有一个很好用的PA T(Property Assignment Tool),即属性分配工具。
可以用来做快捷标注,当然还可以用作其它操作。
再连上其它接线,一个线路图很快就可以作好。
下面,就可以写程序的源文件了。
点击菜单\Source,下拉菜单第一条Add/Remove Source Files,按键New,在跳出的对话框里写上新文件名,如8X8.asm,打开。
提示这个文件不存在,要创建吗?是。
然后点Code Gereration tool小箭头,选ASM51 ,点OK。
然后,菜单\Source,看到多了个8X8.asm,点击,出现proteus自带的汇编编辑器,就可以在里面写代码了。
16×16LED点阵屏原理图及驱动程序
16×16LED点阵屏原理图及驱动程序16×16LED点阵屏原理图及驱动程序这是我玩LED点阵屏的第一块电路板,也是学习单片机入门的第一个实验器材。
它由4片30mm×30mm的8×8红色高亮点阵模块与两片74HC595、两片74HC138、16只8550晶体管、一片74HC244集装在一块宽高65mm×210mm的双面PCB板上,它应该是一组级联安装的LED屏的一个单元模块,拿到它时,我正在学习《无线电》杂志2007/11期刊上杜洋的一组文章,刚刚做好了ISP下载线,只做了“一个发光二极管的控制实验”,面对这个既好玩又陌生的玩意,真是无从下手,通过上网学习,解析研究,前后弄了两个多月,最后在《无线电》杂志2005/12期的配文程序的帮助下,终于踏进了点阵控制的门槛,两年过去了,我又玩了许多单片机控制器件,但这块屏却一直摆在我的桌案上,每当遇到难题时,看看它那稳定清晰的显示,我都能找到许多灵感;最近、在摆弄一块并行驱动的16×64点阵屏时(前几篇文章介绍了)时,因为用的还是这段程序,就又想起了它,虽然程序已经详解过了,但是,为了留记一段经历、一段回忆,决定还是“貂续狗尾”写在这里,留着自己欣赏吧。
一.原理图:二.汉字左右移动驱动程序/**************************************** ***************************************** *****16×16LED点阵屏原理图及C源汉字左右移动显示驱动程序————wannenggong单片机:AT89S52出函数void loadoneline_L(void); //取字码数据函数//void loadoneline_R(void);void sendoneline_L(void); //生成显示数据函数//void sendoneline_R(void);/**************************************** ****************************关于595第13脚的问题:原附图中13脚是接GND的,是电路板的原始设计,调试过程中将IC 引脚与电路板隔离后经244引出做为OE引脚,其作用仅为配合延时适度的调整屏显亮度,若13脚接GND,则为全亮度显示,与其他控制并无干涉。
Proteus 8 Professional制作16x16点阵屏详细教程
Proteus 8 Professional制作16x16点阵屏详细教程1.先设置Proteus 8网格为50th,如下:2.在Proteus 8库中找一个8x8 Red 点阵,如下:3.将鼠标移至8x8Red点阵边缘,鼠标变成手形,点阵变色时点右键,选择下面的“分解”,如图:4.点击“分解”后,8x8点阵就会有如下显示,表示进入可编辑状态,符号“”是点阵图形的“原点”,相当于坐标定位,引脚出现了“X”:5.将鼠标移动到点阵边缘,点阵图形变色后,点击右键,选择“移动对象”,将背景板移开:6.点击Proteus 8左边工具栏的“二维图形符号模式”,有如下显示。
”LEDMATRIX_R_0_0”的含义是:LEDMATRIX: 点阵代号(名字)R : RED(红色)0 :点阵第一行0 :逻辑0,表示关闭(低电平)LEDMATRIX_R_0_1”的含义是:LEDMATRIX: 点阵代号(名字)R : RED(红色)0 :点阵第一行1 :逻辑1,表示打开(高电平)其他的相同,只是行号改变了,“LEDMATRIX_R_C”是背景板属性。
7.8x8点阵行的“点”排列顺序如下图,“7”是第8行,“0”是第1行。
图中为什么有“红点”,“黑点”与“”,等会儿再说。
8.知道了8x8点阵“点”的排列方法,就可以排16x16点阵的“点”了,8x8点阵已经有了8行,我们就只排9—16行的“点”。
前面讲的“LEDMATRIX_R_0_1”代表逻辑1,它就代表图中的“红色点”,LEDMATRIX_R_0_0”代表逻辑0,它就代表图中的“黑色点”,那怎么操作呢?鼠标左键点击“SYMBOLS”框中的“LEDMATRIX_R_0_1”,再在Proteus 8的工作区空白处左键点击以下,就会出现一个“点”跟随鼠标移动,你如果选择好了位置,再左键点击以下,就将“红点”放在了工作区。
鼠标左键点击“SYMBOLS”框中的“LEDMATRIX_R_0_1”“点”跟随鼠标移动“红点”放在了工作区9.现在开始来排9—16行的“红点”,在“SYMBOLS”框中任意点击一个尾号是“1”的点属性,如“LEDMATRIX_R_0_1”,然后从9行依次斜线排列“红点”到16行。
单片机课程设计 16×16 LED点阵广告屏课程设计
一、设计依据16x16点阵需要32个驱动,分别为16个列驱动及16个行驱动。
每个行与每个列可以选中一个发光管,共有256个发光管,采用动态驱动方式。
每次显示一行后再显示下一行。
本设计是利用实验仪上的16×16 LED点阵显示器,编写显示英文、汉字字符程序并进行显示,最好能移动显示。
要求在本设计过程中,通过设计合适的硬件电路及对应的软件,实现上述的控制过程,同时写出合格的课程设计说明书。
二、要求及主要内容1.硬件电路设计(1)完成89C51应用系统设计(晶振电路,上电复位电路等)(2)利用单片机I/O口或以扩展锁存器的方式控制点阵显示。
掌握单片机与16×16点阵块之间接口电路的设计方法。
2.程序设计掌握单片机与16×16点阵块之间接口电路的设计方法及编程要求完成主程序的设计及对应的子程序设计。
3.选芯片, 元件按设计连线4.完成子程序调试5.完成总调试三、途径和方法综合运用单片机和电子电路相关知识,实现本次设计。
进行程序设计时先画流程图再进行程序设计。
子程序调试按以下步骤进行:(1)实验板与PC机联机。
(2)利用实验系统16×16点阵实验单元,以两种方式控制点阵显示。
要求编制程序实现汉字点阵循环显示。
四、时间安排1.课题讲解:2小时。
2.阅读资料:10小时。
3.撰写设计说明书:12小时。
4.修订设计说明书:6小时。
摘要LED点阵显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。
它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。
并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。
LED显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。
LED点阵显示屏可以显示数字或符号,通常用来显示时间、速度、系统状态等。
16×16LED点阵显示屏单片机课程设计
单片微型计算机(single chip microcomputer)简称单片机,它是为各类专用控制器而设计的通用或专用微型计算机系统,高密度集成了普通计算机微处理器,一定容量的RAM和ROM以及输入/输出接口,定时器等电路于一块芯片上构成的。
单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。
单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字,汉字显示屏也广泛应用到汽车报站器,广告屏等。
所以研究LED显示有实用的意义。
LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。
本设计是4个16×16点阵LED电子显示屏的设计。
整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。
通过该芯片控制一个行驱动器74LS154和八个列驱动器74HC595来驱动显示屏显示。
该电子显示屏可以显示各种文字或单色图像,全屏能显示4个汉字,采用16块8 x 8点阵LED显示模块来组成4个16x16点阵显示模式。
显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。
文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。
关键词:AT89C51单片机 LED 16*16点阵显示动态显示目录第一章绪论 (1)1.1 设计课题背景知识 (1)1.2 问题提出 (3)1.3 LED显示屏的发展 (4)第二章功能要求及方案论证 (6)2.1 功能要求 (6)2.1 功能要求 (6)第三章系统电路的设计 (9)3.1 设计框图及介绍 (9)3.2 51系列单片机简介 (9)3.3 单片机最小应用系统电路设计 (13)3.4 LED点阵介绍 (14)3.5 LED显示方式 (14)3.6 点阵的移动 (17)3.7 点阵的颜色 (21)3.8 LED阵列驱动电路 (21)3.9 单片机延时子程序 (22)第四章系统程序的设计 (24)4.1 显示驱动程序 (24)4.2 系统主程序 (25)第五章调试及性能分析 (32)5.1 开发环境介绍 (32)5.2 理论性能分析 (32)5.3 系统调试 (33)第六章总结 (34)致谢 (35)附录 (36)一. 程序代码 (36)系统主程序 (37)二.主要芯片介绍 (42)三.点阵左移显示的流程图 (46)四.元件清单 (47)五.参考文献 (47)六.仿真电路图 (48)第一章绪论1.1 设计课题背景知识单片微型计算机(single chip microcomputer)简称单片机,它是为各类专用控制器而设计的通用或专用微型计算机系统,高密度集成了普通计算机微处理器,一定容量的RAM和ROM以及输入/输出接口,定时器等电路于一块芯片上构成的。
16X16LED点阵屏滚动显示说明书
湄洲湾职业技术学院16X16LED点阵屏滚动显示说明书系别:自动化工程系年级:10级专业:电气自动化姓名:小容学号:1001010114 导师姓名:蔡小明职称:讲师2013年 5 月 28 日1.前言 (1)2.系统设计技术参数要求 (3)3.系统设计 (4)3.1系统设计总体框图 (5)3.2系统各模块说明 (6)3.3系统总原理图说明 (7)3.4印刷电路板的制作图 (7)3.5硬件调试 (7)3.5.1系统操作注意事项 (7)3.5.2调试所用设备及过程 (8)3.5.3测试结果分析与结论 (8)参考文献 (9)致谢词 (10)附录 (11)附录1元件清单 (12)附录2系统电路总图 (13)在微型计算机技术使用上,单片机主要用与工业测控,如家用电器,计算机外围设备,工业智能化仪表,机器人,生产过程的自动控制,农业,化工,军事,航空航天等领域等,都有着巨大的作用。
作为21世纪的工科大学生,不仅要熟练地使用通用微机进行各种数据处理,还要把计算机技术运用到本专业领域或相关领域,即具有“开发”能力。
新世纪的工科大专院校的大学生既要掌握通用微机,又要掌握单片机,所以学习单片机这一门学科对我们的学习很重要。
大家都知道,现在市面上已出现很多有关点阵显示器的商品,如广告活动字幕机、股票显示板、活动布告栏等。
它的优点是可按需要的大小、形状、单色、或彩色来组合,可与微处理器连接,做各种广告栏文字或图形变化。
因此可知汉字显示系统在人民的生活当中是何等的重要,也是研究的课题之一。
16*16点阵LED字符显示器系统在工业、各种比赛场合及日常生活应用中占有十分重要的地位,多年来,研究此项目的工程技术人员曾为简化电路、提高可靠性、降低成本,付出了很大的努力,做出不少成绩。
如今,美观、价廉、体积小、高可靠性8*8点阵LED字符显示器的出现,为这一领域的技术打开了新的天地。
LED字符显示器发发展到今天已经从模拟化、分立化迈进数字化、集成化LED系统。
LED点阵显示仿真由浅入深之8X8,16X16,24X24LED点阵流动显示
一直以来,对LED点阵显示很感兴趣,特别是流动点阵显示。
论坛里有不少例子,可是在我的电脑上大多无法正常运行。
有的一运行就S机,能运行的,也是字符不清。
于是,自己动手。
先试作了8X8点阵。
8X8的点太少,只适合数字显示,从0 ~9流动,效果还不错。
有了8X8的经验,对流动显示的原理已经了解,又试了16X16的,觉得也不难。
但16X16的点仍嫌少了,又做了个24X24的,汉字漂亮。
动画可能效果差些,软件运行显示效果好多了。
一、8X8初学点阵仿真,常点不亮LED 。
首先,可能是点阵的极性没有正确的接线。
下面的简单方法可判断点阵的逻辑引脚。
运行proteus,在编辑区里放上一个8X8LED,如MA TRIX-8x8-GREEN。
在某些引脚上接上电源和地,试试能不能点亮。
8X8默认是上下引脚,按习惯接法,上面接电源,下面接地,不亮(图左)。
用左下角垂直翻转工具,垂直翻转,再接上电源和地,就可以点亮了(图右)。
如果是做左移显示,可再左旋90°这里可看到,左边引脚是行控制,右边引脚是列控制。
然后就可以画线路图了,点阵就保持上面那个方向。
由于点阵引线较多,特别是以后做24X24点阵,所以布线方式不用连线,而用终端加上网络标号,这样可以使画面简洁明了。
连续标号的快捷画法,我以前有帖子介绍过。
这里还是再啰嗦一下。
proteus有一个很好用的PA T(Property Assignment Tool),即属性分配工具。
可以用来做快捷标注,当然还可以用作其它操作。
再连上其它接线,一个线路图很快就可以作好。
下面,就可以写程序的源文件了。
点击菜单\Source,下拉菜单第一条Add/Remove Source Files,按键New,在跳出的对话框里写上新文件名,如8X8.asm,打开。
提示这个文件不存在,要创建吗?是。
然后点Code Gereration tool小箭头,选ASM51 ,点OK。
然后,菜单\Source,看到多了个8X8.asm,点击,出现proteus自带的汇编编辑器,就可以在里面写代码了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16×16按字显示程序:
;P0和P2口输出字型码,P1口输出列线扫描。
ORG 0000H
SJMP LOOP
ORG 0080H
LOOP:MOV A,#00H ;开机初始化,清除画面MOV P0,A ;清除P0口
ANL P2,#00 ;清除P2口
MOV R2,#200
D100MS: MOV R3,#250 ;延时100毫秒
DJNZ R3,$
DJNZ R2,D100MS
MOV 20H,#00H ;字型码指针赋初值
L100: MOV R1,#10 ;每个字的停留时间
L16: MOV R6,#16 ;每个字16个16位码
MOV R4,#00H ;列线扫描指针清零,接4-16译码器,。
MOV R0,20H ;字型码指针存入R0
L3: MOV A,R4 ;列线扫描指针存入A
MOV P1,A ;列线扫描输出
INC R4 ;扫描指针加1,指向下一列
MOV A,R0 ; 取码指针存入A
MOV DPTR,#TABLE ;取数据表的上半部分的代码
MOVC A,@A+DPTR
MOV P0,A ; 输出到P0
INC R0 ;取字型码指针加1,取下一个码。
MOV A,R0
MOV DPTR,#TABLE ;取数据表下半部份的代码
MOVC A,@A+DPTR
MOV P2,A ;输出到P2口
INC R0 ;取字型码指针加1,取下一个码。
MOV R3,#02 ;扫描1毫秒
DELAY2:MOV R5,#248
DJNZ R5,$
DJNZ R3,DELAY2
MOV A,#00H ;清除屏幕
MOV P0,A
ANL P2,#00H
DJNZ R6,L3 ;一个字16个码是否完成?
DJNZ R1,L16 ;每个字的停留时间是否到了?
MOV 20H,R0 ;取码指针存入20H(静态显示)
CJNE R0,#224,L100 ;7个字224个码是否完成?
JMP LOOP ;反复循环
16×16滚动显示程序:
ORG 0000H
SJMP LOOP
ORG 0080H
LOOP:MOV A,#00H ;开机初始化,清除画面
MOV P0,A ;清除P0口
ANL P2,#00 ;清除P2口
MOV R2,#200
D100MS: MOV R3,#250 ;延时100毫秒
DJNZ R3,$
DJNZ R2,D100MS
MOV 20H,#00H ;字型码指针赋初值
L100: MOV R1,#10 ;每个字的停留时间
L16: MOV R6,#16 ;每个字16个16位码
MOV R4,#00H ;列线扫描指针清零,接4-16译码器,。
MOV R0,20H ;字型码指针存入R0
L3: MOV A,R4 ;列线扫描指针存入A
MOV P1,A ;列线扫描输出
INC R4 ;扫描指针加1,指向下一列
MOV A,R0 ; 取码指针存入A
MOV DPTR,#TABLE ;取数据表的上半部分的代码
MOVC A,@A+DPTR
MOV P0,A ; 输出到P0
INC R0 ;取字型码指针加1,取下一个码。
MOV A,R0
MOV DPTR,#TABLE ;取数据表下半部份的代码
MOVC A,@A+DPTR
MOV P2,A ;输出到P2口
INC R0 ;取字型码指针加1,取下一个码。
MOV R3,#02 ;扫描1毫秒
DELAY2:MOV R5,#248
DJNZ R5,$
DJNZ R3,DELAY2
MOV A,#00H ;清除屏幕
MOV P0,A
ANL P2,#00H
DJNZ R6,L3 ;一个字16个码是否完成?
DJNZ R1,L16 ;每个字的停留时间是否到了?
INC 20H ;向左滚动显示
INC 20H
CJNE R0,#224,L100 ;7个字224个码是否完成?
JMP LOOP
TABLE:
TABLE:
DB 08H, 02H, 08H, 01H, 89H ,00H ,0CEH ,0FFH
DB 0A8H, 00H, 18H, 83H, 00H, 40H, 0FEH, 30H
DB 82H, 0FH, 82H,00H, 82H, 00H, 82H, 7FH
DB 0FEH, 80H, 00H, 80H, 00H, 0F0H, 00H, 00H;祝",0 DB 80H, 00H, 40H, 00H, 0F0H, 7FH, 2CH, 00H
DB 43H, 10H, 20H, 0CH, 98H, 03H, 0FH, 21H
DB 0AH, 40H, 0E8H, 3FH, 08H, 00H, 88H, 00H
DB 28H, 03H, 1CH, 1CH, 08H, 08H, 00H, 00H;"你",1 DB 00H, 01H, 80H, 40H, 60H, 40H, 1EH, 41H
DB 10H, 41H, 10H, 41H, 10H, 41H, 10H, 41H
DB 0FFH, 7FH, 12H, 41H, 10H, 41H, 10H, 41H
DB 98H, 41H, 10H, 61H, 00H, 40H, 00H, 00H;"生",2 DB 00H, 00H, 00H, 00H, 00H, 00H, 0FEH, 3FH
DB 42H, 10H, 42H, 10H, 42H, 10H, 42H, 10H
DB 42H, 10H, 42H, 10H, 42H, 10H, 0FEH, 3FH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H;"日",3 DB 70H, 00H, 00H, 00H, 0FFH, 0FFH, 08H, 00H
DB 0B0H, 80H, 88H, 40H ,88H, 30H, 88H, 0EH
DB 0FFH, 01H, 88H, 06H, 88H, 08H, 88H, 30H
DB 0F8H, 60H, 80H, 0C0H, 80H, 40H, 00H, 00H;"快",4 DB 00H, 00H, 00H, 20H, 40H, 18H, 0FCH, 0CH
DB 44H, 07H, 44H, 12H, 44H, 20H, 46H, 40H
DB 0FAH, 3FH, 42H, 00H, 43H, 00H, 43H, 02H
DB 42H, 0CH, 40H, 38H, 00H, 10H, 00H, 00H;"乐",5 DB 00H, 00H, 00H, 00H, 00H, 00H, 0F0H, 5FH;
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H;
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H;
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H;"!",6 End。