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

📄 voltest.lst

📁 用holtek单片机编写的A/D变换程序。
💻 LST
📖 第 1 页 / 共 3 页
字号:
;  97: int over_discharger(unsigned char advoltage)
  97  0000              PUBLIC over_discharger0
  97  0000  00          LOCAL over_discharger0 DB ? ; advoltage

; 100:  overdischarger=0xbe;
 100  0000  0FBE        MOV A,0beh
 100  0001  0080     R  MOV CR2,A

; 101:  if(advoltage>=overdischarger)
 101  0002  0700     R  MOV A,over_discharger0
 101  0003  0200     R  SUB A,CR2
 101  0004  380A        SNZ [0ah].0
 101  0005  2800     R  JMP L20

; 102:   {return 1;}
 102  0006  0F01        MOV A,01h
 102  0007  2800     R  JMP L19
 102  0008              L20:

; 104:   {return 0;}
 104  0008  0F00        MOV A,00h
 104  0009              L19:
 104  0009  0003        RET

;  99:  unsigned char overdischarger;
  99  0001  00          LOCAL CR2 DB ? ; overdischarger
  99  000A              _over_discharger ENDP

; 108: { 
文件:VOLTEST.C    盛群编译器版本 2.86 页次8

 108  0000              @rest_overdischarge_voltage .SECTION 'CODE'
 108  0000              PUBLIC _rest_overdischarge_voltage
 108  0000              _rest_overdischarge_voltage PROC

; 110:  restvoltage=0x0be;
 110  0000  0FBE        MOV A,0beh
 110  0001  0080     R  MOV CR3,A

; 111:  return restvoltage;
 111  0002  0700     R  MOV A,CR3
 111  0003              L22:
 111  0003  0003        RET

; 109:  unsigned char restvoltage;
 109  0000  00          LOCAL CR3 DB ? ; restvoltage
 109  0004              _rest_overdischarge_voltage ENDP

; 115:  {unsigned char i;
 115  0000              @look_up_vol_table .SECTION 'CODE'
 115  0000              PUBLIC _look_up_vol_table
 115  0000              _look_up_vol_table PROC

; 114: char look_up_vol_table(unsigned char u)
 114  0000              PUBLIC look_up_vol_table0
 114  0000  00          LOCAL look_up_vol_table0 DB ? ; u
文件:VOLTEST.c    盛群编译器版本 2.86 页次9 


; 116:   i=u-0x050;
 116  0000  0700     R  MOV A,look_up_vol_table0
 116  0001  0A50        SUB A,050h
 116  0002  0080     R  MOV CR4,A

; 117:   _acc=i;
 117  0003  0700     R  MOV A,CR4
 117  0004  0085        MOV __acc,A

; 118:   return bat_data[i];
 118  0005  0F01        MOV A,1
 118  0006  0300     R  ADD A,CR4
 118  0007  0B00     R  ADD A,OFFSET l_bat_data
 118  0008  2000     R  CALL l_bat_data
 118  0009  0080     R  MOV b0_12,A
 118  000A  0700     R  MOV A,b0_12
 118  000B              L23:
 118  000B  0003        RET
 118  0001  0002[       LOCAL b0_12 DB 2 DUP(?)
            00
            ]

; 115:  {unsigned char i;
 115  0003  00          LOCAL CR4 DB ? ; i
 115  000C              _look_up_vol_table ENDP

; 122:  {unsigned char ast;
 122  0000              @disp_voltage_100 .SECTION 'CODE'
 122  0000              PUBLIC _disp_voltage_100
 122  0000              _disp_voltage_100 PROC

; 124:   i=numshow[0];
 124  0000  0F01        MOV A,1
 124  0001  0B00     R  ADD A,OFFSET l_numshow
 124  0002  2000     R  CALL l_numshow
 124  0003  0080     R  MOV b0_13,A
 124  0004  0700     R  MOV A,b0_13
 124  0005  0080     R  MOV CR6,A
文件:VOLTEST.C    盛群编译器版本 2.86 页次9


; 125:   ast=(i&0x0f);
 125  0006  0700     R  MOV A,CR6
 125  0007  0E0F        AND A,0fh
 125  0008  0080     R  MOV CR5,A

; 126:    _bp=0x01;
 126  0009  0F01        MOV A,01h
 126  000A  0084        MOV __bp,A

; 127:    _mp1=0x49;                //dispbuffer0
 127  000B  0F49        MOV A,049h
 127  000C  0083        MOV __mp1,A

; 128:    _iar1=ast;
 128  000D  0700     R  MOV A,CR5
 128  000E  0082        MOV __iar1,A

; 129:    _mp1=0x4b;               //dispbuffer2
文件:VOLTEST.c    盛群编译器版本 2.86 页次10 

 129  000F  0F4B        MOV A,04bh
 129  0010  0083        MOV __mp1,A

; 130:    _iar1=ast;
 130  0011  0700     R  MOV A,CR5
 130  0012  0082        MOV __iar1,A

; 131:    _swap(&i);
 131  0013  1180     R  SWAP CR6

; 132:    ast=(i&0x0f);
 132  0014  0700     R  MOV A,CR6
 132  0015  0E0F        AND A,0fh
 132  0016  0080     R  MOV CR5,A

; 133:    _mp1=0x4a;             //dispbuffer1
 133  0017  0F4A        MOV A,04ah
 133  0018  0083        MOV __mp1,A

; 134:    _iar1=ast;
 134  0019  0700     R  MOV A,CR5
 134  001A  0082        MOV __iar1,A

; 135:    _mp1=0x4c;             //dispbuffer3
 135  001B  0F4C        MOV A,04ch
 135  001C  0083        MOV __mp1,A

; 136:    _iar1=(ast|0x80);
 136  001D  0700     R  MOV A,CR5
 136  001E  0D80        OR A,080h
 136  001F  0082        MOV __iar1,A
 136  0020              L24:
 136  0020  0003        RET
 136  0000  0002[       LOCAL b0_13 DB 2 DUP(?)
            00
            ]

; 122:  {unsigned char ast;
 122  0002  00          LOCAL CR5 DB ? ; ast

; 123:   unsigned char i;
 123  0003  00          LOCAL CR6 DB ? ; i
 123  0021              _disp_voltage_100 ENDP

; 140: {unsigned char ast;
 140  0000              @disp_voltage_low .SECTION 'CODE'
 140  0000              PUBLIC _disp_voltage_low
 140  0000              _disp_voltage_low PROC

; 139: void disp_voltage_low (unsigned char data_val)
 139  0000              PUBLIC disp_voltage_low0
 139  0000  00          LOCAL disp_voltage_low0 DB ? ; data_val
文件:VOLTEST.C    盛群编译器版本 2.86 页次10


; 142:  low_data=numshow[data_val];
 142  0000  0F01        MOV A,1
 142  0001  0300     R  ADD A,disp_voltage_low0
 142  0002  0B00     R  ADD A,OFFSET l_numshow
 142  0003  2000     R  CALL l_numshow
文件:VOLTEST.c    盛群编译器版本 2.86 页次11 

 142  0004  0080     R  MOV b0_14,A
 142  0005  0700     R  MOV A,b0_14
 142  0006  0080     R  MOV CR8,A

; 143:  _acc=low_data;
 143  0007  0700     R  MOV A,CR8
 143  0008  0085        MOV __acc,A

; 144:  ast=(low_data&0x0f);
 144  0009  0700     R  MOV A,CR8
 144  000A  0E0F        AND A,0fh
 144  000B  0080     R  MOV CR7,A

; 145:  _acc=ast;
 145  000C  0700     R  MOV A,CR7
 145  000D  0085        MOV __acc,A

; 146:  _bp=0x01;
 146  000E  0F01        MOV A,01h
 146  000F  0084        MOV __bp,A

; 147:  _mp1=0x4b;
 147  0010  0F4B        MOV A,04bh
 147  0011  0083        MOV __mp1,A

; 148:  _iar1=ast;
 148  0012  0700     R  MOV A,CR7
 148  0013  0082        MOV __iar1,A

; 149:  _swap(&low_data);
 149  0014  1180     R  SWAP CR8

; 150:  ast=(low_data&0x0f);
 150  0015  0700     R  MOV A,CR8
 150  0016  0E0F        AND A,0fh
 150  0017  0080     R  MOV CR7,A

; 151:  _acc=ast;
 151  0018  0700     R  MOV A,CR7
 151  0019  0085        MOV __acc,A

; 152:  _mp1=0x4c;
 152  001A  0F4C        MOV A,04ch
 152  001B  0083        MOV __mp1,A

; 153:  _iar1=ast;
 153  001C  0700     R  MOV A,CR7
 153  001D  0082        MOV __iar1,A

; 154:  if(pressdown==1)
 154  001E  0700     R  MOV A,_pressdown
 154  001F  0C01        XOR A,01h
 154  0020  390A        SNZ [0ah].2
 154  0021  2800     R  JMP L26

; 155:      {bat_flash();
 155  0022  2000     R  CALL _bat_flash

; 157:       }
 157  0023  2800     R  JMP L27
文件:VOLTEST.c    盛群编译器版本 2.86 页次12 

 157  0024              L26:

; 159:      {bat_stay();}
 159  0024  2000     R  CALL _bat_stay
 159  0025              L27:
 159  0025              L25:
 159  0025  0003        RET
文件:VOLTEST.C    盛群编译器版本 2.86 页次11

 159  0001  0002[       LOCAL b0_14 DB 2 DUP(?)
            00
            ]

; 140: {unsigned char ast;
 140  0003  00          LOCAL CR7 DB ? ; ast

; 141:  unsigned char low_data;
 141  0004  00          LOCAL CR8 DB ? ; low_data
 141  0026              _disp_voltage_low ENDP

; 163: {
 163  0000              @disp_voltage_high .SECTION 'CODE'
 163  0000              PUBLIC _disp_voltage_high
 163  0000              _disp_voltage_high PROC

; 162: void disp_voltage_high(unsigned char data_val)
 162  0000              PUBLIC disp_voltage_high0
 162  0000  00          LOCAL disp_voltage_high0 DB ? ; data_val

; 166:  low_data=numshow[data_val];
 166  0000  0F01        MOV A,1
 166  0001  0300     R  ADD A,disp_voltage_high0
 166  0002  0B00     R  ADD A,OFFSET l_numshow
 166  0003  2000     R  CALL l_numshow
 166  0004  0080     R  MOV b0_15,A
 166  0005  0700     R  MOV A,b0_15
 166  0006  0080     R  MOV CR10,A

; 167:  _acc=low_data;
 167  0007  0700     R  MOV A,CR10
 167  0008  0085        MOV __acc,A

; 168:  ast=(low_data&0x0f);
 168  0009  0700     R  MOV A,CR10
 168  000A  0E0F        AND A,0fh
 168  000B  0080     R  MOV CR9,A

; 169:  _acc=ast;
 169  000C  0700     R  MOV A,CR9
 169  000D  0085        MOV __acc,A

; 170:  _bp=0x01;
 170  000E  0F01        MOV A,01h
 170  000F  0084        MOV __bp,A

; 171:  _mp1=0x49;
 171  0010  0F49        MOV A,049h
 171  0011  0083        MOV __mp1,A

; 172:  _iar1=ast;
文件:VOLTEST.c    盛群编译器版本 2.86 页次13 

 172  0012  0700     R  MOV A,CR9
 172  0013  0082        MOV __iar1,A

; 173:  _swap(&low_data);
 173  0014  1180     R  SWAP CR10

; 174:  ast=(low_data&0x0f);
 174  0015  0700     R  MOV A,CR10
 174  0016  0E0F        AND A,0fh
 174  0017  0080     R  MOV CR9,A

; 175:  _acc=ast;
 175  0018  0700     R  MOV A,CR9
 175  0019  0085        MOV __acc,A

; 176:  _mp1=0x4a;
 176  001A  0F4A        MOV A,04ah
 176  001B  0083        MOV __mp1,A

; 177:  _iar1=ast;
文件:VOLTEST.C    盛群编译器版本 2.86 页次12

 177  001C  0700     R  MOV A,CR9
 177  001D  0082        MOV __iar1,A
 177  001E              L28:
 177  001E  0003        RET
 177  0001  0002[       LOCAL b0_15 DB 2 DUP(?)
            00
            ]

; 164:  unsigned char ast;
 164  0003  00          LOCAL CR9 DB ? ; ast

; 165:  unsigned char low_data;
 165  0004  00          LOCAL CR10 DB ? ; low_data
 165  001F              _disp_voltage_high ENDP

; 182: {
 182  0000              @show_vol_lcd .SECTION 'CODE'
 182  0000              PUBLIC _show_vol_lcd
 182  0000              _show_vol_lcd PROC

; 181: void show_vol_lcd(unsigned char u )
 181  0000              PUBLIC show_vol_lcd0
 181  0000  00          LOCAL show_vol_lcd0 DB ? ; u

; 186:  ast=u;
 186  0000  0700     R  MOV A,show_vol_lcd0
 186  0001  0080     R  MOV CR11,A

; 187:  low=(ast&0x0f);
 187  0002  0700     R  MOV A,CR11
 187  0003  0E0F        AND A,0fh
 187  0004  0080     R  MOV CR12,A

; 188:  _swap(&ast);
 188  0005  1180     R  SWAP CR11

; 189:  high=(ast&0x0f);
 189  0006  0700     R  MOV A,CR11
文件:VOLTEST.c    盛群编译器版本 2.86 页次14 

 189  0007  0E0F        AND A,0fh
 189  0008  0080     R  MOV CR13,A

; 190:  disp_voltage_low(low);
 190  0009  0700     R  MOV A,CR12
 190  000A  0080     R  MOV disp_voltage_low0,A
 190  000B  2000     R  CALL _disp_voltage_low

; 191:  disp_voltage_high(high);
 191  000C  0700     R  MOV A,CR13
 191  000D  0080     R  MOV disp_voltage_high0,A
 191  000E  2000     R  CALL _disp_voltage_high
 191  000F              L29:
 191  000F  0003        RET

; 183:  unsigned char ast;
 183  0001  00          LOCAL CR11 DB ? ; ast

; 184:  unsigned char low;
 184  0002  00          LOCAL CR12 DB ? ; low

; 185:  unsigned char high;
 185  0003  00          LOCAL CR13 DB ? ; high
 185  0010              _show_vol_lcd ENDP

; 196: {
 196  0000              @key_scan .SECTION 'CODE'
 196  0000              PUBLIC _key_scan
文件:VOLTEST.C    盛群编译器版本 2.86 页次13

 196  0000              _key_scan PROC

; 198:  _pa3=1;
 198  0000  3192        SET [012H].3

; 201:  if(_pa3==0)
 201  0001  3D92        SZ [012H].3
 201  0002  2800     R  JMP L31

; 202:   {_pa3=1;
 202  0003  3192        SET [012H].3

; 203:    _delay(150);
 203  0004  0F24        MOV A,024H
 203  0005  2000     E  CALL __DELAYX2

; 204:     if(_pa3==0)
 204  0006  3D92        SZ [012H].3
 204  0007  2800     R  JMP L33

; 205:     {if(key_counter==1)
 205  0008  0700     R  MOV A,_key_counter
 205  0009  0C01        XOR A,01h
 205  000A  390A        SNZ [0ah].2
 205  000B  2800     R  JMP L35

; 206:       { key_counter=0;
 206  000C  1F00     R  CLR _key_counter

; 207:         if(key_flag==0)
文件:VOLTEST.c    盛群编译器版本 2.86 页次15 

 207  000D  1080     R  SZ _key_flag
 207  000E  2800     R  JMP L37

; 208:          {  key_flag=1;
 208  000F  0F01        MOV A,01h
 208  0010  0080     R  MOV _key_flag,A

; 209:               _pa7=0;
 209  0011  3792        CLR [012H].7

⌨️ 快捷键说明

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