打印

LCD无法显示

[复制链接]
2241|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
waterfire|  楼主 | 2007-7-13 11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我把程序编好了并把程序写入单片机中,但是LCD确没有任何的显示
所需要实现的功能是LCD的每个字符开始全部显示0,延时一秒,然后显示1,然后再延时1秒,依次循环,一直显示到F为止。经过编译程序是正确
所使用的单片机是STC系列的(指令格式和51系列的完全一样)232电平转换串口电路检查过没有任何问题,上电后测出的电压也是正确的,硬软件都没有出问题,但把程序写进去后LCD显示器仍没有任何东西显示
请教各位大哥们:这扎会事啊~谢谢~

相关帖子

沙发
stycx| | 2007-7-13 18:54 | 只看该作者

贴上电路图,照片,程序

使用特权

评论回复
板凳
waterfire|  楼主 | 2007-7-18 09:21 | 只看该作者

相关资料及程序

程序为:;外部RAM0000H---0017H存放24个字符
;20H存放24个字符要显示的数字
;3EH写显示LCD的命令
;4DH4EH4FH写显示每个字符的地址和数据
;5DH5EH暂存每个字符的地址
SCK    EQU    P1.7    ;SPI时钟信号线
CS    EQU    P3.3    ;/CS片选信号线(底电平有效)
DATA    EQU    P1.5    ;写SPI线(即主机输出从机输入)
            ORG    0000H
            LJMP    MAIN
            ORG    0003H
            RETI
            ORG    000BH
            RETI
            ORG    0013H
            RETI
            ORG    001BH
            RETI
            ORG    0023H
            RETI
MAIN:            MOV    SP,    #60H
            MOV    PSW,    #0
            MOV    IE,    #0
            MOV    4DH,    #00H
            MOV    4EH,    #00H
            MOV    4FH,    #00H
            MOV    5DH,    #00H
            MOV    5EH,    #01H
            NOP
TURNONLCD:        MOV    3EH,    #03H        ;打开LCD显示器
            NOP
            LCALL    WRSPI
            NOP
SYSEN:            MOV    3EH,    #01H        ;打开系统晶振
            NOP
            LCALL    WRSPI
            NOP
CLEARDISPLAY:        MOV    R7,    #24
            MOV    A,    #0
            MOV    DPTR,    #0000H
RECLR:            MOVX    @DPTR,    A        ;清24段显示
            INC    DPTR
            NOP
            NOP
            DJNZ    R7,    RECLR
            NOP
            NOP
INPUTNUM:        MOV    20H,    #0        ;写LCD显示器的24段的字            
RECYCLE:        MOV    4DH,    5DH
            MOV    4EH,    5EH
            NOP
            MOV    R7,    #24
            MOV    A,    20H
            MOV    DPTR,    #0000H
REINPUT:        PUSH    DPL
            PUSH    DPH
            MOV    DPTR,    #TAB
            MOVC    A,    @A+DPTR
            POP    DPH
            POP    DPL
            MOVX    @DPTR,    A
            INC    DPTR
            NOP
            NOP
            DJNZ    R7,    REINPUT        ;24个字符全部出现相同的数字
            NOP
            NOP
DISPLAY:        MOV    DPTR,    #0000H        ;显示所有字符的内容
            MOV    R7,    #24
REPLAY:            MOVX    A,    @DPTR
            NOP
            MOV    4FH,    A            
            LCALL    WRDATA            ;调用写字符数据的子程序
            NOP
            INC    DPTR
            NOP
            NOP
            LCALL    DELAY1S            ;调用延时1S子程序
            NOP
            NOP
            DJNZ    R7,    REPLAY
            NOP
            MOV    A,    5DH
            ADD    A,    #2
            MOV    5DH,    A
            MOV    A,    5EH
            ADD    A,    #2
            MOV    5EH,    A
            MOV    A,    20H
            ADD    A,    #1
            MOV    20H,    A
            NOP
            NOP
            CJNE    A,    #16    RECYCLE
            NOP
            NOP
HERE:            LJMP    HERE            ;循环结束
WRSPI:            NOP                ;写SPI子程序(12位数据=9位命令+3位ID命令)
            CLR    CS
            CLR    C            ;DATA先移入3位ID命令100
            CLR    SCK
            SETB    SCK
            SETB    DATA
            NOP
            NOP
            CLR    SCK
            SETB    SCK
            CLR    DATA
            NOP
            NOP
            CLR    SCK
            SETB    SCK
            CLR    DATA
            NOP
            NOP
            MOV    A,    3EH
            CLR    SCK 
            MOV    R6,    #8
