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

📄 pcf8563.lis

📁 ATMEGA128的PCF8536驱动程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 007C           ;        for(;num>0;num--)
 007C 08C0              xjmp L23
 007E           L20:
 007E                   .dbline 95
 007E                   .dbline 96
 007E FB01              movw R30,R22
 0080 0081              ldd R16,z+0
 0082 0E940000          xcall _i2cwt
 0086                   .dbline 97
 0086 6F5F              subi R22,255  ; offset = 1
 0088 7F4F              sbci R23,255
 008A                   .dbline 98
 008A 0000              nop
 008C                   .dbline 99
 008C           L21:
 008C                   .dbline 94
 008C 4A95              dec R20
 008E           L23:
 008E                   .dbline 94
 008E 2224              clr R2
 0090 2416              cp R2,R20
 0092 A8F3              brlo L20
 0094                   .dbline 100
 0094           ;               {
 0094           ;                i2cwt(*p);
 0094           ;                p++;
 0094           ;                _NOP();
 0094           ;               }
 0094           ;       }
 0094 03C0              xjmp L19
 0096           L18:
 0096                   .dbline 101
 0096           ;  else syserr=ERR_SLAW;
 0096 81E0              ldi R24,1
 0098 80930000          sts _syserr,R24
 009C           L19:
 009C                   .dbline 102
 009C           ;  i2cstop();
 009C 0E940000          xcall _i2cstop
 00A0                   .dbline -2
 00A0           L17:
 00A0 0E940000          xcall pop_gset4
 00A4                   .dbline 0 ; func end
 00A4 0895              ret
 00A6                   .dbsym r t 12 c
 00A6                   .dbsym r num 20 c
 00A6                   .dbsym r p 22 pc
 00A6                   .dbsym r add 10 i
 00A6                   .dbend
 00A6                   .dbfunc e PCF8536_rd _PCF8536_rd fV
 00A6           ;              t -> R12
 00A6           ;            num -> R20
 00A6           ;              p -> R22,R23
 00A6           ;            add -> R10,R11
                        .even
 00A6           _PCF8536_rd::
 00A6 0E940000          xcall push_gset4
 00AA B901              movw R22,R18
 00AC 5801              movw R10,R16
 00AE 4885              ldd R20,y+8
 00B0                   .dbline -1
 00B0                   .dbline 117
 00B0           ; }
 00B0           ; /*************************************************************************
 00B0           ; ** 函数名称: PCF8536_rd(unsigned int add,unsigned char *p,unsigned char num)
 00B0           ; ** 功能描述: 读PCF8563
 00B0           ; ** 输 入: unsigned int add    :高八位为器件地址,低八位为内部寄存器地址
 00B0           ;                  unsigned char *p    :读出的数据存放地址的起始地址
 00B0           ;                  unsigned char num   :读出数据的个数
 00B0           ; ** 输出        : 
 00B0           ; ** 全局变量: 
 00B0           ; ** 调用模块: 
 00B0           ; ** 说明:
 00B0           ; ** 注意:
 00B0           ; **************************************************************************/
 00B0           ; void PCF8536_rd(unsigned int add,unsigned char *p,unsigned char num)
 00B0           ; {
 00B0                   .dbline 119
 00B0           ;  unsigned char t;
 00B0           ;  t=add>>8;
 00B0 6501              movw R12,R10
 00B2 CD2C              mov R12,R13
 00B4 DD24              clr R13
 00B6                   .dbline 120
 00B6           ;  t<<=1;
 00B6 CC0C              lsl R12
 00B8                   .dbline 121
 00B8           ;  i2cstart();
 00B8 0E940000          xcall _i2cstart
 00BC                   .dbline 122
 00BC           ;  if(i2cwt(W_ADD_COM+t)==SLAW)
 00BC 0C2D              mov R16,R12
 00BE 0E55              subi R16,94    ; addi 162
 00C0 0E940000          xcall _i2cwt
 00C4 0831              cpi R16,24
 00C6 21F4              brne L25
 00C8                   .dbline 123
 00C8           ;       {
 00C8                   .dbline 124
 00C8           ;        i2cwt(add);
 00C8 0A2D              mov R16,R10
 00CA 0E940000          xcall _i2cwt
 00CE                   .dbline 125
 00CE           ;       }
 00CE 03C0              xjmp L26
 00D0           L25:
 00D0                   .dbline 126
 00D0           ;  else syserr=ERR_SLAW;
 00D0 81E0              ldi R24,1
 00D2 80930000          sts _syserr,R24
 00D6           L26:
 00D6                   .dbline 128
 00D6           ;  
 00D6           ;  i2cstart();
 00D6 0E940000          xcall _i2cstart
 00DA                   .dbline 129
 00DA           ;  if(i2cwt(R_ADD_COM+t)==SLAW)
 00DA 0C2D              mov R16,R12
 00DC 0D55              subi R16,93    ; addi 163
 00DE 0E940000          xcall _i2cwt
 00E2 0831              cpi R16,24
 00E4 21F4              brne L27
 00E6                   .dbline 130
 00E6           ;       {
 00E6                   .dbline 131
 00E6           ;        i2cwt(add);
 00E6 0A2D              mov R16,R10
 00E8 0E940000          xcall _i2cwt
 00EC                   .dbline 132
 00EC           ;       }
 00EC 0BC0              xjmp L32
 00EE           L27:
 00EE                   .dbline 133
 00EE           ;  else syserr=ERR_SLAW;
 00EE 81E0              ldi R24,1
 00F0 80930000          sts _syserr,R24
 00F4                   .dbline 135
 00F4           ;  
 00F4           ;  for(;num>0;num--)
 00F4 07C0              xjmp L32
 00F6           L29:
 00F6                   .dbline 136
 00F6                   .dbline 137
 00F6 0E940000          xcall _i2crd
 00FA FB01              movw R30,R22
 00FC 0083              std z+0,R16
 00FE                   .dbline 138
 00FE 6F5F              subi R22,255  ; offset = 1
 0100 7F4F              sbci R23,255
 0102                   .dbline 139
 0102           L30:
 0102                   .dbline 135
 0102 4A95              dec R20
 0104           L32:
 0104                   .dbline 135
 0104 2224              clr R2
 0106 2416              cp R2,R20
 0108 B0F3              brlo L29
 010A                   .dbline -2
 010A           L24:
 010A 0E940000          xcall pop_gset4
 010E                   .dbline 0 ; func end
 010E 0895              ret
 0110                   .dbsym r t 12 c
 0110                   .dbsym r num 20 c
 0110                   .dbsym r p 22 pc
 0110                   .dbsym r add 10 i
 0110                   .dbend
 0110                   .dbfunc e PCF8563_init _PCF8563_init fV
                        .even
 0110           _PCF8563_init::
 0110                   .dbline -1
 0110                   .dbline 152
 0110           ;       {
 0110           ;        *p=i2crd();
 0110           ;        p++;
 0110           ;       } 
 0110           ; }
 0110           ; /*************************************************************************
 0110           ; ** 函数名称: PCF8563_init(void)
 0110           ; ** 功能描述: PCF8563初始化
 0110           ; ** 输 入: 
 0110           ; ** 输出        : 
 0110           ; ** 全局变量: 
 0110           ; ** 调用模块: 
 0110           ; ** 说明:
 0110           ; ** 注意:
 0110           ; **************************************************************************/
 0110           ; void PCF8563_init(void)
 0110           ; {
 0110                   .dbline 153
 0110           ;  clear(write_buff,8);
 0110 28E0              ldi R18,8
 0112 00E0              ldi R16,<_write_buff
 0114 10E0              ldi R17,>_write_buff
 0116 74DF              xcall _clear
 0118                   .dbline 154
 0118           ;  clear(read_buff,8);
 0118 28E0              ldi R18,8
 011A 00E0              ldi R16,<_read_buff
 011C 10E0              ldi R17,>_read_buff
 011E 70DF              xcall _clear
 0120                   .dbline 156
 0120           ;  
 0120           ;  PCF8536_wt(0x00,0x20);//写寄存器1,停止计时
 0120 20E2              ldi R18,32
 0122 0027              clr R16
 0124 1127              clr R17
 0126 77DF              xcall _PCF8536_wt
 0128                   .dbline 158
 0128           ;  //PCF8536_wt_p(0x02,time,7);//设定时间
 0128           ;  PCF8536_wt(0x00,0x00);//写寄存器1,开始计时
 0128 2227              clr R18
 012A 0027              clr R16
 012C 1127              clr R17
 012E 73DF              xcall _PCF8536_wt
 0130                   .dbline -2
 0130           L33:
 0130                   .dbline 0 ; func end
 0130 0895              ret
 0132                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\lib\PCF8563.c
 0000           _syserr::
 0000                   .blkb 1
 0001                   .dbsym e syserr _syserr c
 0001           _week_tmp::
 0001                   .blkb 2
 0003                   .dbsym e week_tmp _week_tmp pc
 0003           _read_buff::
 0003                   .blkb 8
 000B                   .dbsym e read_buff _read_buff A[8:8]c
 000B           _write_buff::
 000B                   .blkb 8
 0013                   .dbsym e write_buff _write_buff A[8:8]c
                        .area data(ram, con, rel)
 0029                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\lib\PCF8563.c
 0029           L8:
 0029                   .blkb 10
                        .area idata
 0029 53617475726461792000      .byte 'S,'a,'t,'u,'r,'d,'a,'y,32,0
                        .area data(ram, con, rel)
 0033                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\lib\PCF8563.c
 0033           L7:
 0033                   .blkb 10
                        .area idata
 0033 20467269646179202000      .byte 32,'F,'r,'i,'d,'a,'y,32,32,0
                        .area data(ram, con, rel)
 003D                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\lib\PCF8563.c
 003D           L6:
 003D                   .blkb 10
                        .area idata
 003D 54687572736461792000      .byte 'T,'h,'u,'r,'s,'d,'a,'y,32,0
                        .area data(ram, con, rel)
 0047                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\lib\PCF8563.c
 0047           L5:
 0047                   .blkb 10
                        .area idata
 0047 5765646E657364617900      .byte 'W,'e,'d,'n,'e,'s,'d,'a,'y,0
                        .area data(ram, con, rel)
 0051                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\lib\PCF8563.c
 0051           L4:
 0051                   .blkb 10
                        .area idata
 0051 20547565736461792000      .byte 32,'T,'u,'e,'s,'d,'a,'y,32,0
                        .area data(ram, con, rel)
 005B                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\lib\PCF8563.c
 005B           L3:
 005B                   .blkb 10
                        .area idata
 005B 20204D6F6E6461792000      .byte 32,32,'M,'o,'n,'d,'a,'y,32,0
                        .area data(ram, con, rel)
 0065                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\lib\PCF8563.c
 0065           L2:
 0065                   .blkb 10
                        .area idata
 0065 202053756E6461792000      .byte 32,32,'S,'u,'n,'d,'a,'y,32,0
                        .area data(ram, con, rel)
 006F                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\lib\PCF8563.c

⌨️ 快捷键说明

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