LED16X16点阵实验.doc

上传人:doc321 文档编号:14911941 上传时间:2022-02-24 格式:DOC 页数:14 大小:203KB
返回 下载 相关 举报
LED16X16点阵实验.doc_第1页
第1页 / 共14页
LED16X16点阵实验.doc_第2页
第2页 / 共14页
LED16X16点阵实验.doc_第3页
第3页 / 共14页
LED16X16点阵实验.doc_第4页
第4页 / 共14页
LED16X16点阵实验.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《LED16X16点阵实验.doc》由会员分享,可在线阅读,更多相关《LED16X16点阵实验.doc(14页珍藏版)》请在三一文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! 哈尔滨理工大学单片机原理及接口技术课程设计报告设计题目: LED16*16点阵实验 专 业: 目 录1 课程设计意义 .31.1本次课程设计的目的.32.2本次课程设计的意义.32 设计功能 .33 设计思路 .34 设计步骤 .3 4.1总体设计 .34.2 硬件设计 .44.2.1 LED显示及其驱动.44.2.2 可编程并行接口芯片8155.54.3 软件设计 .54.3.1 程序框图 .64.3.2 整体程序 .65 调试过程.75.1 硬件调试.75.2 软件调试.76 结果分析与心得体会.76.1结果分析.76.2心得与体会.87附录

2、:整体程序.81课程设计目的与意义 1.1本次课程设计的目的1)熟悉单片机编程原理。 2)熟练掌握 51 单片机的控制电路和最小系统。3)单片机基本应用系统的设计方法。2.2本次课程设计的意义LED显示屏具有亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定等特点。广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。因此16*16LED点阵实验的课程设计对实际的生产和生活具有非常重要的指导意义2 设计功能 设计一个能显示16X16点阵图文LED显示屏,要求能显示文字,文字应稳定、清晰,文字以卷帘形式向

3、上滚动显示“欢迎使用星研实验仪”。3 设计思路 1616点阵LED电子显示屏的设计:能依次显示“欢迎使用星研软件”几个字符。LED点阵中没有16X16的点阵,可以通过四个8X8的LED点阵对应的行和列分别连接起来构成16X16点阵,此时共需要32根行列控制线,对单片机来说明显不够,需要外扩I/O接口。可以选择的芯片有8255、8155等。设计过程中注意LED的驱动电压。 本实验单片机采用AT89C51,扩展采用74LS244N、8255A、8155A、74LS240N。LED采用动态扫描的显示方法。这样扫描驱动电路就可以实现多行的同名列共用一套驱动器。具体就1616的点阵来说,把所有同1行的发

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

5、器的数据传输可以采用并列方式或串行方式。采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。4 设计步骤 4.1 总体设计图1 总体设计框架4.2 硬件设计本次设计采用了STAR ES598PCI实验仪,它提供了众多实用

6、、新颖的接口实验,提供了一些模块的汇编例子程序、使用说明,可以满足单片机、微机原理课程的开放式实验教学,各种实时控制实验。它布局合理,清晰明了,模块化设计,可以升级,兼容性强,使用方便,易于维护。因此本实验硬件使用该实验仪。使用实验仪的A2、A3和B4。区具体连线按以下说明:表1 连线说明连接区接线位置标号(依次)被连接区被接线位置标号(依次)B4区CS(8255)、A0、A1A3区CS1、A0、A1B4区CS(8152)、IO/MA3区CS2、A8B4区JP56、JP53A2区JP23、JP24(行输出线)B4区JP52、JP76A2区JP33、JP34(列输出线) 4.2.1 LED显示及

7、其驱动图2 LED驱动原理图在该电路中JP23、JP24组成16根行扫描线;JP33、JP34组成16根列扫描线。行扫描线是低电平有效,列扫描线是高电平有效。 实际连线的时候需注意,行线跟8255的PA口,PB口要高低位对应,不可接反。而1616点阵LED的两根列线编号跟点阵是相反的,故连线的时候两根列线要与8255的PC口,8155的PA口高低位反接。4.2.2 可编程并行接口芯片8155图 3 8155硬件电路图 8155采用40脚双列直插式封装,单一5v电源。 RESET:复位信号线,高电平有效,在该输入端加一脉冲宽度为600ns 的高电平信号,就可使8155可靠复位,复位时三个输入/输

