找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3967|回复: 20
打印 上一主题 下一主题
收起左侧

单片机仿真运行成功了但是实物连接完LCD1602初始化不成功(只显示一行白块)

  [复制链接]
跳转到指定楼层
楼主
ID:1028599 发表于 2022-6-28 21:42 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
200黑币
紧急求助各位大佬,仿真运行成功了但是实物连接完LCD初始化不成功(只显示一行白块),电机也不转,烧录之前的显示程序是正常显示的,请问是什么问题哇,下面是全部汇编代码

1656423248509.jpg (1.1 MB, 下载次数: 17)

1656423248509.jpg

1656423272166.jpg (1.01 MB, 下载次数: 18)

1656423272166.jpg

1656423287327.jpg (1.01 MB, 下载次数: 18)

1656423287327.jpg

1656423308290.jpg (1017.55 KB, 下载次数: 13)

1656423308290.jpg

1656423322625.jpg (1.03 MB, 下载次数: 15)

1656423322625.jpg

1656423335018.jpg (1.06 MB, 下载次数: 15)

1656423335018.jpg

1656423344711.jpg (1.06 MB, 下载次数: 16)

1656423344711.jpg

1656423362591.jpg (1 MB, 下载次数: 19)

1656423362591.jpg

1656423382431.jpg (1.05 MB, 下载次数: 17)

1656423382431.jpg

1656423398191.jpg (958.74 KB, 下载次数: 17)

1656423398191.jpg

1656423408523.jpg (1.01 MB, 下载次数: 15)

1656423408523.jpg

1656423425474.jpg (1.02 MB, 下载次数: 17)

1656423425474.jpg

1656423440612.jpg (1.03 MB, 下载次数: 14)

1656423440612.jpg

1656423452456.jpg (1.02 MB, 下载次数: 15)

1656423452456.jpg

1656423467026.jpg (1015.45 KB, 下载次数: 15)

1656423467026.jpg

1656423484221.jpg (1.09 MB, 下载次数: 15)

1656423484221.jpg

1656423498336.jpg (1012.75 KB, 下载次数: 15)

1656423498336.jpg

1656423512770.jpg (1004.03 KB, 下载次数: 18)

1656423512770.jpg

最佳答案

查看完整内容

应该大概率是硬件问题,因为程序多是粘贴的不应该有问题。 如果确保硬件没问题,我认为是判断LCD忙有问题,你没加延时,估计就卡在WAIT 那段了。建议你干脆就取消判断忙,改成延时就行了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:844772 发表于 2022-6-28 21:42 | 只看该作者
应该大概率是硬件问题,因为程序多是粘贴的不应该有问题。
如果确保硬件没问题,我认为是判断LCD忙有问题,你没加延时,估计就卡在WAIT 那段了。建议你干脆就取消判断忙,改成延时就行了。
回复

使用道具 举报

板凳
ID:262 发表于 2022-6-28 22:33 | 只看该作者
来看一下51hei论坛里面解决此问题的痛苦经历吧:
51hei搜索框输入"1602 方块"或者"1602 黑块"或者"1602 白块"或者"1602 格":

这个是io口设置问题,最终搞定了:http://www.51hei.com/bbs/dpj-199732-1.html
http://www.51hei.com/bbs/dpj-168643-1.html
http://www.51hei.com/bbs/dpj-208189-1.html
http://www.51hei.com/bbs/dpj-210690-1.html

既有可能是软件问题也有硬件问题
http://www.51hei.com/bbs/dpj-187378-1.html
http://www.51hei.com/bbs/dpj-160754-1.html
回复

使用道具 举报

地板
ID:1028599 发表于 2022-6-28 22:50 来自手机 | 只看该作者
我用万用表测过每根接线都是对的,用的最小系统板,LCD是直接用杜邦线接的没有焊接过程T_T
回复

使用道具 举报

5#
ID:965189 发表于 2022-6-29 09:29 | 只看该作者
对比度调整不合适也会显示白屏的啊。
回复

使用道具 举报

