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

📄 assist~1.lst

📁 为苏州一家公司所做的的恒温恒湿车间控制 系统
💻 LST
📖 第 1 页 / 共 5 页
字号:
__start:
__text_start:
    8058 45 0240      ldHX	#0x0240
    805B 94           tXS	
    805C CD 808D      jsr	__HC08Setup
    805F 45 00A2      ldHX	#0x00A2
    8062 65 0105      cpHX	#0x0105
    8065 27 06        beq	0x806D
    8067 6F 00        clr	0,X
    8069 AF 01        aiX	#1
    806B 20 F5        bra	0x8062
    806D 45 004F      ldHX	#0x004F
    8070 94           tXS	
    8071 45 8004      ldHX	#0x8004
    8074 65 8058      cpHX	#0x8058
    8077 27 0B        beq	0x8084
    8079 E6 00        ldA	0,X
    807B 9EE7 00      stA	0,S
    807E AF 01        aiX	#1
    8080 A7 01        aiS	#1
    8082 20 F0        bra	0x8074
    8084 45 0240      ldHX	#0x0240
    8087 94           tXS	
    8088 CD 80B2      jsr	_main
_exit:
    808B 20 FE        bra	0x808B
FILE: setup.c
(0001) /*_HC08Setup:GP32系统初始化子程序----------------------*
(0002) *功能:系统初始化设置:设置CONFIG1和CONFIG2寄存器       *
(0003)        CGM的寄存器设置:由外部晶振f=32.768kHz,产生内部 *
(0004)        总线时钟2.4576MHz                               *
(0005) *参数:无                                              *
(0006) *返回:无                                              *
(0007) *-----------------------------------------------------*/ 
(0008) #include "GP32C.h"     //映像寄存器地址头文件
(0009) void _HC08Setup(void)
(0010)  {
__HC08Setup:
    808D A6 01        ldA	#1
    808F B7 1E        stA	0x1E
(0011)    //初始化CONFIG2
(0012)    CONFIG2=0b00000001;  //SCIBDSRC=1内部总线时钟用作SCI
(0013)                         //时钟;OSCSTOPENB=0在stop模式下
(0014)                         //禁止振荡器工作      
(0015)    //初始化CONFIG1
(0016)    CONFIG1=0b00111101;  //COPD=1 禁止COP模块
    8091 A6 3D        ldA	#61
    8093 B7 1F        stA	0x1F
(0017)                       //STOP=0 禁止STOP指令
(0018)                       //SSREC=1 32个CGMXCLK周期退出
(0019)                       //STOP模式
(0020)                       //LVI5OR3=1 LVI工作在5V
(0021)                       //LVIPWRD=1 禁止LVI模块电源
(0022)                       //LVIRSTD=1 允许LVI复位信号
(0023)                       //LVISTOP=0 在stop模式下禁止LVI
(0024)                       //COPRS=0 COP溢出范围使用长的时间                         
(0025)    PCTL=0x00;         //①禁止PLL:清零PLL控制寄存器PCTL             
    8095 3F 36        clr	0x36
(0026)    PCTL=0x01;         //②将P、E写入PTCL,置VCO的参考频率
    8097 A6 01        ldA	#1
    8099 B7 36        stA	0x36
(0027)                       //  为2             
(0028)    PMSH=0x01;         //③将N写入PMSH、PMSL,置VCO的倍
    809B A6 01        ldA	#1
    809D B7 38        stA	0x38
(0029)                       //  频因子为$12C          
(0030)    PMSL=0x2C;             
    809F A6 2C        ldA	#44
    80A1 B7 39        stA	0x39
(0031)    PMRS=0b10000000;   //④将L写入PMRS,置VCO的输出频率范
    80A3 A6 80        ldA	#-128
    80A5 B7 3A        stA	0x3A
(0032)                       //  围系数为$80   
(0033)    PRDS=0x01;         //⑤将R写入PRDS
    80A7 A6 01        ldA	#1
    80A9 B7 3B        stA	0x3B
(0034)    PCTL|=(1<<5);      //⑥置PCTL.PLLON=1,启动PLL电路  
    80AB 1A 36        Bset	5,0x36
(0035)    PBWC|=(1<<7);      //⑦PBWC自动带宽控制位=1,选择自动
    80AD 1E 37        Bset	7,0x37
(0036)                       //  控制方式  
(0037)    PCTL|=(1<<4);      //⑧PCTL.BCS=1,选择PLL电路为时钟源
    80AF 18 36        Bset	4,0x36
    80B1 81           rts	
_main:
  channel              --> X+0
  cs                   --> X+1
  j                    --> X+2
  i                    --> X+4
  k                    --> X+6
  buf                  --> X+7
  data                 --> X+13
  SendBuff             --> X+16
  buff                 --> X+38
  tmp                  --> X+40
    80B2 A7 D7        aiS	#-41
    80B4 95           tSX	
FILE: main.c
(0001) /*-----------------------------------------------------*
(0002) *工 程 名:Assistant.prj	                                
(0003) *硬件连接:                                
(0004) *程序描述: SD-HC08 模板生成                            
(0005) */
(0006) /*[头文件]*/
(0007) #include "Includes.h"
(0008) //变量定义
(0009) INT8U MACHINE_NO=1;        //本机编号
(0010) //SCI变量
(0011) INT8U ReBuf[];
(0012) INT8U SendBuf[];
(0013) INT8U ReSendFlag=0;      //接受发送标志(1-接受成功)
(0014) INT16U ADValue[22];      //存放22路AD值
(0015) INT16U DAvalue[16];      //存放8路DA转换的16位数据
(0016) //Key使用变量
(0017) INT8U KB_DefValue=0xff;  //键盘定义值
(0018) INT8S MoveBtn;           //LCD切屏标志(1-上移;-1-下移)
(0019) INT8U CertenFlag=0;      //确定按钮标志(0-上/下移按钮为行切换功能,1-上/下移按钮为温湿度加减按钮)
(0020) INT8U CurrentRow=1;      //当前光标所在行
(0021) 
(0022) INT8U TimeFlag;          //定时标志字节
(0023) //LCD显示和温湿度调节变量
(0024) INT8U LcdShowBuff[64]={" 125.3℃(130℃) ""  55.3% ( 55% ) "
(0025)                        "  舒适  送风    ""2007.04.03 22:20"};//LCD显示的初始信息    
(0026) INT16U BasicT;        //温度设定值(温度范围-40~+140℃)
(0027) INT8U SignBT;         //设定温度符号(+/-)
(0028) INT8U SignCT;         //当前温度符号
(0029) INT16U CurrentT;      //当前温度
(0030) INT16U BasicH;        //湿度设定值(范围0~100%)
(0031) INT16U CurrentH=2;    //当前湿度
(0032) INT8U ColdHotFlag=0;  //当前风机状态(0舒适/1制冷/2制热),
(0033) INT8U ColdHot[12]={"舒适制冷制热"};
(0034) INT8U Hour[5];        //系统时间(y-m-d-h-s)
(0035) //控制信息变量
(0036) INT8U WindState;      //风机状态(76排风阀,54送风阀,32新风阀,10回风阀)
(0037) INT16U BackWindT;     //回风管温度的数值
(0038) INT8U  BackWindST;    //回风管温度的符号
(0039) INT16U BackWindH;     //回风管湿度
(0040) /*[主函数]*/
(0041) void main()
(0042) {  
    80B5 9B           seI	
(0043)    INT8U buff[2];
(0044)    INT8U SendBuff[22];
(0045)    INT8U data[3];INT8U buf[6];
(0046)    
(0047)    INT8U tmp,k; 
(0048)    int i,j;
(0049)    INT8U cs,channel;   
(0050)    
(0051)    //各个模块初始化   
(0052)    asm("SEI");
(0053)    SCIInit();Lcdinit();AD_SPIInit();DA_SPIInit();
    80B6 CD 8542      jsr	_SCIInit
    80B9 CD 8818      jsr	_Lcdinit
    80BC CD 8354      jsr	_AD_SPIInit
    80BF CD 8674      jsr	_DA_SPIInit
(0054)    TLV5608Init();KeyInput_Init();
    80C2 CD 86C4      jsr	_TLV5608Init
    80C5 CD 8CA3      jsr	_KeyInput_Init
(0055)    INTKBSCR&= ~(1<<IntBit); //开放键盘中断(IMASKk=0)
    80C8 13 1A        Bclr	1,0x1A
(0056)    SCC2|=(1<<5);            //令SCC2.5=1,允许接收中断
    80CA 1A 14        Bset	5,0x14
(0057)    asm("CLI"); 
    80CC 9A           clI	
(0058)    //LCD初始化信息----------------------
(0059)    Print(CurrentRow,1,">",1);//在当前行显示选中标志'>>'  
    80CD A6 01        ldA	#1
    80CF 87           pshA	
    80D0 45 8000      ldHX	#0x8000
    80D3 89           pshX	
    80D4 8B           pshH	
    80D5 87           pshA	
    80D6 B6 52        ldA	0x52
    80D8 87           pshA	
    80D9 CD 8F38      jsr	_Print
    80DC A7 05        aiS	#5
(0060)    LcdShCh(LcdShowBuff);
    80DE 45 0053      ldHX	#0x0053
    80E1 89           pshX	
    80E2 8B           pshH	
    80E3 CD 885B      jsr	_LcdShCh
    80E6 A7 02        aiS	#2
    80E8 95           tSX	
    80E9 CC 8187      jmp	0x8187
(0061)    //0:等待接收设定温湿度和系统时间,ReSendFlag=1时执行主循环     
(0062)    while(ReSendFlag)
(0063)    {     
    80EC B6 50        ldA	*__rlo+3
    80EE A4 20        and	#32
    80F0 E7 28        stA	40,X
(0064)      //1:Key功能[S]----------------------------------------------------------
(0065)      //Key.1:上移按钮标志
(0066)      tmp=KB_DefValue&0x20;     
(0067)      if(tmp==0) {KB_DefValue|=0xF0;MoveBtn=1;}    
    80F2 26 0A        bne	0x80FE
    80F4 B6 50        ldA	*__rlo+3
    80F6 AA F0        orA	#-16
    80F8 B7 50        stA	*__rlo+3
    80FA A6 01        ldA	#1
    80FC B7 A8        stA	0xFFFFFFA8
(0068)      //Key.2:下移按钮标志      
(0069)      tmp=KB_DefValue&0x40;
    80FE B6 50        ldA	*__rlo+3
    8100 A4 40        and	#64
    8102 E7 28        stA	40,X
(0070)      if(tmp==0) {KB_DefValue|=0xF0;MoveBtn=-1;}     
    8104 26 0A        bne	0x8110
    8106 B6 50        ldA	*__rlo+3
    8108 AA F0        orA	#-16
    810A B7 50        stA	*__rlo+3
    810C A6 FF        ldA	#-1
    810E B7 A8        stA	0xFFFFFFA8
(0071)      //Key.3:确定按钮
(0072)      tmp=KB_DefValue&0x80;              
    8110 B6 50        ldA	*__rlo+3
    8112 A4 80        and	#-128
    8114 E7 28        stA	40,X
(0073)      if(tmp==0) {KB_DefValue|=0xF0;CertenFlag=(CertenFlag+1)%2;} 
    8116 26 13        bne	0x812B
    8118 B6 50        ldA	*__rlo+3
    811A AA F0        orA	#-16
    811C B7 50        stA	*__rlo+3
    811E B6 51        ldA	0x51
    8120 AB 01        add	#1
    8122 AE 02        ldX	#2
    8124 8C           clrH	
    8125 52           div	
    8126 8B           pshH	
    8127 86           pulA	
    8128 95           tSX	
    8129 B7 51        stA	0x51
(0074)      //Key.4:上移按钮功能  
(0075)      if((MoveBtn==1)&&(CertenFlag==0)){MoveBtn=0;UpBtn(&CurrentRow);} 
    812B B6 A8        ldA	0xFFFFFFA8
    812D A1 01        cmp	#1
    812F 26 11        bne	0x8142
    8131 B6 51        ldA	0x51
    8133 26 0D        bne	0x8142
    8135 3F A8        clr	0xFFFFFFA8
    8137 45 0052      ldHX	#0x0052
    813A 89           pshX	
    813B 8B           pshH	
    813C CD 8D4B      jsr	_UpBtn
    813F A7 02        aiS	#2
    8141 95           tSX	
(0076)      //Key.5:下移按钮功能
(0077)      if((MoveBtn==-1)&&(CertenFlag==0)){MoveBtn=0;DownBtn(&CurrentRow);} 
    8142 B6 A8        ldA	0xFFFFFFA8
    8144 A1 FF        cmp	#-1
    8146 26 11        bne	0x8159
    8148 B6 51        ldA	0x51
    814A 26 0D        bne	0x8159
    814C 3F A8        clr	0xFFFFFFA8
    814E 45 0052      ldHX	#0x0052
    8151 89           pshX	
    8152 8B           pshH	
    8153 CD 8CCD      jsr	_DownBtn
    8156 A7 02        aiS	#2
    8158 95           tSX	
(0078)      //Key.6:加1
(0079)      if(MoveBtn==1&&CertenFlag==1){MoveBtn=0;AddBtn(CurrentRow);}  
    8159 B6 A8        ldA	0xFFFFFFA8
    815B A1 01        cmp	#1
    815D 26 11        bne	0x8170
    815F B6 51        ldA	0x51
    8161 A1 01        cmp	#1
    8163 26 0B        bne	0x8170
    8165 3F A8        clr	0xFFFFFFA8
    8167 B6 52        ldA	0x52
    8169 87           pshA	
    816A CD 8DC9      jsr	_AddBtn
    816D A7 01        aiS	#1
    816F 95           tSX	
(0080)      //Key.7:减1  
(0081)      if(MoveBtn==-1&&CertenFlag==1){MoveBtn=0;SubBtn(CurrentRow);}  
    8170 B6 A8        ldA	0xFFFFFFA8
    8172 A1 FF        cmp	#-1
    8174 26 11        bne	0x8187
    8176 B6 51        ldA	0x51
    8178 A1 01        cmp	#1
    817A 26 0B        bne	0x8187
    817C 3F A8        clr	0xFFFFFFA8
    817E B6 52        ldA	0x52
    8180 87           pshA	
    8181 CD 8E7C      jsr	_SubBtn
    8184 A7 01        aiS	#1
    8186 95           tSX	
(0082)      ////Key功能[E]--------------------------------------------------------   
(0083) 
(0084)    }//[主循环结束]        
    8187 B6 4F        ldA	*__rlo+2
    8189 27 03        beq	0x818E
    818B CC 80EC      jmp	0x80EC
    818E A7 29        aiS	#41
    8190 81           rts	
_isrRe:
  no                   --> X+0
  j                    --> X+1
  i                    --> X+2
    8191 8B           pshH	
    8192 B6 40        ldA	*__r0
    8194 87           pshA	
    8195 B6 41        ldA	*__r1
    8197 87           pshA	
    8198 B6 42        ldA	*__r2
    819A 87           pshA	
    819B B6 43        ldA	*__r3
    819D 87           pshA	
    819E B6 44        ldA	*__r4
    81A0 87           pshA	
    81A1 B6 45        ldA	*__r5
    81A3 87           pshA	
    81A4 B6 46        ldA	*__r6
    81A6 87           pshA	
    81A7 B6 47        ldA	*__r7
    81A9 87           pshA	
    81AA B6 48        ldA	*__r8
    81AC 87           pshA	
    81AD B6 49        ldA	*__r9
    81AF 87           pshA	
    81B0 B6 4A        ldA	*__r10
    81B2 87           pshA	
    81B3 B6 4B        ldA	*__r11
    81B5 87           pshA	
    81B6 B6 4C        ldA	*__rhi
    81B8 87           pshA	
    81B9 B6 4D        ldA	*__rlo
    81BB 87           pshA	
    81BC A7 FD        aiS	#-3
    81BE 95           tSX	
FILE: vectors08.c
(0001) /*-----------------------------------------------------*
(0002) *文件名:vectors08.c                                    *
(0003) *功  能:用于定义中断矢量表                             *
(0004) *-----------------------------------------------------*/
(0005) //[头文件]
(0006) #include "Includes.h"
(0007) /*中断接受处理函数------------------------------------*/
(0008) #pragma interrupt_handler isrRe
(0009) void isrRe(void)
(0010) {
    81BF 9B           seI	
(0011)    INT8U i,j,no;
(0012)    asm("SEI");	       //禁止所有中断 
(0013)    //1:接收数据
(0014)    for(i=0;i<15;i++)
    81C0 6F 02        clr	2,X

⌨️ 快捷键说明

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