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

📄 ds1302_mega16.s

📁 这是一个用温度计和时钟程序,芯片是ATmega16,电路稳定,绝对好用而且易懂
💻 S
📖 第 1 页 / 共 4 页
字号:
	.dbline -1
	.dbline 156
; }
; /******************************************/
; void Write(uint8_t RAM_CLOCK, uint8_t Address, uint8_t Dat)
; {
	.dbline 157
;  	uint8_t i,j,temp=0x80;
	ldi R20,128
	.dbline 158
; 	temp &=~ 0x01;
	andi R20,254
	.dbline 159
; 	if(RAM_CLOCK == 1)
	cpi R16,1
	brne L118
X23:
	.dbline 160
; 	{
	.dbline 161
; 	 	temp |= (1<<6);
	ori R20,64
	.dbline 162
; 	}
	xjmp L119
L118:
	.dbline 164
; 	else
; 	{
	.dbline 165
; 	 	temp &=~(1<<6);
	andi R20,191
	.dbline 166
; 	}
L119:
	.dbline 167
; 	Address <<= 1;
	lsl R18
	.dbline 168
; 	temp |= Address;
	or R20,R18
	.dbline 169
; 	SET_RST();
	.dbline 169
	sbi 0x12,5
	.dbline 169
	.dbline 169
	.dbline 170
; 	NOP();
	nop
	.dbline 171
; 	for(j=0; j<2; j++)
	clr R22
	xjmp L123
L120:
	.dbline 172
; 	{
	.dbline 173
; 	 	for(i=0; i<8; i++)
	clr R10
	xjmp L127
L124:
	.dbline 174
; 		{
	.dbline 175
; 	 	 	if((temp & 0x01) == 0)
	sbrc R20,0
	rjmp L128
X24:
	.dbline 176
; 			{
	.dbline 177
; 		 	 	CLR_IO();
	.dbline 177
	cbi 0x12,4
	.dbline 177
	.dbline 177
	.dbline 178
; 			}
	xjmp L129
L128:
	.dbline 180
; 			else
; 			{
	.dbline 181
; 		 	 	SET_IO();
	.dbline 181
	sbi 0x12,4
	.dbline 181
	.dbline 181
	.dbline 182
; 			}
L129:
	.dbline 183
; 			NOP();
	nop
	.dbline 184
; 			SET_SCLK();
	.dbline 184
	sbi 0x12,3
	.dbline 184
	.dbline 184
	.dbline 185
; 			NOP();
	nop
	.dbline 186
; 			NOP();
	nop
	.dbline 187
; 			CLR_SCLK();
	.dbline 187
	cbi 0x12,3
	.dbline 187
	.dbline 187
	.dbline 188
; 			NOP();
	nop
	.dbline 189
; 			CLR_IO();
	.dbline 189
	cbi 0x12,4
	.dbline 189
	.dbline 189
	.dbline 190
; 			temp >>= 1;
	lsr R20
	.dbline 191
; 		}
L125:
	.dbline 173
	inc R10
L127:
	.dbline 173
	mov R24,R10
	cpi R24,8
	brlo L124
X25:
	.dbline 192
; 		temp = Dat;
	ldd R20,y+6
	.dbline 193
; 	}
L121:
	.dbline 171
	inc R22
L123:
	.dbline 171
	cpi R22,2
	brlo L120
X26:
	.dbline 194
; 	CLR_IO();
	.dbline 194
	cbi 0x12,4
	.dbline 194
	.dbline 194
	.dbline 195
; 	NOP();
	nop
	.dbline 196
; 	CLR_RST();
	.dbline 196
	cbi 0x12,5
	.dbline 196
	.dbline 196
	.dbline -2
L117:
	.dbline 0 ; func end
	xjmp pop_xgsetF00C
	.dbsym r j 22 c
	.dbsym r i 10 c
	.dbsym r temp 20 c
	.dbsym l Dat 6 c
	.dbsym r Address 18 c
	.dbsym r RAM_CLOCK 16 c
	.dbend
	.dbfunc e Read_DS1302 _Read_DS1302 fc
;           temp -> R20
;              i -> R22
;        Address -> R18
;      RAM_CLOCK -> R16
	.even
_Read_DS1302::
	st -y,R20
	st -y,R22
	.dbline -1
	.dbline 200
; }
; /******************************************/
; unsigned char Read_DS1302(uint8_t RAM_CLOCK, uint8_t Address)
; {
	.dbline 201
; 	uint8_t i,temp=0x80;
	ldi R20,128
	.dbline 202
; 	temp |= 0x01;
	ori R20,1
	.dbline 203
; 	if(RAM_CLOCK == 1)
	cpi R16,1
	brne L131
X27:
	.dbline 204
; 	{
	.dbline 205
; 	 	temp |= (1<<6);
	ori R20,64
	.dbline 206
; 	}
	xjmp L132
L131:
	.dbline 208
; 	else
; 	{
	.dbline 209
; 	 	temp &=~(1<<6);
	andi R20,191
	.dbline 210
; 	}
L132:
	.dbline 211
; 	Address <<= 1;
	lsl R18
	.dbline 212
; 	temp |= Address;
	or R20,R18
	.dbline 213
; 	SET_RST();
	.dbline 213
	sbi 0x12,5
	.dbline 213
	.dbline 213
	.dbline 214
; 	NOP();
	nop
	.dbline 215
; 	 for(i=0; i<7; i++)
	clr R22
	xjmp L136
L133:
	.dbline 216
; 	{
	.dbline 217
; 	 	 if((temp & 0x01) == 0)
	sbrc R20,0
	rjmp L137
X28:
	.dbline 218
; 		{
	.dbline 219
; 		 	CLR_IO();
	.dbline 219
	cbi 0x12,4
	.dbline 219
	.dbline 219
	.dbline 220
; 		}
	xjmp L138
L137:
	.dbline 222
; 		else
; 		{
	.dbline 223
; 	 	 	SET_IO();
	.dbline 223
	sbi 0x12,4
	.dbline 223
	.dbline 223
	.dbline 224
; 		}
L138:
	.dbline 225
; 		NOP();
	nop
	.dbline 226
; 		SET_SCLK();
	.dbline 226
	sbi 0x12,3
	.dbline 226
	.dbline 226
	.dbline 227
; 		NOP();
	nop
	.dbline 228
; 		NOP();
	nop
	.dbline 229
; 		CLR_SCLK();
	.dbline 229
	cbi 0x12,3
	.dbline 229
	.dbline 229
	.dbline 230
; 		NOP();
	nop
	.dbline 231
; 		CLR_IO();
	.dbline 231
	cbi 0x12,4
	.dbline 231
	.dbline 231
	.dbline 232
; 		temp >>= 1;
	lsr R20
	.dbline 233
; 	}
L134:
	.dbline 215
	inc R22
L136:
	.dbline 215
	cpi R22,7
	brlo L133
X29:
	.dbline 234
; 	SET_IO();
	.dbline 234
	sbi 0x12,4
	.dbline 234
	.dbline 234
	.dbline 235
; 	NOP();
	nop
	.dbline 236
; 	SET_SCLK();
	.dbline 236
	sbi 0x12,3
	.dbline 236
	.dbline 236
	.dbline 237
; 	SET_IO_INPUT();
	.dbline 237
	cbi 0x11,4
	.dbline 237
	.dbline 237
	.dbline 238
; 	NOP();
	nop
	.dbline 239
; 	for(i=0; i<8; i++)
	clr R22
	xjmp L142
L139:
	.dbline 240
; 	{
	.dbline 241
; 	 	CLR_SCLK();
	.dbline 241
	cbi 0x12,3
	.dbline 241
	.dbline 241
	.dbline 242
; 		NOP();
	nop
	.dbline 243
; 		if((IO_PIN & IO) == 0)
	sbic 0x10,4
	rjmp L143
X30:
	.dbline 244
; 		{
	.dbline 245
; 		 	temp &= ~0x80;
	andi R20,127
	.dbline 246
; 		}
	xjmp L144
L143:
	.dbline 248
; 		else
; 		{
	.dbline 249
; 		 	temp |= 0x80;
	ori R20,128
	.dbline 250
; 		}
L144:
	.dbline 252
; 		//temp >>=1;
; 		if(i<7)
	cpi R22,7
	brsh L145
X31:
	.dbline 253
; 		{
	.dbline 254
; 		 	SET_SCLK();
	.dbline 254
	sbi 0x12,3
	.dbline 254
	.dbline 254
	.dbline 255
; 			temp >>=1;
	lsr R20
	.dbline 256
; 		}
	xjmp L146
L145:
	.dbline 258
; 		else
; 		{
	.dbline 259
; 		 	CLR_SCLK();
	.dbline 259
	cbi 0x12,3
	.dbline 259
	.dbline 259
	.dbline 260
; 		}
L146:
	.dbline 261
; 		NOP();
	nop
	.dbline 262
; 		NOP();
	nop
	.dbline 263
; 	}	
L140:
	.dbline 239
	inc R22
L142:
	.dbline 239
	cpi R22,8
	brlo L139
X32:
	.dbline 264
; 	CLR_IO();
	.dbline 264
	cbi 0x12,4
	.dbline 264
	.dbline 264
	.dbline 265
; 	NOP();
	nop
	.dbline 266
; 	CLR_RST();
	.dbline 266
	cbi 0x12,5
	.dbline 266
	.dbline 266
	.dbline 267
; 	return (temp);
	mov R16,R20
	.dbline -2
L130:
	.dbline 0 ; func end
	ld R22,y+
	ld R20,y+
	ret
	.dbsym r temp 20 c
	.dbsym r i 22 c
	.dbsym r Address 18 c
	.dbsym r RAM_CLOCK 16 c
	.dbend
	.dbfunc e DS18B20 _DS18B20 fV
;              i -> R10
;             Tl -> R12
;             Th -> R10
	.even
_DS18B20::
	st -y,R10
	st -y,R12
	.dbline -1
	.dbline 271
; }
; /******************************************/
; void DS18B20(void)
; {
	.dbline 273
;  	uint8_t Th, Tl, i;
; 	i=Init_18b20();
	xcall _Init_18b20
	.dbline 274
; 	Write_1_byte(0xcc);
	ldi R16,204
	xcall _Write_1_byte
	.dbline 275
; 	Write_1_byte(0x44);
	ldi R16,68
	xcall _Write_1_byte
	.dbline 276
; 	Delay_nms(100);
	ldi R16,100
	ldi R17,0
	xcall _Delay_nms
	.dbline 277
; 	i=Init_18b20();
	xcall _Init_18b20
	.dbline 278
; 	Write_1_byte(0xcc);
	ldi R16,204
	xcall _Write_1_byte
	.dbline 279
; 	Write_1_byte(0xbe);
	ldi R16,190
	xcall _Write_1_byte
	.dbline 280
; 	Tl=Read_1_byte();
	xcall _Read_1_byte
	mov R10,R16
	mov R12,R10
	.dbline 281
; 	Th=Read_1_byte();
	xcall _Read_1_byte
	mov R10,R16
	.dbline 282
; 	Temperature(Th,Tl);
	mov R18,R12
	xcall _Temperature
	.dbline 284
; 	//Temperature(12,45);
; 	Delay_nms(100);
	ldi R16,100
	ldi R17,0
	xcall _Delay_nms
	.dbline -2
L147:
	.dbline 0 ; func end
	ld R12,y+
	ld R10,y+
	ret
	.dbsym r i 10 c
	.dbsym r Tl 12 c
	.dbsym r Th 10 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\DS1302_Mega16.c
_g_second::
	.blkb 1
	.dbsym e g_second _g_second c
_g_mintue::
	.blkb 1
	.dbsym e g_mintue _g_mintue c
_g_hour::
	.blkb 1
	.dbsym e g_hour _g_hour c
_g_day::
	.blkb 1
	.dbsym e g_day _g_day c
_g_date::
	.blkb 1
	.dbsym e g_date _g_date c
_g_month::
	.blkb 1
	.dbsym e g_month _g_month c
_g_year::
	.blkb 1
	.dbsym e g_year _g_year c
_data_temp::
	.blkb 1
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
	.dbsym e data_temp _data_temp c
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L113:
	.blkb 5
	.area idata
	.byte 58,32,32,58,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L112:
	.blkb 9
	.area idata
	.byte 50,48,32,32,46,32,32,46,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L68:
	.blkb 4
	.area idata
	.byte 46,57,51,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L66:
	.blkb 4
	.area idata
	.byte 46,56,55,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L64:
	.blkb 4
	.area idata
	.byte 46,56,49,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L62:
	.blkb 4
	.area idata
	.byte 46,55,53,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L60:
	.blkb 4
	.area idata
	.byte 46,54,56,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L58:
	.blkb 4
	.area idata
	.byte 46,54,49,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L56:
	.blkb 4
	.area idata
	.byte 46,53,54,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L54:
	.blkb 4
	.area idata
	.byte 46,53,48,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L52:
	.blkb 4
	.area idata
	.byte 46,52,51,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L50:
	.blkb 4
	.area idata
	.byte 46,51,55,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L48:
	.blkb 4
	.area idata
	.byte 46,51,49,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L46:
	.blkb 4
	.area idata
	.byte 46,50,53,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L44:
	.blkb 4
	.area idata
	.byte 46,49,56,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L42:
	.blkb 4
	.area idata
	.byte 46,49,50,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L40:
	.blkb 4
	.area idata
	.byte 46,48,54,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L38:
	.blkb 4
	.area idata
	.byte 46,48,48,0
	.area data(ram, con, rel)
	.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
; }
; /*****************************************/

⌨️ 快捷键说明

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