📄 ll.sdi
字号:
,,,
,,,
,,,;==================================================================
,,,;单片机内存分配申明!
,,,ADC0 EQU 078H
,,,
,,,DIVDLL EQU 21H ;定义被除数
,,,DIVDLH EQU 22H
,,,DIVDHL EQU 23H
,,,DIVDHH EQU 24H
,,,DIVL EQU 25H ;定义除数
,,,DIVH EQU 26H
,,,TEMPL EQU 27H ;定义余数单元
,,,TEMPH EQU 28H
,,,AD EQU 29H ;16进制数暂存单元
,,,KEY EQU 2AH
,,,
,,,
,,,;=================================================================
,,,;液晶显示器寄存器地址分配
,,,;-----------------------------------------------------------------
,,,LCD_CMD_WR EQU 80H ;8000H ;液晶显示器命令寄存器地址
,,,LCD_DATA_WR EQU 81H ;8001H ;液晶显示器显存数据寄存器地址
,,,LCD_BUSY_RD EQU 82H ;8002H ;液晶显示器忙状态寄存器地址
,,,LCD_DATA_RD EQU 83H ;8003H ;读液晶显示器内部数据地址
,,,
,,,;=================================================================
,,,;液晶显示器命令
,,,;-----------------------------------------------------------------
,,,LCD_CLS EQU 1 ;清屏命令
,,,LCD_HOME EQU 2 ;光标返回行首命令
,,,LCD_SETMODE EQU 4 ;设置光标移动方向为右移,不移动
,,,LCD_SETVISIBLE EQU 8 ;关闭显示
,,,LCD_SHIFT EQU 16 ;清除光标和整个显示,光标左移
,,,LCD_SETFUNCTION EQU 32 ;设置显示方式为8bit接口、1行、5*7点阵字体
,,,LCD_SETCGADDR EQU 64 ;设置字符发生器地址
,,,LCD_SETDDADDR EQU 128 ;设置显存地址
,,,
,,,
,,,
,,,
,,,;=============== 主程序开始 =============================================
,,,
,,, ORG 0000H
0000,02 00 30,, LJMP START
,,, ORG 30H
,,,
,,,
0030,,START,START:
0030,12 01 4D,, LCALL INIT ;初始化液晶显示器
0033,12 01 42,, LCALL AD_start ;启动AD,温度在 29H 中。
0036,75 2A 1D,, MOV KEY, #29
0039,12 00 D0,, LCALL ALL_display
,,,
,,,
003C,,MAIN,MAIN:
003C,12 00 6A,, LCALL JIANPAN
,,,
,,,
003F,12 01 42,BIJIAO,BIJIAO: LCALL AD_start
,,,
0042,12 00 9A,, LCALL AD_display
,,,
0045,E5 2A,, MOV A,KEY
0047,C3,, CLR C
0048,94 05,, SUBB A,#5
004A,F5 F0,, MOV B,A
,,,
004C,E5 29,, MOV A, AD
,,,
,,,
004E,C3,, CLR C
004F,95 F0,, SUBB A, B
0051,70 05,, JNZ NEQ ; CJNE A,#00H,NEQ
0053,D2 B0,, SETB P3.0
0055,02 00 3C,, LJMP MAIN ;相等返回.
,,,
0058,40 08,NEQ,NEQ: JC OW
,,,
005A,D2 B0,, SETB P3.0 ;停止工作
005C,12 01 7F,, LCALL D1MS
,,,
,,,
,,, ;LCALL AD_display
,,,
005F,02 00 3C,, LJMP MAIN
,,,
0062,,OW,OW:
0062,C2 B0,, CLR P3.0
,,,
0064,12 01 7F,, LCALL D1MS
,,,
,,, ; LCALL AD_display
,,,
,,,
,,, ; JMP BIJIAO
,,,
,,,
0067,02 00 3C,, LJMP MAIN
,,,
,,,
,,,;=============== 主程序结束 ============================================
,,,
,,,;===================================================================
006A,74 FF,JIANPAN,JIANPAN: MOV A,#0FFH
006C,F5 90,, MOV P1,A
006E,E5 90,, MOV A,P1
,,,
0070,30 E0 07,, JNB ACC.0,G0
,,,
0073,30 E1 07,, JNB ACC.1,G1
,,,
0076,30 E2 07,, JNB ACC.2,G2
,,,
,,,
,,,
0079,22,, RET
,,,
007A,,G0,G0: ;LJMP D1MS
007A,02 00 83,, LJMP PROG0
,,,
007D,,G1,G1: ; LJMP D1MS
007D,02 00 8B,, LJMP PROG1
,,,
0080,,G2,G2: ; LJMP D1MS
0080,02 00 92,, LJMP PROG2
,,,
0083,75 2A 32,PROG0,PROG0: MOV KEY,#50
,,,
0086,12 00 D0,, LCALL ALL_display
,,,
,,,
0089,80 DF,, JMP JIANPAN
,,,
008B,,PROG1,PROG1:
008B,05 2A,, INC KEY
008D,12 00 D0,, LCALL ALL_display
,,,
,,,
0090,80 D8,, JMP JIANPAN
,,,
0092,,PROG2,PROG2:
0092,15 2A,, DEC KEY
0094,12 00 D0,, LCALL ALL_display
,,,
,,,
0097,80 D1,, JMP JIANPAN
0099,22,, RET
,,,;=========================================================
,,,;====================================================
009A,74 02,AD_display,AD_display: MOV A,#2 ;显存地址指针清零,光标回到行首
009C,12 01 6D,, LCALL WRCMD
,,,
009F,E5 29,, MOV A,AD
00A1,12 02 03,, LCALL BTOD
,,,
,,,
,,,
,,,
00A4,74 54,, MOV A, #'T'
00A6,12 01 73,, LCALL WRDATA ;显示字母“T”
,,,
,,,
,,,
00A9,74 3D,, MOV A, #'='
00AB,12 01 73,, LCALL WRDATA ;显示字母“=”
,,,
,,,
,,,
00AE,EB,, MOV A,R3
00AF,44 30,, ORL A,#30H ; 百位
00B1,12 01 73,, LCALL WRDATA
,,,
,,,
,,,
00B4,EC,, MOV A,R4
00B5,44 30,, ORL A,#30H ;十位
00B7,12 01 73,, LCALL WRDATA
,,,
00BA,ED,, MOV A,R5 ;个位
00BB,44 30,, ORL A,#30H
00BD,12 01 73,, LCALL WRDATA
,,,
00C0,74 DF,, MOV A,#0DFH ;显示“°”
00C2,12 01 73,, LCALL WRDATA
00C5,74 43,, MOV A,#'C' ;显示“C”
00C7,12 01 73,, LCALL WRDATA
,,,
,,, ;MOV A,#20H ;显示空格
,,, ;LCALL WRDATA
00CA,74 02,, MOV A,#2 ;显存地址指针清零,光标回到行首
00CC,12 01 6D,, LCALL WRCMD
,,,
00CF,22,, RET
,,,;=========================================================================
,,,;--------------------------------------------------------------------------
,,,;以下程序完成将测量的温度值在液晶显示器上显示出来的任务
,,,;---------------------------------------------------------------------------
,,,
00D0,E5 29,ALL_display,ALL_display: MOV A,AD
00D2,12 02 03,, LCALL BTOD
,,,
,,,
,,,
,,,
00D5,74 54,, MOV A, #'T'
00D7,12 01 73,, LCALL WRDATA ;显示字母“T”
,,,
,,,
,,,
00DA,74 3D,, MOV A, #'='
00DC,12 01 73,, LCALL WRDATA ;显示字母“=”
,,,
,,,
,,,
00DF,EB,, MOV A,R3
00E0,44 30,, ORL A,#30H ; 百位
00E2,12 01 73,, LCALL WRDATA
,,,
,,,
,,,
00E5,EC,, MOV A,R4
00E6,44 30,, ORL A,#30H ;十位
00E8,12 01 73,, LCALL WRDATA
,,,
00EB,ED,, MOV A,R5 ;个位
00EC,44 30,, ORL A,#30H
00EE,12 01 73,, LCALL WRDATA
,,,
00F1,74 DF,, MOV A,#0DFH ;显示“°”
00F3,12 01 73,, LCALL WRDATA
00F6,74 43,, MOV A,#'C' ;显示“C”
00F8,12 01 73,, LCALL WRDATA
,,,
00FB,74 20,, MOV A,#20H ;显示空格
00FD,12 01 73,, LCALL WRDATA
,,,
,,,
0100,E5 2A,KEY_display,KEY_display: MOV A,KEY
0102,12 02 03,, LCALL BTOD
,,,
0105,74 54,, MOV A,#'T'
0107,12 01 73,, LCALL WRDATA ;显示字母“T”
,,,
010A,74 3D,, MOV A,#'='
010C,12 01 73,, LCALL WRDATA ;显示字母“=”
,,,
010F,EB,, MOV A,R3
0110,44 30,, ORL A,#30H
0112,12 01 73,, LCALL WRDATA
,,,
0115,EC,, MOV A,R4
0116,44 30,, ORL A,#30H
0118,12 01 73,, LCALL WRDATA
,,,
011B,ED,, MOV A,R5
011C,44 30,, ORL A,#30H
011E,12 01 73,, LCALL WRDATA
,,,
0121,74 DF,, MOV A,#0DFH ;显示“°”
0123,12 01 73,, LCALL WRDATA
,,,
0126,74 43,, MOV A,#'C' ;显示“C”
0128,12 01 73,, LCALL WRDATA
,,,
,,,
012B,74 20,, MOV A,#20H ;显示空格
012D,12 01 73,, LCALL WRDATA
,,,
0130,74 02,, MOV A,#2 ;显存地址指针清零,光标回到行首
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -