24.8X8LED点阵显示技术
1.实验任务
在8X8LED点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑
移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,女口此
循环下去.b5E2RGbCAP
2.电路原理图
AT89Sil
12MH=LC2=30p
图4.24.1
3.硬件电路连线
(1>.把“单片机系统”区域中地P1端口用8芯排芯连接到“点阵模块”区域
中地“DR4DR8端口上;plEanqFDPw
(2>.把“单片机系统”区域中地P3端口用8芯排芯连接到“点阵模块”区域
中地“DC1-DC8端口上;DXDiTa9E3d
4.程序设计内容
4-
>
FJ3/fNTl
P3.4/TO
P3.5ZFIPl
o
A
i
n/A[H-]FO
1/AD1PO
2/AD2
PO.3/AD3PO
4/AE-lPO
5/ADSPO
6/AWPO
7/AD7
P27JA15
P25/A13
P24JA13
P^-3/Al1
P22/A1O
P21JA9
P30/A8
3
9
2U
38
37
”
33
34
33
32
3C
曲
28
27
26
23
24
23
22
21
Pi0
PI1
Pl.2
Pl3
Pl.4
P)5
PiA
Pl7
CR1
舷
GND
(1>.8X8点阵LED工作原理说明
8X8点阵LED结构如下图所示
DC8
DC7
DC6
DC5
DC4
DC3
DC2
图4.24.2
从图4.24.2中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管
是放置在行线和列线地交叉点上,当对应地某一列置1电平,某一行置0电平,则相
应地二极管就亮;因此要实现一根柱形地亮法,如图49所示,对应地一
列为一根竖柱,或者对应地一行为一根横柱,因此实现柱地亮地方法如下所述:
RTCrpUDGiT
一根竖柱:对应地列置1,而行则采用扫描地方法来实现一根横柱:对应地行置0,
而列则采用扫描地方法来实现
5.汇编源程序
ORG00H
START:NOP
MOVR3,#3
LOP2:MOVR4,#8
MOVR2,#0
LOP1:MOVP1,#0FFH
MOVDPTR,#TABA
MOVA,R2
MOVCA,@A+DPTR
MOVP3,A
INCR2
LCALLDELAY
DJNZR4,LOP1
DJNZR3,LOP2
MOVR3,#3
LOP4:MOVR4,#8
MOVR2,#7
LOP3:MOVP1,#0FFH
MOVDPTR,#TABA
MOVA,R2
MOVCA,@A+DPTR
MOVP3,A
DECR2
LCALLDELAY
DJNZR4,LOP3
DJNZR3,LOP4
MOVR3,#3
LOP6:MOVR4,#8
MOVR2,#0
LOP5:MOVP3,#00H
MOVDPTR,#TABB
MOVA,R2
MOVCA,@A+DPTR
MOVP1,A
INCR2
LCALLDELAY
DJNZR4,LOP5
DJNZR3,LOP6
MOVR3,#3
LOP8:MOVR4,#8
MOVR2,#7
LOP7:MOVP3,#00H
MOVDPTR,#TABB
MOVA,R2
MOVCA,@A+DPTR
MOVP1,A
DECR2
LCALLDELAY
DJNZR4,LOP7
DJNZR3,LOP8
LJMPSTART
DELAY:MOVR5,#10
D2:MOVR6,#20
D1:MOVR7,#248
DJNZR7,$
DJNZR6,D1
DJNZR5,D2
RET
TABA:DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
TABB:DB01H,02H,04H,08H,10H,20H,40H,80H
END6.C语言源程序
#include
unsignedcharcodetaba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}
unsignedcharcodetabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}
voiddelay(void>
{
unsignedchari,j。
for(i=10。i>0。i-->
for(j=248。j>0。j-->。
}
voiddelay1(void>
{
unsignedchari,j,k。
for(k=10。k>0。k-->
for(i=20。i>0。i-->
for(j=248。j>0。j-->。
voidmain(void>
{unsignedchar
i,j
while(1>
{
for(j=0oj<3。j++>
{
for(i=0oi<8oi++>
{
P3=taba[i]o
P1=0xffo
delay1(>o
}
}
for(j=0oj<3oj++>
{
for(i=0oi<8oi++>
{
P3=taba[7-i]o
P1=0xffo
delay1(>o
}
}
for(j=0oj<3oj++>
{
for(i=0oi<8oi++>
{
P3=0x00o
P1=tabb[7-i]o
delay1(>o}
}
for(j=0oj<3oj++>
{
for(i=0oi<8oi++>
{
P3=0x00o
P1=tabb[i]o
//fromlefttoright3
time
//fromrighttoleft3
time
//fromtoptobottom3
time
//frombottomtotop3
time
delay1(>。
}
}
}
}5PCzVD7HxA
本文发布于:2022-11-13 05:32:26,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/9122.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |