標題: [求助]LCD1602放在開發(fā)板上就顯示 自建電路中就不顯示 大俠幫幫忙 明天就要用了 謝謝各位。! [打印本頁]

作者: 平凡的足跡    時間: 2012-11-18 21:35
標題: [求助]LCD1602放在開發(fā)板上就顯示 自建電路中就不顯示 大俠幫幫忙 明天就要用了 謝謝各位。!

 RS BIT P2.4 ;這3位是液晶屏的控制信號,連接方式由具體硬件而定

 RW BIT P2.5

 E BIT P2.6

 ORG 00H

 AJMP MAIN

MAIN:

mov R0,#24

ACALL INITIAL

ACALL DISPLAY;調(diào)用液晶顯示子程序

AJMP MAIN

;-------液晶顯示---------------------------------------

DISPLAY:   

MOV A,#80H  ;第一行第1 個點

ACALL WR_CMD

MOV DPTR, #LINE1

ACALL PR_STR

ACALL WR_DATA

DISP1:

MOV A,#18H         ;字符左移命令(注:實物中左移命令字為18H)

ACALL WR_CMD

ACALL D05S

DJNZ R0,DISP1

RET

;---液晶屏初始化-------------------------------------------------

INITIAL:     

MOV A, #01H

ACALL WR_CMD

MOV A, #38H

ACALL WR_CMD

MOV A, #0CH

ACALL WR_CMD

MOV A, #06H

ACALL WR_CMD

RET

;----寫液晶指令的子程序------------------------------------------

WR_CMD:

MOV P0, A

CLR RS ;寫入控制命令

CLR RW

CLR E

ACALL DELAY

SETB E

RET

;----寫液晶數(shù)據(jù)---------------------------------------------

WR_DATA:

MOV P0, A

SETB RS ;寫入數(shù)據(jù)

CLR RW

CLR E

ACALL DELAY ;判斷液晶模塊是否忙?

SETB E

RET

;-----寫行字符---------------------------------------------------------------

PR_STR:

CLR   A

MOVC A, @A+DPTR

JZ    END_PR

ACALL WR_DATA

INC   DPTR

AJMP PR_STR

END_PR:    

RET

;----查看液晶忙碌信號---------------------------------------------------------

DELAY:

MOV P0,#0FFH ;判斷液晶顯示器是否忙的子程序

CLR RS

SETB RW

CLR E

NOP

SETB E

JB P0.7,DELAY ;如果P0.7為高電平表示忙就循環(huán)等待

RET

 

;----0.5S延時(按12MHZ算)-----------------------------------------------------------------

D05S: 

MOV R6,#25

MOV R5,#100

MOV R4,#100

DJNZ R4,$

DJNZ R5,$-4

DJNZ R6,$-8

RET

;--------------------------------------------------------------------------------------

LINE1:
DB 'Happy birthday to you!'
END


作者: admin    時間: 2012-11-20 02:16

既然在開發(fā)板上能用證明 你這個程序是沒有問題的,,問題肯定是出在你的硬件電路上 仔細檢查一下電路






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1