WRSPI1:            SETB    SCK            ;上升沿移入8位命令
            NOP    
            RLC    A
            MOV    DATA,    C
            CLR    SCK
            NOP
            NOP
            DJNZ    R6,    WRSPI1
            NOP
            CLR    SCK
            SETB    SCK
            SETB    DATA            ;DATA移入最后一位数据
            NOP
            NOP
            SETB    CS
            NOP
            NOP
            RET
            NOP
            NOP
            NOP            
WRDATA:            CLR    CS            ;写模式为写连续的地址写字符的数据和地址(2个6位地址+一个8位数据+ID号)
            CLR    C    
            CLR    SCK            ;DATA先移入写ID号101
            SETB    SCK
            SETB    DATA
            CLR    SCK
            SETB    SCK
            CLR    DATA
            CLR    SCK
            SETB    SCK
            SETB    DATA            
            MOV    A,    4DH
            MOV    R6,    #6        ;移入第一个6位的地址
            CLR    SCK
            NOP
WRDATA0:        SETB    SCK
            RLC    A
            MOV    DATA    C
            NOP
            CLR    SCK
            NOP
            DJNZ    R6,    WRDATA0
            NOP
            MOV    R6,    #4        ;移入数据的底4位
            CLR    SCK
            CLR    C
            MOV    A,    4FH
            NOP
WRDATA1:        SETB    SCK
            RRC    A
            MOV    DATA    C
            NOP
            CLR    SCK
            DJNZ    R6,    WRDATA1
            NOP
            CLR    SCK            ;DATA先移入写ID号101
            SETB    SCK    
            SETB    DATA
            NOP
            CLR    SCK
            SETB    SCK
            CLR    DATA
            NOP
            CLR    SCK
            SETB    SCK
            SETB    DATA
            NOP            
            MOV    R6,    #6        ;移入第二个6位的地址
            CLR    C
            MOV    A,    4EH
            NOP
            CLR    SCK
            NOP
WRDATA2:        SETB    SCK        
            NOP
            RRC    A
            MOV    DATA,    C
            CLR    SCK
            NOP
            DJNZ    R6,    WRDATA2
            NOP
            NOP    
            CLR    C            ;移入数据的高4位
            MOV    A,    4FH
            MOV    R6,    #4        
            CLR    SCK
            NOP
WRDATA3:        SETB    SCK
            RRC    A
            MOV    DATA,    C
            NOP
            CLR    SCK
            NOP
            DJNZ    R6,    WRDATA3
            NOP
            NOP
            SETB     CS
            NOP
            NOP
            RET
            NOP
            NOP
DELAY1S:        NOP                ;延时1S子程序
DEL0:            MOV    R5,    #20        
DEL1:            MOV    R6,    #200            
DEL2:            MOV    R7,    #250
            NOP
            DJNZ    R7,    DEL2
            NOP
            DJNZ    R6,    DEL1
            NOP
            NOP
            DJNZ    R5,    DEL0
            NOP
            NOP
            RET
            NOP
            NOP
TAB:       DB   08H,12H,6BH,5BH,1FH,5DH,7DH,13H        ;0-7的数码段的段码表
       DB    7FH,5FH,3FH,7CH,65H,7AH,6DH,2DH        ;8-F的数码段的段码表
LCD有关的文件在附件中
相关链接:https://bbs.21ic.com/upfiles/img/20077/20077189218628.pdf

使用特权

评论回复
地板
cheamei| | 2007-7-18 16:16 | 只看该作者

波形

我没有具体看你的程序,不过最好检查一下控制端口输出波形,看输出波形是否正常。

使用特权

评论回复
5
LDLGLYLD| | 2007-8-7 10:14 | 只看该作者

先检查硬件,再查程序!

先检查硬件,再查程序!
用的什么型号的液晶?什么控制器的?

使用特权

评论回复
6
jxb163| | 2007-8-7 11:29 | 只看该作者

汇编??靠!

使用特权

评论回复
7
LDLGLYLD| | 2007-8-7 13:24 | 只看该作者

段式屏

真晕!

使用特权

评论回复
8
bagdmu| | 2007-8-8 22:15 | 只看该作者

看汇编还真累,

还没看完就想睡了

使用特权

评论回复
9
jwins| | 2007-11-11 13:27 | 只看该作者

现在程序最好用C语言写

写汇编程序只有自己清楚,别人很难有耐心去读你的程序的。
请检查LCD与MCU的数据端口地址是否匹配

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

9

帖子

1

粉丝