導航:首頁 > 編程語言 > lcd1602匯編程序

lcd1602匯編程序

發布時間:2022-02-05 18:31:27

Ⅰ lcd1602a要讓它顯示 的匯編代碼

我這有LCD1602顯示資料,需要的話可以發給你參考......

發了,希望有幫助~~~~~~

Ⅱ LCD1602 4匯流排匯編程序問題

好久以前搞過記不清了,記得有一個信號是用來表示當前輸入的是高4位或者低4位的

Ⅲ 求一個1602液晶顯示最簡單的匯編程序(在屏上顯示一個數字就行了,過程完整)

;* 1、LCD第一行顯示: www.saxmcu.com
;* LCD第二行顯示: SP-28A--DIY
;* 2、先將兩行字元寫入DDRAM中,然後從右至左逐字移出顯示。
;* 3、在指定位置停留1.6秒後,閃爍2次,清屏。
;* 4、反復循環上述顯示方式。
;*******************************************************************

LCD_RS EQU P2.0
LCD_RW EQU P2.1
LCD_EN EQU P2.2

;*******************************************************************
ORG 0000H
AJMP MAIN
ORG 0030H
;*******************************************************************
MAIN:
MOV SP,#60H
ACALL LCD_INIT ;LCD初始化
MAIN1:
ACALL CLR_LCD ;清LCD
MOV A,#90H ;在第一行第17列的位置
ACALL LCD_CMD
MOV DPTR,#LINE1 ;第一行字元串的起始地址送入DPTR。
ACALL WRITE
MOV A,#0D0H ;在第二行第17列的位置
ACALL LCD_CMD
MOV DPTR,#LINE2 ;第二行字元串的起始地址送入DPTR。
ACALL WRITE

MOV R3,#10H ;向左移動16格
LOOPA:
MOV A,#18H ;字元同時左移一格
ACALL LCD_CMD
MOV R5,#03H ;延時375MS
ACALL DELAY125MS
DJNZ R3,LOOPA

ACALL DELAY4 ;延時1.6s
ACALL DELAY4
MOV R4,#02H ;設置閃爍次數
ACALL FLASH ;開始閃爍
AJMP MAIN1

LINE1:
DB " www.saxmcu.com ",00H
LINE2:
DB " SP-28A--DIY ",00H

;***************************************************************
;LCD初始化設定子程序
;***************************************************************
LCD_INIT:
ACALL DELAY5MS ;延時15MS
ACALL DELAY5MS ;等待LCD電源穩定
ACALL DELAY5MS

MOV A,#38H ;16*2顯示,5*7點陣,8位數據
ACALL LCD_CMD_NC ;不進行LCD忙檢測
ACALL DELAY5MS

MOV A,#38H ;16*2顯示,5*7點陣,8位數據
ACALL LCD_CMD_NC ;不進行LCD忙檢測
ACALL DELAY5MS

MOV A,#38H ;16*2顯示,5*7點陣,8位數據
ACALL LCD_CMD_NC ;不進行LCD忙檢測
ACALL DELAY5MS

MOV A,#08H ;顯示關
ACALL LCD_CMD ;進行LCD忙檢測

MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;進行LCD忙檢測

MOV A,#0CH ;顯示開,關游標
ACALL LCD_CMD ;進行LCD忙檢測

RET
;***************************************************************
;清LCD子程序
;***************************************************************
CLR_LCD:
MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;進行LCD忙檢測
RET