6#
ID:1023753 发表于 2022-6-29 10:16 | 只看该作者
汇编无能为力
回复

使用道具 举报

7#
ID:584814 发表于 2022-6-29 11:55 | 只看该作者
楼主真的认为会有高手将你发的一堆图片完整抄写成汇编程序,然后在没有电路图没有实物图的情况下研究出正确答案给你么 ?
回复

使用道具 举报

8#
ID:748788 发表于 2022-6-29 16:20 | 只看该作者
估计是延时问题
回复

使用道具 举报

9#
ID:155507 发表于 2022-6-29 17:05 | 只看该作者
你把你的代码完整地贴上来看看
(不要截图!不要截图!不要截图!)

原理图得提供啊,至少框图有吧,怎么接线的
回复

使用道具 举报

10#
ID:195496 发表于 2022-6-29 17:09 | 只看该作者
太悲摧的图片大师
回复

使用道具 举报

11#
ID:1028599 发表于 2022-6-29 19:22 | 只看该作者
START       EQU 20H.0      
INPUT       EQU 20H.1      
KEY         EQU 21H         
PWM_ZKB     EQU 22H         
PWM_CNT     EQU 23H         

FLAG        EQU 30H         
U8comdata   EQU 31H
U8T_data_H  EQU 32H
U8T_data_L  EQU 33H
U8RH_data_H EQU 34H
U8RH_data_L EQU 35H
U8checkdata EQU 36H
U8temp      EQU 37H
temp        EQU 38H


         IN1 BIT P1.0        
         IN2 BIT P1.1
         ENA BIT P1.2        

         RS  BIT P2.0        
         RW  BIT P2.1        
         E   BIT P2.2        

         DQ  BIT P2.3        

    ORG  0000H
    AJMP  MAIN               
    ORG   001BH
    LJMP  T1_ISR            
    ORG  0100H



MAIN:
    MOV   SP,#60H            
    MOV   PWM_ZKB,#70
    LCALL SETLCD            
    LCALL LINE1
    MOV   DPTR,#TAB1         
    LCALL LCDDISP
    LCALL T1_INIT            
LOOP:                        
    LCALL KEYSCAN            
    LCALL KEYPROC
    LCALL DHT11              
    LCALL DISPLAY            
    JMP   LOOP               




T1_INIT:
    MOV   TMOD,#10H            
    MOV   TH1,#0FCH            
    MOV   TL1,#018H            
    SETB  ET1                  
    SETB  TR1                  
    SETB  EA                    
    RET




T1_ISR:                        
    PUSH  ACC                  
    MOV   TH1,#0FCH            
    MOV   TL1,#018H            
    INC   PWM_CNT
    MOV   A,PWM_CNT
    CJNE  A,#100,T1_0
    MOV   PWM_CNT,#0
T1_0:
    CLR   C                     
    MOV   B,PWM_ZKB
    MOV   A,PWM_CNT
    SUBB  A,B                  
    JNC   PWM_0                 
    SETB  ENA                  
    JMP   T1_END
PWM_0:
    CLR   ENA                  
T1_END:
    POP   ACC                  
    RETI                        




Read:
    MOV   temp,#8
        MOV   U8comdata,#0
LOOP_COM:
    MOV   FLAG,#0            
LOOP3:
    INC   FLAG
    MOV   A,FLAG
    JB    DQ,LOOP3_END      
    CJNE  A,#0,LOOP3
    LJMP  COM_END
LOOP3_END:
    LCALL Delay_10us   
    LCALL Delay_10us   
    LCALL Delay_10us            
    MOV   U8temp,#0
    JNB   DQ,HIGH_END
    MOV   U8temp,#1
HIGH_END:
    MOV   FLAG,#0
LOOP4:
    INC   FLAG
    MOV   A,FLAG
    JNB   DQ,LOOP4_END      
    CJNE  A,#0,LOOP4
    LJMP  COM_END
LOOP4_END:
    MOV  A,FLAG
    CJNE  A,#0,NO_FLAG
    LJMP  COM_END
