📄 ll.sdi
字号:
0132,12 01 6D,, LCALL WRCMD
,,,
0135,22,, RET
,,,
,,,
,,,
,,,
,,,
,,,
,,,
,,,
,,,
,,,;=========================================================================
0136,7D 04,D1S,D1S: MOV R5,#4
0138,7E FA,M4,M4: MOV R6,#250
013A,12 01 7F,M5,M5: LCALL D1MS
013D,DE FB,, DJNZ R6,M5
013F,DD F7,, DJNZ R5,M4
0141,22,, RET
,,,;=========================================================================
,,,
,,,
,,,
,,,
,,,
,,,
,,,
,,,
,,,;=========================================================================
,,,;启动AD转换,把转换后的温度值存放在"29H"中。
,,,;=========================================================================
0142,90 00 78,AD_start,AD_start: MOV DPTR,#ADC0
,,,
0145,F0,, MOVX @DPTR,A ;启动A/D
,,,
,,,
0146,12 01 7F,, LCALL D1MS
0149,E0,, MOVX A,@DPTR ;取采样的电压值
,,,
014A,F5 29,, MOV AD ,A
,,,
,,, ;MOV R3,A
,,, ;MOV R2,#0
,,, ;MOV R6,#00H ;
,,, ;MOV R7,#0C4H ;#196
,,, ;LCALL DMUL
,,,
,,,
,,, ;MOV DIVDHH,R4
,,, ;MOV DIVDHL,R5
,,, ;MOV DIVDLH,R6
,,, ;MOV DIVDLL,R7
,,,
,,, ;MOV DIVL,#01H
,,, ;MOV DIVH,#0F4H ;除数=500
,,, ;LCALL CHUFA ;除500得到电压值
,,,
,,, ;MOV 29H,DIVDLH
,,, ;MOV A,29H
,,, ;LCALL BTOD ;转换为BCD码
014C,22,, RET
,,,;=========================================================================
,,,
,,,
,,,
,,,
,,,
,,,
,,,
,,,
,,,
,,,;=========================================================================
,,,; 液晶显示器初始化
,,,;=========================================================================
014D,74 38,INIT,INIT: MOV A,#38H ;8位、2行、5*7字符方式
014F,12 01 6D,, LCALL WRCMD
0152,74 0C,, MOV A,#LCD_SETVISIBLE+4 ;打开显示
0154,12 01 6D,, LCALL WRCMD
0157,74 80,, MOV A,#LCD_SETDDADDR ; 开始显示的位置在最左边
0159,12 01 6D,, LCALL WRCMD
015C,74 07,, MOV A,#LCD_SETMODE+3 ; 增量方式,光标移动
015E,12 01 6D,, LCALL WRCMD
0161,22,, RET
,,,;===========================================================================
,,,;清屏并且设置初始化条件
,,,;Clears the LCD display and sets the initialisation conditions.
,,,;===========================================================================
0162,74 01,CLS,CLS: MOV A,#LCD_CLS
0164,12 01 6D,, LCALL WRCMD
0167,74 80,, MOV A,#LCD_SETDDADDR ;开始显示的位置在最左边
0169,12 01 6D,, LCALL WRCMD
016C,22,, RET
,,,;==============================================================================
,,,;写命令子程序,命令在累加器A中
,,,;Sub routine to write command:
,,,;==============================================================================
016D,90 00 80,WRCMD,WRCMD: MOV DPTR,#LCD_CMD_WR
0170,F0,, MOVX @DPTR,A
0171,80 04,, SJMP WTBUSY
,,,;------------------------------------------------------------------------------
,,,;将字符写入LCD1602液晶显示器的显存,要显示的字符在累加器A中
,,,; Subroutine to Write a Character to the LCD Display.
,,,;-------------------------------------------------------------------------------
0173,90 00 81,WRDATA,WRDATA: MOV DPTR,#LCD_DATA_WR
0176,F0,, MOVX @DPTR,A
,,,;--------------------------------------------------------------------------------
,,,;判断液晶显示器是否忙?
,,,; Subroutine to wait for a busy clear.
,,,;--------------------------------------------------------------------------------
0177,90 00 82,WTBUSY,WTBUSY: MOV DPTR,#LCD_BUSY_RD
017A,E0,, MOVX A,@DPTR
017B,20 E7 F9,, JB ACC.7,WTBUSY
017E,22,, RET
,,,;===================================================================
,,,
,,,
,,,
,,,
017F,7F 50,D1MS,D1MS: MOV R7,#80 ;255
0181,DF FE,, DJNZ R7,$
0183,22,, RET
,,,;=========================================================
,,,
,,,
,,,
,,,
,,,
,,,;==========================================================
,,,;多字节乘法程序
,,,;被乘数在R2R3,乘数在R6R7,积在R4R5R6R7
,,,;==========================================================
0184,EB,DMUL,DMUL: MOV A,R3
0185,8F F0,, MOV B,R7
0187,A4,, MUL AB
0188,CF,, XCH A,R7
0189,AD F0,, MOV R5,B
018B,8A F0,, MOV B,R2
018D,A4,, MUL AB
018E,2D,, ADD A,R5
018F,FC,, MOV R4,A
0190,E4,, CLR A
0191,35 F0,, ADDC A,B
0193,FD,, MOV R5,A
0194,EE,, MOV A,R6
0195,8B F0,, MOV B,R3
0197,A4,, MUL AB
0198,2C,, ADD A,R4
0199,CE,, XCH A,R6
019A,C5 F0,, XCH A,B
019C,3D,, ADDC A,R5
019D,FD,, MOV R5,A
019E,92 D5,, MOV F0,C
01A0,EA,, MOV A,R2
01A1,A4,, MUL AB
01A2,2D,, ADD A,R5
01A3,FD,, MOV R5,A
01A4,E4,, CLR A
01A5,92 E0,, MOV ACC.0,C
01A7,A2 D5,, MOV C,F0
01A9,35 F0,, ADDC A,B
01AB,FC,, MOV R4,A
01AC,22,, RET
,,,
,,,
,,,
,,,
,,,
,,,
,,,
,,,;====================================================
,,,;4字节加1字节程序
,,,;被加数在R4R5R6R7中,加数在A中
,,,;和在R4R5R6R7中
,,,;====================================================
01AD,2F,JIAFA,JIAFA: ADD A,R7
01AE,FF,, MOV R7,A
01AF,E4,, CLR A
01B0,3E,, ADDC A,R6
01B1,FE,, MOV R6,A
01B2,E4,, CLR A
01B3,3D,, ADDC A,R5
01B4,FD,, MOV R5,A
01B5,E4,, CLR A
01B6,3C,, ADDC A,R4
01B7,FC,, MOV R4,A
01B8,22,, RET
,,,
,,,
,,,
,,,
,,,
,,,
,,,
,,,;===========================================================
,,,;4字节除以2字节的除法程序
,,,;被除数在DIVDHH、DIVDHL、DIVDLH和DIVDLL单元
,,,;除数在DIVH和DIVL单元
,,,;商在被除数单元
,,,;余数在TEMPH和TEMPL单元
,,,;===========================================================
01B9,E5 26,CHUFA,CHUFA: MOV A,DIVH ;除数为零?
01BB,45 25,, ORL A,DIVL
01BD,70 03,, JNZ DIVD0
01BF,D2 D2,, SETB OV ;为零,置溢出标志
01C1,22,, RET
01C2,75 27 00,DIVD0,DIVD0: MOV TEMPL,#0
01C5,75 28 00,, MOV TEMPH,#0
01C8,75 F0 20,, MOV B,#32
01CB,C3,DIVD1,DIVD1: CLR C
01CC,E5 21,, MOV A,DIVDLL
01CE,33,, RLC A
01CF,F5 21,, MOV DIVDLL,A
01D1,E5 22,, MOV A,DIVDLH
01D3,33,, RLC A
01D4,F5 22,, MOV DIVDLH,A
01D6,E5 23,, MOV A,DIVDHL
01D8,33,, RLC A
01D9,F5 23,, MOV DIVDHL,A
01DB,E5 24,, MOV A,DIVDHH
01DD,33,, RLC A
01DE,F5 24,, MOV DIVDHH,A
01E0,E5 27,, MOV A,TEMPL
01E2,33,, RLC A
01E3,F5 27,, MOV TEMPL,A
01E5,C5 28,, XCH A,TEMPH
01E7,33,, RLC A
01E8,C5 28,, XCH A,TEMPH
01EA,92 D5,, MOV F0,C
01EC,95 25,, SUBB A,DIVL
01EE,FF,, MOV R7,A
01EF,E5 28,, MOV A,TEMPH
01F1,95 26,, SUBB A,DIVH
01F3,B0 D5,, ANL C,/F0
01F5,40 06,, JC DIVD2
01F7,8F 27,, MOV TEMPL,R7
01F9,F5 28,, MOV TEMPH,A
01FB,05 21,, INC DIVDLL
01FD,D5 F0 CB,DIVD2,DIVD2: DJNZ B,DIVD1
0200,C2 D2,, CLR OV
0202,22,, RET
,,,
,,,
,,,
,,,;============================================================
,,,;BCD转换
,,,;============================================================
0203,75 F0 64,BTOD,BTOD: MOV B,#100
0206,84,, DIV AB
0207,FB,, MOV R3,A
0208,74 0A,, MOV A,#10
020A,C5 F0,, XCH A,B
020C,84,, DIV AB
020D,C4,, SWAP A
020E,45 F0,, ORL A,B
,,,
0210,FD,, MOV R5,A
0211,C4,, SWAP A
0212,54 0F,, ANL A,#0FH
0214,FC,, MOV R4,A
0215,ED,, MOV A,R5
0216,54 0F,, ANL A,#0FH
0218,FD,, MOV R5,A
0219,22,, RET
,,,;============================================================
000E,,, END
,,,
,,,
,,,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -