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

📄 main.lst

📁 加热器的温度控制
💻 LST
📖 第 1 页 / 共 5 页
字号:
01DE C28E            462             CLR     TR1
                     463     
01E0 12021F          464             LCALL   WriterSetTempDate;控制温度写入E2PROM中
                     465     
01E3 D28C            466             SETB    TR0
01E5 D2A9            467             SETB    ET0
                     468     
01E7 750000   F      469             MOV     ContrlMumber,#00H
                     470     
01EA 7400            471             MOV     A,#00H
01EC 12040A          472             LCALL   SetDisplayMode  ;数码管常亮
01EF 22              473             RET
                     474     
A51 MACRO ASSEMBLER      MAIN                                                                DATE  28/01/02   PAGE     9


LOC  OBJ            LINE     SOURCE

01F0                 475     SetTemp4:
01F0 020144          476              LJMP   SetTemp1
01F3 00              477              NOP
01F4 00              478              NOP
                     479     
                     480     ;*************************************************************
                     481     ;读取设定温度
01F5                 482     ReadSetTempDate:
01F5 120377          483             LCALL   CloseDisplay
01F8 750000   F      484             MOV     Counter,#00H
                     485     
01FB 7410            486             MOV     A,#SetTempHE2PROM1
01FD 120000   F      487             LCALL   ReadI2CDate
0200 F500     F      488             MOV     SetTempH,A      ;设定温度值存贮
                     489     
                     490     
0202 7411            491             MOV     A,#SetTempLE2PROM1
0204 120000   F      492             LCALL   ReadI2CDate
0207 F500     F      493             MOV     SetTempL,A      ;设定温度值存贮
                     494     
0209 22              495             RET
                     496     
020A                 497     ErrorDisplay:
020A C2AF            498             CLR     EA              ;禁止中断
020C 75000A   F      499             MOV     Mumber0,#0AH
020F 75000A   F      500             MOV     Mumber1,#0AH
0212 75000B   F      501             MOV     Mumber2,#0BH    ;错误代码(ERR)
0215 12038A          502             LCALL   Display         ;显示数码
0218 1204B9          503             LCALL   Dealy
021B C296            504             CLR     TempContrPort
021D 80EB            505             SJMP    ErrorDisplay
                     506     
                     507     ;保存设定温度
021F                 508     WriterSetTempDate:
021F 120377          509             LCALL   CloseDisplay
                     510     
0222 120000   F      511             LCALL   OpenI2c
                     512     
0225 8500F0   F      513             MOV     B,SetTempH
0228 7410            514             MOV     A,#SetTempHE2PROM1
022A 120000   F      515             LCALL   WriteI2CDate
022D 120000   F      516             LCALL   DealyLong
                     517     
0230 8500F0   F      518             MOV     B,SetTempL
0233 7411            519             MOV     A,#SetTempLE2PROM1
0235 120000   F      520             LCALL   WriteI2CDate
0238 120000   F      521             LCALL   DealyLong
                     522     
023B 120000   F      523             LCALL   CloseI2c
023E 22              524             RET
                     525     ;*************************************************************
023F                 526     DINS1:
                     527     
023F C0E0            528             PUSH    ACC
0241 C0D0            529             PUSH    PSW
0243 C083            530             PUSH    DPH
0245 C082            531             PUSH    DPL
0247 C0F0            532             PUSH    B
                     533     ;
A51 MACRO ASSEMBLER      MAIN                                                                DATE  28/01/02   PAGE    10


LOC  OBJ            LINE     SOURCE

                     534     ;------------------------------------------------------------
                     535     
0249 200025   F      536             JB      DisplayStatu,DINS10
024C 758DF0          537             MOV     TH1,#0F0H
024F 758BBF          538             MOV     TL1,#0BFH       ;8ms中断一次
                     539     
0252 120434          540             LCALL   ReadKey
0255 12038A          541             LCALL   Display
                     542             
0258 200007   F      543             JB      Timerout , DINS00003    ;测量时间溢出则关加热
025B 300004   F      544             JNB     TempContr,DINS00003
                     545     
                     546     ;       MOV     A,ContrlMumber
                     547     ;       JNZ     DINS00001
                     548     ;       CLR     TempContrPort
                     549     ;DINS00001:
                     550     ;       CJNE    A,TempSub,DINS00002
025E D296            551             SETB    TempContrPort
                     552     ;DINS00002:
                     553     ;       INC     ContrlMumber
                     554     ;       MOV     A,ContrlMumber
                     555     ;       CJNE    A,#23,DINS00004
                     556     ;       MOV     ContrlMumber,#00H
0260 8002            557             SJMP    DINS00004
0262                 558     DINS00003:
0262 C296            559             CLR     TempContrPort
0264                 560     DINS00004:
0264 D0F0            561             POP     B
0266 D082            562             POP     DPL
0268 D083            563             POP     DPH
026A D0D0            564             POP     PSW
026C D0E0            565             POP     ACC
026E 32              566             RETI
026F 00              567             NOP
0270 00              568             NOP
                     569     
0271                 570     DINS10:
0271 758D00          571             MOV     TH1,#00H
0274 758B00          572             MOV     TL1,#00H        ;8ms中断一次
                     573     