8、出口预置为输入方式。 CE:片选端,8155为低电平有效,8156为高电平有效,当8155上加上一个低电平时,芯片被选中,可以与单片机交换信息。 AD0AD7:三态地址/数据总线,在ALE 的下降沿把8位地址锁存于内部地址锁存器,地址可代RAM或输入/输出用,由IO/M信号的极性而定,8位数据的流向取决于RD或WR信号的状态。 PA0PA7:输入/输出口A的信号线,通用8位输入/输出口,输入/输出的方向通过对命令/状态寄存器的编程来选择。 PB0PB7:输入/输出口B的信号线,通用8位输入/输出口,输入/输出的方向通过对命令/状态寄存器的编程来选择。 PC0PC5:输入/输出口C的信号线,6位

9、可编程输入/输出口,也可用作A和B口的控制信号线,通过对命令/状态寄存器编程来选择。4.3 软件设计 本软件要求实现如下要求:汉字要稳定、明亮并且文字要以一定速度上升滚动显示。- 13 - / 144.3.1程序框图NYYN建立“欢迎使用星研实验仪”字符表开始初始化8255,PA、PB、PC口为输出口测试16*16 LED是否全亮初始化8155,PA口为输出口延时熄灭16*16 LED延时字符数-计数器0字符表首地址-DPTR16-计数器1(一屏行数)显示一屏子程序DPTR=DPTR+2计数器1 1 = 0计数器0 1 = 0NN8-计数器2(一屏刷新8次)16-计数器3OFFFEH-R3R2

10、(允许显示第一行)R2R3-8255的PA、PB取字符表中数据-AA的0.7位调整到A的7.0位A-8255的PC口(左边行)R3R2循环左移一位计数器3 -1=0计数器2 -1=0取字符表中数据-AA的0.7位调整到A的7.0位A-8155的PA(右边行)延时10ms返回YY开始图4 程序流程图 通过定时中断使程序进入显示程序,显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,定时的大小一显示稳定不闪烁为准。然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关

11、闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。4.3.2程序总体设计显示软件模块分为:初始化模块、测试模块、扫描模块、多字滚动模块、显示模块。显示程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。软件设计中,显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。显示驱动程序在进入中

12、断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:刷频率(帧频)=1/16T0溢=1/16f/12(65536-t)*其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约几秒;

13、接着向上滚动显示“欢迎使用星研实验”这几个汉字,然后以“卷帘入”效果隐去文字。由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。如果想改变些事内容,先用字模产生字代码,将用这段代码覆盖原来的代码,即可显示你想要的内容。5 调试过程调试主要分为硬件调试和软件调试。5.1 硬件调试 首先检查实验仪是否能够正常使用。在实验仪断电情况下,严格按照前面硬件设计中

14、的接线说明进行接线。最后连接下载线和电源线。5.2 软件调试在实验仪通电,PC与实验仪连接的情况下,使用星研软件调用已设计好的程序进行硬件测试。在调试过程中出现倒叙、字体相反、字体显示不完整、闪烁等现象,经检查是由于排线接线顺序错误。6 结果分析与心得体会6.1结果分析经调试,16X16LED点阵已经能正常循环显示“欢迎使用星研实验仪”,无闪烁现象。每个字停留大约1S。显示的文字较稳定、清晰。文字向上滚动显示。基本达到了设计要求。本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。可以直接应用与实际生产和生活当中,非常实用。6.2心得与体会一、在这次点阵设计的过程让我进一步熟悉星

15、研软件的使用。二、本次调试中结果由于不能完全了解个电子器件、造成线路连接错误。三、通过这次点阵设计,重新复习并进一步学习了51系列单片机,明确了研究目标。四、本文设计的LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字以移入或移出方式显示。五、在以后的设计中,既要想到电路器件的联合使用,又要灵活变通,举一反三。安全规范使用实验仪。加强动手能力和自主学习能力。7 附录:整体程序;用8255的PA、PB、PC口和8155的PA口做LED16*16点阵显示实验A8255_PAXDATA0FF00H;8255的A0、A1接总线

