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

📄 12864.s

📁 数显温度万年历
💻 S
📖 第 1 页 / 共 3 页
字号:
; void write_byte(uchar dat);                                            //写一字节数据
; void write_ds1302(uchar addr,uchar data);                              //在指定地址写一字节数据
; void set_ds1302(uchar addr,uchar *p,uchar n);                          //设置初始化
; void init_ds1302(void);                                                //初始化函数
; /***************从DS1302中读一个字节数据********************/
; uchar read_byte(void)
; {
	.dbline 28
;     uchar i,dat=0;
	clr R20
	.dbline 29
; 	IO_IN;
	cbi 0x17,1
	.dbline 30
; 	IO_CLR;
	cbi 0x18,1
	.dbline 31
; 	for(i=0;i<7;i++)
	clr R22
	rjmp L61
L58:
	.dbline 32
; 	{
	.dbline 33
; 	    SCK_SET;
	sbi 0x18,0
	.dbline 34
; 		delay_us(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_us
	.dbline 35
; 		SCK_CLR;
	cbi 0x18,0
	.dbline 36
; 		delay_us(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_us
	.dbline 37
; 		if(IO_R)
	sbis 0x16,1
	rjmp L62
X14:
	.dbline 38
; 		    dat|=0X80;
	ori R20,128
	rjmp L63
L62:
	.dbline 40
; 		else
; 		    dat&=0X7F;
	andi R20,127
L63:
	.dbline 41
; 		SCK_SET;
	sbi 0x18,0
	.dbline 42
; 		dat=dat>>1;	
	lsr R20
	.dbline 43
; 	}
L59:
	.dbline 31
	inc R22
L61:
	.dbline 31
	cpi R22,7
	brlo L58
X15:
	.dbline 44
; 	IO_OUT;
	sbi 0x17,1
	.dbline 45
; 	return dat;
	mov R16,R20
	.dbline -2
L57:
	.dbline 0 ; func end
	ld R22,y+
	ld R20,y+
	ret
	.dbsym r i 22 c
	.dbsym r dat 20 c
	.dbend
	.dbfunc e write_byte _write_byte fV
;              i -> R20
;            dat -> R10
	.even
_write_byte::
	st -y,R10
	st -y,R20
	mov R10,R16
	.dbline -1
	.dbline 49
; }
; /***************从DS1302中写一个字节数据********************/
; void write_byte(uchar dat)
; {
	.dbline 51
;     uchar i;
; 	for(i=0;i<8;i++)
	clr R20
	rjmp L68
L65:
	.dbline 52
; 	{
	.dbline 53
; 	    SCK_CLR;
	cbi 0x18,0
	.dbline 54
; 		if(dat&0X01)
	sbrs R10,0
	rjmp L69
X16:
	.dbline 55
; 		    IO_SET;
	sbi 0x18,1
	rjmp L70
L69:
	.dbline 57
; 		else 
; 		    IO_CLR;
	cbi 0x18,1
L70:
	.dbline 58
; 		delay_us(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_us
	.dbline 59
; 		SCK_SET;
	sbi 0x18,0
	.dbline 60
; 		dat>>=1;			
	lsr R10
	.dbline 61
; 	}
L66:
	.dbline 51
	inc R20
L68:
	.dbline 51
	cpi R20,8
	brlo L65
X17:
	.dbline -2
L64:
	.dbline 0 ; func end
	ld R20,y+
	ld R10,y+
	ret
	.dbsym r i 20 c
	.dbsym r dat 10 c
	.dbend
	.dbfunc e read_ds1302 _read_ds1302 fc
;           data -> R10
;           addr -> R10
	.even
_read_ds1302::
	st -y,R10
	mov R10,R16
	.dbline -1
	.dbline 65
; }
; /*********************在指定的地址读一字节数据************************/
; uchar read_ds1302(uchar addr)
; {
	.dbline 67
;     char data;
;     RST_CLR;
	cbi 0x18,2
	.dbline 68
; 	SCK_CLR;
	cbi 0x18,0
	.dbline 69
; 	delay_us(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_us
	.dbline 70
; 	RST_SET;
	sbi 0x18,2
	.dbline 71
; 	delay_us(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_us
	.dbline 72
; 	write_byte(addr);
	mov R16,R10
	rcall _write_byte
	.dbline 73
; 	delay_us(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_us
	.dbline 74
; 	data=read_byte();
	rcall _read_byte
	mov R10,R16
	.dbline 75
; 	delay_us(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_us
	.dbline 76
; 	SCK_CLR;
	cbi 0x18,0
	.dbline 77
; 	RST_CLR;
	cbi 0x18,2
	.dbline 81
; 	//DDRD|=(1<<PD3);
; 	//delay_us(100);
; 	//DDRD&=~(1<<PD3);
; 	return data;
	mov R16,R10
	.dbline -2
L71:
	.dbline 0 ; func end
	ld R10,y+
	ret
	.dbsym r data 10 c
	.dbsym r addr 10 c
	.dbend
	.dbfunc e write_ds1302 _write_ds1302 fV
;           data -> R10
;           addr -> R12
	.even
_write_ds1302::
	st -y,R10
	st -y,R12
	mov R10,R18
	mov R12,R16
	.dbline -1
	.dbline 84
; }
; void write_ds1302(uchar addr,uchar data)
; {
	.dbline 85
;     RST_CLR;
	cbi 0x18,2
	.dbline 86
; 	SCK_CLR;
	cbi 0x18,0
	.dbline 87
; 	delay_us(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_us
	.dbline 88
; 	RST_SET;
	sbi 0x18,2
	.dbline 89
; 	delay_us(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_us
	.dbline 90
; 	write_byte(addr);
	mov R16,R12
	rcall _write_byte
	.dbline 91
; 	delay_us(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_us
	.dbline 92
; 	SCK_CLR;
	cbi 0x18,0
	.dbline 93
; 	delay_us(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_us
	.dbline 94
; 	write_byte(data);
	mov R16,R10
	rcall _write_byte
	.dbline 95
; 	SCK_CLR;
	cbi 0x18,0
	.dbline 96
; 	delay_us(10);
	ldi R16,10
	ldi R17,0
	rcall _delay_us
	.dbline 97
; 	RST_CLR;
	cbi 0x18,2
	.dbline -2
L72:
	.dbline 0 ; func end
	ld R12,y+
	ld R10,y+
	ret
	.dbsym r data 10 c
	.dbsym r addr 12 c
	.dbend
	.dbfunc e set_ds1302 _set_ds1302 fV
;              n -> R10
;              p -> R20,R21
;           addr -> R22
	.even
_set_ds1302::
	rcall push_xgsetF00C
	movw R20,R18
	mov R22,R16
	ldd R10,y+6
	.dbline -1
	.dbline 101
; }
; /************************设置初始化函数*******************************/
; void set_ds1302(uchar addr,uchar *p,uchar n)
; {
	.dbline 102
;     write_ds1302(0X8E,0X00);
	clr R18
	ldi R16,142
	rcall _write_ds1302
	.dbline 103
; 	for(;n>0;n--)
	rjmp L77
L74:
	.dbline 104
; 	{
	.dbline 105
; 	    write_ds1302(addr,*p);
	movw R30,R20
	ldd R18,z+0
	mov R16,R22
	rcall _write_ds1302
	.dbline 106
; 		p++;
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 107
; 		addr=addr+2;
	subi R22,254    ; addi 2
	.dbline 108
; 	}
L75:
	.dbline 103
	dec R10
L77:
	.dbline 103
	ldi R24,0
	cp R24,R10
	brlo L74
X18:
	.dbline 109
; 	write_ds1302(0X8E,0X80);
	ldi R18,128
	ldi R16,142
	rcall _write_ds1302
	.dbline -2
L73:
	.dbline 0 ; func end
	rjmp pop_xgsetF00C
	.dbsym r n 10 c
	.dbsym r p 20 pc
	.dbsym r addr 22 c
	.dbend
	.dbfunc e init_ds1302 _init_ds1302 fV
	.even
_init_ds1302::
	.dbline -1
	.dbline 113
; }
; /**********************初始化DS1302函数*******************************/
; void init_ds1302(void)
; {
	.dbline 114
;     RST_CLR;
	cbi 0x18,2
	.dbline 115
; 	SCK_CLR;
	cbi 0x18,0
	.dbline 116
; 	RST_OUT;
	sbi 0x17,2
	.dbline 117
; 	SCK_OUT;
	sbi 0x17,0
	.dbline 118
; 	write_ds1302(0X80,0X00);
	clr R18
	ldi R16,128
	rcall _write_ds1302
	.dbline 119
; 	write_ds1302(0X90,0XAB);
	ldi R18,171
	ldi R16,144
	rcall _write_ds1302
	.dbline 120
; 	write_ds1302(0X8E,0X80);
	ldi R18,128
	ldi R16,142
	rcall _write_ds1302
	.dbline -2
L78:
	.dbline 0 ; func end
	ret
	.dbend
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\DS1302_drive.h
_line1_data::
	.blkb 17
	.area idata
	.byte 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\DS1302_drive.h
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.dbsym e line1_data _line1_data A[17:17]c
_line2_data::
	.blkb 17
	.area idata
	.byte 181,231,215,211,200,213,192,250,207,212,202,190,206,194,182,200
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.dbsym e line2_data _line2_data A[17:17]c
_line3_data::
	.blkb 17
	.area idata
	.byte 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.dbsym e line3_data _line3_data A[17:17]c
_line4_data::
	.blkb 17
	.area idata
	.byte 42,42,176,180,189,248,200,235,188,252,189,248,200,235,42,42
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.dbsym e line4_data _line4_data A[17:17]c
_switch_menu::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.dbsym e switch_menu _switch_menu c
_K1_FLAG::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.dbsym e K1_FLAG _K1_FLAG i
_time_buf::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.blkb 6
	.area idata
	.byte 0,0,0,0,0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.dbsym e time_buf _time_buf A[7:7]c
_time_dis_buf::
	.blkb 2
	.area idata
	.byte 0,6
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.blkb 2
	.area idata
	.byte 1,2
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.blkb 2
	.area idata
	.byte 0,7
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.blkb 2
	.area idata
	.byte 2,3
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.blkb 2
	.area idata
	.byte 1,7
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.blkb 2
	.area idata
	.byte 0,4
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.blkb 2
	.area idata
	.byte 3,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.dbsym e time_dis_buf _time_dis_buf A[14:14]c
	.area text(rom, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
	.dbfunc e port_init _port_init fV
	.even
_port_init::
	.dbline -1
	.dbline 21
; /**********************************************************************
; 创建人:李小磊(QQ:1397301068)

⌨️ 快捷键说明

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