熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2022-4-21 21:17
正文摘要:為啥Proteus仿真把本應(yīng)該顯示在第二行的數(shù)據(jù)顯示在第一行了,而且寫了0C0H也不換行。程序在23樓 |
謝謝大家!我已經(jīng)查資料解決了! 給大家說(shuō)說(shuō)我的方法,就是在寫換行命令前加一個(gè)延時(shí)幾個(gè)毫秒的程序,不然lcd反應(yīng)不了,處于忙狀態(tài)。 |
不好意思,上面的截圖的程序?qū)懙氖?ch,但是我把它改成0c0h后還是不換行 |
保持微笑 發(fā)表于 2022-4-22 10:33 我在程序已經(jīng)寫了0c0h了,但是沒(méi)有換行 |
第一行的地址好像是0x80吧,想顯示到第二行就0x80+0X40就可以了啊,初始化的時(shí)候最好是初始化兩次 |
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 |
Powered by 單片機(jī)教程網(wǎng)