;***************************************************************
;寫指令數據到LCD
;RS=L,RW=L,D0-D7=指令碼,E=高脈沖
;***************************************************************
LCD_CMD:
CALL CHECKBUSY
LCD_CMD_NC:
CLR LCD_RS
CLR LCD_RW
MOV P0,A
SETB LCD_EN
NOP
NOP
NOP
NOP
CLR LCD_EN
RET
;***************************************************************
;寫顯示數據到LCD
;RS=H,RW=L,D0-D7=數據,E=高脈沖
;***************************************************************
LCD_WDATA:
ACALL CHECKBUSY
SETB LCD_RS
CLR LCD_RW
MOV P0,A
SETB LCD_EN
NOP
NOP
NOP
NOP
CLR LCD_EN
RET
;***************************************************************
;檢測LCD控制器忙狀態
;讀數據
;RS=L,RW=H,E=H,輸出:D0-D7=數據
;P0.7=1,LCD忙,等待。P0.7=0,LCD閑,可以進行讀寫操作。
;***************************************************************
CHECKBUSY:
PUSH ACC
MOV P0,#0FFH
CLR LCD_RS
SETB LCD_RW
SETB LCD_EN
BUSYLOOP:
NOP
JB P0.7,BUSYLOOP
CLR LCD_EN
POP ACC
RET
;***************************************************************
; 發送字元串子程序
;***************************************************************
WRITE:
PUSH ACC
WRITE1:
CLR A
MOVC A,@A+DPTR
JZ WRITE2
INC DPTR
ACALL LCD_WDATA
JMP WRITE1
WRITE2:
POP ACC
RET
;***************************************************************
;閃爍子程序
;***************************************************************
FLASH:
MOV A,#08H ;關閉顯示
ACALL LCD_CMD
ACALL DELAY4
MOV A,#0CH ;開顯示,關閉游標
ACALL LCD_CMD
ACALL DELAY4
DJNZ R4,FLASH
RET
;***************************************************************
;延時5MS子程序
;LCD初始化使用
;***************************************************************
DELAY5MS:
MOV R6,#10
DL1:
MOV R7,#249
DL2:
DJNZ R7,DL2
DJNZ R6,DL1
RET
;***************************************************************
;延時125MS子程序
;字元串移動時使用
;***************************************************************
DELAY125MS:
DL3:
MOV R6,#250
DL4:
MOV R7,#249
DL5:
DJNZ R7,DL5
DJNZ R6,DL4
DJNZ R5,DL3
RET
;***************************************************************
;延時800MS子程序
;閃爍時使用
;***************************************************************
DELAY4:
MOV R5,#40
DL6:
MOV R6,#100
DL7:
MOV R7,#100
DL8:
DJNZ R7,DL8
DJNZ R6,DL7
DJNZ R5,DL6
RET
;***************************************************************
END

可以吧?

單片機LCD1602顯示程序(匯編),小弟有很多地方不懂,希望高人能加上注釋,有助於本人學習

單片機LCD1602顯示程序(匯編),小弟有很多地方不懂,希望高人能加上注釋,有助於本人學習
存吼虧拌麗賄挽帶桶載主炎孩幻盒

為你祝福,為你歡笑,因為在今天,我的內心也跟你一樣的歡騰、快樂!祝你們,百年好合!白頭到老!

Ⅳ lcd1602液晶顯示滾動匯編語言具體解釋,請說一下這個程序的整個思路,沒注釋的地方是什麼意思

沒註解的地方是延時程序, MOV P0,#是把要放到LCD的控制IC里的資料由P0埠送出.(包含控制及顯示資料)

Ⅵ 單片機LCD1602液晶顯示的匯編程序

也沒去理解AC,只知道第一行第1點的地址是80H,第二行第1點是C0H。

下面就是你要的程序,僅供參考

RSBITP1.2;這3位是液晶屏的控制信號,連接方式由具體硬體而定

RWBITP1.1

EBITP1.0

ORG00H

AJMPMAIN

ORG30H

MAIN:

movR0,#24

ACALLINITIAL

ACALLDISPLAY;調用液晶顯示子程序

AJMPMAIN

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

DISPLAY:

MOVA,#80H ;第一行第1個點

ACALLWR_CMD

MOVDPTR,#LINE1

ACALLPR_STR

ACALLWR_DATA

DISP1:

MOVA,#1CH ;字元左移命令(註:實物中左移命令字為18H)

ACALLWR_CMD

ACALLD05S

DJNZR0,DISP1

RET

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

INITIAL:

MOVA,#01H

ACALLWR_CMD

MOVA,#38H

ACALLWR_CMD

MOVA,#0CH

ACALLWR_CMD

MOVA,#06H

ACALLWR_CMD

RET

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

WR_CMD:

MOVP3,A

CLRRS;寫入控制命令

CLRRW

CLRE

ACALLDELAY

SETBE

RET

;----寫液晶數據---------------------------------------------

WR_DATA:

MOVP3,A

SETBRS;寫入數據

CLRRW

CLRE

ACALLDELAY;判斷液晶模塊是否忙?

SETBE

RET

;-----寫行字元---------------------------------------------------------------

PR_STR:

CLR A

MOVCA,@A+DPTR

JZ END_PR

ACALLWR_DATA

INC DPTR

AJMPPR_STR

END_PR:

RET

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

DELAY:

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

CLRRS

SETBRW

CLRE

NOP

SETBE

JBP3.7,DELAY;如果P3.7為高電平表示忙就循環等待

RET

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

D05S:

MOVR6,#25

MOVR5,#100

MOVR4,#100

DJNZR4,$

DJNZR5,$-4

DJNZR6,$-8

RET

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

LINE1:

DB'ZHUNIYISHENGPINGAN',00H

Ⅶ 51單片機+ADC0809+LCD1602用匯編語言編程

