使用8X8点阵LED显示数字0到9的设计说明

1. 实验任务
利用8x8点阵显示数字0到9的数字。
2. 电路原理图
图4.25.1
3. 硬件系统连线
(1). 把“单片机系统”区域中的p1端口用8芯排芯连接到“点阵模块”区域中的“dr1-dr8”端口上;
(2). 把“单片机系统”区域中的p3端口用8芯排芯连接到“点阵模块”区域中的“dc1-dc8”端口上;
4. 程序设计内容
(1). 数字0-9点阵显示代码的形成
如下图所示,假设显示数字“0”
1 2 3 4 5  6 7 8
● ● ●
● ●
● ●
● ●
● ●
● ●
● ● ●
00 00 3e 41 41 41 3e 00
因此,形成的列代码为 00h,00h,3eh,41h,41h,3eh,00h,00h;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。
送显示代码过程如下所示
送第一列线代码到p3端口,同时置第一行线为“0”,其它行线为“1”,延时2ms左右,送第二列线代码到p3端口,同时置第二行线为“0”,其它行线为“1”,延时2ms左右,如此下去,直到送完最后一列代码,又从头开始送。
数字“1”代码建立如下图所示1 2 3 4 5  6 7 8

● ●




● ● ●
其显示代码为 00h,00h,00h,00h,21h,7fh,01h,00h
数字“2”代码建立如下图所示
1 2 3 4 5  6 7 8
● ● ●
● ●


● ● ● ●

● ● ● ● ●
00h,00h,27h,45h,45h,45h,39h,00h
数字“3”代码建立如下图所示
1 2 3 4 5  6 7 8
● ● ●
● ●

● ● ●

● ●
● ● ●
00h,00h,22h,49h,49h,49h,36h,00h
数字“4”代码建立如下图所示
1 2 3 4 5  6 7 8

● ●
● ●
● ●
● ● ● ● ●


00h,00h,0ch,14h,24h,7fh,04h,00h
数字“5”代码建立如下图所示
1 2 3 4 5  6 7 8
● ● ● ● ●

● ● ● ●


● ●
● ● ●
00h,00h,72h,51h,51h,51h,4eh,00h
数字“6”代码建立如下图所示
1 2 3 4 5  6 7 8
● ● ●
● ●

● ● ● ●
● ●
● ●
● ● ●
00h,00h,3eh,49h,49h,49h,26h,00h
数字“7”代码建立如下图所示
1 2 3 4 5  6 7 8
● ● ● ● ●






00h,00h,40h,40h,40h,4fh,70h,00h
数字“8”代码建立如下图所示
1 2 3 4 5  6 7 8
● ● ●
● ●
● ●
● ● ●
● ●
● ●
● ● ●
00h,00h,36h,49h,49h,49h,36h,00h
数字“9”代码建立如下图所示
1 2 3 4 5  6 7 8
● ● ●
● ●
● ●
● ● ● ●

● ●
● ● ●
00h,00h,32h,49h,49h,49h,3eh,00h
5. 汇编源程序
tim equ 30h
cnta equ 31h
cntb equ 32h
org 00h
ljmp start
org 0bh
ljmp t0x
org 30h
start: mov tim,#00h
mov cnta,#00h
mov cntb,#00h
mov tmod,#01h
mov th0,#(65536-4000)/256
mov tl0,#(65536-4000) mod 256
setb tr0
setb et0
setb ea
sjmp $
t0x:
mov th0,#(65536-4000)/256
mov tl0,#(65536-4000) mod 256
mov dptr,#tab
mov a,cnta
movc a,@a+dptr
mov p3,a
mov dptr,#digit
mov a,cntb
mov b,#8
mul ab
add a,cnta
movc a,@a+dptr
mov p1,a
inc cnta
mov a,cnta
cjne a,#8,next
mov cnta,#00h
next: inc tim
mov a,tim
cjne a,#250,nex
mov tim,#00h
inc cntb
mov a,cntb
cjne a,#10,nex
mov cntb,#00h
nex: reti
tab: db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,07fh
digit: db 00h,00h,3eh,41h,41h,41h,3eh,00h
db 00h,00h,00h,00h,21h,7fh,01h,00h
db 00h,00h,27h,45h,45h,45h,39h,00h
db 00h,00h,22h,49h,49h,49h,36h,00h
db 00h,00h,0ch,14h,24h,7fh,04h,00h
db 00h,00h,72h,51h,51h,51h,4eh,00h
db 00h,00h,3eh,49h,49h,49h,26h,00h
db 00h,00h,40h,40h,40h,4fh,70h,00h
db 00h,00h,36h,49h,49h,49h,36h,00h
db 00h,00h,32h,49h,49h,49h,3eh,00h
end
6. c语言源程序
#include
unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char code digittab[10][8]={   {0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00}, //0
{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00}, //1
{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00}, //2
{0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00}, //3
{0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00}, //4
{0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00}, //5
{0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00}, //6
{0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00}, //7
{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00}, //8
{0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00} //9
};
unsigned int timecount;
unsigned char cnta;
unsigned char cntb;
void main(void)
{
tmod=0x01;
th0=(65536-3000)/256;
tl0=(65536-3000)%256;
tr0=1;
et0=1;
ea=1;
while(1)
{;
}
}
void t0(void) interrupt 1 using 0
{
th0=(65536-3000)/256;
tl0=(65536-3000)%256;
p3=tab[cnta];
p1=digittab[cntb][cnta];
cnta++;
if(cnta==8)
{
cnta=0;
}
timecount++;
if(timecount==333)
{
timecount=0;
cntb++;
if(cntb==10)
{
cntb=0;
}
}
}

网络智能视频监控系统
新飞电器宣布正式复工,主打家电市场
锂电池如何使用才不会缩短寿命
高通骁龙835一款从国外火到过内的手机一加5!原因在意小细节
手机LCD背光驱动电荷泵的选择
使用8X8点阵LED显示数字0到9的设计说明
GlobalFoundries、Infineon、IBM、ST的印度晶圆计划
盘点PCB设计中的常见错误
工业计算机:以开放标准推进应用创新
5.2寸的机身配上5.7寸的屏幕,这手机不输华为P10
UNIX与Linux有什么区别联系
眼动追踪头戴设备可以更好的帮助残疾人
紫光展锐芯片与高通、联发科的对比介绍
教室照明掀起改造热潮 LED照明企业迎来了更广阔的发展空间
蓄电池充电技术研究
全球首颗”IGZO面板的内嵌式TDDI成功研发
基于MSP430F449单片机的雷达导航仪智能测控系统设计方案
小米5C遇上360N5哪个更好?我们该如何选择?
一种具有温度补偿的无人机高度传感器
基于Maxwell的接触器吸合力动态仿真过程分析