NO_FLAG:
    MOV A,U8comdata
    RL  A
    ORL A,U8temp
    MOV U8comdata,A
    DJNZ temp,LOOP_COM      
COM_END:
    RET




DHT11:
    CLR   EA
    CLR   DQ                 
    MOV   A,#36
        LCALL Delay
        SETB  DQ
    LCALL Delay_10us         
    LCALL Delay_10us   
    LCALL Delay_10us   
    LCALL Delay_10us
    JB    DQ,RH_END         
    MOV   FLAG,#0
LOOP1:
    INC   FLAG
    MOV   A,FLAG
    JB    DQ,LOOP1_END      
    CJNE  A,#0,LOOP1
    LJMP  RH_END
LOOP1_END:
    MOV   FLAG,#0
LOOP2:
    INC   FLAG
    MOV   A,FLAG
    JNB   DQ,LOOP2_END      
    CJNE  A,#0,LOOP2
    LJMP  RH_END
LOOP2_END:
    LCALL Read               
        MOV   U8RH_data_H,U8comdata
        LCALL Read
        MOV   U8RH_data_L,U8comdata
        LCALL Read
        MOV   U8T_data_H,U8comdata
        LCALL Read
        MOV   U8T_data_L,U8comdata
        LCALL Read
        MOV   U8checkdata,U8comdata
        SETB  DQ
RH_END:
    SETB  EA
    RET




KEYSCAN:
   
    SETB  F0                          
    MOV   KEY,#16H
    MOV   R3,#0FEH            
    MOV   R1,#00H              
L2: MOV   A,R3                 
    MOV   P3,A                 
    LCALL DELAY1MS
    MOV   A,P3                 
    SWAP  A
    SETB  C   
    MOV   R5,#4               
L3: RRC   A                          
    JNC   KEY1                 
    INC   R1                  
    DJNZ  R5,L3               
    MOV   A,R3                 
    SETB  C
    RLC   A                    
    MOV   R3,A                 
    JB    ACC.4,L2            
    LJMP  KEY_OUT
KEY1:
    CLR   F0                  
    MOV   KEY,R1               
T3: MOV   A,P3                 
    XRL   A,R3
    JNZ   T3
KEY_OUT:
   
    RET




KEYPROC:
    MOV   A,KEY                 
    CJNE  A,#16H,K_0            
    RET                        
K_0:CLR   C                     
    SUBB  A,#10                 
    JNC   G10                  

L10:MOV   A,KEY
    ADD   A,#'0'
    LCALL LCDDAT
    JMP   KP_END               

G10:MOV   A,KEY                 
    CJNE  A,#0AH,T0B            
    SETB  INPUT
    MOV   A,#83H
    LCALL LCDCMD
    MOV   DPTR,#M_CL2
    LCALL LCDDISP
    MOV   A,#83H
    LCALL LCDCMD
    MOV   A,#0DH
    LCALL LCDCMD
    JMP   KP_END               
T0B:CJNE  A,#0BH,T0C            
    CLR   INPUT
    MOV   A,#0CH
    LCALL LCDCMD
    JMP   KP_END               
T0C:CJNE  A,#0CH,T0D            
    JB    START,STOP
    SETB  START
    CLR   IN1
    SETB  IN2
    JMP   KP_END
STOP:
    CLR   START
    SETB  IN1
    SETB  IN2
    JMP   KP_END
T0D:CJNE  A,#0DH,T0E            
    CPL   IN1
    CPL   IN2
    JMP   KP_END
T0E:CJNE  A,#0EH,T0F            
    MOV   A,PWM_ZKB
    CJNE  A,#50,DEC_20
    JMP   KP_END
DEC_20:
    SUBB  A,#20
    MOV   PWM_ZKB,A
    JMP   KP_END
T0F:CJNE  A,#0FH,KP_END         
    MOV   A,PWM_ZKB
    CJNE  A,#90,ADD_20
    JMP   KP_END
ADD_20:
    ADD   A,#20
    MOV   PWM_ZKB,A
KP_END:
    RET                        




