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

📄 rtc8025.s

📁 AVR16源代码 ICC编译器
💻 S
📖 第 1 页 / 共 2 页
字号:
	.module Rtc8025.c
	.area text(rom, con, rel)
	.dbfile E:\程序\AVR程序\BOOTLoadICC\Rtc8025.c
	.dbfunc e RTC_Delay _RTC_Delay fV
;             MD -> R16,R17
	.even
_RTC_Delay::
	.dbline -1
	.dbline 12
; #include	<iom128v.h>
; #include	"Rtc8025.h"
; 
; //==========================================================
; //函	数:void RTC_Delay(unsigned int MD)
; //功	能:延时
; //入口参数:延时的参数
; //出口参数:无
; //日	期:2005-07-21	覃道堂	
; //==========================================================
; void RTC_Delay(unsigned int MD)
; {
L2:
	.dbline 13
L3:
	.dbline 13
; 	while(MD --);
	movw R2,R16
	subi R16,1
	sbci R17,0
	tst R2
	brne L2
	tst R3
	brne L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r MD 16 i
	.dbend
	.dbfunc e Send_Start _Send_Start fc
	.even
_Send_Start::
	.dbline -1
	.dbline 23
; }
; //==========================================================
; //函	数:	void Send_Start(void)
; //功	能:	发送起始位
; //入口参数:	无
; //出口参数:	1错误,0正确
; //日	期:	2005-07-20	覃道堂
; //==========================================================
; unsigned char Send_Start(void)
; {
	.dbline 24
; 	RTCSDA_INPUT;
	in R24,0x11
	andi R24,253
	out 0x11,R24
	.dbline 25
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 26
; 	if((PIND & 0x02) == 0)
	sbic 0x10,1
	rjmp L6
	.dbline 27
; 		return 1;
	ldi R16,1
	xjmp L5
L6:
	.dbline 28
; 	RTCSDA_H;
	sbi 0x12,1
	.dbline 29
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 30
; 	RTCSDA_OUTPUT;
	sbi 0x11,1
	.dbline 31
; 	RTCSCL_L;
	in R24,0x12
	andi R24,254
	out 0x12,R24
	.dbline 32
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 33
; 	RTCSCL_H;
	sbi 0x12,0
	.dbline 34
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 35
; 	RTCSDA_L;
	in R24,0x12
	andi R24,253
	out 0x12,R24
	.dbline 36
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 37
; 	RTCSCL_L;
	in R24,0x12
	andi R24,254
	out 0x12,R24
	.dbline 38
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 39
; 	return 0;
	clr R16
	.dbline -2
L5:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Send_Stop _Send_Stop fc
	.even
_Send_Stop::
	.dbline -1
	.dbline 49
; }
; //==========================================================
; //函	数:	void Send_Stop(void)
; //功	能:	发送停止位
; //入口参数:	无
; //出口参数:	1错误,0正确
; //日	期:	2005-07-20	覃道堂
; //==========================================================
; unsigned char Send_Stop(void)
; {
	.dbline 50
; 	RTCSDA_INPUT;
	in R24,0x11
	andi R24,253
	out 0x11,R24
	.dbline 51
; 	RTC_Delay(20);
	ldi R16,20
	ldi R17,0
	xcall _RTC_Delay
	.dbline 52
; 	if((PIND & 0x02) == 0)
	sbic 0x10,1
	rjmp L9
	.dbline 53
; 		return 1;
	ldi R16,1
	xjmp L8
L9:
	.dbline 54
; 	RTCSDA_L;
	in R24,0x12
	andi R24,253
	out 0x12,R24
	.dbline 55
; 	RTCSDA_OUTPUT;
	sbi 0x11,1
	.dbline 56
; 	RTCSCL_L;
	in R24,0x12
	andi R24,254
	out 0x12,R24
	.dbline 57
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 58
; 	RTCSCL_H;
	sbi 0x12,0
	.dbline 59
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 60
; 	RTCSDA_H;
	sbi 0x12,1
	.dbline 61
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 62
; 	RTCSCL_L;
	in R24,0x12
	andi R24,254
	out 0x12,R24
	.dbline 63
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 64
; 	return 0;
	clr R16
	.dbline -2
L8:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Receive_ACK _Receive_ACK fc
	.even
_Receive_ACK::
	.dbline -1
	.dbline 74
; }
; //==========================================================
; //函	数:	unsigned char Receive_ACK()
; //功	能:	接收应答
; //入口参数:	无
; //出口参数:	1错误,0正确
; //日	期:	2005-07-20	覃道堂
; //==========================================================
; unsigned char Receive_ACK(void)
; {
	.dbline 75
; 	RTCSDA_INPUT;
	in R24,0x11
	andi R24,253
	out 0x11,R24
	.dbline 76
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 77
; 	RTCSCL_H;
	sbi 0x12,0
	.dbline 78
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 79
; 	if((PIND & 0x02) == 2)
	in R24,0x10
	andi R24,2
	cpi R24,2
	brne L12
	.dbline 80
; 		return 1;
	ldi R16,1
	xjmp L11
L12:
	.dbline 81
; 	RTCSCL_L;
	in R24,0x12
	andi R24,254
	out 0x12,R24
	.dbline 82
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 83
; 	return 0;
	clr R16
	.dbline -2
L11:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Send_ACK _Send_ACK fc
	.even
_Send_ACK::
	.dbline -1
	.dbline 93
; }
; //==========================================================
; //函	数:	unsigned char Send_ACK(void)
; //功	能:	发送应答
; //入口参数:	无
; //出口参数:	无
; //日	期:	2005-07-20	覃道堂
; //==========================================================
; unsigned char Send_ACK(void)
; {
	.dbline 94
; 	RTCSCL_L;
	in R24,0x12
	andi R24,254
	out 0x12,R24
	.dbline 95
; 	if(!(PIND & 0x02))
	sbic 0x10,1
	rjmp L15
	.dbline 96
; 		return 1;	
	ldi R16,1
	xjmp L14
L15:
	.dbline 97
; 	RTCSDA_L;
	in R24,0x12
	andi R24,253
	out 0x12,R24
	.dbline 98
; 	RTCSDA_OUTPUT;
	sbi 0x11,1
	.dbline 99
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 100
; 	RTCSCL_H;
	sbi 0x12,0
	.dbline 101
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 102
; 	RTCSCL_L;
	in R24,0x12
	andi R24,254
	out 0x12,R24
	.dbline 103
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 104
; 	return 0;
	clr R16
	.dbline -2
L14:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Send_No_ACK _Send_No_ACK fc
	.even
_Send_No_ACK::
	.dbline -1
	.dbline 115
; }
; 
; //==========================================================
; //函	数:	void Send_No_ACK(void)
; //功	能:	发送应答
; //入口参数:	无
; //出口参数:	无
; //日	期:	2005-07-20	覃道堂
; //==========================================================
; unsigned char Send_No_ACK(void)
; {
	.dbline 116
; 	RTCSCL_L;
	in R24,0x12
	andi R24,254
	out 0x12,R24
	.dbline 117
; 	if(!(PIND & 0x02))
	sbic 0x10,1
	rjmp L18
	.dbline 118
; 		return 1;	
	ldi R16,1
	xjmp L17
L18:
	.dbline 119
; 	RTCSDA_OUTPUT;
	sbi 0x11,1
	.dbline 120
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 121
; 	RTCSDA_H;
	sbi 0x12,1
	.dbline 122
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 123
; 	RTCSCL_H;
	sbi 0x12,0
	.dbline 124
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 125
; 	RTCSCL_L;
	in R24,0x12
	andi R24,254
	out 0x12,R24
	.dbline 126
; 	RTC_Delay(1);
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 127
; 	return 0;
	clr R16
	.dbline -2
L17:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Read_Byte _Read_Byte fc
;              i -> R20
;           Byte -> R22
	.even
_Read_Byte::
	xcall push_gset2
	.dbline -1
	.dbline 137
; }
; //==========================================================
; //函	数:	unsigned char Read_Byte(void)
; //功	能:	从R8025里读一个Byte
; //入口参数:	无
; //出口参数:	错误返回1,正确返回读取的值
; //日	期:	2005-07-20	覃道堂
; //==========================================================
; unsigned char Read_Byte(void)
; {
	.dbline 138
; 	unsigned char i = 8;
	ldi R20,8
	.dbline 141
; 	unsigned char Byte;
; 
; 	RTCSCL_L;
	in R24,0x12
	andi R24,254
	out 0x12,R24
	.dbline 142
; 	RTCSDA_INPUT;
	in R24,0x11
	andi R24,253
	out 0x11,R24
	xjmp L22
L21:
	.dbline 144
; 	while(i --)
; 	{
	.dbline 145
; 		Byte = Byte << 1;
	lsl R22
	.dbline 146
; 		RTCSCL_H;
	sbi 0x12,0
	.dbline 147
; 		RTC_Delay(1);		
	ldi R16,1
	ldi R17,0
	xcall _RTC_Delay
	.dbline 148
; 		if((PIND & 0x02))
	sbis 0x10,1
	rjmp L24
	.dbline 149
; 		{
	.dbline 150
; 			Byte = Byte + 1;
	inc R22
	.dbline 151
; 		}
L24:

⌨️ 快捷键说明

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