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

📄 assist~1.lst

📁 为苏州一家公司所做的的恒温恒湿车间控制 系统
💻 LST
📖 第 1 页 / 共 5 页
字号:
    81C2 20 2A        bra	0x81EE
(0015)    {ReBuf[i]=SCIRe1(&j);
    81C4 AF 01        aiX	#1
    81C6 89           pshX	
    81C7 8B           pshH	
    81C8 CD 85B5      jsr	_SCIRe1
    81CB A7 02        aiS	#2
    81CD 95           tSX	
    81CE B7 41        stA	*__r1
    81D0 3F 42        clr	*__r2
    81D2 E6 02        ldA	2,X
    81D4 AB 04        add	#4
    81D6 B7 43        stA	*__r3
    81D8 B6 42        ldA	*__r2
    81DA A9 01        adc	#1
    81DC B7 42        stA	*__r2
    81DE B6 41        ldA	*__r1
    81E0 55 42        ldHX	*__r2
    81E2 F7           stA	0,X
    81E3 95           tSX	
(0016)     if(j == 1) goto isrRe_Exit;} 
    81E4 E6 01        ldA	1,X
    81E6 A1 01        cmp	#1
    81E8 26 02        bne	0x81EC
    81EA 20 1C        bra	0x8208
    81EC 6C 02        inc	2,X
    81EE E6 02        ldA	2,X
    81F0 A1 0F        cmp	#15
    81F2 25 D0        bcs	0x81C4
(0017)    //2:解包接收到的数据      
(0018)    no=DePackReBuf(ReBuf);
    81F4 45 0104      ldHX	#0x0104
    81F7 89           pshX	
    81F8 8B           pshH	
    81F9 CD 942F      jsr	_DePackReBuf
    81FC A7 02        aiS	#2
    81FE 95           tSX	
    81FF B7 41        stA	*__r1
    8201 F7           stA	0,X
(0019)    if(no==0) ReSendFlag=1; //时间接收成功  
    8202 26 04        bne	0x8208
    8204 A6 01        ldA	#1
    8206 B7 4F        stA	*__rlo+2
(0020) isrRe_Exit:           
(0021)    asm("CLI");		   //开放总中断	
    8208 9A           clI	
    8209 A7 03        aiS	#3
    820B 86           pulA	
    820C B7 4D        stA	*__rlo
    820E 86           pulA	
    820F B7 4C        stA	*__rhi
    8211 86           pulA	
    8212 B7 4B        stA	*__r11
    8214 86           pulA	
    8215 B7 4A        stA	*__r10
    8217 86           pulA	
    8218 B7 49        stA	*__r9
    821A 86           pulA	
    821B B7 48        stA	*__r8
    821D 86           pulA	
    821E B7 47        stA	*__r7
    8220 86           pulA	
    8221 B7 46        stA	*__r6
    8223 86           pulA	
    8224 B7 45        stA	*__r5
    8226 86           pulA	
    8227 B7 44        stA	*__r4
    8229 86           pulA	
    822A B7 43        stA	*__r3
    822C 86           pulA	
    822D B7 42        stA	*__r2
    822F 86           pulA	
    8230 B7 41        stA	*__r1
    8232 86           pulA	
    8233 B7 40        stA	*__r0
    8235 8A           pulH	
    8236 80           rti	
_isrKBI:
  key_num              --> X+0
  key1                 --> X+1
  key2                 --> X+2
  i                    --> X+3
    8237 8B           pshH	
    8238 B6 40        ldA	*__r0
    823A 87           pshA	
    823B B6 41        ldA	*__r1
    823D 87           pshA	
    823E B6 42        ldA	*__r2
    8240 87           pshA	
    8241 B6 43        ldA	*__r3
    8243 87           pshA	
    8244 B6 44        ldA	*__r4
    8246 87           pshA	
    8247 B6 45        ldA	*__r5
    8249 87           pshA	
    824A B6 46        ldA	*__r6
    824C 87           pshA	
    824D B6 47        ldA	*__r7
    824F 87           pshA	
    8250 B6 48        ldA	*__r8
    8252 87           pshA	
    8253 B6 49        ldA	*__r9
    8255 87           pshA	
    8256 B6 4A        ldA	*__r10
    8258 87           pshA	
    8259 B6 4B        ldA	*__r11
    825B 87           pshA	
    825C B6 4C        ldA	*__rhi
    825E 87           pshA	
    825F B6 4D        ldA	*__rlo
    8261 87           pshA	
    8262 A7 FC        aiS	#-4
    8264 95           tSX	
