📄 1302.lis
字号:
.module _1302.c
.area text(rom, con, rel)
0000 .dbfile D:\zhangyu\H2test\program\1302.c
0000 .dbfunc e pDS1302_Write _pDS1302_Write fV
0000 ; i -> R20
0000 ; data -> R22
0000 ; reg -> R10
.even
0000 _pDS1302_Write::
0000 0E940000 xcall push_gset3
0004 622F mov R22,R18
0006 A02E mov R10,R16
0008 .dbline -1
0008 .dbline 18
0008 ; /*-------------------------------------------------------------*-
0008 ; File name: 1302.c
0008 ; Description:本模块为实时时钟模块。
0008 ; Function List:
0008 ; 1.void pDS1302_Write(uchar reg,uchar data) 写实时时钟函数
0008 ; 2.uchar pDS1302_Read(uchar reg) 读实时时钟函数
0008 ; 3.void pDS1302_Init(void) 1302初始化函数
0008 ;
0008 ; -----------------------------------------------------------------
0008 ; 实时时钟模块
0008 ; -*--------------------------------------------------------------*/
0008 ; #include <iom16v.h>
0008 ; #include <macros.h>
0008 ; #include "1302.h"
0008 ; #include "main.h"
0008 ;
0008 ; void pDS1302_Write(unsigned char reg,unsigned char data)
0008 ; {
0008 .dbline 21
0008 ; unsigned char i;
0008 ;
0008 ; mDS1302IO_Out;
0008 8C9A sbi 0x11,4
000A .dbline 22
000A ; mSetDS1302IO;
000A 949A sbi 0x12,4
000C .dbline 23
000C ; mClrDS1302RST;
000C 9398 cbi 0x12,3
000E .dbline 24
000E ; wait;
000E 0000 nop
0010 0000 nop
0012 .dbline 25
0012 ; mClrDS1302SCK;
0012 9298 cbi 0x12,2
0014 .dbline 26
0014 ; wait;
0014 0000 nop
0016 0000 nop
0018 .dbline 27
0018 ; mSetDS1302RST;
0018 939A sbi 0x12,3
001A .dbline 28
001A ; wait;
001A 0000 nop
001C 0000 nop
001E .dbline 29
001E ; for(i=0;i<8;i++)
001E 4427 clr R20
0020 13C0 xjmp L5
0022 L2:
0022 .dbline 30
0022 ; {
0022 .dbline 31
0022 ; if(reg&BIT(i))
0022 01E0 ldi R16,1
0024 142F mov R17,R20
0026 0E940000 xcall lsl8
002A 2A2C mov R2,R10
002C 2022 and R2,R16
002E 11F0 breq L6
0030 .dbline 32
0030 ; mSetDS1302IO;
0030 949A sbi 0x12,4
0032 01C0 xjmp L7
0034 L6:
0034 .dbline 34
0034 ; else
0034 ; mClrDS1302IO;
0034 9498 cbi 0x12,4
0036 L7:
0036 .dbline 35
0036 0000 nop
0038 0000 nop
003A .dbline 36
003A 929A sbi 0x12,2
003C .dbline 37
003C 0000 nop
003E 0000 nop
0040 .dbline 38
0040 9298 cbi 0x12,2
0042 .dbline 39
0042 0000 nop
0044 0000 nop
0046 .dbline 40
0046 L3:
0046 .dbline 29
0046 4395 inc R20
0048 L5:
0048 .dbline 29
0048 4830 cpi R20,8
004A 58F3 brlo L2
004C .dbline 42
004C ; wait;
004C ; mSetDS1302SCK;
004C ; wait;
004C ; mClrDS1302SCK;
004C ; wait;
004C ; }
004C ;
004C ; for(i=0;i<8;i++)
004C 4427 clr R20
004E 13C0 xjmp L11
0050 L8:
0050 .dbline 43
0050 ; {
0050 .dbline 44
0050 ; if(data&BIT(i))
0050 01E0 ldi R16,1
0052 142F mov R17,R20
0054 0E940000 xcall lsl8
0058 262E mov R2,R22
005A 2022 and R2,R16
005C 11F0 breq L12
005E .dbline 45
005E ; mSetDS1302IO;
005E 949A sbi 0x12,4
0060 01C0 xjmp L13
0062 L12:
0062 .dbline 47
0062 ; else
0062 ; mClrDS1302IO;
0062 9498 cbi 0x12,4
0064 L13:
0064 .dbline 48
0064 0000 nop
0066 0000 nop
0068 .dbline 49
0068 929A sbi 0x12,2
006A .dbline 50
006A 0000 nop
006C 0000 nop
006E .dbline 51
006E 9298 cbi 0x12,2
0070 .dbline 52
0070 0000 nop
0072 0000 nop
0074 .dbline 53
0074 L9:
0074 .dbline 42
0074 4395 inc R20
0076 L11:
0076 .dbline 42
0076 4830 cpi R20,8
0078 58F3 brlo L8
007A .dbline 55
007A ; wait;
007A ; mSetDS1302SCK;
007A ; wait;
007A ; mClrDS1302SCK;
007A ; wait;
007A ; }
007A ;
007A ; wait;
007A 0000 nop
007C 0000 nop
007E .dbline 56
007E ; mClrDS1302RST;
007E 9398 cbi 0x12,3
0080 .dbline 57
0080 ; wait;
0080 0000 nop
0082 0000 nop
0084 .dbline -2
0084 L1:
0084 0E940000 xcall pop_gset3
0088 .dbline 0 ; func end
0088 0895 ret
008A .dbsym r i 20 c
008A .dbsym r data 22 c
008A .dbsym r reg 10 c
008A .dbend
008A .dbfunc e pDS1302_Read _pDS1302_Read fc
008A ; data -> R20
008A ; i -> R22
008A ; reg -> R10
.even
008A _pDS1302_Read::
008A 0E940000 xcall push_gset3
008E A02E mov R10,R16
0090 .dbline -1
0090 .dbline 61
0090 ; }
0090 ;
0090 ; unsigned char pDS1302_Read(unsigned char reg)
0090 ; {
0090 .dbline 62
0090 ; unsigned char data=0,i;
0090 4427 clr R20
0092 .dbline 64
0092 ;
0092 ; mDS1302IO_Out;
0092 8C9A sbi 0x11,4
0094 .dbline 65
0094 ; reg+=1;//读标志
0094 A394 inc R10
0096 .dbline 66
0096 ; mSetDS1302IO;
0096 949A sbi 0x12,4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -