📄 csy.lst
字号:
文件: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 + -