微机接口实验-16x16点阵显示
16×16点阵显示实验 实验报告

1.实验现象
当设计文件加载到目标器件后,将数字信号源模块的时钟选择为1KHZ,按下矩阵键盘的某一个键,则在数码管上显示对应的这个键标识的键值,当再按下第二个键的时候前一个键的键值在数码管上左移一位。按下“*”键则在数码管是显示“E”键值。按下“#”键在数码管上显示“F”键值。
2.实验图片记录
2)新建VHDL File(程序)
3)编译仿真
4)管脚分配
5)下载调试
2)加强对总线产生地址定位的CPLD实现方法的理解
3)掌握在FPGA中调用ROM的方法
成绩: 教师:
实验报告
一、实验内容及步骤
1.实验内容
1)通过编程实现对16×16点阵的控制
2)在点阵循环中显示“欢迎使用嵌入式SDC开发系统”这几个汉字和字符
3)运用软件对程序进行编译和仿真
2.实验步骤:
1)新建工程
成绩: 教师: 批改日期:
பைடு நூலகம்湖南科技大学
物理与电子科学学院专业实验报告
实验课程:FPGA实验原理
实验项目:16×16点阵显示实验
专 业:物理与电子科学学院
班 级:电子信息科学与技术3班
***********
学 号:**********
实验日期: 年 月 日
实验预习报告
一、实验目的及要求
1)加强点阵字符产生的显示原理和系统的16×16点阵的工作原理
单片机16×16点阵显示实验总结400字

单片机16×16点阵显示实验总结400字单片机16×16点阵显示实验总结这次实验我们使用单片机设计了16×16点阵显示器的驱动电路,并成功实现了在点阵上显示字符、数字和图案的功能。
下面是对本次实验的总结。
首先,我们按照实验手册的指示,采用逐行扫描的方式驱动16×16点阵显示器。
通过设置接口电路和引脚连接,将单片机与点阵电路相连,实现数据和控制信号的传输。
接着,我们编写了相应的程序代码,在单片机上进行编译和烧录,并使用示波器进行调试。
在调试过程中,我们发现了一些常见的问题,比如接口线连接错误、引脚配置错误等,及时解决这些问题,确保了实验的顺利进行。
接下来,我们开始编写点阵显示的控制程序。
通过对点阵每一个LED灯珠的亮灭状态进行控制,我们可以实现在点阵上显示不同的字符、数字和图案。
我们编写了一个字符库,其中包含了常用字符和数字的点阵码。
通过查表的方式,我们可以根据需要在点阵上显示相应的内容。
在编写程序的过程中,我们充分利用了单片机的IO口和定时器的功能,并采用了合理的算法,提高了程序的执行效率。
在实验过程中,我们遇到了一些困难和挑战。
首先,点阵显示器的像素较多,对于单片机的计算能力和IO口的数量有一定要求。
因此,在编写程序的过程中,我们需要注意内存和资源的使用,避免发生卡顿或者无法正常显示的情况。
其次,点阵显示器的扫描速度要求较高,需要通过设置定时器的中断来实现,以确保显示的稳定性和清晰度。
通过本次实验,我们不仅掌握了单片机的基本原理和编程技巧,还深入了解了点阵显示器的工作原理和驱动方式。
通过自主设计和编写代码,我们成功实现了在16×16点阵上显示字符、数字和图案的功能。
这不仅加深了我们对嵌入式系统的理解,还提高了我们的动手实践能力和问题解决能力。
总之,通过这次实验,我们不仅学到了很多知识,还锻炼了自己的动手能力和团队合作能力。
虽然在实验过程中遇到了一些困难,但通过不懈努力和团队合作,我们最终取得了成功。
16X16点阵显示综合实验new