16、的A0、A1A8255_PBXDATA0FF01H;A8255_PCXDATA0FF02HA8255_CTLXDATA0FF03HA8155_PAXDATA0E101H;8155的IO/M接P2.0A8155_CTLXDATA0E100HLINE1XDATAA8255_PA;列线1LINE2XDATAA8255_PB;列线2ROW1XDATAA8255_PC;行线1ROW2XDATAA8155_PA;行线2ORG0000HAJMPSTARTORG0100HSTART:MOVSP,#60HCALLINIT_IOCALLTEST_LED;调用测试子程序,测试LED是否全亮CALLCLEAR;滚动显

17、示多个字符CHS_SHOW:MOVR7,#9;显示(R3)个字符MOVDPTR,#CHAR_TABCHS_1:MOVR1,#16;移动16次CHS_2:ACALLDISP_CH;显示一桢INCDPTRINCDPTRDJNZR1,CHS_2DJNZR7,CHS_1SJMPCHS_SHOW;显示一个16*16点阵字子程序,字型码放在DPTR指出的地址,显示时间为20*R7MSDISP_CH:PUSH07HMOVR7,#08HDISP_CH_1:ACALLDISP1DJNZR7,DISP_CH_1POP07HRET;显示一个16*16点阵字子程序,字型码放在显示缓冲区XBUFFDISP1:PUSHD

18、PLPUSHDPHMOVR6,#16;计数器,16列依次被扫描MOVR2,#0FEH;上8行输出值MOVR3,#0FFH;下8行输出值REPEAT:MOVP2,#HIGH(LINE1)MOVR0,#LOW(LINE1)MOVA,R2MOVXR0,A;上8行输出MOVR0,#LOW(LINE2)MOVA,R3MOVXR0,A;下8行输出CLRAMOVCA,A+DPTRINCDPTRACALLADJUST;调整A,将A中二进制数旋转180度MOVR0,#LOW(ROW1)MOVXR0,A;左边列输出CLRAMOVCA,A+DPTRINCDPTRACALLADJUST;调整A,将A中二进制数旋转18

19、0度MOVP2,#HIGH(ROW2)MOVR0,#LOW(ROW2)MOVXR0,A;右边列输出ACALLDL10msACALLCLEARSETBC;循环移位R2R3,行线扫描输出0MOVA,R2RLCAMOVR2,AMOVA,R3RLCAMOVR3,ADJNZR6,REPEATPOPDPHPOPDPLRET;8155和8255初始化INIT_IO:MOVDPTR,#A8255_CTL;8255控制字地址MOVA,#80H;设置8255的PA、PB、PC口为输出口MOVXDPTR,A;写控制字MOVDPTR,#A8155_CTL;8155控制字地址MOVA,#00000011B;设置8155

20、的PA口为输出MOVXDPTR,A;写控制字RETCLEAR:MOVA,#0FFHMOVP2,#HIGH(LINE1)MOVR0,#LOW(LINE1)MOVXR0,AMOVR0,#LOW(LINE2)MOVXR0,ACLRAMOVR0,#LOW(ROW1)MOVXR0,AMOVP2,#HIGH(ROW2)MOVR0,#LOW(ROW2)MOVXR0,ARET;调整A中取到的字型码的一个字节,将最高位调整位最低位,最低位调整为最高位ADJUST:MOVR5,#8;循环移位8次实现ADJUST1:RLCAXCHA,BRRCAXCHA,BDJNZR5,ADJUST1MOVA,BRET;测试LED子

21、程序,点亮LED并延时1STEST_LED:MOVDPTR,#LINE1CLRAMOVXDPTR,AMOVDPTR,#LINE2MOVXDPTR,AMOVDPTR,#ROW1MOVA,#0FFHMOVXDPTR,AMOVDPTR,#ROW2MOVXDPTR,ACALLDL500msCALLDL500msRET;延时10msDL10ms:MOVR4,#2DL10ms1:MOVR5,#230DJNZR5,$DJNZR4,DL10ms1RETDL500ms:MOV R5,#10DL500ms1:MOV R6,#200DL500ms2:MOV R7,#123DJNZ R7,$DJNZ R6,DL500

