16x16 LED点阵实验Word文件下载.docx
- 文档编号:14745847
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:14
- 大小:590.22KB
16x16 LED点阵实验Word文件下载.docx
《16x16 LED点阵实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《16x16 LED点阵实验Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
使用两片8位输出锁存移位寄存器74HC595(三态输出、串入并出),将单片机I/O口发出的串行数据转换为并行数据LD_QA~LD_QP,作为16×
16LED点阵显示器的行线,使用另外两片8位74HC595作为16×
16LED点阵显示器的列线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、静态方式:
流程图:
代码及注释:
HLEQU70H;
行信号低位内存地址
LLEQU72H;
列信号低位内存地址
HDEQUP1.0;
p1.0口连行信号输入端
LDEQUP1.1;
P1.1口连列信号输入端
SCKEQUP1.2;
P1.2口连移位寄存器
OEEQUP1.3;
P1.3口连使能端
RCKEQUP1.4;
P1.4口连锁存器
ORG8000H;
硬件仿真程序
LJMPMAIN
ORG8100H;
MAIN:
MOVDPTR,#DISPLAY;
字模表地址
MOVR1,#00H;
字模表起始地址偏移量
MOVHL,#01H;
行扫描信号的初值0001H
MOVHL+1,#00H
LOOP:
MOVA,R1
MOVCA,@A+DPTR
MOVLL,A;
找到列低位数据,存入内存地址中
INCR1
MOVLL+1,A;
找到列高位数据,存入内存地址中
LCALLSENDD;
调用传输数据的程序
LCALLDELAY;
调用延时程序
CLRC;
位处理累加器清零
MOVA,HL
RLCA;
左移行扫描信号低8位
MOVHL,A
MOVA,HL+1
左移行扫描信号高8位
MOVHL+1,A
CJNER1,#20H,LOOP;
判断一轮扫描是否结束
LJMPMAIN
SENDD:
CLROE;
使能信号低电平有效
CLRRCK;
RCK信号置0
MOVR2,#08H
MOVR3,LL+1;
列信号高八位地址
MOVR4,HL+1;
行信号高八位地址
BACK:
CLRSCK;
SCK信号置0
MOVA,R3
RLCA
MOVR3,A
MOVLD,C;
列信号逐位传输
MOVA,R4
MOVR4,A
MOVHD,C;
行信号逐位传输
SETBSCK;
SCK信号上升沿到来,将串行数据移入移位寄存器
DJNZR2,BACK;
判断高8位信号是否传输完毕
MOVR3,LL;
列信号低8位地址
MOVR4,HL;
行信号低8位地址
BACK1:
DJNZR2,BACK1;
判断低8位信号是否传输完毕
SETBRCK;
RCK信号上升沿到来,移位寄存器的数据锁存入数据寄存器
RET
DELAY:
;
延时子程序
MOVR7,#50
DELAY1:
MOVR6,#10
DELAY2:
DJNZR6,$
DJNZR7,DELAY1
DISPLAY:
DB0xFF,0xFE,0xE0,0xEE,0xEF,0xCE,0xEF,0xF6,0xE1,0xFA,0xFD,0xFC,0xFD,0xFE,0x3D,0x80;
DB0xE0,0xFA,0xED,0xFA,0xEF,0xF6,0xEF,0xF6,0xEF,0xEE,0xEF,0x9A,0x6B,0xDC,0xF7,0xFE;
"
张"
END
2、滚屏方式
MOVR1,#00H
MOVR7,#00H;
R7用来表示字模表起始位置偏移量
MOVR5,#20;
R5用来表示延时,改变R5的值可改变滚屏速度
LOOP1:
MOVR6,#10H;
R6用来判断是否扫描完一轮
MOVA,R7;
将R7的值赋值给R1
MOVR1,A
MOVHL,#01H;
LOOP2:
MOVCA,@A+DPTR
左移行扫描信号低八位
MOVHL,A
左移行扫描信号高八位
DECR6
CJNER6,#00H,LOOP2;
通过R6判断是否扫描完一轮,R6减为0,一轮扫描结束
DJNZR5,LOOP1;
通过R5判断一帧的延时是否达到
INCR7;
改变字模表的偏移量
R7连续加2,相当于换行
CJNER7,#40H,LOOP;
判断字模表是否结束
列信号高8位地址
行信号高8位地址
SCK信号置0
判断高八位信号是否传输完毕
MOVR2,#08H
列信号低八位地址
行信号低八位地址
判断低八位信号是否传输完毕
MOVR2,#50
MOVR3,#10
DJNZR3,$
DJNZR2,DELAY1
DB0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
DB0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF;
预留空白
实验结果与分析:
1、程序正确运行后,可看到16x16LED点阵显示屏上显示“张”,LED灯的亮暗程度有些不均匀。
2、程序正确运行后,可看到16x16LED点阵显示屏上“张”滚动显示,方向由下至上,两个“张”字的显示间一段黑屏。
生成字模的设置为阳码,逐行式,逆向提取,十六进制。
刚开始做实验时,显示屏上显示的“张”字是暗的,而其余部分为亮。
因为最初用字模生成软件生成字模时选用的是阴码,故显示出的亮暗正好相反。
后将其改成了阳码,使所需显示的字点亮,而其余部分为暗。
由于实验中采用的是行扫描,字模生成时选择逐行式,每次扫描时将这一行置为高电平。
用于LED点阵每行的驱动能力有限,所以当某一行要点亮的LED灯的数量较多时,这一行点亮的LED灯的亮度会较暗;
反之,某一行要点亮的LED灯的数量较少时,被点亮的LED灯的亮度就会较亮。
因此,显示屏上显示的字的亮度会不均匀,且某些笔画较简单的字亮度的差别更为明显,而一些笔画较复杂的字亮度虽然差别不是特别大但整体显示较暗。
为使LED灯显示的亮度更均匀,需针对每行不同的情况外加驱动能力不同的驱动电路。
生成字模时选用逆向提取,故从第一行开始从左向右每取8个点作为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 16x16 LED点阵实验 16 x16 LED 点阵 实验