EDA 综合课程设计(四)——16X16点阵显示综合实验16X16点阵控制接口一、 实验要求设计一个共阴16X16点阵控制接口,要求:在时钟信号的控制下,使点阵动态点亮,点亮方式自行设计,其中列选信号为16-4编码器编码输出。
控制器的引脚功能图如上图所示,其中:DIN[3..0]为显示花样模式选择,高电平有效;CLK 为时钟输入端;DOTOUT[15..0]为行驱动信号输出;SELOUT[3..0]为列选信号输出,为16-4编码信号。
图案1实现16X16点阵的16列同时从上往下依次点亮,全亮后16列又同时从下往上依次熄灭。
列选信号:采用与7段数码管的位选信号一样的处理方法,即列扫描信号频率大于24HZ 。
行驱动信号:可以采用移位的方法,可先定义一个16位的信号,若最高位置为‘1’,我们采用右移的方法,使每一位都置‘1’,这就实现依次点亮;当第0位也置‘1’后,给第0位置‘0’,二、实验内容16X16点阵控制接口引脚功能再采用左移的方法将每一位又重新置‘0’,这样就实现了反相依次熄灭,等第15位为‘0’时,又重新开始,以此循环。
对于其他的显示花样,请自行设计。
三、实验连线将CP端接时钟输出,并使输入频率约为1MHZ,DIN[3..0]分别接4位拨码开关,DOTOUT[15..0]分别接显示模块的L15~L0,SELOUT[3..0]分别接显示模块的SEL3~SEL0。
16X16点阵字符发生器一、实验目的:1、了解点阵字符的产生和显示原理。
2、了解E2PROM和16×16点阵LED的工作机理。
3、加强对于总线产生,地址定位的CPLD实现的理解。
二、硬件要求:1.主芯片EPF10K10LC84-4。
2.可变时钟源。
3.带有事先编程好字库/字符的E2PROM 2864。
4.16×16扫描LED点阵。
三、实验原理:16×16扫描LED点阵的工作原理同8位扫描数码管类似。
它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。
16X16点阵LED显示屏(单片机)毕业设计论文

第一章
1.1 设计课题背景知识
单片微型计算机(single chip microcomputer)简称单片机,它是为各类专用控制器而设计的通用或专用微型计算机系统,高密度集成了普通计算机微处理器,一定容量的RAM和ROM以及输入/输出接口,定时器等电路于一块芯片上构成的。
单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字,汉字显示屏也广泛应用到汽车报站器,广告屏等。所以研究LED显示有实用的意义。
用点阵方式构成图形或文字,是非常灵活的,可以根据需要任意组合和变化,只要设计好合适的数据文件,就可以得到满意的显示效果。因而采用点阵式图文显示屏显示经常需要变化的信息,是非常有效的。
图文显示屏的颜色,有单色、双色、和多色几种。最常用的是单色图文屏。单色屏多使用红色或橘红色或橙色LED点阵单元。双色图文屏和多色图文屏,在LED点阵的每一个“点”上布置有两个或多个不同颜色的LED发光器件。换句话说,对应于每种颜色都有自己的显示矩阵。显示的时候,各颜色的显示点阵是分开控制的。事先设计好各种颜色的显示数据,显示时分别送到各自的显示点阵,即可实现预期效果。每一种颜色的控制方法和单色的完全相同,因此掌握了单色图文显示屏的原理,双色屏和多色屏就不难理解了。
第二章
2.1
LED点阵总体框图如图1.1所示,点阵电路大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。控制电路部分包括一个51CUP和一些外围电路。在整个电路当中此控制电路部分相当于一个上位机,它负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路部分发送命令。点阵显示屏体、以及它的行和列的各个驱动电路。由于两部分的电路在制板时可以放到一起,所以可以将其字库放到控制电路部分使用串行通讯方式来与屏体电路部分进行数据和命令的传送。
16×16 LED点阵显示实验

