當前位置:編程學習大全網 - 編程語言 - 關於基於51單片機的超聲波測距儀的匯編編程問題

關於基於51單片機的超聲波測距儀的匯編編程問題

需要壹個查滿程序。

51單片機驅動LCM1602

;作者:eleclike

;功能;驅動LCM1602,LCM1602為深圳譽信公司的16*2液晶字符型顯示模塊,程序使用讀寫方式控制LCM1602,地址分別為:寫指令口:80H; 讀忙檢查口:81H; 寫數據口:82H; 讀數據口:83H;

;子程序1:寫控制指令子程序

;子程序2:寫CGRAM數據子程序

;子程序3:寫DDRAM子程序

;子程序4:寫數據子程序

;子程序5:讀忙子程序

RG_DLY EQU 2H

ORG 0000H

AJMP MAI

ORG 0030H

MAI: MOV SP,#60H

LP_MAI: NOP

LCALL SB_WRIN;調用寫控制指令子程序

LCALL SB_WRCG;調用寫CGRAM

LP2_MAI:NOP

LCALL SB_WRDR;調用寫DDRAM

RT_MAI: AJMP LP2_MAI

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

;---------子程序---開始------------------------------------

;-1------寫控制指令子程序----------

SB_WRIN:PUSH ACC

MOV R0,#80H ;寫指令口

MOV A,#01H ;(INSTR.1)

LCALL SB_WAT ;清屏

MOVX @R0,A

MOV A,#02H ;(INSTR.2)

LCALL SB_WAT ;A光標歸位

MOVX @R0,A

MOV A,#06H ;(INSTR.3)

LCALL SB_WAT ;AC自動加壹,畫面不動;

MOVX @R0,A

MOV A,#0CH ;(INSTR.4)0FH:顯示開,關標 開,閃爍開

LCALL SB_WAT ;0CH 顯示開,關標、閃爍關

MOVX @R0,A

;MOV A,#18H ;(INSTR.5)

;LCALL SB_WAT ;光標 或畫面平移指令

;MOVX @R0,A

MOV A,#38H ;(INSTR.6)

LCALL SB_WAT ;8位數據,2行顯示,5-7點陣

MOVX @R0,A

POP ACC

RET

;-2----寫CGRAM數據子程序------

SB_WRCG:PUSH ACC

MOV DPTR,#CGR

MOV R1,#40H;=CGRAM的首地址

MOV R2,#4;=4個字符

LP_WG0: MOV R3,#8;=每個字符有8位數據即8行

LP_WG1: MOV R0,#80H

MOV A,R1

LCALL SB_WAT

MOVX @R0,A

CLR A

MOVC A,@A+DPTR

LCALL SB_WRTD

INC R1

INC DPTR

DJNZ R3,LP_WG1

DJNZ R2,LP_WG0

NOP

POP ACC

RET

;-3-----寫DDRAM子程序--------

SB_WRDR:PUSH ACC

MOV R0,#80H

MOV A,#80H ; 寫第壹行DDRAM數據

LCALL SB_WAT

MOVX @R0,A

MOV A,#49H ; I

LCALL SB_WRTD

MOV A,#20H ; SPACE

LCALL SB_WRTD

MOV A,#4CH ; L

LCALL SB_WRTD

MOV A,#4FH ; O

LCALL SB_WRTD

MOV A,#56H ; V

LCALL SB_WRTD

MOV A,#45H ; E

LCALL SB_WRTD

MOV A,#20H ; SPACE

LCALL SB_WRTD

MOV A,#4DH ; M

LCALL SB_WRTD

MOV A,#59H ; Y

LCALL SB_WRTD

MOV A,#20H ; SPACE

LCALL SB_WRTD

MOV A,#42H ; B

LCALL SB_WRTD

MOV A,#41H ; A

LCALL SB_WRTD

MOV A,#42H ; B

LCALL SB_WRTD

MOV A,#59H ; Y

LCALL SB_WRTD

MOV A,#20H ; EMPTY

LCALL SB_WRTD

MOV A,#20H ; EMPTY

LCALL SB_WRTD

MOV R0,#80H

MOV A,#0C0H ;寫第二行DDRAM

LCALL SB_WAT

MOVX @R0,A

MOV A,#49H ; I

LCALL SB_WRTD

MOV A,#20H ; SPACE

LCALL SB_WRTD

MOV A,#41H ; A

LCALL SB_WRTD

MOV A,#4CH ; L

LCALL SB_WRTD

MOV A,#53H ; S

LCALL SB_WRTD

MOV A,#4FH ; O

LCALL SB_WRTD

MOV A,#20H ; SPACE

LCALL SB_WRTD

MOV A,#4DH ; M

LCALL SB_WRTD

MOV A,#49H ; I

LCALL SB_WRTD

MOV A,#53H ; S

LCALL SB_WRTD

MOV A,#53H ; S

LCALL SB_WRTD

MOV A,#20H ; SPACE

LCALL SB_WRTD

MOV A,#59H ; Y

LCALL SB_WRTD

MOV A,#4FH ; O

LCALL SB_WRTD

MOV A,#55H ; U

LCALL SB_WRTD

MOV R2,#50 ;延時229ms

ACALL SB_DLY

POP ACC

RET

;-4---寫數據子程序---------

SB_WRTD:MOV R0,#82H ;

LCALL SB_WAT

MOVX @R0,A ;

RET

;-5---讀忙子程序-----------

SB_WAT: PUSH ACC

PUSH 00H

MOV R0,#81H

LP_WAT: MOVX A,@R0

RLC A

JC LP_WAT

POP 00H

POP ACC

RET

;---------子程序----結束-----------------------------------

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

;------延時子程序-----------

SB_DLY: PUSH RG_DLY ;

LP1_DLY:PUSH RG_DLY

LP2_DLY:PUSH RG_DLY

DJNZ R2,$

POP RG_DLY

DJNZ R2,LP2_DLY

POP RG_DLY

DJNZ R2,LP1_DLY

POP RG_DLY

DJNZ R2,SB_DLY

RET

;----------CGRAM區----------

CGR:...................;(用戶自編碼字符區)

END

  • 上一篇:sfc 語言程序中,方框中的黑點表示___________ ,方框旁邊的“?”表示_________
  • 下一篇:Java網上商城系統的Java簡介
  • copyright 2024編程學習大全網