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

📄 pcf8563.lis

📁 hao da jia lai fen xiang
💻 LIS
字号:
                        .module pcf8563.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\mega16\drive\pcf8563.c
 0000                   .dbfunc e PCF8563Write _PCF8563Write fc
 0000           ;          NByte -> R22
 0000           ;           Data -> R20,R21
                        .even
 0000           _PCF8563Write::
 0000 0E940000          xcall push_gset2
 0004 A801              movw R20,R16
 0006 2197              sbiw R28,1
 0008                   .dbline -1
 0008                   .dbline 49
 0008           ; /*********************************************************************************************************
 0008           ; **                                                           Small RTOS(51)
 0008           ; **                                   The Real-Time Kernel(For Keil c51)
 0008           ; **
 0008           ; **                                  (c) Copyright 2002-2002, chenmingji
 0008           ; **                                           All Rights Reserved
 0008           ; **
 0008           ; **                                                  V1.11.0
 0008           ; **
 0008           ; **
 0008           ; **--------------文件信息--------------------------------------------------------------------------------
 0008           ; **文   件   名: Pcf8563.h
 0008           ; **创   建   人: 陈明计
 0008           ; **最后修改日期:  2002年12月9日
 0008           ; **描        述: Small RTOS Pcf8563驱动程序源文件,也可以在不使用
 0008           ; **              Small RTOS的情况下使用
 0008           ; **--------------历史版本信息----------------------------------------------------------------------------
 0008           ; ** 创建人: 陈明计
 0008           ; ** 版  本: V1.00
 0008           ; ** 日 期: 2002年12月9日
 0008           ; ** 描 述: 原始版本
 0008           ; **
 0008           ; **------------------------------------------------------------------------------------------------------
 0008           ; ** 修改人:
 0008           ; ** 版  本:
 0008           ; ** 日 期:
 0008           ; ** 描 述:
 0008           ; **
 0008           ; **--------------当前版本修订------------------------------------------------------------------------------
 0008           ; ** 修改人:
 0008           ; ** 日 期:
 0008           ; ** 描 述:
 0008           ; **
 0008           ; **------------------------------------------------------------------------------------------------------
 0008           ; ********************************************************************************************************/
 0008           ; #include "config.h"
 0008           ; 
 0008           ; /*********************************************************************************************************
 0008           ; ** 函数名称: PCF8563Write
 0008           ; ** 功能描述: 设置PCF8563寄存器(仅允许一个任务可以调用)
 0008           ; ** 输 入: Data[0]:设置寄存器数目
 0008           ; **         Data[1]:设置寄存器的起始的地址
 0008           ; **         Data[2]~Data[Data[1] + 1]:设置数据
 0008           ; ** 输 出: 无
 0008           ; ** 全局变量: 无
 0008           ; ** 调用模块: 无
 0008           ; ********************************************************************************************************/
 0008           ; unsigned char PCF8563Write(unsigned char *Data)
 0008           ; {
 0008                   .dbline 52
 0008           ;       unsigned char NByte;
 0008           ; 
 0008           ;       NByte = *Data++;
 0008 FA01              movw R30,R20
 000A 6191              ld R22,Z+
 000C AF01              movw R20,R30
 000E                   .dbline 53
 000E           ;       NByte++;
 000E 6395              inc R22
 0010                   .dbline 55
 0010           ; //    return (IIC_write(PCF8563Addr,Data,NByte));
 0010           ;       return (IICWrite(PCF8563Addr,Data,NByte));
 0010 6883              std y+0,R22
 0012 9F01              movw R18,R30
 0014 02EA              ldi R16,162
 0016 0E940000          xcall _IICWrite
 001A                   .dbline -2
 001A           L1:
 001A 2196              adiw R28,1
 001C 0E940000          xcall pop_gset2
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbsym r NByte 22 c
 0022                   .dbsym r Data 20 pc
 0022                   .dbend
 0022                   .dbfunc e PCF8563Read _PCF8563Read fc
 0022           ;          NByte -> R22
 0022           ;           Data -> R20,R21
                        .even
 0022           _PCF8563Read::
 0022 0E940000          xcall push_gset2
 0026 A801              movw R20,R16
 0028 2197              sbiw R28,1
 002A                   .dbline -1
 002A                   .dbline 68
 002A           ; }
 002A           ; 
 002A           ; /*********************************************************************************************************
 002A           ; ** 函数名称: PCF8563Read
 002A           ; ** 功能描述: 读取PCF8563寄存器(仅允许一个任务可以调用)
 002A           ; ** 输 入: Data[0]:读取寄存器数目
 002A           ; **         Data[1]:读取寄存器的起始的地址
 002A           ; ** 输 出: Data:读取的数据
 002A           ; ** 全局变量: 无
 002A           ; ** 调用模块: 无
 002A           ; ********************************************************************************************************/
 002A           ; unsigned char PCF8563Read(unsigned char *Data)
 002A           ; {
 002A                   .dbline 71
 002A           ;       unsigned char NByte;
 002A           ; 
 002A           ;       NByte = *Data++;
 002A FA01              movw R30,R20
 002C 6191              ld R22,Z+
 002E AF01              movw R20,R30
 0030                   .dbline 73
 0030           ; //    if(IIC_write(PCF8563Addr,Data,1) == FALSE) return FALSE;
 0030           ;       if(IICWrite(PCF8563Addr,Data,1) == FALSE) return FALSE;
 0030 81E0              ldi R24,1
 0032 8883              std y+0,R24
 0034 9F01              movw R18,R30
 0036 02EA              ldi R16,162
 0038 0E940000          xcall _IICWrite
 003C 0230              cpi R16,2
 003E 11F4              brne L3
 0040                   .dbline 73
 0040 02E0              ldi R16,2
 0042 0CC0              xjmp L2
 0044           L3:
 0044                   .dbline 75
 0044           ; //    if(IIC_read(PCF8563Addr,Data - 1,NByte) == FALSE) return FALSE;
 0044           ;       if(IICRead(Data + 3,PCF8563Addr,NByte) == FALSE) return FALSE;
 0044 6883              std y+0,R22
 0046 22EA              ldi R18,162
 0048 8A01              movw R16,R20
 004A 0D5F              subi R16,253  ; offset = 3
 004C 1F4F              sbci R17,255
 004E 0E940000          xcall _IICRead
 0052 0230              cpi R16,2
 0054 11F4              brne L5
 0056                   .dbline 75
 0056 02E0              ldi R16,2
 0058 01C0              xjmp L2
 005A           L5:
 005A                   .dbline 76
 005A           ;       return TRUE ;
 005A 01E0              ldi R16,1
 005C                   .dbline -2
 005C           L2:
 005C 2196              adiw R28,1
 005E 0E940000          xcall pop_gset2
 0062                   .dbline 0 ; func end
 0062 0895              ret
 0064                   .dbsym r NByte 22 c
 0064                   .dbsym r Data 20 pc
 0064                   .dbend

⌨️ 快捷键说明

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