16×16 LED点阵显示实验一、实验目的1、了解16×16矩阵LED显示的基本原理和功能2、掌握16×16矩阵LED和单片机的硬件接口和软件设计方法二、实验说明汉字显示屏广泛应用与汽车报站器,广告屏等。
实验介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,采用了16×16的点阵模块;汉字显示的原理我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。
即国标汉字库中的每一个字均由256点阵来表示。
我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。
所以在这个汉字屏上不仅可以显示汉字,也可以显示在256像素范围内的任何图形。
我们以显示汉字“大”为例,来说明其扫描原理:在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示。
如果用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。
一般我们把它拆分为上部和下部,上部由8*16点阵组成,下部也由8*16点阵组成。
在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p00---p07口。
方向为p00到p07 ,显示汉字“大”时,p05点亮,由上往下排列,为p0.0 灭,p0.1 灭, p0.2 灭p0.3 灭, p0.4 灭, p0.5 亮,p0.6 灭,p0.7 灭。
即二进制00000100,转换为16进制为 04h.。
上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从上图可以看到,这一列全部为不亮,即为00000000,16进制则为00h。
然后单片机转向上半部第二列,仍为p05点亮,为00000100,即16进制04h。
这一列完成后继续进行下半部分的扫描,p21点亮,为二进制00000010,即16进制02h. 依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“大”。
vhdl实验报告_16乘16点阵_列选_显示

综合实践总结报告综合实践名称: EDA技术与实践综合实践地点、时间一.题目功能分析和设计实验的要求有如下三点:1.用16*16点阵的发光二极管显示字符;2.可显示字符为0~9的数字字符与A~F英文字母的大写;3.输入为四位二进制矢量;按照要求可知,LED点阵模块,共由16×16=256个LED发光二极管组成,如何在该点阵模块上显示数字和字母是本实验的关键。
先将要显示的每一幅图像画在一个16×16共256个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布以数字8为例,点阵分布为:0000000000000000000000000000000000011111111110000001111111111000000110000001100000011000000110000001100000011000000111111111100000011111111110000001100000011000000110000001100000011000000110000001111111111000000111111111100000000000000000000000000000000000考虑到实际物理实验平台上点阵发光二极管的原理,以下为16×16点阵LED外观图,只要其对应的X、Y轴顺向偏压,即可使LED 发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
所以我采用行列扫描的方法,用四位二进制数做列选信号(总共16列),如选中第一列,则扫描第一列之中哪些行是高电平(1),哪些行是低电平(0);为高电平的则点亮,为低电平的不亮。
(列信号都接地)。
如此,列选信号由“0000”变到“1111”时,16列扫描完毕,一个字也就出来了,列选信号重新由“0000”开始扫描。
注意扫描频率必须要足够快,才能保证显示一个数字或字母时所有灯在肉眼看来是同时在闪烁的。
计算机接口程序设计-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,,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。
16x16 LED点阵实验