你把這兩個程序合起來改下就差不多咯!時間忙 只能把自己以前學的子程序給你咯
; :1602顯示
LCD_RS EQU P2.0
LCD_RW EQU P2.1
LCD_EN EQU P2.2
LCD_DATA EQU P0

;*******************************************************************
ORG 0000H
AJMP MAIN
ORG 0030H
;*******************************************************************
MAIN:
MOV SP,#60H
ACALL LCD_INIT ;LCD初始化
MAIN1:
ACALL CLR_LCD ;清LCD
MOV A,#90H ;在第一行第17列的位置
ACALL LCD_CMD
MOV DPTR,#LINE1 ;第一行字元串的起始地址送入DPTR。
ACALL WRITE
MOV A,#0D0H ;在第二行第17列的位置
ACALL LCD_CMD
MOV DPTR,#LINE2 ;第二行字元串的起始地址送入DPTR。
ACALL WRITE

MOV R3,#10H ;向左移動16格
LOOPA:
MOV A,#18H ;字元同時左移一格
ACALL LCD_CMD
MOV R5,#03H ;延時375MS
ACALL DELAY125MS
DJNZ R3,LOOPA

ACALL DELAY4 ;延時1.6s
ACALL DELAY4
MOV R4,#02H ;設置閃爍次數
ACALL FLASH ;開始閃爍
AJMP MAIN1

LINE1:
DB "YALONG:",00H
LINE2:
DB "welcome you!",00H

;***************************************************************
;LCD初始化設定子程序
;***************************************************************
LCD_INIT:
ACALL DELAY5MS ;延時15MS
ACALL DELAY5MS ;等待LCD電源穩定
ACALL DELAY5MS

MOV A,#38H ;16*2顯示,5*7點陣,8位數據
ACALL LCD_CMD_NC ;不進行LCD忙檢測
ACALL DELAY5MS

MOV A,#38H ;16*2顯示,5*7點陣,8位數據
ACALL LCD_CMD_NC ;不進行LCD忙檢測
ACALL DELAY5MS

MOV A,#38H ;16*2顯示,5*7點陣,8位數據
ACALL LCD_CMD_NC ;不進行LCD忙檢測
ACALL DELAY5MS

MOV A,#08H ;顯示關
ACALL LCD_CMD ;進行LCD忙檢測

MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;進行LCD忙檢測

MOV A,#0CH ;顯示開,關游標
ACALL LCD_CMD ;進行LCD忙檢測

RET
;***************************************************************
;清LCD子程序
;***************************************************************
CLR_LCD:
MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;進行LCD忙檢測
RET

;***************************************************************
;寫指令數據到LCD
;RS=L,RW=L,D0-D7=指令碼,E=高脈沖
;***************************************************************
LCD_CMD:
CALL CHECKBUSY
LCD_CMD_NC:
CLR LCD_RS
CLR LCD_RW
MOV LCD_DATA,A
SETB LCD_EN
NOP
NOP
NOP
NOP
CLR LCD_EN
RET
;***************************************************************
;寫顯示數據到LCD
;RS=H,RW=L,D0-D7=數據,E=高脈沖
;***************************************************************
LCD_WDATA:
ACALL CHECKBUSY
SETB LCD_RS
CLR LCD_RW
MOV LCD_DATA,A
SETB LCD_EN
NOP
NOP
NOP
NOP
CLR LCD_EN
RET
;***************************************************************
;檢測LCD控制器忙狀態
;讀數據
;RS=L,RW=H,E=H,輸出:D0-D7=數據
;LCD_DATA.7=1,LCD忙,等待。LCD_DATA.7=0,LCD閑,可以進行讀寫操作。
;***************************************************************
CHECKBUSY:
PUSH ACC
MOV LCD_DATA,#0FFH
CLR LCD_RS
SETB LCD_RW
SETB LCD_EN
BUSYLOOP:
NOP
JB LCD_DATA.7,BUSYLOOP
CLR LCD_EN
POP ACC
RET
;***************************************************************
; 發送字元串子程序
;***************************************************************
WRITE:
PUSH ACC
WRITE1:
CLR A
MOVC A,@A+DPTR
JZ WRITE2
INC DPTR
ACALL LCD_WDATA
JMP WRITE1
WRITE2:
POP ACC
RET
;***************************************************************
;閃爍子程序
;***************************************************************
FLASH:
MOV A,#08H ;關閉顯示
ACALL LCD_CMD
ACALL DELAY4
MOV A,#0CH ;開顯示,關閉游標
ACALL LCD_CMD
ACALL DELAY4
DJNZ R4,FLASH
RET
;***************************************************************
;延時5MS子程序
;LCD初始化使用
;***************************************************************
DELAY5MS:
MOV R6,#10
DL1:
MOV R7,#249
DL2:
DJNZ R7,DL2
DJNZ R6,DL1
RET
;***************************************************************
;延時125MS子程序
;字元串移動時使用
;***************************************************************
DELAY125MS:
DL3:
MOV R6,#250
DL4:
MOV R7,#249
DL5:
DJNZ R7,DL5
DJNZ R6,DL4
DJNZ R5,DL3
RET
;***************************************************************
;延時800MS子程序
;閃爍時使用
;***************************************************************
DELAY4:
MOV R5,#40
DL6:
MOV R6,#100
DL7:
MOV R7,#100
DL8:
DJNZ R7,DL8
DJNZ R6,DL7
DJNZ R5,DL6
RET
;***************************************************************
ENd
; ADC0809子程序
; 引腳定義
ADC_EOC EQU P2.0
ADC_CS EQU P2.1
ADC_RD EQU P2.2
ADC_WR EQU P2.3

