- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
点阵式LED简单图形显示技术
实验任务
在8X8点阵式LED显示“★”、“●”和心形图,通过按键来选择要显示的图形。
电路原理图
图4.26.1
硬件系统连线
(1).把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上;(2).把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上;(3).把“单片机系统”区域中的P2.0/A8端子用导线连接到“独立式键盘”区域中的SP1端子上;4.程序设计内容
“★”在8X8LED点阵上显示图如下图所示
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
1
2
3
4
5
6
7 8
12H,14H,3CH,48H,3CH,14H,12H,00H
“●在”8X8LED点阵上显示图如下图所示
● ● ●
● ●
● ●
● ●
● ● ●
1 2 3 4 5 6 7 8
00H,00H,38H,44H,44H,44H,38H,00H
心形图在8X8LED点阵上显示图如下图所示
● ● ● ●
● ● ●
● ●
● ●
● ●
●
1 2 3 4 5 6 7 8
30H,48H,44H,22H,44H,48H,30H,00H
5.汇编源程序CNTA EQU30HCOUNT EQU31H
ORG00HLJMPSTARTORG0BHLJMPT0XORG30H
START: MOVCNTA,#00H
MOVCOUNT,#00HMOVTMOD,#01H
MOVTH0,#(65536-4000)/256
MOVTL0,#(65536-4000)MOD256SETBTR0
SETBET0
SETBEA
WT: JBP2.0,WTMOVR6,#5MOVR7,#248
D1: DJNZR7,$
DJNZR6,D1JBP2.0,WTINCCOUNT
MOVA,COUNTCJNEA,#03H,NEXTMOVCOUNT,#00H
NEXT: JNBP2.0,$SJMPWT
T0X:NOP
MOVTH0,#(65536-4000)/256MOVTL0,#(65536-4000)MOD256MOVDPTR,#TAB
MOVA,CNTAMOVCA,@A+DPTRMOVP3,A
MOVDPTR,#GRAPHMOVA,COUNTMOVB,#8
MULABADDA,CNTA
MOVCA,@A+DPTRMOVP1,A
INCCNTAMOVA,CNTACJNEA,#8,NEX
MOVCNTA,#00H
NEX: RETI
TAB: DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FHGRAPH: DB12H,14H,3CH,48H,3CH,14H,12H,00H
DB00H,00H,38H,44H,44H,44H,38H,00H
DB30H,48H,44H,22H,44H,48H,30H,00HEND
6.C语言源程序
#include
unsignedcharcodetab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsignedcharcodegraph[3][8]={{0x12,0x14,0x3c,0x48,0x3c,0x14,0x12,0x00},
{0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00},
{0x30,0x48,0x44,0x22,0x44,0x48,0x30,0x00}
};
unsignedcharcount;unsignedcharcnta;voidmain(void)
{
unsignedchari,j;
TMOD=0x01;
TH0=(65536-4000)/256;
TL0=(65536-4000)%6;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(P2_0==0)
{
for(i=5;i0;i--)
for(j=248;j0;j--);if(P2_0==0)
{
count++;if(count==3)
{
count=0;
}
while(P2_0==0);
}
}
}
}
voidt0(void)interrupt1using0
{
TH0=(65536-4000)/256;
TL0=(65536-4000)%6;
P3=tab[cnta];P1=graph[count][cn
文档评论(0)