实验名称: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点阵相连的端口名称)1、静态方式:流程图:代码及注释: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信号上升沿到来,移位寄存器的数据锁存入数据寄存器RETDELAY: ;延时子程序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;"张" END2、滚屏方式流程图:代码及注释: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灯的亮暗程度有些不均匀。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验04·LED显示器王梦硕0930*******实验目的:在理解LED点阵工作原理的基础上,实践使用点阵显示字符。
实验原理:1·点阵式显示器:发光二级管排列成矩阵,由亮与暗来产生字符或图形。
每一样的阳极连在一起,每一列的阴极连在一起,如右图所示。
点阵显示器每一列的阴极连在一起,对每一列而言相当于一个共阴显示器。
同时每一行的阳极连在一起,相当于七段显示器的比划。
可采用动态显示电路,以笔画锁存器控制行信号,以位锁存器控制列信号。
2·74HC595实验中使用两片8位输出锁存移位寄存器74HC595(三态输出、串入并出),将单片机I/O口发出的串行数据转换为并行数据LD_QA~LD_QP,作为16x16 LED点阵显示器的行线,使用另外两片8位74HC595作为16x16 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点阵上分别用静态方式和滚屏方式显示自己的姓(行扫描)。
两个实验部分的电原理图是相同的,如下所示:1·静态方式:流程图:程序代码:L_DAT_H BIT P1.0L_DAT_L BIT P1.1L_STR BIT P1.2L_CLK BIT P1.3L_OE BIT P1.4ROWH EQU 40H ;字模信号(顺向取膜,高位在前)ROWL EQU 41HSELH EQU 42H ;行扫描信号SELL EQU 43HORG 0000HLJMP MAINORG 0100HMAIN:MOV R1, #01H ;配合字模信号MOV R2, #01H ;高字节在后,故从01开始MOV R3, #10H ;循环16次LOAD:MOV DPTR, #SEL_DATA ;存储行扫描信号MOV A, R1MOVC A, @A+DPTRMOV SELH, A ;存储高字节DEC R1 ;R1-1,指向低字节MOV A, R1MOVC A, @A+DPTRMOV SELL, A ;存储低字节INC R1INC R1INC R1 ;指向下一个高字节MOV DPTR, #ROW_DATA ;存储字模数据,过程同上MOV A, R2MOVC A, @A+DPTRMOV ROWH, ADEC R2MOV A, R2MOVC A, @A+DPTRMOV ROWL, AINC R2INC R2INC R2LCALL LATCH ;运行锁存自程序LCALL DELAY ;延时DJNZ R3, LOAD ;重复执行16次,显示所有行LJMP MAIN ;静态显示LATCH:CLR L_OE ;允许输出CLR L_STR ;为上升沿将移位寄存器数据锁存入数据寄存器MOV R4, SELH ; 做准备MOV R5, ROWH ;高位行扫描型号和字模信号MOV R6, #08H ;高低位分开读,每次读8位LATCH1:CLR L_CLK ;为上升沿读入移位寄存器做准备MOV A, R4RRC A ;移出最高位MOV R4, AMOV L_DAT_H, C ;由P1.0输出准备进入移位寄存器MOV A, R5RRC AMOV R5, AMOV L_DAT_L, C ;由P1.1输出准备进入移位寄存器SETB L_CLK ;CLK上升沿,P1.0和P1.1数据进入移位寄存器DJNZ R6, LATCH1;MOV R4, SELLMOV R5, ROWLMOV R6, #08HLATCH2: ;同上CLR L_CLKMOV A, R4RRC AMOV R4, AMOV L_DAT_H, CMOV A, R5RRC AMOV R5, AMOV L_DAT_L, CSETB L_CLKDJNZ R6, LATCH2;SETB L_STR ;STR上升沿移位寄存器数据所存入数据寄存器; 显示RETDELAY: ;延迟程序MOV R6, #02HLOOP1:MOV R7, #0F8H ;估算:1us*2*(1+2*248+2) = 998us ≈1ms LOOP2:DJNZ R7, LOOP2DJNZ R6, LOOP1;RETSEL_DATA: ;SELECT ROWDB 80H, 00HDB 40H, 00HDB 20H, 00HDB 10H, 00HDB 08H, 00HDB 04H, 00HDB 02H, 00HDB 01H, 00HDB 00H, 80HDB 00H, 40HDB 00H, 20HDB 00H, 10HDB 00H, 08HDB 00H, 04HDB 00H, 02HDB 00H, 01HROW_DATA:DB 0FFH, 0FFH, 80H, 03H, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0C0H, 07H;DB 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 00H, 01H, 0FFH, 0FFH;"王",0;END实验效果:字模效果:LED显示效果:2·滚屏方式:流程图:程序代码:L_DAT_H BIT P1.0L_DAT_L BIT P1.1L_STR BIT P1.2L_CLK BIT P1.3L_OE BIT P1.4ROWH EQU 40HROWL EQU 41HSELH EQU 42HSELL EQU 43HWAIT EQU 44H ;负责控制滚动速度ORG 0000HLJMP MAINORG 0100HMAIN:MOV R0, #01H ;每次重新滚动时初始化NEXT:MOV WAIT, #0AH ;滚动速度设置,数字越大滚动越慢ROLL:MOV A, R0 ;变换显示的第一行以完成滚动MOV R1, #01H ;行扫描信号不变MOV R2, AMOV R3, #10HLOAD:MOV DPTR, #SEL_DATA ;MOV A, R1MOVC A, @A+DPTRMOV SELH, A ;LOAD HIGH BYTEDEC R1 ;OF SELECT SIGNALMOV A, R1MOVC A, @A+DPTRMOV SELL, A ;LOAD LOW BYTEINC R1 ;OF SELECT SIGNALINC R1INC R1MOV DPTR, #ROW_DATAMOV A, R2MOVC A, @A+DPTRMOV ROWH, ADEC R2MOV A, R2MOVC A, @A+DPTRMOV ROWL, AINC R2INC R2INC R2LCALL LATCHLCALL DELAYDJNZ R3, LOAD; 以上与第一部分相同DJNZ WAIT, ROLL ;循环以延时INC R0INC R0 ;R0指向下一行,以实现滚动CJNE R0, #61H, NEXT ;所有字符显示完毕后开始新的一轮; 以下与第一部分相同LJMP MAINLATCH:CLR L_OECLR L_STRMOV R4, SELHMOV R5, ROWHMOV R6, #08HLATCH1:CLR L_CLKMOV A, R4RRC AMOV R4, AMOV L_DAT_H, CMOV A, R5RRC AMOV R5, AMOV L_DAT_L, CSETB L_CLKDJNZ R6, LATCH1;MOV R4, SELLMOV R5, ROWLMOV R6, #08HLATCH2:CLR L_CLKMOV A, R4RRC AMOV R4, AMOV L_DAT_H, CMOV A, R5RRC AMOV R5, AMOV L_DAT_L, CSETB L_CLKDJNZ R6, LATCH2;SETB L_STR;RETDELAY:MOV R6, #02HLOOP1:MOV R7, #0F8HLOOP2:DJNZ R7, LOOP2DJNZ R6, LOOP1;RETSEL_DATA: ;SELECT ROWDB 80H, 00HDB 40H, 00HDB 20H, 00HDB 10H, 00HDB 08H, 00HDB 04H, 00HDB 02H, 00HDB 01H, 00HDB 00H, 80HDB 00H, 40HDB 00H, 20HDB 00H, 10HDB 00H, 08HDB 00H, 04HDB 00H, 02HDB 00H, 01HROW_DATA:DB 0FFH, 0FFH, 80H, 03H, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0C0H, 07H;DB 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 00H, 01H, 0FFH, 0FFH;"王",0DB 0F7H, 0DFH, 0F7H, 0DFH, 81H, 03H, 0F7H, 0DFH, 0E3H, 8FH, 0D5H, 57H, 37H, 0D9H, 0FBH, 0FFH;DB 0F8H, 0FH, 0F7H, 0EFH, 0EBH, 0DFH, 0DDH, 0BFH, 0FEH, 7FH, 0FDH, 0FFH, 0F3H, 0FFH, 8FH, 0FFH;"梦",1DB 0FFH, 0FFH, 0FCH, 01H, 03H, 0DFH, 0EFH, 0BFH, 0EEH, 03H, 0DEH, 0FBH, 0C2H, 0FBH, 9AH, 0DBH;DB 9AH, 0DBH, 5AH, 0DBH, 0DAH, 0DBH, 0DAH, 0BBH, 0C3H, 0AFH, 0DBH, 77H, 0DEH, 0FBH, 0FDH, 0FBH;"硕",2DB 0FFH, 0FFH, 80H, 03H, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0C0H, 07H;DB 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 0FEH, 0FFH, 00H, 01H, 0FFH, 0FFH;"王",0; 为了实现无间隙滚动,最后16行与最前十六行设置相同字模数据END实验效果:字模效果:LED点阵效果:实验现象与记录:1·静态显示:正确地显示了“王”字,但是很明显地:每一行的所有点亮的等亮度相同,并且对每一行而言,亮的灯越多,则每盏灯越暗。