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

📄 main.lis

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 82CE 3FFE              .word 16382
 82D0 3FFC              .word 16380
 82D2 200C              .word 8204
 82D4 401C              .word 16412
 82D6 0018              .word 24
 82D8 0018              .word 24
 82DA 0038              .word 56
 82DC 0030              .word 48
 82DE 0030              .word 48
 82E0 0070              .word 112
 82E2 0060              .word 96
 82E4 0060              .word 96
 82E6 00E0              .word 224
 82E8 00C0              .word 192
 82EA 00C0              .word 192
 82EC 01C0              .word 448
 82EE 0180              .word 384
 82F0 0180              .word 384
 82F2 0380              .word 896
 82F4 0300              .word 768
 82F6 0000              .word 0
 82F8 0000              .word 0
 82FA 0000              .word 0
 82FC 0000              .word 0
 82FE 0000              .word 0
 8300 0000              .word 0
 8302 0000              .word 0
 8304 0000              .word 0
 8306 0000              .word 0
 8308 0000              .word 0
 830A 0000              .word 0
 830C 07E0              .word 2016
 830E 0C38              .word 3128
 8310 1818              .word 6168
 8312 381C              .word 14364
 8314 381C              .word 14364
 8316 381C              .word 14364
 8318 3C38              .word 15416
 831A 1E30              .word 7728
 831C 0F60              .word 3936
 831E 0780              .word 1920
 8320 03E0              .word 992
 8322 05F0              .word 1520
 8324 0CF8              .word 3320
 8326 1878              .word 6264
 8328 383C              .word 14396
 832A 381C              .word 14364
 832C 381C              .word 14364
 832E 381C              .word 14364
 8330 1C18              .word 7192
 8332 0E30              .word 3632
 8334 07E0              .word 2016
 8336 0000              .word 0
 8338 0000              .word 0
 833A 0000              .word 0
 833C 0000              .word 0
 833E 0000              .word 0
 8340 0000              .word 0
 8342 0000              .word 0
 8344 0000              .word 0
 8346 0000              .word 0
 8348 0000              .word 0
 834A 0000              .word 0
 834C 07C0              .word 1984
 834E 0C70              .word 3184
 8350 1838              .word 6200
 8352 301C              .word 12316
 8354 701C              .word 28700
 8356 700E              .word 28686
 8358 700E              .word 28686
 835A 700E              .word 28686
 835C 700E              .word 28686
 835E 780E              .word 30734
 8360 380E              .word 14350
 8362 1C1E              .word 7198
 8364 0FEC              .word 4076
 8366 001C              .word 28
 8368 0038              .word 56
 836A 0030              .word 48
 836C 0070              .word 112
 836E 00E0              .word 224
 8370 0180              .word 384
 8372 0F00              .word 3840
 8374 7800              .word 30720
 8376 0000              .word 0
 8378 0000              .word 0
 837A 0000              .word 0
 837C 0000              .word 0
 837E 0000              .word 0
 8380                   .dbsym e BigNumCode _BigNumCode A[640:320]i
                        .area lit
                        .area text
 0000                   .dbfile c:\documents and settings\sd\桌面\25\bake_mcu/Includes.h
 0000                   .dbfile Main.c
 0000                   .dbfunc e main _main fV
 0000           ;       InitTime -> 2,X
 0000           ;            tmp -> 4,X
 0000           ;            sum -> 6,X
 0000           ;              i -> 8,X
 0000           _main::
 0000                   .dbline -1
 0000 A7F7              ais #-9
 0002 95                tsx
 0003                   .dbline 26
 0003           ; //-------------------------------------------------------------------------*
 0003           ; //工程文件名:Bake.prj                                                      *
 0003           ; //硬件连接:                                                                *
 0003           ; //  TLC2543的CS,I/O CLOCK,DATA INPUT,DATA OUT分别接PTC0,PTD1~PTD3        *
 0003           ; //  LCD的数据口为PTB0~PTB7,控制口为PTC1~PTC4                              *
 0003           ; //  报警灯:红灯及蜂鸣器、绿灯、黄灯、Bake阀、Cool阀分别接PTA的第0~4脚     *
 0003           ; //  温度电位器、时间电位器、热敏电阻、红外传感器分别接TLC2543的第0~3脚    
 0003           ; //程序描述:由TLC2543采集来的AD值确定设定时间、设定温度、当前温度和         *
 0003           ; //         Cool箱中是否有物体                                              *
 0003           ; //         判断如果Bake炉内温度变化超过设定温度一定范围,则红灯闪并报警    *
 0003           ; //         否则等加热到设定时间后黄灯闪,切掉Bake炉电源,提示取出加热物体  *
 0003           ; //         放入Cool箱,冷却阀闭合,当物体移出Cool箱后,冷却阀断开          *
 0003           ; //日    期:2007.04.25                                                      *
 0003           ; //-------------------------------------------------------------------------*
 0003           ; #include "Includes.h"           //总头文件
 0003           ; 
 0003           ; //内部函数声明
 0003           ; void LightAlarm(INT8U Light);   //通过不同颜色灯闪,提示进一步操作
 0003           ; INT16U ConvertCT(INT16U adv);   //将AD值转换当前温度
 0003           ; INT16U ConvertT(INT16U adv);    //将AD值转换设定温度
 0003           ; INT16U ConvertTime(INT16U adv); //将AD值转换设定时间
 0003           ; void ReFlash(void);
 0003           ; 
 0003           ; //主函数
 0003           ; void main()
 0003           ; {
 0003                   .dbline 33
 0003           ;    INT16U InitTime;         //开始计时的基值
 0003           ;    INT16U tmp;
 0003           ;    INT8U i;
 0003           ;    INT16U sum;
 0003           ;   
 0003           ;    //初始化
 0003           ;    DisableMCUInterrupt();   //禁止总中断
 0003 9B                SEI
 0004                   .dbline 34
 0004           ;    MCUInit();               //芯片初始化
 0004 CD0000            jsr _MCUInit
 0007                   .dbline 35
 0007           ;    SCIInit();               //串口初始化
 0007 CD0000            jsr _SCIInit
 000A                   .dbline 36
 000A           ;    LCDInit();               //LCD初始化
 000A CD0000            jsr _LCDInit
 000D                   .dbline 37
 000D           ;    Timer1init();            //定时器1初始化,1秒溢出中断
 000D CD0000            jsr _Timer1init
 0010                   .dbline 38
 0010           ;    Timer2Init();            //定时器2初始化,2通道都是下降沿输入捕捉中断
 0010 CD0000            jsr _Timer2Init
 0013                   .dbline 39
 0013           ;    SPIInit();               //SPI初始化
 0013 CD0000            jsr _SPIInit
 0016                   .dbline 40
 0016           ;    LightInit();             //按钮开关灯控制口
 0016 CD0000            jsr _LightInit
 0019                   .dbline 41
 0019           ;    SwitchOutput_Init();     //开关量输出初始化
 0019 CD0000            jsr _SwitchOutput_Init
 001C 95                tsx
 001D                   .dbline 42
 001D           ;    EnTm1OverflowInt();      //开放Timer1溢出中断
 001D 1C20              bset #6,0x20
 001F                   .dbline 43
 001F           ;    EnableSCIReInt();        //开放串行中断
 001F 1A14              bset #5,0x14
 0021           L2:
 0021                   .dbline 47
 0021           ; 
 0021           ; MainLoop:    
 0021           ;    //初始化标志
 0021           ;    StateFlag=1;             //初始状态为1:开绿灯、Bake炉电源
 0021 A601              lda #1
 0023 C7007B            sta _StateFlag
 0026                   .dbline 48
 0026           ;    CoolFlag=0;              //开始工作时,Cool箱中是没物体的
 0026 4F                clra
 0027 C7007A            sta _CoolFlag
 002A                   .dbline 49
 002A           ;    SendFlag=0;              //需要向PC发显示参数时在串行中断里置1
 002A 4F                clra
 002B C70077            sta _SendFlag
 002E                   .dbline 50
 002E           ;    FlashFlag1=0;            //需要校准当前温度时在串行中断里置1
 002E 4F                clra
 002F C70076            sta _FlashFlag1
 0032                   .dbline 51
 0032           ;    FlashFlag2=0;            //需要修改MCU号时在串行中断里置1
 0032 4F                clra
 0033 C70075            sta _FlashFlag2
 0036                   .dbline 52
 0036           ;    ResetFlag=0;             //复位按钮没被按下,捕捉中断里置1
 0036 4F                clra
 0037 C70079            sta _ResetFlag
 003A                   .dbline 53
 003A           ;    BakeFlag=0;              //Bake炉电源重启开关没被按下,捕捉中断里置1
 003A 4F                clra
 003B C70078            sta _BakeFlag
 003E                   .dbline 56
 003E           ;    
 003E           ;    //初始化全局变量(预防措施)
 003E           ;    ScdTim=0;
 003E 4F                clra
 003F C70084            sta _ScdTim
 0042                   .dbline 57
 0042           ;    MntTim=0;  //按复位键后计时应清0的!否则可能溢出
 0042 4F                clra
 0043 C70082            sta _MntTim
 0046 4F                clra
 0047 C70083            sta _MntTim+1
 004A                   .dbline 59
 004A           ;    
 004A           ;    EnableMCUInterrupt();    //开放总中断
 004A 9A                CLI
 004B CC03F1            jmp L4
 004E           L3:
 004E                   .dbline 63
 004E           ;  
 004E           ;    //主循环
 004E           ;    while(1)
 004E           ;    {
 004E                   .dbline 66
 004E           ;           
 004E           ;      //1 采集A/D值,转换为设定温度、设定时间、当前温度和红外传感器值
 004E           ;      sum=0;
 004E 6F07              clr 7,X
 0050 6F06              clr 6,X
 0052                   .dbline 67
 0052           ;      for(i=0;i<2;i++)
 0052 6F08              clr 8,X
 0054 201E              bra L9
 0056           L6:
 0056                   .dbline 68
 0056                   .dbline 69
 0056 A68F              lda #<_ADValue
 0058 87                psha
 0059 A68F              lda #>_ADValue
 005B 87                psha
 005C 4F                clra
 005D 87                psha
 005E CD0000            jsr _ADC11P
 0061 A703              ais #3
 0063 95                tsx
 0064                   .dbline 70
 0064 E607              lda 7,X
 0066 CB0090            add _ADValue+1
 0069 E707              sta 7,X
 006B E606              lda 6,X
 006D C9008F            adc _ADValue
 0070 E706              sta 6,X
 0072                   .dbline 71
 0072           L7:
 0072                   .dbline 67
 0072 6C08              inc 8,X
 0074           L9:
 0074                   .dbline 67
 0074 E608              lda 8,X
 0076 A102              cmp #2
 0078 25DC              blo L6
 007A                   .dbline 72
 007A           ;      {
 007A           ;          ADC11P(0,ADValue);
 007A           ;          sum+=ADValue[0];
 007A           ;      }
 007A           ;      sum/=2;
 007A 6406              lsr 6,X
 007C 6607              ror 7,X
 007E                   .dbline 73
 007E           ;      CurtTmp=ConvertCT(sum);   //第0路为当前温度
 007E E607              lda 7,X
 0080 87                psha
 0081 E606              lda 6,X
 0083 87                psha
 0084 CD03F7            jsr _ConvertCT
 0087 A702              ais #2
 0089 B600              lda *__r0
 008B C7008D            sta _CurtTmp
 008E B600              lda *__r1
 0090 C7008E            sta _CurtTmp+1
 0093                   .dbline 79
 0093           ;        
 0093           ; /*  
 0093           ;      ADC11P(0,ADValue);
 0093           ;      CurtTmp=ConvertCT(ADValue[0]);   //第0路为当前温度
 0093           ; */   
 0093           ;      Temper=ConvertT(ADValue[1]);     //第1路为设定温度
 0093 C60092            lda _ADValue+2+1
 0096 87                psha
 0097 C60091            lda _ADValue+2
 009A 87                psha
 009B CD065C            jsr _ConvertT
 009E A702              ais #2
 00A0 B600              lda *__r0
 00A2 C7008B            sta _Temper
 00A5 B600              lda *__r1
 00A7 C7008C            sta _Temper+1
 00AA                   .dbline 80
 00AA           ;      Time=ConvertTime(ADValue[2]);    //第2路为设定时间
 00AA C60094            lda _ADValue+4+1
 00AD 87                psha
 00AE C60093            lda _ADValue+4
 00B1 87                psha
 00B2 CD06CF            jsr _ConvertTime
 00B5 A702              ais #2
 00B7 B600              lda *__r0
 00B9 C70087            sta _Time
 00BC B600              lda *__r1
 00BE C70088            sta _Time+1
 00C1                   .dbline 82
 00C1           ; //Time=1;
 00C1           ;      Infrared=ADValue[3];             //第3路为红外传感器的值
 00C1 C60095            lda _ADValue+6
 00C4 C70085            sta _Infrared
 00C7 C60096            lda _ADValue+6+1
 00CA C70086            sta _Infrared+1
 00CD                   .dbline 83
 00CD           ;      ADCurtTmp=ADValue[0];            //校准当前温度时写flash用
 00CD C6008F            lda _ADValue
 00D0 C70080            sta _ADCurtTmp
 00D3 C60090            lda _ADValue+1
 00D6 C70081            sta _ADCurtTmp+1
 00D9                   .dbline 88
 00D9           ; 
 00D9           ; 
 00D9           ;        //2 LCD显示每1s刷新一次
 00D9           ;     //将需要显示的各数据转换成LCD可显示的格式,并放入LcdShowBuff中
 00D9           ;     InBuff(CurtTmp,Temper,CurtTime,Time,LcdShowBuff); 
 00D9 A600              lda #<_LcdShowBuff
 00DB 87                psha
 00DC A600              lda #>_LcdShowBuff
 00DE 87                psha
 00DF C60088            lda _Time+1
 00E2 87                psha
 00E3 C60087            lda _Time
 00E6 87                psha
 00E7 C6008A            lda _CurtTime+1
 00EA 87                psha
 00EB C60089            lda _CurtTime

⌨️ 快捷键说明

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