(0022) }
(0023) /*键盘中断处理函数------------------------------------*/
(0024) #pragma interrupt_handler isrKBI
(0025) void isrKBI(void) 
(0026) {
    8265 7F           clr	0,X
(0027) 	INT8U i,key1,key2,key_num=0;
(0028) 	asm("SEI");	  	         //关总中断
    8266 9B           seI	
(0029) 	//开关量输入------------------------	
(0030) 	INTKBSCR|= (1<<IntBit);  //屏蔽键盘中断(IMASKK=1)
    8267 12 1A        Bset	1,0x1A
(0031) 	KeyInput_Judge(&key1);	
    8269 AF 01        aiX	#1
    826B 89           pshX	
    826C 8B           pshH	
    826D CD 8CB2      jsr	_KeyInput_Judge
    8270 A7 02        aiS	#2
(0032) 	KeyInput_Init();		 //重新初始化键盘
    8272 CD 8CA3      jsr	_KeyInput_Init
    8275 95           tSX	
(0033) 	INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)	
    8276 13 1A        Bclr	1,0x1A
(0034) 	//---------------------------------------
(0035) 	for(i=0;i<5;i++)
    8278 6F 03        clr	3,X
    827A 20 13        bra	0x828F
(0036)      {
    827C AF 02        aiX	#2
    827E 89           pshX	
    827F 8B           pshH	
    8280 CD 8CB2      jsr	_KeyInput_Judge
    8283 A7 02        aiS	#2
    8285 95           tSX	
(0037)        KeyInput_Judge(&key2);
(0038)        if((key1==key2))
    8286 E6 01        ldA	1,X
    8288 E1 02        cmp	2,X
    828A 26 01        bne	0x828D
(0039)          key_num++;      
    828C 7C           inc	0,X
(0040)      }
    828D 6C 03        inc	3,X
    828F E6 03        ldA	3,X
    8291 A1 05        cmp	#5
    8293 25 E7        bcs	0x827C
(0041)      if(key_num>=2)
    8295 F6           ldA	0,X
    8296 A1 02        cmp	#2
    8298 25 06        bcs	0x82A0
(0042)        KB_DefValue=key1;
    829A E6 01        ldA	1,X
    829C B7 50        stA	*__rlo+3
    829E 20 04        bra	0x82A4
(0043)      else
(0044)        KB_DefValue=key2;
    82A0 E6 02        ldA	2,X
    82A2 B7 50        stA	*__rlo+3
(0045) 	asm("CLI");			     //开总中断	 
    82A4 9A           clI	
    82A5 A7 04        aiS	#4
    82A7 86           pulA	
    82A8 B7 4D        stA	*__rlo
    82AA 86           pulA	
    82AB B7 4C        stA	*__rhi
    82AD 86           pulA	
    82AE B7 4B        stA	*__r11
    82B0 86           pulA	
    82B1 B7 4A        stA	*__r10
    82B3 86           pulA	
    82B4 B7 49        stA	*__r9
    82B6 86           pulA	
    82B7 B7 48        stA	*__r8
    82B9 86           pulA	
    82BA B7 47        stA	*__r7
    82BC 86           pulA	
    82BD B7 46        stA	*__r6
    82BF 86           pulA	
    82C0 B7 45        stA	*__r5
    82C2 86           pulA	
    82C3 B7 44        stA	*__r4
    82C5 86           pulA	
    82C6 B7 43        stA	*__r3
    82C8 86           pulA	
    82C9 B7 42        stA	*__r2
    82CB 86           pulA	
    82CC B7 41        stA	*__r1
    82CE 86           pulA	
    82CF B7 40        stA	*__r0
    82D1 8A           pulH	
    82D2 80           rti	
_isrTIMER1:
  no                   --> X+0
    82D3 8B           pshH	
    82D4 B6 40        ldA	*__r0
    82D6 87           pshA	
    82D7 B6 41        ldA	*__r1
    82D9 87           pshA	
    82DA B6 42        ldA	*__r2
    82DC 87           pshA	
    82DD B6 43        ldA	*__r3
    82DF 87           pshA	
    82E0 B6 44        ldA	*__r4
    82E2 87           pshA	
    82E3 B6 45        ldA	*__r5
    82E5 87           pshA	
    82E6 B6 46        ldA	*__r6
    82E8 87           pshA	
    82E9 B6 47        ldA	*__r7
    82EB 87           pshA	
    82EC B6 48        ldA	*__r8
    82EE 87           pshA	
    82EF B6 49        ldA	*__r9
    82F1 87           pshA	
    82F2 B6 4A        ldA	*__r10
    82F4 87           pshA	
    82F5 B6 4B        ldA	*__r11
    82F7 87           pshA	
    82F8 B6 4C        ldA	*__rhi
    82FA 87           pshA	
    82FB B6 4D        ldA	*__rlo
    82FD 87           pshA	
    82FE A7 FF        aiS	#-1
    8300 95           tSX	
