搜索
bottom↓
回复: 13

74LS595驱动的8*8点阵的亮度如何调节啊?

[复制链接]

出0入0汤圆

发表于 2012-3-29 14:23:36 | 显示全部楼层 |阅读模式
本帖最后由 gracialee 于 2012-3-29 14:25 编辑

一个点最亮,两个点暗了点,8个点的时候明显的暗了啊。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2012-3-29 14:46:23 | 显示全部楼层
你这个明显是驱动电流不够嘛~

出0入0汤圆

发表于 2012-3-29 15:04:53 | 显示全部楼层
把显示的时间适当的延长点,可能会好一点吧.

出0入0汤圆

发表于 2012-3-29 17:09:40 | 显示全部楼层
增大驱动电流

出0入42汤圆

发表于 2012-3-29 17:26:41 | 显示全部楼层
595后面加扩流
或者换用TPIC6C595。
每路100mA一般8*8足够了。
以下是器件手册

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-3-30 09:27:06 | 显示全部楼层
谢谢楼上的各位,我在想这个问题,100MA的电流如果只有一个点的话,100MA全给它了,如果两个点的话,那一个点就是50MA,亮度在理论上应该还是会暗些吧?当8个点都亮的时候,就只有12。5MA了哦。

出0入0汤圆

发表于 2012-3-30 09:45:57 | 显示全部楼层
应该限流电阻加的位置不对

出0入8汤圆

发表于 2012-3-30 09:49:51 | 显示全部楼层
如LS说的,可能是限流电阻加在了公共端上了。。。不想改硬件适当增大延时可能会改善~

出0入42汤圆

发表于 2012-3-30 09:59:21 | 显示全部楼层
gracialee 发表于 2012-3-30 09:27
谢谢楼上的各位,我在想这个问题,100MA的电流如果只有一个点的话,100MA全给它了,如果两个点的话, ...

那一个点超过20mA基本就烧掉了。
这里说电流小,是因为595输出能力不够,只有10mA左右,不足以使全部8个点同时正常发光。

-----------------------------------------------------------------------------------------------------------------------------------
试试这个:去掉限流电阻,595的供电使用3.3V。会有改善,但是还是不均匀,解决595的输出能力问题才是正解。

出0入0汤圆

发表于 2012-3-30 12:17:53 | 显示全部楼层
如果采用5V的电压,可以不用限流电阻,采用PMW就可以了,使亮度均匀.

出0入0汤圆

发表于 2012-3-30 12:44:54 | 显示全部楼层
huangdog 发表于 2012-3-30 09:49
如LS说的,可能是限流电阻加在了公共端上了。。。不想改硬件适当增大延时可能会改善~ ...

同感,觉得是加在公共端了,但是觉得增大延时应该没啥效果。

出0入0汤圆

 楼主| 发表于 2012-3-30 13:28:30 | 显示全部楼层
本不想帖代码的,但延时的技术总让我难以释怀,还是弄出来让大家谈谈,我这里怎么延时效果都不行,就是8个点亮的时候比一个点亮很多。
595是M74HC595B1,难道是它的问题?
;09h for countor 1s
;0ah for line selector
;0bh for code of display;
;0ch for code of display in interrupt;
;0dh for counter of display code in interrupt;

    MR_   equ p3.0
    SH    equ p3.1
    ST    equ p3.2
    OE_   equ p3.3
    DATAS   equ p3.4

    org 000h
    LJMP Main
    ORG 000BH
    LJMP INIT0
    ORG 0030h
main:
    mov  sp,#70h
    CLR  OE_
    CLR  SH
    CLR  ST
    CLR  DATAS
    setb  MR_
    mov r0,#30h
    mov r2,#0h
    mov r7,#8h
    mov 09h,#0h
dispzone:
    mov a,r2
    mov dptr,#datadb
    movc a,@a+dptr
    mov @r0,a
    inc r0
    inc r2
    djnz r7,dispzone

    MOV 09H,#00H ;软件计数器预清0
    MOV 0cH,#00H ;软件计数器预清0
    MOV TMOD,#00000001B ;定时/计数器0工作于方式1
    MOV TH0,#3CH
    MOV TL0,#0B0H ;即数15536
    SETB EA ;开总中断允许
    SETB ET0 ;开定时/计数器0允许
    SETB TR0 ;定时/计数器0开始运行

loop:
    mov r0,#80h
    mov 0ah,r0
    mov 0bh,#30h
    mov r2,#8h
