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

📄 ds12997.lis

📁 本程序经调试好使
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0080           ; 
 0080           ; 
 0080           ; /*********************延时5000+0us 函数定义**********/
 0080           ; void delay5ms(void)
 0080           ; {
 0080                   .dbline 170
 0080           ;     uchar i,j;
 0080           ;     for(i=185;i>0;i--)
 0080 09EB              ldi R16,185
 0082 07C0              xjmp L24
 0084           L21:
 0084                   .dbline 171
 0084 2CE0              ldi R18,12
 0086 01C0              xjmp L28
 0088           L25:
 0088                   .dbline 171
 0088           L26:
 0088                   .dbline 171
 0088 2A95              dec R18
 008A           L28:
 008A                   .dbline 171
 008A 2224              clr R2
 008C 2216              cp R2,R18
 008E E0F3              brlo L25
 0090           L22:
 0090                   .dbline 170
 0090 0A95              dec R16
 0092           L24:
 0092                   .dbline 170
 0092 2224              clr R2
 0094 2016              cp R2,R16
 0096 B0F3              brlo L21
 0098                   .dbline -2
 0098           L20:
 0098                   .dbline 0 ; func end
 0098 0895              ret
 009A                   .dbsym r i 16 c
 009A                   .dbsym r j 18 c
 009A                   .dbend
 009A                   .dbfunc e delay_1ms _delay_1ms fV
 009A           ;              i -> R16,R17
                        .even
 009A           _delay_1ms::
 009A                   .dbline -1
 009A                   .dbline 175
 009A           ;     for(j=12;j>0;j--);
 009A           ; }
 009A           ; /*****************延时1秒子函数*******************/
 009A           ; void delay_1ms(void)
 009A           ; {
 009A                   .dbline 177
 009A           ;  uint i;
 009A           ; for(i=1;i<(8*143-2);i++) //8为晶振频率
 009A 01E0              ldi R16,1
 009C 10E0              ldi R17,0
 009E 02C0              xjmp L33
 00A0           L30:
 00A0                   .dbline 178
 00A0           L31:
 00A0                   .dbline 177
 00A0 0F5F              subi R16,255  ; offset = 1
 00A2 1F4F              sbci R17,255
 00A4           L33:
 00A4                   .dbline 177
 00A4 0637              cpi R16,118
 00A6 E4E0              ldi R30,4
 00A8 1E07              cpc R17,R30
 00AA D0F3              brlo L30
 00AC                   .dbline -2
 00AC           L29:
 00AC                   .dbline 0 ; func end
 00AC 0895              ret
 00AE                   .dbsym r i 16 i
 00AE                   .dbend
 00AE                   .dbfunc e delay_nms _delay_nms fV
 00AE           ;              i -> R20,R21
 00AE           ;              n -> R22,R23
                        .even
 00AE           _delay_nms::
 00AE 0E940000          xcall push_gset2
 00B2 B801              movw R22,R16
 00B4                   .dbline -1
 00B4                   .dbline 182
 00B4           ; ;
 00B4           ; }
 00B4           ; /****************延时N毫秒子函数****************/
 00B4           ; void delay_nms(uint n)
 00B4           ; {
 00B4                   .dbline 184
 00B4           ; uint i;
 00B4           ; for(i=0;i<n;i++)
 00B4 4427              clr R20
 00B6 5527              clr R21
 00B8 03C0              xjmp L38
 00BA           L35:
 00BA                   .dbline 185
 00BA EFDF              xcall _delay_1ms
 00BC           L36:
 00BC                   .dbline 184
 00BC 4F5F              subi R20,255  ; offset = 1
 00BE 5F4F              sbci R21,255
 00C0           L38:
 00C0                   .dbline 184
 00C0 4617              cp R20,R22
 00C2 5707              cpc R21,R23
 00C4 D0F3              brlo L35
 00C6                   .dbline -2
 00C6           L34:
 00C6 0E940000          xcall pop_gset2
 00CA                   .dbline 0 ; func end
 00CA 0895              ret
 00CC                   .dbsym r i 20 i
 00CC                   .dbsym r n 22 i
 00CC                   .dbend
 00CC                   .dbfunc e delay_8nus _delay_8nus fV
 00CC           ;              i -> R22,R23
 00CC           ;              k -> R20,R21
 00CC           ;              n -> R16
                        .even
 00CC           _delay_8nus::
 00CC 0E940000          xcall push_gset2
 00D0                   .dbline -1
 00D0                   .dbline 189
 00D0           ; delay_1ms();
 00D0           ; }
 00D0           ; /****************精确延时微妙级,8MHZ,0.25us/step***********/
 00D0           ; void delay_8nus(uchar n)
 00D0           ; {
 00D0                   .dbline 191
 00D0           ;   uint i,k;
 00D0           ;   i=n;
 00D0 602F              mov R22,R16
 00D2 7727              clr R23
 00D4                   .dbline 192
 00D4           ;   for(k=i;k>0;k--)
 00D4 AB01              movw R20,R22
 00D6 03C0              xjmp L43
 00D8           L40:
 00D8                   .dbline 193
 00D8                   .dbline 194
 00D8 0000              nop
 00DA                   .dbline 195
 00DA           L41:
 00DA                   .dbline 192
 00DA 4150              subi R20,1
 00DC 5040              sbci R21,0
 00DE           L43:
 00DE                   .dbline 192
 00DE 4030              cpi R20,0
 00E0 4507              cpc R20,R21
 00E2 D1F7              brne L40
 00E4           X0:
 00E4                   .dbline -2
 00E4           L39:
 00E4 0E940000          xcall pop_gset2
 00E8                   .dbline 0 ; func end
 00E8 0895              ret
 00EA                   .dbsym r i 22 i
 00EA                   .dbsym r k 20 i
 00EA                   .dbsym r n 16 c
 00EA                   .dbend
 00EA                   .dbfunc e DS12887_Write _DS12887_Write fV
 00EA           ;          Value -> R18
 00EA           ;        Address -> R16
                        .even
 00EA           _DS12887_Write::
 00EA                   .dbline -1
 00EA                   .dbline 199
 00EA           ;   {
 00EA           ;    _NOP();
 00EA           ;     }
 00EA           ; }
 00EA           ; /*******DS12887指定地址写入数据 ,严格按照INTERL的时序,程序**********/
 00EA           ; void DS12887_Write( uchar Address, uchar Value)
 00EA           ; {
 00EA                   .dbline 201
 00EA           ;       
 00EA           ;       P_AS_0; 
 00EA C398              cbi 0x18,3
 00EC                   .dbline 202
 00EC           ;     _NOP(); 
 00EC 0000              nop
 00EE                   .dbline 203
 00EE           ;     _NOP();     
 00EE 0000              nop
 00F0                   .dbline 204
 00F0           ;     P_DS_1; 
 00F0 C19A              sbi 0x18,1
 00F2                   .dbline 205
 00F2           ;       _NOP(); 
 00F2 0000              nop
 00F4                   .dbline 206
 00F4           ;     _NOP();
 00F4 0000              nop
 00F6                   .dbline 207
 00F6           ;     P_RW_1;            //给出读信号 
 00F6 C29A              sbi 0x18,2
 00F8                   .dbline 208
 00F8           ;     _NOP(); 
 00F8 0000              nop
 00FA                   .dbline 209
 00FA           ;     _NOP();    
 00FA 0000              nop
 00FC                   .dbline 210
 00FC           ;     P_AS_1;            //锁存信号高电平 
 00FC C39A              sbi 0x18,3
 00FE                   .dbline 211
 00FE           ;     _NOP(); 
 00FE 0000              nop
 0100                   .dbline 212
 0100           ;     _NOP(); 
 0100 0000              nop
 0102                   .dbline 213
 0102           ;     AD_DDR = 0xFF;          //数据口设置为输出 
 0102 8FEF              ldi R24,255
 0104 8ABB              out 0x1a,R24
 0106                   .dbline 214
 0106           ;     _NOP(); 
 0106 0000              nop
 0108                   .dbline 215
 0108           ;     _NOP();
 0108 0000              nop
 010A                   .dbline 216
 010A           ;       _NOP();
 010A 0000              nop
 010C                   .dbline 217
 010C           ;       _NOP(); 
 010C 0000              nop
 010E                   .dbline 218
 010E           ;     AD_PORT = Address;       //给出地址 
 010E 0BBB              out 0x1b,R16
 0110                   .dbline 219
 0110           ;     _NOP(); 
 0110 0000              nop
 0112                   .dbline 220
 0112           ;     _NOP();  
 0112 0000              nop
 0114                   .dbline 221
 0114           ;       _NOP(); 
 0114 0000              nop
 0116                   .dbline 222
 0116           ;     _NOP();
 0116 0000              nop
 0118                   .dbline 223
 0118           ;       _NOP();
 0118 0000              nop
 011A                   .dbline 224
 011A           ;       _NOP();                     // 
 011A 0000              nop
 011C                   .dbline 225
 011C           ;     P_AS_0;            //锁存信号低电平 
 011C C398              cbi 0x18,3
 011E                   .dbline 226
 011E           ;     _NOP(); 
 011E 0000              nop
 0120                   .dbline 227
 0120           ;     _NOP();  
 0120 0000              nop
 0122                   .dbline 228
 0122           ;     P_RW_0;            //给出写信号 
 0122 C298              cbi 0x18,2
 0124                   .dbline 229
 0124           ;     _NOP(); 
 0124 0000              nop
 0126                   .dbline 230
 0126           ;     _NOP(); 
 0126 0000              nop
 0128                   .dbline 231
 0128           ;     _NOP(); 
 0128 0000              nop
 012A                   .dbline 232
 012A           ;     AD_PORT = Value;  //写出数据 
 012A 2BBB              out 0x1b,R18
 012C                   .dbline 233
 012C           ;     _NOP(); 
 012C 0000              nop
 012E                   .dbline 234
 012E           ;     _NOP(); 
 012E 0000              nop
 0130                   .dbline 235
 0130           ;     _NOP(); 
 0130 0000              nop
 0132                   .dbline 236
 0132           ;     _NOP();
 0132 0000              nop
 0134                   .dbline 237
 0134           ;       _NOP();
 0134 0000              nop
 0136                   .dbline 238
 0136           ;       _NOP();
 0136 0000              nop
 0138                   .dbline 239
 0138           ;       _NOP();
 0138 0000              nop
 013A                   .dbline 240
 013A           ;       _NOP(); 
 013A 0000              nop
 013C                   .dbline 241
 013C           ;     P_RW_1;            //给出读信号 
 013C C29A              sbi 0x18,2
 013E                   .dbline 242
 013E           ;     _NOP(); 
 013E 0000              nop
 0140                   .dbline 243
 0140           ;     _NOP(); 
 0140 0000              nop
 0142                   .dbline 244
 0142           ;     _NOP(); 
 0142 0000              nop
 0144                   .dbline 245
 0144           ;     P_AS_1;            //片选信号高电平 
 0144 C39A              sbi 0x18,3
 0146                   .dbline 246
 0146           ;     _NOP(); 
 0146 0000              nop
 0148                   .dbline 247
 0148           ;     _NOP();  
 0148 0000              nop
 014A                   .dbline -2
 014A           L44:
 014A                   .dbline 0 ; func end
 014A 0895              ret
 014C                   .dbsym r Value 18 c
 014C                   .dbsym r Address 16 c
 014C                   .dbend
 014C                   .dbfunc e DS12887_Read _DS12887_Read fc
 014C           ;           temp -> R20
 014C           ;        Address -> R16
                        .even
 014C           _DS12887_Read::
 014C 0E940000          xcall push_gset1
 0150                   .dbline -1
 0150                   .dbline 251
 0150           ; }
 0150           ; /*********DS12887指定地址中读出数据,严格按照INTERL的时序!!!!!********/
 0150           ; uchar DS12887_Read( uchar Address)
 0150           ; {   
 0150                   .dbline 252
 0150           ;        unsigned char temp = 0;     
 0150 4427              clr R20
 0152                   .dbline 253
 0152           ;     P_AS_0;            //锁存信号高电平 
 0152 C398              cbi 0x18,3
 0154                   .dbline 254
 0154           ;     _NOP(); 
 0154 0000              nop
 0156                   .dbline 255
 0156           ;     _NOP(); 
 0156 0000              nop
 0158                   .dbline 256
 0158           ;       P_DS_1; 
 0158 C19A              sbi 0x18,1
 015A                   .dbline 257
 015A           ;       _NOP(); 
 015A 0000              nop
 015C                   .dbline 258
 015C           ;     _NOP();
 015C 0000              nop
 015E                   .dbline 259
 015E           ;     P_RW_1;            //给出读信号    
 015E C29A              sbi 0x18,2
 0160                   .dbline 260
 0160           ;     _NOP(); 
 0160 0000              nop
 0162                   .dbline 261
 0162           ;     _NOP(); 
 0162 0000              nop
 0164                   .dbline 262
 0164           ;     P_AS_1;            //锁存信号高电平 
 0164 C39A              sbi 0x18,3
 0166                   .dbline 263
 0166           ;     _NOP(); 
 0166 0000              nop

⌨️ 快捷键说明

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