ADC_DATA EQU P0

ORG 0000H
AJMP MAIN

ORG 0030H
MAIN:
SETB ADC_EOC
SETB ADC_WR
SETB ADC_RD
SETB ADC_CS

CLR ADC_CS ;START and ALE is H
CLR ADC_WR
NOP
NOP
NOP
SETB ADC_WR
SETB ADC_CS
NOP
JB ADC_EOC,$ ; JNB ADC_EOC,$
CLR ADC_CS
CLR ADC_RD
MOV ADC_DATA,#0FFH
MOV A,ADC_DATA
SETB ADC_RD
SETB ADC_CS

CJNE A,#00H,BELL
INC A

BELL:
MOV R5,A
BELL1: ACALL DELAY
DJNZ R5,BELL1
CPL P2.7
AJMP MAIN

DELAY:
MOV R7,#02H
D1:
MOV R6,#0FFH
DJNZ R6,$
DJNZ R7,D1
RET

END

Ⅷ 我想玩玩1602LCD顯示 哪位高手有顯示匯編程序 借小弟分享一下 謝了

匯編沒有,C的要不要。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="A";//其實這里可以寫最多16個字元,比如AAAAAA....
sbit lcden=P3^4; //lcd 控制使能端
sbit lcdrs=P3^5; //lcd寫命令、數據控制端,一般情況我們不需要讀LCD,即通常接地rw=0;
//sbit la=P2^6;
//sbit wela=P2^7;
uchar num;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_cmd(uchar cmd)
{
lcdrs=0; //選擇寫命令模式
P0=cmd; //將要寫的命令寫到數據匯流排上
delay(5); //稍延時以等數據穩定
lcden=1; //給使能端一個高脈沖,初始化時為低電平
delay(5); //稍延時
lcden=0; //完成高脈沖
}
void write_date(uchar date)
{
lcdrs=1; //寫數據模式
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
// wela=0;
// la=0;
lcden=0;
write_cmd(0x38);//設置16x2顯示,5x7點陣,8位數據介面
write_cmd(0x0c);//設置開顯示,不顯示游標
write_cmd(0x06);//寫一個字元後指針自動加一
write_cmd(0x01);//顯示清零,數據指針清零
}
void main()
{
init();
write_cmd(0x80); //定位指針到第一行第一個字
for(num=0;num<1;num++)
{
write_date(table[num]);
delay(5);
}

while(1);
}

Ⅸ 單片機 LCD1602匯編 數字鍾 程序 求解釋。

不錯,不過不能用

Ⅹ 用LCD1602液晶顯示匯編程序編寫一個程序顯示課程名稱「」單片機介面技術」及本組同學名字

1605不能顯示中文,數字字母可以轉碼顯示

閱讀全文

與lcd1602匯編程序相關的資料

熱點內容
linuxboot修復 瀏覽:841
程序在線編譯系統的設計與實現 瀏覽:722
電腦c盤記錄存在哪個文件夾 瀏覽:155
演算法分析與設計替換方法 瀏覽:850
老程序員丟失手機 瀏覽:272
新世紀日本語pdf 瀏覽:85
基於單片機的數字示波器 瀏覽:36
登qq伺服器連接中什麼意思 瀏覽:436
表格宏命令 瀏覽:994
肯德基app設定在哪裡 瀏覽:472
蘋果電腦文件夾怎麼添加列印機 瀏覽:701
pythonswagger 瀏覽:235
作業打卡解壓素材 瀏覽:159
pdf導入ibooks 瀏覽:577
xps文件轉pdf 瀏覽:134
怎麼樣獲得命令方塊 瀏覽:899
安卓studio如何改主題 瀏覽:933
linux自動獲取ip命令行 瀏覽:208
做設計做程序員適合的電腦 瀏覽:778
網站有源碼和沒有源碼的區別 瀏覽:680