(0046) }
(0047) /*定时器Timer1中断处理函数------------------------------------*
(0048) *功能:每1S中采集一次AD值,进行一次DA转换
(0049) *-------------------------------------------------------------*/
(0050) #pragma interrupt_handler isrTIMER1
(0051) void isrTIMER1(void)
(0052) {
    8301 9B           seI	
(0053)    INT8U no;
(0054)    asm("SEI");            //关总中断
(0055)    //1:采集2片2542-22路的AD值    
(0056)    ADC22P(ADValue);  
    8302 45 00D7      ldHX	#0x00D7
    8305 89           pshX	
    8306 8B           pshH	
    8307 CD 835D      jsr	_ADC22P
    830A A7 02        aiS	#2
(0057)    //2:DA转换
(0058)    DAC(DAvalue);
    830C 45 00B7      ldHX	#0x00B7
    830F 89           pshX	
    8310 8B           pshH	
    8311 CD 867B      jsr	_DAC
    8314 A7 02        aiS	#2
    8316 95           tSX	
(0059)    //------------------------------
(0060)    no++;
    8317 7C           inc	0,X
(0061)    if(no==30) 
    8318 F6           ldA	0,X
    8319 A1 1E        cmp	#30
    831B 26 03        bne	0x8320
(0062)    {
    831D 10 B6        Bset	0,0xB6
(0063)        TimeFlag|=0x01;    //30s标志TimeFlag.0
(0064)        no=0;
    831F 7F           clr	0,X
(0065)    }   
    8320 1F 20        Bclr	7,0x20
(0066)    //------------------------------
(0067)    //清除定时器溢出标志位
(0068)    T1SC&=~(1<<TOFBit);
(0069)    asm("CLI");            //开总中断
    8322 9A           clI	
    8323 A7 01        aiS	#1
    8325 86           pulA	
    8326 B7 4D        stA	*__rlo
    8328 86           pulA	
    8329 B7 4C        stA	*__rhi
    832B 86           pulA	
    832C B7 4B        stA	*__r11
    832E 86           pulA	
    832F B7 4A        stA	*__r10
    8331 86           pulA	
    8332 B7 49        stA	*__r9
    8334 86           pulA	
    8335 B7 48        stA	*__r8
    8337 86           pulA	
    8338 B7 47        stA	*__r7
    833A 86           pulA	
    833B B7 46        stA	*__r6
    833D 86           pulA	
    833E B7 45        stA	*__r5
    8340 86           pulA	
    8341 B7 44        stA	*__r4
    8343 86           pulA	
    8344 B7 43        stA	*__r3
    8346 86           pulA	
    8347 B7 42        stA	*__r2
    8349 86           pulA	
    834A B7 41        stA	*__r1
    834C 86           pulA	
    834D B7 40        stA	*__r0
    834F 8A           pulH	
    8350 80           rti	
_isrDummy:
    8351 8B           pshH	
(0070) }
(0071) //未定义的中断处理函数,本函数不能删除
(0072) #pragma interrupt_handler isrDummy  
(0073) void isrDummy(void) 
(0074)   {
    8352 8A           pulH	
    8353 80           rti	
FILE: ADC22P.c
(0001) /*-----------------------------------------------------*
(0002) *文件描述:本文件包含了AD采集的2子程序,分别为:          * 
(0003) *(1)ADC22P:2片2543-22路AD采集                         *
(0004) *(2)TLC2543:TLC2543芯片A/D转换子程序                   *
(0005) *-------------《嵌入式应用技术基础教程》--------------*/
(0006) #include "Includes.h"
(0007) /*SPIInit:SPI初始化子程序-------------------------------*
(0008) *功 能:对SPI进行初始化,默认为允许SPI,主机工作方式,时钟  *
(0009) *      空闲低电平,比特率8分频,                         *
(0010) *      波特率为CGMOUT/2*BD(设CGMOUT=2*fBUS=2*2.4576MHz)*
(0011) *参 数:无                                               *
(0012) *返 回:无                                               *
(0013) *------------------------------------------------------*/
(0014) #include "Includes.h"
(0015) void AD_SPIInit(void)
(0016)  {  
_AD_SPIInit:
    8354 A6 22        ldA	#34
    8356 B7 10        stA	0x10
(0017) 	SPCR=0b00100010;   //不产生中断、主机方式、时钟空闲低电平
(0018) 	SPSCR=0b00000001;  //8分频
    8358 A6 01        ldA	#1
    835A B7 11        stA	0x11
    835C 81           rts	
_ADC22P:
  j                    --> X+0

⌨️ 快捷键说明

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