亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ds1820.s

?? DS18B20的使用情況以及電路接法和原代碼!可以參考做測溫電路
?? S
字號:
	.module DS1820.C
	.area text(rom, con, rel)
	.dbfile D:\+++資料+++\學習\avr\程序\18b20new\DS1820.C
	.dbfunc e delay_10us _delay_10us fV
;              i -> R16
	.even
_delay_10us::
	.dbline -1
	.dbline 39
; /*
; DS18B20操作模塊
; 
; 	1、DS18B20的電源腳接到VCC及GND上面,數據線接到PA7口。
; 	2、晶振頻率為內部1MHz。
; 	3、DS18B20由PA7口實現單總線訪問,實現讀取溫度。
; 	4、函數中有對中斷的保護處理,更具有實用價值。
; 	5、此文件可以直接嵌入到項目中使用。
; 	
; 	AVR  mega16學習板
; 	AVR_AFA
; 	www.iccavr.com
; 	11:48 2007-6-30
; */
; 
; #include <iom16v.h>
; #include <macros.h>
; 
; #define DQ_IN	DDRA &= ~(1 << PA3)		/*設置輸入*/
; #define DQ_OUT	DDRA |= (1 << PA3)		/*設置輸出*/
; #define DQ_CLR	PORTA &= ~(1 << PA3)	/*置低電平*/
; #define DQ_SET	PORTA |= (1 << PA3)		/*置高電平*/
; #define DQ_R	PINA & (1 << PA3)		/*讀了電平*/
; #define delay4us {NOP();NOP();NOP();NOP();}
; #define delay10us {NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();}
; //--------函數聲明----------------------
; void ds1820_start(void);
; unsigned char ds1820_reset(void);
; unsigned int ds1820_read_temp(void);
; //--------------------------------------
; unsigned char flag;						/*中斷標志緩存*/
; 
; /*
; 延時函數
; 
; 延時時間:i X 10 + 16uS。
; CPU頻率為:1MHz。
; */
; void delay_10us(unsigned char i) {
	.dbline 41
; 
; 	if (i == 0) {
	tst R16
	brne L5
	.dbline 41
	.dbline 42
; 		return ;
	xjmp L1
L4:
	.dbline 44
	.dbline 45
	.dbline 45
	nop
	.dbline 45
	nop
	.dbline 45
	nop
	.dbline 45
	nop
	.dbline 45
	.dbline 45
	.dbline 46
L5:
	.dbline 44
; 		}
; 	while (i--) {
	mov R2,R16
	clr R3
	subi R16,1
	tst R2
	brne L4
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e ds1820_reset _ds1820_reset fc
;              i -> R20
	.even
_ds1820_reset::
	xcall push_gset1
	.dbline -1
	.dbline 50
; 		delay4us;
; 		}
; }
; 
; /*DS18B20復位函數*/
; unsigned char ds1820_reset(void) {
	.dbline 53
; 
; 	unsigned char i;
; 	flag = SREG;				/*中斷保護*/
	in R2,0x3f
	sts _flag,R2
	.dbline 54
; 	CLI();						/*關中斷*/
	cli
	.dbline 55
; 	DQ_OUT;
	sbi 0x1a,3
	.dbline 56
; 	DQ_CLR;
	cbi 0x1b,3
	.dbline 57
; 	delay_10us(49);				/*延時500uS(480-960)*/
	ldi R16,49
	xcall _delay_10us
	.dbline 58
; 	DQ_SET;
	sbi 0x1b,3
	.dbline 59
; 	DQ_IN;
	cbi 0x1a,3
	.dbline 60
; 	delay_10us(7);				/*延時80uS*/
	ldi R16,7
	xcall _delay_10us
	.dbline 61
; 	i = DQ_R;
	in R20,0x19
	andi R20,8
	.dbline 62
; 	delay_10us(49);				/*延時500uS(保持>480uS)*/
	ldi R16,49
	xcall _delay_10us
	.dbline 63
; 	if (flag & 0x80) {			/*恢復中斷狀態*/
	lds R2,_flag
	sbrs R2,7
	rjmp L8
	.dbline 63
	.dbline 64
; 		SEI();
	sei
	.dbline 65
; 		}
L8:
	.dbline 66
; 	if (i) {
	tst R20
	breq L10
	.dbline 66
	.dbline 67
; 		return 0x00;
	clr R16
	xjmp L7
L10:
	.dbline 69
; 		}
; 	else {
	.dbline 70
; 		return 0x01;
	ldi R16,1
	.dbline -2
L7:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e ds1820_read_byte _ds1820_read_byte fc
;          value -> R20
;              i -> R22
	.even
_ds1820_read_byte::
	xcall push_gset2
	.dbline -1
	.dbline 75
; 		}
; }
; 
; /*DS18B20字節讀取函數*/
; unsigned char ds1820_read_byte(void) {
	.dbline 78
; 
; 	unsigned char i;
; 	unsigned char value = 0;
	clr R20
	.dbline 79
; 	flag = SREG;				/*中斷保護*/
	in R2,0x3f
	sts _flag,R2
	.dbline 80
; 	CLI();						/*關中斷*/
	cli
	.dbline 81
	ldi R22,8
	xjmp L16
L13:
	.dbline 81
; 	for (i = 8; i != 0; i--) {
	.dbline 82
; 		value >>= 1;
	lsr R20
	.dbline 83
; 		DQ_OUT;
	sbi 0x1a,3
	.dbline 84
; 		DQ_CLR;
	cbi 0x1b,3
	.dbline 85
; 		delay4us;					/*延時4uS*/
	.dbline 85
	nop
	.dbline 85
	nop
	.dbline 85
	nop
	.dbline 85
	nop
	.dbline 85
	.dbline 85
	.dbline 86
; 		DQ_SET;
	sbi 0x1b,3
	.dbline 87
; 		DQ_IN;
	cbi 0x1a,3
	.dbline 88
; 		delay10us;					/*延時10uS*/
	.dbline 88
	nop
	.dbline 88
	nop
	.dbline 88
	nop
	.dbline 88
	nop
	.dbline 88
	nop
	.dbline 88
	nop
	.dbline 88
	nop
	.dbline 88
	nop
	.dbline 88
	nop
	.dbline 88
	nop
	.dbline 88
	.dbline 88
	.dbline 89
; 		if (DQ_R) {
	sbis 0x19,3
	rjmp L17
	.dbline 89
	.dbline 90
; 			value|=0x80;
	ori R20,128
	.dbline 91
; 			}
L17:
	.dbline 92
	ldi R16,5
	xcall _delay_10us
	.dbline 93
L14:
	.dbline 81
	dec R22
L16:
	.dbline 81
	tst R22
	brne L13
	.dbline 94
; 		delay_10us(5);			/*延時60uS*/
; 		}
; 	if (flag & 0x80) {			/*恢復中斷狀態*/
	lds R2,_flag
	sbrs R2,7
	rjmp L19
	.dbline 94
	.dbline 95
; 		SEI();
	sei
	.dbline 96
; 		}
L19:
	.dbline 97
; 	return(value);
	mov R16,R20
	.dbline -2
L12:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r value 20 c
	.dbsym r i 22 c
	.dbend
	.dbfunc e ds1820_write_byte _ds1820_write_byte fV
;              i -> R20
;          value -> R22
	.even
_ds1820_write_byte::
	xcall push_gset2
	mov R22,R16
	.dbline -1
	.dbline 101
; }
; 
; /*DS18B20字節寫入函數*/
; void ds1820_write_byte(unsigned char value) {
	.dbline 104
; 
; 	unsigned char i;
; 	flag = SREG;				/*中斷保護*/
	in R2,0x3f
	sts _flag,R2
	.dbline 105
; 	CLI();						/*關中斷*/
	cli
	.dbline 106
	ldi R20,8
	xjmp L25
L22:
	.dbline 106
; 	for (i = 8; i != 0; i--) {
	.dbline 107
; 		DQ_OUT;
	sbi 0x1a,3
	.dbline 108
; 		DQ_CLR;
	cbi 0x1b,3
	.dbline 109
; 		delay4us;					/*延時4uS*/
	.dbline 109
	nop
	.dbline 109
	nop
	.dbline 109
	nop
	.dbline 109
	nop
	.dbline 109
	.dbline 109
	.dbline 110
; 		if (value & 0x01) {DQ_SET;}
	sbrc R22,0
	.dbline 110
	.dbline 110
	sbi 0x1b,3
	.dbline 110
L26:
	.dbline 112
	ldi R16,7
	xcall _delay_10us
	.dbline 113
	sbi 0x1b,3
	.dbline 114
	lsr R22
	.dbline 115
L23:
	.dbline 106
	dec R20
L25:
	.dbline 106
	tst R20
	brne L22
	.dbline 116
	lds R2,_flag
	sbrs R2,7
	rjmp L28
	.dbline 116
	.dbline 117
	sei
	.dbline 118
L28:
	.dbline -2
L21:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r value 22 c
	.dbend
	.dbfunc e ds1820_start _ds1820_start fV
	.even
_ds1820_start::
	.dbline -1
	.dbline 122
; 		//每次都只寫最低位,如果最低位是1的話輸出高電平作為寫1信號,否則無動作即為0						
; 		delay_10us(7);			/*延時80uS*/
; 		DQ_SET;					/*位結束*/
; 		value >>= 1;
; 		}
; 	if (flag & 0x80) {			/*恢復中斷狀態*/
; 		SEI();
; 		}
; }
; 
; /*啟動ds1820轉換*/
; void ds1820_start(void) {
	.dbline 124
; 
; 	ds1820_reset();
	xcall _ds1820_reset
	.dbline 125
; 	ds1820_write_byte(0xCC);	/*勿略地址*/
	ldi R16,204
	xcall _ds1820_write_byte
	.dbline 126
; 	ds1820_write_byte(0x44);	/*啟動轉換*/
	ldi R16,68
	xcall _ds1820_write_byte
	.dbline -2
L30:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e ds1820_read_temp _ds1820_read_temp fi
;            buf -> y+0
;              i -> R20,R21
	.even
_ds1820_read_temp::
	xcall push_gset1
	sbiw R28,9
	.dbline -1
	.dbline 130
; }
; 
; /*DS8B20讀取溫度信息*/
; unsigned int ds1820_read_temp(void) {
	.dbline 135
; 
; 	unsigned int i;
; 	unsigned char buf[9];
; 
; 	ds1820_reset();
	xcall _ds1820_reset
	.dbline 136
; 	ds1820_write_byte(0xCC);	/*勿略地址*/
	ldi R16,204
	xcall _ds1820_write_byte
	.dbline 137
; 	ds1820_write_byte(0xBE);	/*讀取溫度*/
	ldi R16,190
	xcall _ds1820_write_byte
	.dbline 138
; 	for (i = 0; i < 9; i++) 
	clr R20
	clr R21
	xjmp L35
L32:
	.dbline 139
	.dbline 140
	xcall _ds1820_read_byte
	movw R24,R28
	movw R30,R20
	add R30,R24
	adc R31,R25
	std z+0,R16
	.dbline 141
L33:
	.dbline 138
	subi R20,255  ; offset = 1
	sbci R21,255
L35:
	.dbline 138
	cpi R20,9
	ldi R30,0
	cpc R21,R30
	brlo L32
	.dbline 142
; 	    {
; 		buf[i] = ds1820_read_byte();
; 		}
; 	i = buf[1];
	ldd R20,y+1
	clr R21
	.dbline 143
; 	i <<= 8;
	mov R21,R20
	clr R20
	.dbline 144
; 	i |= buf[0];
	ldd R2,y+0
	clr R3
	or R20,R2
	or R21,R3
	.dbline 146
; 	
; 	return i;
	movw R16,R20
	.dbline -2
L31:
	adiw R28,9
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym l buf 0 A[9:9]c
	.dbsym r i 20 i
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\+++資料+++\學習\avr\程序\18b20new\DS1820.C
_flag::
	.blkb 1
	.dbsym e flag _flag c

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91网站最新网址| 欧美一区二区三区婷婷月色| 日本一道高清亚洲日美韩| 五月婷婷激情综合| 九色porny丨国产精品| 国产一区二区三区av电影| 成人免费毛片高清视频| 欧洲亚洲国产日韩| 欧美一二三区在线| 亚洲丝袜自拍清纯另类| 日韩精品一区第一页| 国产 日韩 欧美大片| 日韩欧美国产高清| 亚洲影院免费观看| 国产精品一区不卡| 日韩一级欧美一级| 国产精品亚洲а∨天堂免在线| 久久人人爽人人爽| 午夜视频一区在线观看| 日韩视频免费观看高清完整版| 国产原创一区二区三区| 国产精品灌醉下药二区| 免费观看成人鲁鲁鲁鲁鲁视频| 日本精品视频一区二区三区| 欧美国产精品劲爆| 精彩视频一区二区三区| 中文字幕一区免费在线观看| 国产成人综合在线播放| 久久嫩草精品久久久精品| 色香色香欲天天天影视综合网| 国产精品视频一二三| 国产一区二区三区在线观看免费| 中文字幕av一区 二区| 欧美日韩国产综合一区二区 | 经典一区二区三区| 中文字幕在线视频一区| 宅男噜噜噜66一区二区66| 亚洲欧美另类小说| 91视频精品在这里| 开心九九激情九九欧美日韩精美视频电影| 欧美影院精品一区| 亚洲激情图片qvod| 日本久久电影网| 国产一区二区0| 亚洲福利视频导航| 欧美日韩一区高清| 亚洲成人一区在线| 欧美一区二区三区啪啪| 成人激情午夜影院| 国产精品久久久久影院亚瑟| 欧美一区午夜精品| 一本到一区二区三区| 国产精品一区二区久久不卡| 视频一区二区不卡| 亚洲一区二区三区四区中文字幕| 久久久精品日韩欧美| 欧美日本在线看| 色天使色偷偷av一区二区| 成人激情小说网站| 国产河南妇女毛片精品久久久| 日本欧美一区二区| 午夜精品福利久久久| 一区二区视频在线| 在线观看欧美日本| 97久久超碰国产精品| 亚洲sss视频在线视频| 亚洲视频一二三区| 国产精品传媒在线| 久久精品这里都是精品| 色婷婷久久久综合中文字幕| 高清视频一区二区| 国产成人在线看| 国产91丝袜在线18| 国产精品一级黄| 国产裸体歌舞团一区二区| 久久国产视频网| 韩国一区二区在线观看| 中文字幕一区不卡| 亚洲欧洲日韩综合一区二区| 中文一区二区完整视频在线观看 | 久久久久高清精品| 久久综合丝袜日本网| 色综合天天综合网天天看片| 免费观看久久久4p| 狂野欧美性猛交blacked| 久久国产免费看| 国产精品456| 99久久er热在这里只有精品15| 成人免费高清视频| 91在线观看一区二区| 91女神在线视频| 欧美性做爰猛烈叫床潮| 欧美午夜精品理论片a级按摩| 欧美性受xxxx| 欧美日韩高清一区二区三区| 日韩欧美一区二区久久婷婷| 久久丝袜美腿综合| 中文字幕综合网| 亚洲电影欧美电影有声小说| 丝袜美腿高跟呻吟高潮一区| 免费成人在线观看| 国产成人在线观看| 在线区一区二视频| 欧美一区二区在线免费播放 | 久久精品一级爱片| 中文字幕一区二区三区不卡在线| 亚洲国产中文字幕| 国产一区二三区| 99久久免费精品高清特色大片| 一本色道久久综合亚洲精品按摩| 欧美日韩免费观看一区二区三区 | 欧美性高清videossexo| 欧美一级黄色大片| 中文字幕视频一区| 日韩成人一级片| 不卡一区中文字幕| 欧美二区在线观看| 欧美影视一区二区三区| 欧美一卡在线观看| 国产精品久久久久久久久免费相片 | 精品影视av免费| 91网页版在线| 2022国产精品视频| 一区二区三区在线视频播放| 久久精品免费看| 91丝袜高跟美女视频| 日韩美一区二区三区| 亚洲欧美日韩国产手机在线| 另类小说色综合网站| 在线观看亚洲精品视频| 国产亚洲综合色| 日本美女一区二区三区| 97久久精品人人澡人人爽| 欧美不卡一二三| 精品国精品国产| 精品国产乱码久久久久久老虎| 亚洲视频一区二区在线| 久88久久88久久久| 欧美日韩免费电影| 综合色中文字幕| 国产一区福利在线| 日韩美女主播在线视频一区二区三区| 亚洲欧洲综合另类在线| 国产精品一区久久久久| 日韩视频免费观看高清在线视频| 一区二区三区精品视频| av爱爱亚洲一区| 欧美在线视频日韩| 国产精品久久免费看| 一区二区三区免费观看| 91精品国产麻豆| 国产麻豆精品在线观看| 欧美日韩一区不卡| 亚洲人成网站精品片在线观看 | 日本中文字幕一区| 欧美吞精做爰啪啪高潮| 亚洲丝袜精品丝袜在线| 成人精品一区二区三区四区| www国产成人免费观看视频 深夜成人网| 天堂午夜影视日韩欧美一区二区| 色综合天天狠狠| 1024亚洲合集| 91伊人久久大香线蕉| 国产精品久久久久久久久快鸭| 国产成人一区在线| 久久久久97国产精华液好用吗| 毛片一区二区三区| 国产精品香蕉一区二区三区| 日韩欧美国产精品| 美腿丝袜一区二区三区| 欧美一级日韩不卡播放免费| 日本美女视频一区二区| 日韩欧美在线网站| 久久国产人妖系列| 久久这里只有精品视频网| 精品一区二区三区香蕉蜜桃| 精品久久久久久久一区二区蜜臀| 免费人成黄页网站在线一区二区| 91精品婷婷国产综合久久性色| 奇米精品一区二区三区在线观看| 日韩亚洲电影在线| 国产在线精品一区二区夜色 | 欧美亚洲高清一区| 午夜在线电影亚洲一区| 欧美一区二区三区视频在线观看| 日本一不卡视频| 精品少妇一区二区三区在线播放| 久久精品国产网站| 日本一区二区三区国色天香| 午夜a成v人精品| 欧美一区二区三区精品| 国产最新精品精品你懂的| 国产午夜精品一区二区三区嫩草 | 蜜臀va亚洲va欧美va天堂| 欧美精品自拍偷拍| 久久精品国产99国产精品| 国产亚洲精品aa| 91美女福利视频| 喷水一区二区三区| 欧美国产日韩精品免费观看|