當前位置:編程學習大全網 - 編程語言 - 基於AT89C51單片機和DS18B20溫度傳感器、LCD1602液晶顯示的數字溫度計 匯編程序及電路圖

基於AT89C51單片機和DS18B20溫度傳感器、LCD1602液晶顯示的數字溫度計 匯編程序及電路圖

只是LCD1602的代碼

;多功能51單片機開發板

;LCD1602測試程序

RS EQU P2.0

RW EQU P2.1

E EQU P2.2

LDATA EQU P1

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV R0,#00H ;R0:每行顯示字符的個數

MOV R1,#80H ;寄存器地址

MOV A,#38H ;設置顯示(16×2)

ACALL WIR

MOV A,#0EH ;開顯示,顯示光標,光標不閃爍

ACALL WIR

MOV A,#06H ;整屏顯示不移動

ACALL WIR

MOV A,#01H ;顯示清屏

ACALL WIR

MOV DPTR,#LCD

LOOP0: MOV A,R1 ;寫地址

ACALL WIR

INC R1 ;地址加壹

CJNE R1,#90H,TT ;判斷第壹行寫完沒有

MOV R1,#0C0H ;若寫完,R1=第二行地址

TT: MOV A,R0

MOVC A,@A+DPTR

ACALL WDR

INC R0 ;計數R0加1

LCALL DELAY1

CJNE R0,#20H,LOOP0 ;R1不等於32則繼續

RE: AJMP RE

WIR: ACALL BUSY ;寫指令寄存器子程序

CLR E ;初始化

CLR RS

CLR RW

SETB E

MOV LDATA,A

CLR E

RET

WDR: ACALL BUSY ;寫數據寄存器子程序

CLR E

SETB RS

CLR RW

SETB E

MOV LDATA,A

CLR E

RET

BUSY: PUSH ACC ;檢測忙信號子程序

ISBUSY:CLR E

CLR RS

SETB RW

SETB E

MOV A,LDATA

JB ACC.7,ISBUSY ;ACC.7=1,說明忙

POP ACC

ACALL DELAY1

RET

DELAY1:MOV R6,#5 ;延時子程序

D0: MOV R7,#248

DJNZ R7,$

DJNZ R6,D0

RET

DELAY2:MOV R5,#2

D1: MOV R3,#245

D2: MOV R4,#245

DJNZ R4,$

DJNZ R3,D2

DJNZ R5,D1

RET

LCD:DB ' MCS-51 TEST '

DB ' Xu Rui Feng '

END

  • 上一篇:2015年江西省陶瓷技師名單
  • 下一篇:excel怎麽樣才能把函數隱藏起來? 不要函數公式顯示出來?謝謝
  • copyright 2024編程學習大全網