22、ms2DJNZ R5,DL500ms1RETCHAR_TAB:HUAN:;*“欢”*DB 000H, 0C0H,000H, 0C0H,0FEH, 0C0H,007H, 0FFHDB 0C7H, 086H,06FH, 06CH,03CH, 060H,018H, 060HDB 01CH, 060H,01CH, 070H,036H, 0F0H,036H, 0D8HDB 061H, 09CH,0C7H, 00FH,03CH, 006H,000H, 000HYING:;*“迎”*DB 060H,000H,031H, 0C0H, 03FH, 07EH, 036H, 066HDB 006H,066H,006

23、H, 066H, 0F6H, 066H, 036H, 066HDB 037H,0E6H,037H, 07EH, 036H, 06CH, 030H, 060HDB 030H,060H,078H, 000H, 0CFH, 0FFH, 000H, 000HSHI0:;*“使”*DB 000H, 000H,006H, 030H,007H, 030H,00FH, 0FFHDB 00CH, 030H,01FH, 0FFH,03BH, 033H,07BH, 033HDB 01BH, 0FFH,01BH, 033H,019H, 0B0H,018H, 0E0HDB 018H, 060H,018H, 0FCH,0

24、19H, 08FH,01FH, 003HYONG: ;*“用”*DB 000H, 000H,01FH, 0FEH,018H, 0C6H,018H, 0C6HDB 018H, 0C6H,01FH, 0FEH,018H, 0C6H,018H, 0C6HDB 018H, 0C6H,01FH, 0FEH,018H, 0C6H,018H, 0C6HDB 030H, 0C6H,030H, 0C6H,060H, 0DEH,0C0H, 0CCHXING:;*“星”*DB 000H, 000H, 01FH, 0FCH, 018H, 00CH, 01FH, 0FCHDB 018H, 00CH, 01FH, 0FC

25、H, 001H, 080H, 019H, 080HDB 01FH, 0FEH, 031H, 080H, 031H, 080H, 06FH, 0FCHDB 001H, 080H, 001H, 080H, 07FH, 0FFH, 000H, 000HYAN:;*“研”*DB 000H, 000H, 0FFH, 0FFH, 018H, 0CCH, 018H, 0CCHDB 030H, 0CCH , 030H, 0CCH, 07FH, 0FFH, 07CH, 0CCHDB 0FCH, 0CCH , 03CH, 0CCH, 03CH, 0CCH, 03DH, 08CHDB 03DH, 08CH, 033

26、H, 00CH, 006H, 00CH, 00CH, 00CHSHI:;*“实”*DB 001H, 080H, 000H, 0C0H, 03FH, 0FFH, 03CH, 006HDB 067H, 0CCH, 006H, 0C0H, 00CH, 0C0H, 007H, 0C0HDB 006H, 0C0H, 07FH, 0FFH, 000H, 0C0H, 001H, 0E0HDB 003H, 030H, 006H, 018H, 01CH, 01CH, 070H, 018HYAN0:;*“验”*DB 000H, 000H, 0FCH, 060H, 00CH, 060H, 06CH, 0F0HDB

27、06CH, 0D8H, 06DH, 08FH, 06FH, 0F8H, 07EH, 000HDB 006H, 0C6H, 007H, 066H, 03FH, 0ECH, 0E7H, 0ECHDB 006H, 018H, 01FH, 0FFH, 00CH, 000H, 000H, 000HYI:;*“仪”*DB 00CH, 0C0H, 00CH, 060H, 018H, 07CH, 01BH, 06CHDB 033H, 00CH, 073H, 018H, 0F1H, 098H, 031H, 098HDB 030H, 0F0H, 030H, 0F0H, 030H, 060H, 030H, 0F0HDB 031H, 098H, 033H, 00FH, 03EH, 006H, 030H, 000HNONE:;送暗码(不显示)DB 000H,000H, 000H,000H, 000H,000H, 000H,000HDB 000H,000H, 000H,000H, 000H,000H, 000H,000HDB 000H,000H, 000H,000H, 000H,000H, 000H,000HDB 000H,000H, 000H,000H, 000H,000H, 000H,000HEND

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1