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

📄 csy.lst

📁 抽水机程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
文件:CSY.c        盛群编译器版本 2.86 页次1



;  38: void delay1ms(unsigned int chu){
  38  0000              __acsr EQU [023H]
  38  0000              __adcr EQU [022H]
  38  0000              __adrh EQU [021H]
  38  0000              __adrl EQU [020H]
  38  0000              __pwm EQU [01aH]
  38  0000              __pdc EQU [019H]
  38  0000              __pd EQU [018H]
  38  0000              __pbc EQU [015H]
  38  0000              __pb EQU [014H]
  38  0000              __pac EQU [013H]
  38  0000              __pa EQU [012H]
  38  0000              __tmrc EQU [0eH]
  38  0000              __tmr EQU [0dH]
  38  0000              __intc EQU [0bH]
  38  0000              __status EQU [0aH]
  38  0000              __tblh EQU [08H]
  38  0000              __tblp EQU [07H]
  38  0000              __pcl EQU [06H]
  38  0000              __acc EQU [05H]
  38  0000              __mp EQU [01H]
  38  0000              __iar EQU [00H]
  38  0000              @delay1ms .SECTION 'CODE'
  38  0000              PUBLIC _delay1ms
  38  0000              _delay1ms PROC
  38  0000              PUBLIC delay1ms0
  38  0000  00          LOCAL delay1ms0 DB ? ; chu
  38  0000  2800     R  JMP L4
  38  0001              L3:

;  40:     _delay(800);
  40  0001  0FC7        MOV A,0c7H
  40  0002  2000     E  CALL __DELAYX0
  40  0003              L4:

;  39:     while(--chu)
  39  0003  1500     R  DECA delay1ms0
  39  0004  0080     R  MOV b0_1,A
  39  0005  0700     R  MOV A,b0_1
  39  0006  0080     R  MOV delay1ms0,A
  39  0007  1080     R  SZ b0_1
  39  0008  2800     R  JMP L3
  39  0009              L2:
  39  0009  0003        RET
  39  0001  00          LOCAL b0_1 DB ?
  39  000A              _delay1ms ENDP

;  43: void timer0(){
  43  0000              @timer0 .SECTION 'CODE'
  43  0000              PUBLIC _timer0
  43  0000              _timer0 PROC

;  44:     _ton=0;
  44  0000  360E        CLR [0EH].4

;  45:     _tmr=5;
文件:CSY.C        盛群编译器版本 2.86 页次2
文件:CSY.c        盛群编译器版本 2.86 页次2 


  45  0001  0F05        MOV A,05h
  45  0002  008D        MOV __tmr,A

;  46:     ledtimer++;
  46  0003  1480     R  INC _ledtimer

;  47:     if(ledtimer>=0x0f){
  47  0004  0700     R  MOV A,_ledtimer
  47  0005  0A0F        SUB A,0fh
  47  0006  380A        SNZ [0ah].0
  47  0007  2800     R  JMP L7

;  48:         ledlight=0;
  48  0008  3400     R  CLR _bitbit.4

;  49:         ledtimer=0;
  49  0009  1F00     R  CLR _ledtimer

;  50:     }
  50  000A  2800     R  JMP L8
  50  000B              L7:

;  51:     else if(ledtimer<0x0f){
  51  000B  0700     R  MOV A,_ledtimer
  51  000C  0A0F        SUB A,0fh
  51  000D  3C0A        SZ [0ah].0
  51  000E  2800     R  JMP L9

;  52:          ledlight=1;
  52  000F  3000     R  SET _bitbit.4
  52  0010              L9:
  52  0010              L8:

;  54:     _nop();
  54  0010  0000        NOP

;  55:     if(ledflash){
  55  0011  3800     R  SNZ _bitbit.5
  55  0012  2800     R  JMP L11

;  56:         if(ledlight)led=0xff;
  56  0013  3800     R  SNZ _bitbit.4
  56  0014  2800     R  JMP L13
  56  0015  1F92        SET __pa
  56  0016  2800     R  JMP L14
  56  0017              L13:

;  57:         else if(!ledlight)led=0x00;
  57  0017  3C00     R  SZ _bitbit.4
  57  0018  2800     R  JMP L15
  57  0019  1F12        CLR __pa
  57  001A              L15:
  57  001A              L14:
  57  001A              L11:

;  59:     if(ledturn){
  59  001A  3800     R  SNZ _bitbit.6
  59  001B  2800     R  JMP L17

;  60:         if(ledtimer>=0x0f){
文件:CSY.c        盛群编译器版本 2.86 页次3 

  60  001C  0700     R  MOV A,_ledtimer
  60  001D  0A0F        SUB A,0fh
  60  001E  380A        SNZ [0ah].0
文件:CSY.C        盛群编译器版本 2.86 页次3

  60  001F  2800     R  JMP L19

;  61:         led=turnover;
  61  0020  0700     R  MOV A,_turnover
  61  0021  0092        MOV __pa,A

;  62:         delay1ms(5);          //_rlc(&turnover);
  62  0022  0F05        MOV A,05h
  62  0023  0080     R  MOV delay1ms0,A
  62  0024  2000     R  CALL _delay1ms

;  64:         rlc _turnover
  64  0025  1A80     R  rlc _turnover
  64  0026              L19:
  64  0026              L17:

;  68:     _ton=1;
  68  0026  320E        SET [0EH].4
  68  0027              L6:
  68  0027  0003        RET
  68  0028              _timer0 ENDP

;  70: unsigned  int adchange(){
  70  0000              @adchange .SECTION 'CODE'
  70  0000              PUBLIC _adchange
  70  0000              _adchange PROC

;  73:     for(i=0;i<10;i++){
  73  0000  1F00     R  CLR CR2
  73  0001  2800     R  JMP L25
  73  0002              L22:

;  74:            _start=0b0;																		//启动AD 8bit  vdd/256
  74  0002  37A2        CLR [022H].7

;  75: 		   _start=0b1;
  75  0003  33A2        SET [022H].7

;  76: 		   _start=0b0;
  76  0004  37A2        CLR [022H].7
  76  0005              L26:
  76  0005              L27:

;  77: 		   while(_eocb);
  77  0005  3F22        SZ [022H].6
  77  0006  2800     R  JMP L26

;  78: 		   advalue+=_adrh;
  78  0007  0721        MOV A,__adrh
  78  0008  0380     R  ADDM A,CR3

;  79: 		   _start=0b1;																		//复位AD
  79  0009  33A2        SET [022H].7

;  80: 		   _start=0b0; 
文件:CSY.c        盛群编译器版本 2.86 页次4 

  80  000A  37A2        CLR [022H].7
  80  000B              L23:

;  73:     for(i=0;i<10;i++){
  73  000B  1480     R  INC CR2
  73  000C              L25:
  73  000C  0700     R  MOV A,CR2
  73  000D  0A0A        SUB A,0ah
  73  000E  380A        SNZ [0ah].0
  73  000F  2800     R  JMP L22

;  82: 		return advalue/10;
  82  0010  0F0A        MOV A,0ah
文件:CSY.C        盛群编译器版本 2.86 页次4

  82  0011  0080     E  MOV RH,A
  82  0012  0700     R  MOV A,CR3
  82  0013  2000     E  CALL DIVUI
  82  0014  0080     R  MOV b0_3,A
  82  0015  0700     R  MOV A,b0_3
  82  0016              L21:
  82  0016  0003        RET
  82  0000  00          LOCAL b0_3 DB ?

;  71:     unsigned int i;
  71  0001  00          LOCAL CR2 DB ? ; i

;  72:     unsigned int advalue;
  72  0002  00          LOCAL CR3 DB ? ; advalue
  72  0017              _adchange ENDP

;  85: main(){
  85  0000              @MAIN .SECTION 'CODE'
  85  0000              _main PROC
  85  0000              begin:

;  92:     _pac=0b00000000;
  92  0000  1F13        CLR __pac

;  93:     _pa=0b00000000;
  93  0001  1F12        CLR __pa

;  94:     _pbc=0b00000110;
  94  0002  0F06        MOV A,06h
  94  0003  0095        MOV __pbc,A

;  95:     _pb3=1;
  95  0004  3194        SET [014H].3

;  96:     _intc=0b00000101;        //打开定时中断  总中断
  96  0005  0F05        MOV A,05h
  96  0006  008B        MOV __intc,A

;  97:     _tmrc=0b10010111;        //fsys/4  32us
  97  0007  0F97        MOV A,097h
  97  0008  008E        MOV __tmrc,A

;  98:     _tmr=5;  
  98  0009  0F05        MOV A,05h
  98  000A  008D        MOV __tmr,A
文件:CSY.c        盛群编译器版本 2.86 页次5 


;  99:     _acsr=0b00000001;        //A/D 时钟控制选择器
  99  000B  0F01        MOV A,01h
  99  000C  00A3        MOV __acsr,A

; 100:     _adcr=0b01001000;           //  可以在睡觉时关闭  A/D 
 100  000D  0F48        MOV A,048h
 100  000E  00A2        MOV __adcr,A

; 102:     motor_flag=0;              //停止
 102  000F  3400     R  CLR _bitbit.0

; 103:     flow_flag=1;               //没有水
 103  0010  3000     R  SET _bitbit.1

; 104:     ps_flag=1;                 //
 104  0011  3000     R  SET _bitbit.3

; 105:     vtimer2s=0;
 105  0012  1F00     R  CLR _vtimer2s

; 106:     turnover=0x03;
 106  0013  0F03        MOV A,03h
 106  0014  0080     R  MOV _turnover,A

; 108:     delay1ms(100);
 108  0015  0F64        MOV A,064h
 108  0016  0080     R  MOV delay1ms0,A
 108  0017  2000     R  CALL _delay1ms
文件:CSY.C        盛群编译器版本 2.86 页次5

 108  0018  2800     R  JMP L31
 108  0019              L30:

; 110:         if(motor_flag){            //电机启开   >1.4v (<160v)
 110  0019  3800     R  SNZ _bitbit.0
 110  001A  2800     R  JMP L33

; 111:             value=adchange();
 111  001B  2000     R  CALL _adchange
 111  001C  0080     R  MOV CR4,A

; 112:             if(value>=0x8f){
 112  001D  0700     R  MOV A,CR4
 112  001E  0A8F        SUB A,08fh
 112  001F  380A        SNZ [0ah].0
 112  0020  2800     R  JMP L35

; 113:                  if(++vtimer2s>=200){
 113  0021  1400     R  INCA _vtimer2s
 113  0022  0080     R  MOV b0_4,A
 113  0023  0700     R  MOV A,b0_4
 113  0024  0080     R  MOV _vtimer2s,A
 113  0025  0700     R  MOV A,b0_4
 113  0026  0AC8        SUB A,0c8h

⌨️ 快捷键说明

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