3288|3

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教MAX7219驱动8个LED显示全亮的问题! [复制链接]

关于max7219的显示
我是电子爱好者,近日有个MAX7219的片子,用89C2051 想编个程序显示看看,结果不可以,我感觉没有问题,但我要显示的8个led一上电就全亮,再就没有熄灭过,怎么回事呢,软件问题还是硬件问题,百思不得其解,请问哪位大虾给各指点,不胜感激!!!
下面是我们显示程序:
;max7219汇编测试程序

;**********************************************************
L0AD7219 BIT  P1.0    ;MAX7219片选线引脚
CLK7219  BIT  P1.1    ;MAX7219时钟线引脚
DIN7219  BIT  P1.2    ;MAX7219数据线引脚
POWLED   BIT  P1.7    ;监视灯
;**********************************************************

DIG0    EQU  01H      ;数据寄存器地址
DIG1    EQU  02H
DIG2    EQU  03H
DIG3    EQU  04H
DIG4    EQU  05H
DIG5    EQU  06H
DIG6    EQU  07H
DIG7    EQU  08H

DECMODE EQU  09H      ;控制寄存器地址
INTENTY EQU  0AH      
SCANLIM EQU  0BH
SHUTDOW EQU  0CH
DISTEST EQU  0FH


      ORG 0000H
      AJMP MAIN
      ORG 0040H

MAIN:
      MOV SP,#30H
      CLR POWLED
      LCALL INI7219
      LCALL DELAY1S
      CPL POWLED
LLLL:
      LCALL SHOW7219
      LJMP LLLL      

      RET
;//////////////////////////////////////////////////////      
SHOW7219:
       MOV A,#DIG0
       MOV B,#00H
       LCALL WRITE7219

       MOV A,#DIG1
       MOV B,#01H   
       LCALL WRITE7219

       MOV A,#DIG2
       MOV B,#02H   
       LCALL WRITE7219
      
       MOV A,#DIG3
       MOV B,#03H   
       LCALL WRITE7219

       MOV A,#DIG4
       MOV B,#04H   
       LCALL WRITE7219

       MOV A,#DIG5
       MOV B,#05H   
       LCALL WRITE7219
      
       MOV A,#DIG6
       MOV B,#06H   
       LCALL WRITE7219
      
       MOV A,#DIG7
       MOV B,#07H   
       LCALL WRITE7219


       RET

;//////////////////////////////////////////////////////
INI7219:
       MOV A,#SHUTDOW  ;关机方式
       MOV B,#00H
       LCALL WRITE7219
      
       MOV A,#DECMODE  ;译码方式
       MOV B,#0FFH
       LCALL WRITE7219  
      
       MOV A,#INTENTY  ;亮度15/32方式
       MOV B,#07H
       LCALL WRITE7219
   
       MOV A,#SCANLIM  ;显示8位LED
       MOV B,#07H
       LCALL WRITE7219

       MOV A,#DISTEST  ;正常显示
       MOV B,#00H
       LCALL WRITE7219
      
       MOV A,#SHUTDOW  ;开机方式
       MOV B,#01H
       LCALL WRITE7219
      
       RET      
;/////////////////////////////////////////////////////      
WRITE7219:
     NOP
     CLR L0AD7219
     LCALL SEND7219  ;先送控制寄存器的地址
     MOV A,B         ;B中为传送的命令字或待显的数据   
     LCALL SEND7219
     NOP
     SETB L0AD7219
     RET
;////////////////////////////////////////////////////
SEND7219:
     MOV R1,#08H
LOOPS:
     NOP
     CLR CLK7219
     RLC A            ;左移位送MSB
     MOV DIN7219,C
     NOP
     SETB CLK7219
     DJNZ R1,LOOPS
     RET           
;///////////////////////////////////////////////////

DELAY1S: MOV R7,#0AH   ;延时1秒子程序(12M晶振)
LOOP6:   MOV R5,#64H   ;100ms循环
LOOP7:   MOV R6,#64H  
LOOP8:   NOP           ;1US
         NOP
         NOP
  NOP
  NOP
  NOP
  NOP
         NOP
         DJNZ R6,LOOP8 ;10US
         DJNZ R5,LOOP7
         DJNZ R7,LOOP6
         RET        

         END

最新回复

看了一下,你的操作太频繁了!建议在显示的时候加个延时,或内容有改变时在下发~!写完字节后释放rst的时间长些!  详情 回复 发表于 2009-9-28 14:35
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
1. 断开MAX7219。
2。运行代码,示波器测量驱动7219的IO是否信号输出。
   没有示波器,万用表电压档也可以看到电压变化。如果没有信号,说明代码有问题。
3。如果代码正常,测检查电路板单片机IO到7219之间以及7219输出部分电路。
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢,我再看看!
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
看了一下,你的操作太频繁了!建议在显示的时候加个延时,或内容有改变时在下发~!写完字节后释放rst的时间长些!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表