0277 0500     F      574             INC     Timer
0279 E500     F      575             MOV     A,Timer
027B B40A05          576             CJNE    A,#SetTimer,DINS11
027E 750000   F      577             MOV     Timer,#00H
0281 B200     F      578             CPL     XSBJ
0283                 579     DINS11:
0283 0500     F      580             INC     Timer1
0285 E500     F      581             MOV     A,Timer1
0287 B4C807          582             CJNE    A,#SetWaitTimer,DINS12
028A 750000   F      583             MOV     Timer1,#00H
028D D200     F      584             SETB    FHBJ
028F D200     F      585             SETB    FHBJ
0291                 586     DINS12:
0291 0500     F      587             INC     Timer2
0293 E500     F      588             MOV     A,Timer2
0295 B50005   F      589             CJNE    A,ChangSpeed,DINS13
0298 750000   F      590             MOV     Timer2,#00H
029B B200     F      591             CPL     ChangOk
029D                 592     DINS13:
A51 MACRO ASSEMBLER      MAIN                                                                DATE  28/01/02   PAGE    11


LOC  OBJ            LINE     SOURCE

029D D0F0            593             POP     B
029F D082            594             POP     DPL
02A1 D083            595             POP     DPH
02A3 D0D0            596             POP     PSW
02A5 D0E0            597             POP     ACC
02A7 32              598             RETI
                     599     
                     600     
                     601     ;-------------------------------------------------------------
                     602     ;定时中断0子程序:
02A8                 603     DINS:
02A8 C0E0            604             PUSH    ACC
02AA C0D0            605             PUSH    PSW
                     606     
02AC C083            607             PUSH    DPH
02AE C082            608             PUSH    DPL
                     609     
02B0 D2D3            610             SETB    RS0
                     611     
                     612     
02B2 C28C            613             CLR     TR0             ;定时器初始化
02B4 120377          614             LCALL   CloseDisplay
                     615     
02B7 200008   F      616             JB      TestCon , DINS000
02BA D293            617             SETB    XM2
02BC C294            618             CLR     XM1
02BE C295            619             CLR     XM0
02C0 41C8            620             AJMP    DINS001
02C2                 621     DINS000:
02C2 C293            622             CLR     XM2
02C4 D294            623             SETB    XM1
02C6 C295            624             CLR     XM0             ;设定进行基准测量还是实际测量
02C8                 625     DINS001:
                     626     
02C8 C200     F      627             CLR     Timerout
                     628     
02CA 900000          629             MOV     DPTR,#00H
                     630     
02CD 758C00          631             MOV     TH0,#0
02D0 758A00          632             MOV     TL0,#0
02D3 C292            633             CLR     RC              ;电容开始充电
02D5 D28C            634             SETB    TR0             ;开始计时
02D7                 635     ADC1:
02D7 A3              636             INC     DPTR
02D8 E583            637             MOV     A , DPH
02DA B41B06          638             CJNE    A , #27 , ADC12
02DD D200     F      639             SETB    Timerout
02DF C200     F      640             CLR     TempContr
02E1 8030            641             SJMP    DINSE
02E3                 642     ADC12:  
02E3 30B6F1          643             JNB     JUDE,ADC1       ;等待充电达到Vi
02E6 C28C            644             CLR     TR0             ;冻结定时器
02E8 C28C            645             CLR     TR0             ;冻结定时器
02EA AB8A            646             MOV     R3,TL0          ;读取充电时间间隔
02EC AA8C            647             MOV     R2,TH0
                     648     
02EE 758C48          649             MOV     TH0,#048H       ;约38mS定时
02F1 758A00          650             MOV     TL0,#000H
02F4 D28C            651             SETB    TR0             ;定时器继续工作
A51 MACRO ASSEMBLER      MAIN                                                                DATE  28/01/02   PAGE    12


LOC  OBJ            LINE     SOURCE

02F6 D292            652             SETB    RC              ;放电,准备下次充电
02F8 D292            653             SETB    RC              ;放电,准备下次充电
                     654     
02FA EB              655             MOV     A,R3            ;累加采样值
02FB 2500     F      656             ADD     A,TOTALL
02FD F500     F      657             MOV     TOTALL,A
02FF EA              658             MOV     A,R2
0300 3500     F      659             ADDC    A,TOTALM
0302 F500     F      660             MOV     TOTALM,A
0304 E4              661             CLR     A
0305 3500     F      662             ADDC    A,TOTALH
0307 F500     F      663             MOV     TOTALH,A
                     664     
0309 0500     F      665             INC     CLOCK           ;检测次数加一
030B E500     F      666             MOV     A,CLOCK
030D 540F            667             ANL     A,#0FH
030F 00              668             NOP
0310 00              669             NOP
0311 600B            670             JZ      ADC2
0313                 671     DINSE:
0313 D082            672             POP     DPL
0315 D083            673             POP     DPH
0317 D0D0            674             POP     PSW
0319 D0E0            675             POP     ACC
                     676     
031B 32              677             RETI ;检测未满16次,中断返回
031C 00              678             NOP
031D 00              679             NOP
031E                 680     ADC2:
031E E500     F      681             MOV     A,TOTALL        ;检测满16次,求平均充电时间,保存到R2R3
0320 C4              682             SWAP    A
0321 540F            683             ANL     A,#0FH
0323 FB              684             MOV     R3,A
0324 E500     F      685             MOV     A,TOTALM
0326 C4              686             SWAP    A
0327 54F0            687             ANL     A,#0F0H
0329 4B              688             ORL     A,R3
032A FB              689             MOV     R3,A
032B F500     F      690             MOV     VILT,A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -