找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机+LCD1602仿真程序把本应该显示在第二行的数据显示在第一行了?

[复制链接]
跳转到指定楼层
楼主
为啥Proteus仿真把本应该显示在第二行的数据显示在第一行了,而且写了0C0H也不换行。程序在23楼
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1018761 发表于 2022-4-21 21:21 | 只看该作者
           RS EQU P1.0
                           RW  EQU P1.1
               E EQU P1.2
               LCD EQU P2
               BF EQU P2.7                                   
               ORG 0000H
               AJMP 0030H
                           ORG 0023H
                           AJMP COM_INT
                           ORG 0030H
               MOV SCON,#50H;
               MOV        PCON,#0
               MOV TMOD,#20H
               MOV TH1,#0FDH;
               MOV TL1,#0FDH
               SETB TR1
               SETB        EA
               SETB        ES
               MOV IE,#90H;         
                        

                           
                           MOV R0,#60H
                           
MAIN:                MOV A,#38H  
               ACALL W_CMD
               MOV A,#08H   
               ACALL W_CMD
                           MOV A,#01H  
                           ACALL W_CMD
                           MOV A,#06H  
                           ACALL W_CMD
                           MOV A,#0CH  
                           ACALL W_CMD                           
                           SJMP $  
            
               
COM_INT:       NOP        
REC:           JNB RI,$
                           CLR RI        
               MOV A,SBUF
                           CJNE A,#24H,REC;
                           JNB RI,$
                           CLR RI
               MOV A,SBUF
                           CJNE A,#47H,REC;  G
                           JNB RI,$
                           CLR RI
               MOV A,SBUF
                           CJNE A,#4EH,REC;  P
                           JNB RI,$
                           CLR RI
               MOV A,SBUF
                           CJNE A,#47H,REC;  G
                           JNB RI,$
                           CLR RI                                   
               MOV A,SBUF
                           CJNE A,#47H,REC;  G
                           JNB RI,$
                           CLR RI
               MOV A,SBUF
                           CJNE A,#41H,REC;  A                  
                           
DATE:                   JNB RI,$
               CLR RI
               MOV A,SBUF
                           MOV @R0,A
                           INC R0
                           CJNE A,#2AH,DATE
                           
                           MOV A,#80H                  
                           ACALL W_CMD
                           MOV R0,#61H
                           
               ACALL DOUHAO
                           INC R0
                           
LOOP1:               MOV A,@R0
               ACALL W_DATE
                           INC R0
                           MOV A,@R0
                           CJNE A,#2CH,LOOP1

               MOV A,#00H
                           ACALL W_CMD
                           MOV A,#0CH   
                           ACALL W_CMD
                           INC R0
                           INC R0
                           INC R0
                           
LOOP2:         MOV A,@R0
               ACALL W_DATE
                           INC R0
                           CJNE @R0,#2CH,LOOP2
                           RETI                  
                           
W_CMD:         MOV P2,A
               CLR RS
                       CLR RW
                   SETB E
                       NOP
                       CLR E
                       RET

W_DATE:       ACALL WAIT  
              MOV P2,A
                      SETB RS
                  CLR RW
                     SETB E
                      NOP
                      CLR E
                      RET
                  
WAIT:         MOV LCD,#0FFH
              CLR RS
                      SETB RW
                      CLR  E
                          NOP
                          SETB E
                          JB BF,WAIT
                          RET
                        
DOUHAO:       INC R0
              CJNE        @R0,#2CH,DOUHAO
              RET                                                
               
DEL:          MOV R7,#20
D1:           MOV R6,#100
D2:           DJNZ R6,D2
              DJNZ R7,D1
              END
回复

使用道具 举报

板凳
ID:1018761 发表于 2022-4-21 21:24 | 只看该作者
这是仿真和程序,谢谢各位了

51hei图片20220421211916.png (27.5 KB, 下载次数: 16)

51hei图片20220421211916.png

51hei图片20220421211950.png (29.94 KB, 下载次数: 16)

51hei图片20220421211950.png

51hei图片20220421212033.png (38.83 KB, 下载次数: 15)

51hei图片20220421212033.png
回复

使用道具 举报

地板
ID:397211 发表于 2022-4-22 10:33 | 只看该作者
第一行的地址好像是0x80吧,想显示到第二行就0x80+0X40就可以了啊,初始化的时候最好是初始化两次
回复

使用道具 举报

5#
ID:1018761 发表于 2022-4-22 11:21 来自手机 | 只看该作者
保持微笑 发表于 2022-4-22 10:33
第一行的地址好像是0x80吧,想显示到第二行就0x80+0X40就可以了啊,初始化的时候最好是初始化两次

我在程序已经写了0c0h了,但是没有换行
回复

使用道具 举报

6#
ID:1018761 发表于 2022-4-22 11:40 来自手机 | 只看该作者
不好意思,上面的截图的程序写的是0ch,但是我把它改成0c0h后还是不换行
回复

使用道具 举报

7#
ID:1018761 发表于 2022-4-22 16:38 | 只看该作者
谢谢大家!我已经查资料解决了!
给大家说说我的方法,就是在写换行命令前加一个延时几个毫秒的程序,不然lcd反应不了,处于忙状态。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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