8X8 LED点阵显示原理与编程技术
发布时间:2008/5/27 0:00:00 访问次数:544
    
    
    1. 实验任务
    在8x8 led点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。
    2. 电路原理图
    
    
    
    图4.24.1
    3. 硬件电路连线
    (1). 把“单片机系统”区域中的p1端口用8芯排芯连接到“点阵模块”区域中的“dr1-dr8”端口上;
    
    (2). 把“单片机系统”区域中的p3端口用8芯排芯连接到“点阵模块”区域中的“dc1-dc8”端口上;
    4. 程序设计内容
    (1). 8x8 点阵led工作原理说明
    8x8点阵led结构如下图所示
    
    
    
    图4.24.2
    从图4.24.2中可以看出,8x8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:
    一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
    一根横柱:对应的行置0,而列则采用扫描的方法来实现。
    5.汇编源程序
    org 00h
    start: nop
    mov r3,#3
    lop2: mov r4,#8
    mov r2,#0
    lop1: mov p1,#0ffh
    mov dptr,#taba
    mov a,r2
    movc a,@a+dptr
    mov p3,a
    inc r2
    lcall delay
    djnz r4,lop1
    djnz r3,lop2
    mov r3,#3
    lop4: mov r4,#8
    mov r2,#7
    lop3: mov p1,#0ffh
    mov dptr,#taba
    mov a,r2
    movc a,@a+dptr
    mov p3,a
    dec r2
    lcall delay
    djnz r4,lop3
    djnz r3,lop4
    mov r3,#3
    lop6: mov r4,#8
    mov r2,#0
    lop5: mov p3,#00h
    mov dptr,#tabb
    mov a,r2
    movc a,@a+dptr
    mov p1,a
    inc r2
    lcall delay
    djnz r4,lop5
    djnz r3,lop6
    mov r3,#3
    lop8: mov r4,#8
    mov r2,#7
    lop7: mov p3,#00h
    mov dptr,#tabb
    mov a,r2
    movc a,@a+dptr
    mov p1,a
    dec r2
    lcall delay
    djnz r4,lop7
    djnz r3,lop8
    ljmp start
    delay: mov r5,#10
    d2: mov r6,#20
    d1: mov r7,#248
    djnz r7,$
    djnz r6,d1
    djnz r5,d2
    ret
    taba: db 0feh,0fdh,0fbh,0f7h,
    
    
    1. 实验任务
    在8x8 led点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。
    2. 电路原理图
    
    
    
    图4.24.1
    3. 硬件电路连线
    (1). 把“单片机系统”区域中的p1端口用8芯排芯连接到“点阵模块”区域中的“dr1-dr8”端口上;
    
    (2). 把“单片机系统”区域中的p3端口用8芯排芯连接到“点阵模块”区域中的“dc1-dc8”端口上;
    4. 程序设计内容
    (1). 8x8 点阵led工作原理说明
    8x8点阵led结构如下图所示
    
    
    
    图4.24.2
    从图4.24.2中可以看出,8x8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:
    一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
    一根横柱:对应的行置0,而列则采用扫描的方法来实现。
    5.汇编源程序
    org 00h
    start: nop
    mov r3,#3
    lop2: mov r4,#8
    mov r2,#0
    lop1: mov p1,#0ffh
    mov dptr,#taba
    mov a,r2
    movc a,@a+dptr
    mov p3,a
    inc r2
    lcall delay
    djnz r4,lop1
    djnz r3,lop2
    mov r3,#3
    lop4: mov r4,#8
    mov r2,#7
    lop3: mov p1,#0ffh
    mov dptr,#taba
    mov a,r2
    movc a,@a+dptr
    mov p3,a
    dec r2
    lcall delay
    djnz r4,lop3
    djnz r3,lop4
    mov r3,#3
    lop6: mov r4,#8
    mov r2,#0
    lop5: mov p3,#00h
    mov dptr,#tabb
    mov a,r2
    movc a,@a+dptr
    mov p1,a
    inc r2
    lcall delay
    djnz r4,lop5
    djnz r3,lop6
    mov r3,#3
    lop8: mov r4,#8
    mov r2,#7
    lop7: mov p3,#00h
    mov dptr,#tabb
    mov a,r2
    movc a,@a+dptr
    mov p1,a
    dec r2
    lcall delay
    djnz r4,lop7
    djnz r3,lop8
    ljmp start
    delay: mov r5,#10
    d2: mov r6,#20
    d1: mov r7,#248
    djnz r7,$
    djnz r6,d1
    djnz r5,d2
    ret
    taba: db 0feh,0fdh,0fbh,0f7h,
上一篇:如何选择嵌入式软件开发平台