📄 rtc8025.lis
字号:
.module Rtc8025.c
.area text(rom, con, rel)
0000 .dbfile D:\avr16\BOOTLoadICC\Rtc8025.c
0000 .dbfunc e RTC_Delay _RTC_Delay fV
0000 ; MD -> R16,R17
.even
0000 _RTC_Delay::
0000 .dbline -1
0000 .dbline 12
0000 ; #include <iom128v.h>
0000 ; #include "Rtc8025.h"
0000 ;
0000 ; //==========================================================
0000 ; //函 数:void RTC_Delay(unsigned int MD)
0000 ; //功 能:延时
0000 ; //入口参数:延时的参数
0000 ; //出口参数:无
0000 ; //日 期:2005-07-21 覃道堂
0000 ; //==========================================================
0000 ; void RTC_Delay(unsigned int MD)
0000 ; {
0000 L2:
0000 .dbline 13
0000 L3:
0000 .dbline 13
0000 ; while(MD --);
0000 1801 movw R2,R16
0002 0150 subi R16,1
0004 1040 sbci R17,0
0006 2220 tst R2
0008 D9F7 brne L2
000A 3320 tst R3
000C C9F7 brne L2
000E X0:
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbsym r MD 16 i
0010 .dbend
0010 .dbfunc e Send_Start _Send_Start fc
.even
0010 _Send_Start::
0010 .dbline -1
0010 .dbline 23
0010 ; }
0010 ; //==========================================================
0010 ; //函 数: void Send_Start(void)
0010 ; //功 能: 发送起始位
0010 ; //入口参数: 无
0010 ; //出口参数: 1错误,0正确
0010 ; //日 期: 2005-07-20 覃道堂
0010 ; //==========================================================
0010 ; unsigned char Send_Start(void)
0010 ; {
0010 .dbline 24
0010 ; RTCSDA_INPUT;
0010 81B3 in R24,0x11
0012 8D7F andi R24,253
0014 81BB out 0x11,R24
0016 .dbline 25
0016 ; RTC_Delay(1);
0016 01E0 ldi R16,1
0018 10E0 ldi R17,0
001A F2DF xcall _RTC_Delay
001C .dbline 26
001C ; if((PIND & 0x02) == 0)
001C 8199 sbic 0x10,1
001E 02C0 rjmp L6
0020 .dbline 27
0020 ; return 1;
0020 01E0 ldi R16,1
0022 1CC0 xjmp L5
0024 L6:
0024 .dbline 28
0024 ; RTCSDA_H;
0024 919A sbi 0x12,1
0026 .dbline 29
0026 ; RTC_Delay(1);
0026 01E0 ldi R16,1
0028 10E0 ldi R17,0
002A EADF xcall _RTC_Delay
002C .dbline 30
002C ; RTCSDA_OUTPUT;
002C 899A sbi 0x11,1
002E .dbline 31
002E ; RTCSCL_L;
002E 82B3 in R24,0x12
0030 8E7F andi R24,254
0032 82BB out 0x12,R24
0034 .dbline 32
0034 ; RTC_Delay(1);
0034 01E0 ldi R16,1
0036 10E0 ldi R17,0
0038 E3DF xcall _RTC_Delay
003A .dbline 33
003A ; RTCSCL_H;
003A 909A sbi 0x12,0
003C .dbline 34
003C ; RTC_Delay(1);
003C 01E0 ldi R16,1
003E 10E0 ldi R17,0
0040 DFDF xcall _RTC_Delay
0042 .dbline 35
0042 ; RTCSDA_L;
0042 82B3 in R24,0x12
0044 8D7F andi R24,253
0046 82BB out 0x12,R24
0048 .dbline 36
0048 ; RTC_Delay(1);
0048 01E0 ldi R16,1
004A 10E0 ldi R17,0
004C D9DF xcall _RTC_Delay
004E .dbline 37
004E ; RTCSCL_L;
004E 82B3 in R24,0x12
0050 8E7F andi R24,254
0052 82BB out 0x12,R24
0054 .dbline 38
0054 ; RTC_Delay(1);
0054 01E0 ldi R16,1
0056 10E0 ldi R17,0
0058 D3DF xcall _RTC_Delay
005A .dbline 39
005A ; return 0;
005A 0027 clr R16
005C .dbline -2
005C L5:
005C .dbline 0 ; func end
005C 0895 ret
005E .dbend
005E .dbfunc e Send_Stop _Send_Stop fc
.even
005E _Send_Stop::
005E .dbline -1
005E .dbline 49
005E ; }
005E ; //==========================================================
005E ; //函 数: void Send_Stop(void)
005E ; //功 能: 发送停止位
005E ; //入口参数: 无
005E ; //出口参数: 1错误,0正确
005E ; //日 期: 2005-07-20 覃道堂
005E ; //==========================================================
005E ; unsigned char Send_Stop(void)
005E ; {
005E .dbline 50
005E ; RTCSDA_INPUT;
005E 81B3 in R24,0x11
0060 8D7F andi R24,253
0062 81BB out 0x11,R24
0064 .dbline 51
0064 ; RTC_Delay(20);
0064 04E1 ldi R16,20
0066 10E0 ldi R17,0
0068 CBDF xcall _RTC_Delay
006A .dbline 52
006A ; if((PIND & 0x02) == 0)
006A 8199 sbic 0x10,1
006C 02C0 rjmp L9
006E .dbline 53
006E ; return 1;
006E 01E0 ldi R16,1
0070 19C0 xjmp L8
0072 L9:
0072 .dbline 54
0072 ; RTCSDA_L;
0072 82B3 in R24,0x12
0074 8D7F andi R24,253
0076 82BB out 0x12,R24
0078 .dbline 55
0078 ; RTCSDA_OUTPUT;
0078 899A sbi 0x11,1
007A .dbline 56
007A ; RTCSCL_L;
007A 82B3 in R24,0x12
007C 8E7F andi R24,254
007E 82BB out 0x12,R24
0080 .dbline 57
0080 ; RTC_Delay(1);
0080 01E0 ldi R16,1
0082 10E0 ldi R17,0
0084 BDDF xcall _RTC_Delay
0086 .dbline 58
0086 ; RTCSCL_H;
0086 909A sbi 0x12,0
0088 .dbline 59
0088 ; RTC_Delay(1);
0088 01E0 ldi R16,1
008A 10E0 ldi R17,0
008C B9DF xcall _RTC_Delay
008E .dbline 60
008E ; RTCSDA_H;
008E 919A sbi 0x12,1
0090 .dbline 61
0090 ; RTC_Delay(1);
0090 01E0 ldi R16,1
0092 10E0 ldi R17,0
0094 B5DF xcall _RTC_Delay
0096 .dbline 62
0096 ; RTCSCL_L;
0096 82B3 in R24,0x12
0098 8E7F andi R24,254
009A 82BB out 0x12,R24
009C .dbline 63
009C ; RTC_Delay(1);
009C 01E0 ldi R16,1
009E 10E0 ldi R17,0
00A0 AFDF xcall _RTC_Delay
00A2 .dbline 64
00A2 ; return 0;
00A2 0027 clr R16
00A4 .dbline -2
00A4 L8:
00A4 .dbline 0 ; func end
00A4 0895 ret
00A6 .dbend
00A6 .dbfunc e Receive_ACK _Receive_ACK fc
.even
00A6 _Receive_ACK::
00A6 .dbline -1
00A6 .dbline 74
00A6 ; }
00A6 ; //==========================================================
00A6 ; //函 数: unsigned char Receive_ACK()
00A6 ; //功 能: 接收应答
00A6 ; //入口参数: 无
00A6 ; //出口参数: 1错误,0正确
00A6 ; //日 期: 2005-07-20 覃道堂
00A6 ; //==========================================================
00A6 ; unsigned char Receive_ACK(void)
00A6 ; {
00A6 .dbline 75
00A6 ; RTCSDA_INPUT;
00A6 81B3 in R24,0x11
00A8 8D7F andi R24,253
00AA 81BB out 0x11,R24
00AC .dbline 76
00AC ; RTC_Delay(1);
00AC 01E0 ldi R16,1
00AE 10E0 ldi R17,0
00B0 A7DF xcall _RTC_Delay
00B2 .dbline 77
00B2 ; RTCSCL_H;
00B2 909A sbi 0x12,0
00B4 .dbline 78
00B4 ; RTC_Delay(1);
00B4 01E0 ldi R16,1
00B6 10E0 ldi R17,0
00B8 A3DF xcall _RTC_Delay
00BA .dbline 79
00BA ; if((PIND & 0x02) == 2)
00BA 80B3 in R24,0x10
00BC 8270 andi R24,2
00BE 8230 cpi R24,2
00C0 11F4 brne L12
00C2 .dbline 80
00C2 ; return 1;
00C2 01E0 ldi R16,1
00C4 07C0 xjmp L11
00C6 L12:
00C6 .dbline 81
00C6 ; RTCSCL_L;
00C6 82B3 in R24,0x12
00C8 8E7F andi R24,254
00CA 82BB out 0x12,R24
00CC .dbline 82
00CC ; RTC_Delay(1);
00CC 01E0 ldi R16,1
00CE 10E0 ldi R17,0
00D0 97DF xcall _RTC_Delay
00D2 .dbline 83
00D2 ; return 0;
00D2 0027 clr R16
00D4 .dbline -2
00D4 L11:
00D4 .dbline 0 ; func end
00D4 0895 ret
00D6 .dbend
00D6 .dbfunc e Send_ACK _Send_ACK fc
.even
00D6 _Send_ACK::
00D6 .dbline -1
00D6 .dbline 93
00D6 ; }
00D6 ; //==========================================================
00D6 ; //函 数: unsigned char Send_ACK(void)
00D6 ; //功 能: 发送应答
00D6 ; //入口参数: 无
00D6 ; //出口参数: 无
00D6 ; //日 期: 2005-07-20 覃道堂
00D6 ; //==========================================================
00D6 ; unsigned char Send_ACK(void)
00D6 ; {
00D6 .dbline 94
00D6 ; RTCSCL_L;
00D6 82B3 in R24,0x12
00D8 8E7F andi R24,254
00DA 82BB out 0x12,R24
00DC .dbline 95
00DC ; if(!(PIND & 0x02))
00DC 8199 sbic 0x10,1
00DE 02C0 rjmp L15
00E0 .dbline 96
00E0 ; return 1;
00E0 01E0 ldi R16,1
00E2 12C0 xjmp L14
00E4 L15:
00E4 .dbline 97
00E4 ; RTCSDA_L;
00E4 82B3 in R24,0x12
00E6 8D7F andi R24,253
00E8 82BB out 0x12,R24
00EA .dbline 98
00EA ; RTCSDA_OUTPUT;
00EA 899A sbi 0x11,1
00EC .dbline 99
00EC ; RTC_Delay(1);
00EC 01E0 ldi R16,1
00EE 10E0 ldi R17,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -