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

📄 at93c46.lis

📁 93c46的驱动程序,C51代码
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0124 B1F7              brne L33
 0126           X1:
 0126                   .dbline -2
 0126           L32:
 0126 0E940000          xcall pop_gset1
 012A                   .dbline 0 ; func end
 012A 0895              ret
 012C                   .dbsym r i 20 c
 012C                   .dbsym r ms 16 i
 012C                   .dbend
 012C                   .dbfunc e EW_disable _EW_disable fV
                        .even
 012C           _EW_disable::
 012C                   .dbline -1
 012C                   .dbline 237
 012C           ;               ;
 012C           ; }
 012C           ; /*********************************************
 012C           ; 函数功能:读写禁止 
 012C           ; 描    述:禁止读写功能
 012C           ; 入口参数:void
 012C           ; 出口参数:void
 012C           ; *********************************************/
 012C           ; void EW_disable(void)
 012C           ; {
 012C                   .dbline 238
 012C           ;       set_cs();
 012C C49A              sbi 0x18,4
 012E                   .dbline 239
 012E           ;       delay_us();
 012E 8EDF              xcall _delay_us
 0130                   .dbline 240
 0130           ;       Send_str_op(EWDS);
 0130 0027              clr R16
 0132 91DF              xcall _Send_str_op
 0134                   .dbline 241
 0134           ;       Send_bits(0x00);
 0134 0027              clr R16
 0136 ACDF              xcall _Send_bits
 0138                   .dbline 242
 0138           ;       delay_us();
 0138 89DF              xcall _delay_us
 013A                   .dbline 243
 013A           ;       clr_cs();
 013A C498              cbi 0x18,4
 013C                   .dbline -2
 013C           L41:
 013C                   .dbline 0 ; func end
 013C 0895              ret
 013E                   .dbend
 013E                   .dbfunc e EW_enable _EW_enable fV
                        .even
 013E           _EW_enable::
 013E                   .dbline -1
 013E                   .dbline 252
 013E           ; }
 013E           ; /*********************************************
 013E           ; 函数功能:读写使能
 013E           ; 描    述:使能读写功能
 013E           ; 入口参数:void
 013E           ; 出口参数:void
 013E           ; *********************************************/
 013E           ; void EW_enable(void)
 013E           ; {
 013E                   .dbline 253
 013E           ;       set_cs();
 013E C49A              sbi 0x18,4
 0140                   .dbline 254
 0140           ;       delay_us();
 0140 85DF              xcall _delay_us
 0142                   .dbline 255
 0142           ;       Send_str_op(EWEN);
 0142 0027              clr R16
 0144 88DF              xcall _Send_str_op
 0146                   .dbline 256
 0146           ;       Send_bits(0x60);
 0146 00E6              ldi R16,96
 0148 A3DF              xcall _Send_bits
 014A                   .dbline 257
 014A           ;       delay_us();
 014A 80DF              xcall _delay_us
 014C                   .dbline 258
 014C           ;       clr_cs();
 014C C498              cbi 0x18,4
 014E                   .dbline -2
 014E           L42:
 014E                   .dbline 0 ; func end
 014E 0895              ret
 0150                   .dbend
 0150                   .dbfunc e Erase _Erase fV
 0150           ;            add -> R20
                        .even
 0150           _Erase::
 0150 0E940000          xcall push_gset1
 0154 402F              mov R20,R16
 0156                   .dbline -1
 0156                   .dbline 267
 0156           ; }
 0156           ; /*********************************************
 0156           ; 函数功能:擦出指定地址的内容 
 0156           ; 描    述:将指定地址的内容全部擦除
 0156           ; 入口参数:add
 0156           ; 出口参数:void
 0156           ; *********************************************/
 0156           ; void Erase(uint8_t add)
 0156           ; {
 0156                   .dbline 268
 0156           ;       clr_cs();
 0156 C498              cbi 0x18,4
 0158                   .dbline 269
 0158           ;       clr_sk();
 0158 C798              cbi 0x18,7
 015A                   .dbline 270
 015A           ;       set_cs();
 015A C49A              sbi 0x18,4
 015C                   .dbline 271
 015C           ;       delay_us();
 015C 77DF              xcall _delay_us
 015E                   .dbline 272
 015E           ;       Send_str_op(ERASE);
 015E 00EC              ldi R16,192
 0160 7ADF              xcall _Send_str_op
 0162                   .dbline 273
 0162           ;       Send_bits(add);
 0162 042F              mov R16,R20
 0164 95DF              xcall _Send_bits
 0166                   .dbline 274
 0166           ;       delay_us();
 0166 72DF              xcall _delay_us
 0168                   .dbline 275
 0168           ;       clr_cs();
 0168 C498              cbi 0x18,4
 016A                   .dbline 276
 016A           ;       delay_us();
 016A 70DF              xcall _delay_us
 016C                   .dbline 277
 016C           ;       delay_us();
 016C 6FDF              xcall _delay_us
 016E                   .dbline 278
 016E           ;       set_cs();
 016E C49A              sbi 0x18,4
 0170           L44:
 0170                   .dbline 279
 0170           L45:
 0170                   .dbline 279
 0170           ;       while (!(PIN_DO & (1<<DO)));    //check busy
 0170 B69B              sbis 0x16,6
 0172 FECF              rjmp L44
 0174                   .dbline 280
 0174           ;       delay_us();
 0174 6BDF              xcall _delay_us
 0176                   .dbline 281
 0176           ;       clr_cs();
 0176 C498              cbi 0x18,4
 0178                   .dbline -2
 0178           L43:
 0178 0E940000          xcall pop_gset1
 017C                   .dbline 0 ; func end
 017C 0895              ret
 017E                   .dbsym r add 20 c
 017E                   .dbend
 017E                   .dbfunc e Write _Write fV
 017E           ;              i -> R20
 017E           ;         w_data -> R22
 017E           ;            add -> R20
                        .even
 017E           _Write::
 017E 0E940000          xcall push_gset2
 0182 622F              mov R22,R18
 0184 402F              mov R20,R16
 0186                   .dbline -1
 0186                   .dbline 290
 0186           ; }
 0186           ; /*********************************************
 0186           ; 函数功能:在指定的地址写一个字节的数据 
 0186           ; 描    述:将一个字节的数据写入指定地址
 0186           ; 入口参数:add,w_data
 0186           ; 出口参数:void
 0186           ; *********************************************/
 0186           ; void Write(uint8_t add,uint8_t w_data)
 0186           ; {
 0186                   .dbline 292
 0186           ;       uint8_t i;
 0186           ;       set_cs();
 0186 C49A              sbi 0x18,4
 0188                   .dbline 293
 0188           ;       delay_us();
 0188 61DF              xcall _delay_us
 018A                   .dbline 294
 018A           ;       Send_str_op(WRITE);
 018A 00E4              ldi R16,64
 018C 64DF              xcall _Send_str_op
 018E                   .dbline 295
 018E           ;       Send_bits(add);
 018E 042F              mov R16,R20
 0190 7FDF              xcall _Send_bits
 0192                   .dbline 296
 0192           ;       for (i=0;i<8;i++,w_data <<=1)
 0192 4427              clr R20
 0194 0EC0              xjmp L51
 0196           L48:
 0196                   .dbline 297
 0196           ;       {
 0196                   .dbline 298
 0196           ;               delay_us();
 0196 5ADF              xcall _delay_us
 0198                   .dbline 299
 0198           ;               if (w_data & 0x80)
 0198 67FF              sbrs R22,7
 019A 02C0              rjmp L52
 019C                   .dbline 300
 019C           ;               {
 019C                   .dbline 301
 019C           ;                       set_di();
 019C C59A              sbi 0x18,5
 019E                   .dbline 302
 019E           ;               }
 019E 01C0              xjmp L53
 01A0           L52:
 01A0                   .dbline 304
 01A0           ;               else
 01A0           ;               {
 01A0                   .dbline 305
 01A0           ;                       clr_di();
 01A0 C598              cbi 0x18,5
 01A2                   .dbline 306
 01A2           ;               }
 01A2           L53:
 01A2                   .dbline 307
 01A2 54DF              xcall _delay_us
 01A4                   .dbline 308
 01A4 C79A              sbi 0x18,7
 01A6                   .dbline 309
 01A6 52DF              xcall _delay_us
 01A8                   .dbline 310
 01A8 C798              cbi 0x18,7
 01AA                   .dbline 311
 01AA 50DF              xcall _delay_us
 01AC                   .dbline 312
 01AC C598              cbi 0x18,5
 01AE                   .dbline 313
 01AE           L49:
 01AE                   .dbline 296
 01AE 4395              inc R20
 01B0 660F              lsl R22
 01B2           L51:
 01B2                   .dbline 296
 01B2 4830              cpi R20,8
 01B4 80F3              brlo L48
 01B6                   .dbline 314
 01B6           ;               delay_us();
 01B6           ;               set_sk();
 01B6           ;               delay_us();
 01B6           ;               clr_sk();
 01B6           ;               delay_us();
 01B6           ;               clr_di();
 01B6           ;       }
 01B6           ;       delay_us();
 01B6 4ADF              xcall _delay_us
 01B8                   .dbline 315
 01B8           ;       clr_cs();
 01B8 C498              cbi 0x18,4
 01BA                   .dbline 316
 01BA           ;       delay_us();
 01BA 48DF              xcall _delay_us
 01BC                   .dbline 317
 01BC           ;       delay_us();
 01BC 47DF              xcall _delay_us
 01BE                   .dbline 318
 01BE           ;       set_cs();
 01BE C49A              sbi 0x18,4
 01C0           L54:
 01C0                   .dbline 319
 01C0           L55:
 01C0                   .dbline 319
 01C0           ;       while (!(PIN_DO & (1<<DO)));    //check busy
 01C0 B69B              sbis 0x16,6
 01C2 FECF              rjmp L54
 01C4                   .dbline 320
 01C4           ;       delay_us();
 01C4 43DF              xcall _delay_us
 01C6                   .dbline 321
 01C6           ;       clr_cs();
 01C6 C498              cbi 0x18,4
 01C8                   .dbline -2
 01C8           L47:
 01C8 0E940000          xcall pop_gset2
 01CC                   .dbline 0 ; func end
 01CC 0895              ret
 01CE                   .dbsym r i 20 c
 01CE                   .dbsym r w_data 22 c
 01CE                   .dbsym r add 20 c
 01CE                   .dbend

⌨️ 快捷键说明

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