⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ll.sdi

📁 proteus 仿真的烤箱程序
💻 SDI
📖 第 1 页 / 共 2 页
字号:
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 + -