DISPLAY:
    JB INPUT,DISP_END
    CLR   EA
        PUSH  ACC
    LCALL LINE2
    MOV   A,#'T'
    LCALL LCDDAT
    MOV   A,#':'
    LCALL LCDDAT
    MOV   A,U8T_data_H
    MOV   B,#10
    DIV   AB
    ADD   A,#'0'
    LCALL LCDDAT
    XCH   A,B
    ADD   A,#'0'
    LCALL LCDDAT
    MOV   A,#0DFH
    LCALL LCDDAT
    MOV   A,#'C'
    LCALL LCDDAT
      
    MOV   A,#' '
    LCALL LCDDAT
    MOV   A,#'R'
    LCALL LCDDAT
    MOV   A,#':'
    LCALL LCDDAT
    MOV   A,U8RH_data_H
    MOV   B,#10
    DIV   AB
    ADD   A,#'0'
    LCALL LCDDAT
    XCH   A,B
    ADD   A,#'0'
    LCALL LCDDAT
    MOV   A,#'%'
    LCALL LCDDAT
    POP   ACC
    SETB  EA
DISP_END:
    RET




DISP_NUM_2:
    MOV   B,#10                 
    DIV   AB                    
    ADD   A,#'0'               
    LCALL LCDDAT               
    MOV   A,B                  
    ADD   A,#'0'               
    LCALL LCDDAT               
    RET




DISP_NUM_3:
    MOV   B,#100               
    DIV   AB                    
    ADD   A,#'0'               
    LCALL LCDDAT               
    MOV   A,B                  
    MOV   B,#10                 
    DIV   AB                    
    ADD   A,#'0'               
    LCALL LCDDAT               
    MOV   A,B                  
    ADD   A,#'0'               
    LCALL LCDDAT               
    MOV   A,#' '               
    LCALL LCDDAT               
    RET




DELAY1MS:
    MOV   R7,#01H
DL1:MOV   R6,#8EH
DL0:MOV   R5,#02H
    DJNZ  R5,$
    DJNZ  R6,DL0
    DJNZ  R7,DL1
    RET




Delay:  MOV R4,A               
D1:     MOV R5,#0FFH
            DJNZ R5,$
            DJNZ R4,D1
            RET



Delay_10us:                                   
        NOP
            NOP
            NOP
            NOP
            NOP
            NOP
            RET



Delay_2S:
       MOV A,#250
           LCALL Delay
       MOV A,#250
           LCALL Delay
           MOV A,#250
           LCALL Delay
           MOV A,#250
           LCALL Delay
       MOV A,#250
           LCALL Delay
       MOV A,#250
           LCALL Delay
           MOV A,#250
           LCALL Delay
           MOV A,#250
           LCALL Delay
           RET


SETLCD:
    MOV   A,#01H               
    ACALL LCDCMD
    MOV   A,#38H               
    ACALL LCDCMD
    MOV   A,#0CH               
    ACALL LCDCMD
    MOV   A,#06H               
    ACALL LCDCMD
    ACALL LCDFONT
    RET

LCDCMD:
    CLR   RS
    CLR   RW                    
    MOV   P0,A
    CLR   E                     
    ACALL WAIT
    SETB  E
    RET

LCDDAT:
    SETB  RS
    CLR   RW
    MOV   P0,A
    CLR   E
    ACALL WAIT
    SETB  E
    RET

WAIT:                           
    MOV   P0,#0FFH
    CLR   RS
    SETB  RW                    
    CLR   E
    NOP
    SETB  E
    JB    P0.7,WAIT
    RET

LINE1:                          
    MOV   A,#80H
    ACALL LCDCMD
    RET
LINE2:                          
    MOV   A,#0C0H
    ACALL LCDCMD
    RET


LCDBSP:
    MOV   A,#10H               
    ACALL LCDCMD
    MOV   A,#' '               
    ACALL LCDDAT
    MOV   A,#10H               
    ACALL LCDCMD
    RET


LCDDISP:                        
    MOV   R2,#00H               