loop1:
    mov a,#0ffh
    mov p1,a
    mov r0,0ah
    lcall sendto
    mov a,0ah
    rr a
    mov 0ah,a
    mov r0,0bh
    mov a,@r0
    cpl a
    mov p1,a
    inc 0bh
    lcall delay1ms
    djnz r2,loop1
    lcall delay
    sjmp loop

;把R0的并行数串行输出到行选
sendto:
    push acc
    CLR  SH
    CLR  ST
    CLR DATAS
sendtime:
    mov r7,#8h
    mov a,r0
    clr c
sendcy:
    rlc a
    mov DATAS,C
    setb SH
    lcall delay20ns
    clr  SH
    lcall delay20ns
    djnz r7,sendcy
    setb ST
    lcall delay20ns
    clr  ST
    lcall delay20ns
    pop acc
    ret

delay:
    mov r3,#05h
delay0:
    mov r4,#0ffh
    djnz r4,$
    djnz r3,delay0
    ret

delay1ms:
    mov r5,#04h
delay1ms1:
    mov r6,#0ffh
    djnz r6,$
    djnz r5,delay1ms1
    ret

delay20ns:
    mov r5,#6h
    djnz r5,$
    ret

INIT0:
    PUSH ACC
    PUSH PSW ;将PSW和ACC推入堆栈保护
    INC 09H
    MOV A,09H
    CJNE A,#10h,T_RET ;09H单元中的值到了16了吗?
T_L1:
    MOV 09H,#0 ;清软件计数器
    inc 0ch
    mov a,0ch
    cjne a,#0eh,continue   ;不为10继续。到10次后从0开始新一轮显示。
    clr a
    mov 0ch,#0
continue:
    mov r1,#30h
    mov 0dh,#8h
    mov dptr,#datadb
    mov b,#8h
    mul ab
    add a,dpl
    mov dpl,a
loop_disp:
    clr a
    movc a,@a+dptr
    mov @r1,a
    inc r1
    inc dptr
    djnz 0dh,loop_disp
T_RET:
    MOV TH0,#15H
    MOV TL0,#9FH ;重置定时常数
    POP PSW
    POP ACC
    RETI

datadb:
DB  07EH, 066H, 066H, 066H, 066H, 066H, 066H, 07EH ;0
DB  038H, 018H, 018H, 018H, 018H, 018H, 018H, 07EH ;1
DB  07CH, 00CH, 00CH, 07CH, 07CH, 060H, 060H, 07CH ;2
DB  07EH, 006H, 006H, 07EH, 07EH, 006H, 006H, 07EH ;3
DB  00CH, 014H, 024H, 044H, 07EH, 004H, 004H, 004H ;4
DB  07CH, 040H, 040H, 07CH, 07CH, 004H, 004H, 07CH ;5
DB  03EH, 022H, 020H, 020H, 03EH, 022H, 022H, 03EH ;6
DB  07CH, 044H, 004H, 004H, 004H, 004H, 004H, 004H ;7
DB  03EH, 022H, 022H, 03EH, 03EH, 022H, 022H, 03EH ;8
DB  03EH, 022H, 022H, 03EH, 002H, 002H, 002H, 03EH ;9
;    db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh
    db 81h,42h,24h,18h,18h,24h,42h,81h
DB   00h,6ch,92h,82h,44h,28h,10h,00h ;LOVE
DB 0FFH,0A5H,0A5H,0E7H,81H,99H,0A5H,0FFH ;jiong
db 0FEh,0FDh,0FBh,0F7h,0EFh,0DFh,0BFh,07Fh
;    DB 099H,099H,099h,081h,081h,099h,099h,099h
    DB 09FH,0afh,0b7h,0bbh,0b7h,0afh,09fh,0ffh
    db 0ffh,000h,000h,0e7h,0e7h,000h,000h,0ffh
    end

出0入0汤圆

 楼主| 发表于 2012-3-30 13:33:20 | 显示全部楼层
忘记说了,本图直接用2051的P1脚驱动阴极,因2051的P3口不够8个,所以用595进行了串并的转换,然后直接加在8×8点阵上了。并没有加楼上各位大虾说的限流电阻。

出0入0汤圆

发表于 2012-3-30 13:46:07 | 显示全部楼层
jimmy_xt 发表于 2012-3-29 17:26
595后面加扩流
或者换用TPIC6C595。
每路100mA一般8*8足够了。

这个元件电流够大,不知道价格怎样。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-8 21:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表