NEXT:
    MOV   A,R2                  
    MOVC  A,@A+DPTR            
    CJNE  A,#10H,DSP            
    RET                        
DSP:ACALL LCDDAT               
    INC   R2                    
    AJMP  NEXT                  
    RET


LCDFONT:
    MOV   A,#40H
    LCALL LCDCMD
    MOV   DPTR,#FONT
    MOV   R1, #00H
LOP2:MOV  A,R1
    MOVC  A, @A+DPTR
    ACALL LCDDAT
    INC   R1
    CJNE  R1,#10H, LOP2
    RET




M_CLS:  DB "                ",10H
M_CL2:  DB "            ",10H

FONT:                           
DB  00H,1FH,04H,1FH,04H,04H,1FH,00H
DB  00H,1FH,00H,0EH,00H,00H,1FH,00H

TAB1: DB 00H,01H," 12345678",10H

    END
回复

使用道具 举报

12#
ID:1028599 发表于 2022-6-29 19:24 来自手机 | 只看该作者
不好意思,以下是仿真
我烧录了最简单的初始化程序但还是白块,接线图也在下面

2AITPI}E(5A`LA80WG[FM]Q.png (153.31 KB, 下载次数: 13)

2AITPI}E(5A`LA80WG[FM]Q.png

1656501844083.jpg (1.13 MB, 下载次数: 16)

1656501844083.jpg
回复

使用道具 举报

13#
ID:1028599 发表于 2022-6-29 19:25 来自手机 | 只看该作者
君工创 发表于 2022-6-29 09:29
对比度调整不合适也会显示白屏的啊。

(┯_┯)我拧了好久,一行白块是最好的结果啦
回复

使用道具 举报

14#
ID:844772 发表于 2022-6-30 08:25 | 只看该作者
我都不敢相信我的眼睛了,难道你EN没有拉高吗?那单片机怎么会运行呢?
回复

使用道具 举报

15#
ID:1028599 发表于 2022-6-30 09:50 来自手机 | 只看该作者
glinfei 发表于 2022-6-30 08:25
我都不敢相信我的眼睛了,难道你EN没有拉高吗?那单片机怎么会运行呢?

你说的是EA吗,我接完以后它现在变成这样的了(╥﹏╥),现在再调对比度

1656553796383.jpg (787.91 KB, 下载次数: 15)

1656553796383.jpg
回复

使用道具 举报

16#
ID:68189 发表于 2022-6-30 10:07 | 只看该作者
汇编代码看不懂,,,,,,,但是调试屏幕时要注意写显示命令后要有延时,虽然有遇忙判断,但在实际应用时,必须注意延时.可以参看C代码.不知道我说的对不对.试一试.
回复

使用道具 举报

17#
ID:1028599 发表于 2022-6-30 10:11 来自手机 | 只看该作者
glinfei 发表于 2022-6-29 17:22
应该大概率是硬件问题,因为程序多是粘贴的不应该有问题。
如果确保硬件没问题,我认为是判断LCD忙有问题 ...

好的我改一下!
回复

使用道具 举报

18#
ID:844772 发表于 2022-6-30 11:22 | 只看该作者
硬件的问题只能靠你自己,软件上倒是有个建议,把;WAIT:  这段子程序改成仅仅延时几个微秒。
回复

使用道具 举报

19#
ID:1028599 发表于 2022-6-30 11:37 来自手机 | 只看该作者
谢谢大佬们!可以成功运行了!!!我把WAIT删了改成DELAY了!谢谢谢谢!!!
回复

使用道具 举报

20#
ID:401564 发表于 2022-6-30 23:26 | 只看该作者
用C写代码,进行仿真,我都觉得那是在浪费时间
用汇编,那就更浪费时间了
你这个问题就证明了这一点:仿真成功了,那又如何,最后有问题还不是得花时间去解决
直接编译下载,慢慢找问题还快点
回复

使用道具 举报

21#
ID:1037273 发表于 2022-7-2 16:35 | 只看该作者
也有可能是IO口的问题哎
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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