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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? spi_master.s

?? 用ICC編寫的程序包括SPI
?? S
字號:
	.module SPI_master.c
	.area text(rom, con, rel)
	.dbfile F:\IccAvr_Pro\SPI_master.c
	.area vector(rom, abs)
	.org 40
	jmp _spi_stc_isr
	.area text(rom, con, rel)
	.dbfile F:\IccAvr_Pro\SPI_master.c
	.dbfunc e spi_stc_isr _spi_stc_isr fV
	.even
_spi_stc_isr::
	st -y,R2
	st -y,R24
	st -y,R25
	st -y,R30
	st -y,R31
	in R2,0x3f
	st -y,R2
	.dbline -1
	.dbline 10
; #include "SPI_master.h"
; 
; unsigned char SPI_rx_buff[SIZE];  
; unsigned char SPI_tx_buff[SIZE];  
; unsigned char rx_wr_index,rx_rd_index,rx_counter,rx_buffer_overflow;  
; unsigned char tx_wr_index,tx_rd_index,tx_counter,SPI_ok,SPI_datain,temp; 
; 
; #pragma interrupt_handler spi_stc_isr:11  
; void spi_stc_isr(void)  
; {  
	.dbline 12
;   //PORTB|=BIT(SS);
;     if (tx_counter)        //如果發(fā)送緩沖區(qū)中有待發(fā)的數(shù)據(jù)  
	lds R2,_tx_counter
	tst R2
	breq L2
	.dbline 13
;   {  
	.dbline 14
;      --tx_counter;  
	mov R24,R2
	subi R24,1
	sts _tx_counter,R24
	.dbline 16
; 	 
; 	 SPDR = SPI_tx_buff[tx_rd_index]; //發(fā)送一個字節(jié)數(shù)據(jù),并調(diào)整指針  
	ldi R24,<_SPI_tx_buff
	ldi R25,>_SPI_tx_buff
	lds R30,_tx_rd_index
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	out 0xf,R2
	.dbline 17
;      SPI_ok=0;
	clr R2
	sts _SPI_ok,R2
	.dbline 18
; 	 if (++tx_rd_index == SIZE) tx_rd_index = 0;  
	lds R24,_tx_rd_index
	subi R24,255    ; addi 1
	mov R2,R24
	sts _tx_rd_index,R2
	cpi R24,100
	brne L4
	.dbline 18
	clr R2
	sts _tx_rd_index,R2
L4:
	.dbline 19
;   }
L2:
	.dbline 20
;   SPI_rx_buff[rx_wr_index] = SPDR;    //從ISP口讀出收到的字節(jié)  
	ldi R24,<_SPI_rx_buff
	ldi R25,>_SPI_rx_buff
	lds R30,_rx_wr_index
	clr R31
	add R30,R24
	adc R31,R25
	in R2,0xf
	std z+0,R2
	.dbline 22
;   
;   SPI_datain=1;
	ldi R24,1
	sts _SPI_datain,R24
	.dbline 23
;   SPI_ok=1;
	sts _SPI_ok,R24
	.dbline 24
;   if (++rx_wr_index == SIZE) rx_wr_index = 0;    //放入接收緩沖區(qū),并調(diào)整隊列指針  
	lds R24,_rx_wr_index
	subi R24,255    ; addi 1
	mov R2,R24
	sts _rx_wr_index,R2
	cpi R24,100
	brne L6
	.dbline 24
	clr R2
	sts _rx_wr_index,R2
L6:
	.dbline 25
	lds R24,_rx_counter
	subi R24,255    ; addi 1
	mov R2,R24
	sts _rx_counter,R2
	cpi R24,100
	brne L8
	.dbline 26
	.dbline 27
	clr R2
	sts _rx_counter,R2
	.dbline 28
	ldi R24,1
	sts _rx_buffer_overflow,R24
	.dbline 29
L8:
	.dbline -2
L1:
	ld R2,y+
	out 0x3f,R2
	ld R31,y+
	ld R30,y+
	ld R25,y+
	ld R24,y+
	ld R2,y+
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e getSPIchar _getSPIchar fc
;           data -> R16
	.even
_getSPIchar::
	.dbline -1
	.dbline 34
;   if (++rx_counter == SIZE)  
;   {  
;     rx_counter = 0;  
;     rx_buffer_overflow = 1;  
;   }  
;    //PORTB&=~BIT(SS);
; }  
; 
; unsigned char getSPIchar(void)  
; {  
L11:
	.dbline 36
L12:
	.dbline 36
;   unsigned char data;  
;   while (rx_counter == 0);     //無接收數(shù)據(jù),等待  
	lds R2,_rx_counter
	tst R2
	breq L11
	.dbline 37
;   data = SPI_rx_buff[rx_rd_index];    //從接收緩沖區(qū)取出一個SPI收到的數(shù)據(jù)  
	ldi R24,<_SPI_rx_buff
	ldi R25,>_SPI_rx_buff
	lds R30,_rx_rd_index
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	.dbline 38
;   if (++rx_rd_index == SIZE) rx_rd_index = 0;    //調(diào)整指針  
	lds R24,_rx_rd_index
	subi R24,255    ; addi 1
	mov R2,R24
	sts _rx_rd_index,R2
	cpi R24,100
	brne L14
	.dbline 38
	clr R2
	sts _rx_rd_index,R2
L14:
	.dbline 39
;   CLI();  
	cli
	.dbline 40
;   --rx_counter;  
	lds R24,_rx_counter
	subi R24,1
	sts _rx_counter,R24
	.dbline 41
;   SEI();  
	sei
	.dbline 42
;   return data;  
	.dbline -2
L10:
	.dbline 0 ; func end
	ret
	.dbsym r data 16 c
	.dbend
	.dbfunc e putSPIchar _putSPIchar fV
;              c -> R16
	.even
_putSPIchar::
	.dbline -1
	.dbline 46
; }  
; 
; void putSPIchar(char c)  
; {  
L17:
	.dbline 47
L18:
	.dbline 47
;   while (tx_counter == SIZE);//發(fā)送緩沖區(qū)滿,等待  
	lds R24,_tx_counter
	cpi R24,100
	breq L17
	.dbline 48
;   CLI();  
	cli
	.dbline 49
;   if (tx_counter || (SPI_ok==0))//發(fā)送緩沖區(qū)已中有待發(fā)數(shù)據(jù)  
	tst R24
	brne L22
	lds R2,_SPI_ok
	tst R2
	brne L20
L22:
	.dbline 50
;   {                //或SPI正在發(fā)送數(shù)據(jù)時  
	.dbline 51
;     SPI_tx_buff[tx_wr_index] = c;    //將數(shù)據(jù)放入發(fā)送緩沖區(qū)排隊  
	ldi R24,<_SPI_tx_buff
	ldi R25,>_SPI_tx_buff
	lds R30,_tx_wr_index
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R16
	.dbline 52
;     if (++tx_wr_index == SIZE) tx_wr_index = 0;    //調(diào)整指針  
	lds R24,_tx_wr_index
	subi R24,255    ; addi 1
	mov R2,R24
	sts _tx_wr_index,R2
	cpi R24,100
	brne L23
	.dbline 52
	clr R2
	sts _tx_wr_index,R2
L23:
	.dbline 53
;     ++tx_counter;  
	lds R24,_tx_counter
	subi R24,255    ; addi 1
	sts _tx_counter,R24
	.dbline 54
;   }  
	xjmp L21
L20:
	.dbline 56
;   else  
;     {
	.dbline 58
; 	//PORTB&=~BIT(SS);
; 	SPDR = c;        //發(fā)送緩沖區(qū)中空且SPI口空閑,直接放入SPDR由SIP口發(fā)送  
	out 0xf,R16
	.dbline 59
;     temp=SPDR;
	in R2,0xf
	sts _temp,R2
	.dbline 60
; 	SPI_ok=0;
	clr R2
	sts _SPI_ok,R2
	.dbline 61
; 	}
L21:
	.dbline 62
;   SEI();  
	sei
	.dbline -2
L16:
	.dbline 0 ; func end
	ret
	.dbsym r c 16 c
	.dbend
	.dbfunc e spi_init _spi_init fV
	.even
_spi_init::
	.dbline -1
	.dbline 67
; }  
; 
; 	   	   			 //主機模式
; void spi_init(void)  
; {    
	.dbline 68
;   DDRB |= BIT(MOSI)|BIT(SCK)|BIT(SS);    //MISO=input and MOSI,SCK,SS = output 
	in R24,0x17
	ori R24,176
	out 0x17,R24
	.dbline 69
;   DDRB &=~BIT(MISO); 
	cbi 0x17,6
	.dbline 70
;   PORTB|= BIT(SCK)|BIT(MOSI)|BIT(SS);    //MISO上拉電阻有效   
	in R24,0x18
	ori R24,176
	out 0x18,R24
	.dbline 71
;   SPCR = 0xD4;    //SPI允許,主機模式,MSB,允許SPI中斷,極性方式01,1/4系統(tǒng)時鐘速率  
	ldi R24,212
	out 0xd,R24
	.dbline 72
;   SPSR = 0x00;  
	clr R2
	out 0xe,R2
	.dbline 73
;   temp = SPSR;  
	in R2,0xe
	sts _temp,R2
	.dbline 74
;   temp = SPDR;    //清空SPI,和中斷標志,使SPI空閑
	in R2,0xf
	sts _temp,R2
	.dbline 75
;   SPI_ok=1;
	ldi R24,1
	sts _SPI_ok,R24
	.dbline 76
;   SPI_datain=0;  
	clr R2
	sts _SPI_datain,R2
	.dbline -2
L25:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile F:\IccAvr_Pro\SPI_master.c
_temp::
	.blkb 1
	.dbsym e temp _temp c
_SPI_datain::
	.blkb 1
	.dbsym e SPI_datain _SPI_datain c
_SPI_ok::
	.blkb 1
	.dbsym e SPI_ok _SPI_ok c
_tx_counter::
	.blkb 1
	.dbsym e tx_counter _tx_counter c
_tx_rd_index::
	.blkb 1
	.dbsym e tx_rd_index _tx_rd_index c
_tx_wr_index::
	.blkb 1
	.dbsym e tx_wr_index _tx_wr_index c
_rx_buffer_overflow::
	.blkb 1
	.dbsym e rx_buffer_overflow _rx_buffer_overflow c
_rx_counter::
	.blkb 1
	.dbsym e rx_counter _rx_counter c
_rx_rd_index::
	.blkb 1
	.dbsym e rx_rd_index _rx_rd_index c
_rx_wr_index::
	.blkb 1
	.dbsym e rx_wr_index _rx_wr_index c
_SPI_tx_buff::
	.blkb 100
	.dbsym e SPI_tx_buff _SPI_tx_buff A[100:100]c
_SPI_rx_buff::
	.blkb 100
	.dbsym e SPI_rx_buff _SPI_rx_buff A[100:100]c

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷av一区二区三区之一色屋| 最新日韩av在线| 黑人巨大精品欧美黑白配亚洲| 91精品国产丝袜白色高跟鞋| 肉丝袜脚交视频一区二区| 欧美日韩国产综合草草| 日本不卡1234视频| 久久久99免费| 色综合激情久久| 丝袜亚洲另类欧美综合| 精品人伦一区二区色婷婷| 国产成人在线电影| 1024成人网| 欧美久久婷婷综合色| 久久99国产精品免费| 中国色在线观看另类| 欧洲色大大久久| 狂野欧美性猛交blacked| 国产午夜精品理论片a级大结局| av毛片久久久久**hd| 亚洲18色成人| 久久一区二区三区四区| 9i看片成人免费高清| 免费观看91视频大全| 国产片一区二区三区| 欧美性大战久久| 精品一二三四在线| 亚洲美女在线国产| 精品日韩在线观看| eeuss鲁片一区二区三区在线看| 亚洲sss视频在线视频| 2021中文字幕一区亚洲| 91在线一区二区三区| 日本视频一区二区| 综合网在线视频| 精品国产91久久久久久久妲己 | 国产精品久久久久四虎| 欧美系列一区二区| 国产91综合一区在线观看| 亚洲一区日韩精品中文字幕| 久久综合国产精品| 欧美日本乱大交xxxxx| 成人av一区二区三区| 琪琪久久久久日韩精品| 亚洲欧美激情在线| 国产女人18毛片水真多成人如厕 | 亚洲精品一区二区三区香蕉| 色一情一伦一子一伦一区| 韩国欧美一区二区| 国产精品自在欧美一区| 亚洲成av人片在www色猫咪| 国产精品天天看| 欧美成人精精品一区二区频| 欧美日韩在线综合| 91蝌蚪porny成人天涯| 国产成人超碰人人澡人人澡| 日韩二区三区在线观看| 一区二区三区日本| 国产精品三级在线观看| 337p日本欧洲亚洲大胆色噜噜| 精品视频1区2区| 91麻豆6部合集magnet| 成人av网站在线| 国产在线视频精品一区| 奇米一区二区三区| 天天操天天色综合| 亚洲va韩国va欧美va精品| 一区二区在线电影| 亚洲免费观看高清| 一区二区三区四区亚洲| 亚洲女爱视频在线| 亚洲裸体在线观看| 亚洲精品一卡二卡| 亚洲欧美激情视频在线观看一区二区三区| 久久久午夜精品理论片中文字幕| 日韩精品在线一区二区| 日韩欧美亚洲一区二区| 欧美一区二区三级| 欧美一级淫片007| 日韩一区二区麻豆国产| 91精品国产91综合久久蜜臀| 欧美肥妇bbw| 日韩一区二区三区视频| 日韩一区二区精品葵司在线| 欧美一区二区三区在| 91麻豆精品国产91久久久更新时间| 欧美三级电影网| 日韩视频一区二区三区 | 色综合久久综合| 91亚洲国产成人精品一区二区三| 99精品一区二区| 色嗨嗨av一区二区三区| 欧美午夜理伦三级在线观看| 欧美精三区欧美精三区| 日韩色在线观看| 久久一夜天堂av一区二区三区| 欧美激情一区二区三区在线| 亚洲欧洲一区二区在线播放| 一区二区三区中文字幕在线观看| 亚洲成a人v欧美综合天堂下载| 日日欢夜夜爽一区| 国产又粗又猛又爽又黄91精品| 国产不卡在线视频| 91浏览器入口在线观看| 欧美人体做爰大胆视频| 精品国产免费视频| 亚洲欧洲国产日韩| 天天操天天色综合| 成人午夜看片网址| 欧美午夜理伦三级在线观看| 欧美xxxxxxxx| 中文字幕亚洲在| 日韩成人一区二区| 成人性视频免费网站| 在线亚洲免费视频| 26uuu亚洲综合色| 久久成人免费网| 91在线视频播放| 日韩一级黄色大片| 亚洲色图丝袜美腿| 男女男精品网站| 97成人超碰视| 日韩欧美不卡一区| 亚洲愉拍自拍另类高清精品| 国内精品不卡在线| 欧美亚洲国产一区二区三区va| 2023国产精华国产精品| 午夜伦理一区二区| 成人高清免费在线播放| 日韩一区二区三区av| 亚洲欧美一区二区三区国产精品 | 成人免费精品视频| 制服丝袜在线91| 亚洲免费高清视频在线| 国产一区二区精品久久99| 欧美日本免费一区二区三区| 中文字幕在线观看不卡| 狠狠v欧美v日韩v亚洲ⅴ| 欧美三级日韩三级| 亚洲免费大片在线观看| 国产成人自拍在线| 日韩亚洲国产中文字幕欧美| 亚洲一区在线视频观看| 91欧美激情一区二区三区成人| 欧美大片拔萝卜| 日韩高清不卡在线| 欧美亚洲精品一区| 亚洲男人天堂一区| 99麻豆久久久国产精品免费| 久久精品亚洲精品国产欧美| 免费在线欧美视频| 欧美一区二区三区四区五区| 亚洲综合久久久| 91久久精品国产91性色tv| 国产精品污网站| 成人黄色在线网站| 久久久久免费观看| 精品一区二区三区av| 日韩免费高清av| 麻豆91小视频| 日韩一区二区不卡| 蜜桃视频一区二区三区在线观看| 91免费在线视频观看| 国产精品视频看| 亚洲综合一区二区| 色综合久久综合网97色综合| 亚洲免费观看高清完整版在线观看| 国产成人综合精品三级| 国产精品入口麻豆原神| 成人久久18免费网站麻豆| 久久噜噜亚洲综合| 国产剧情在线观看一区二区| 日韩精品一区二| 国产乱码精品一区二区三| 欧美日韩电影在线| 亚洲高清三级视频| 5858s免费视频成人| 午夜伦理一区二区| 欧美成人三级在线| 一级精品视频在线观看宜春院| 在线精品观看国产| 午夜精品视频在线观看| 欧美图片一区二区三区| 日韩电影在线看| 91精品欧美综合在线观看最新| 免费看精品久久片| 久久久久久久一区| 国产福利一区在线| 亚洲视频你懂的| 日本道精品一区二区三区| 午夜精品福利久久久| 日韩亚洲欧美高清| 国产福利一区二区三区视频| 成人免费小视频| 在线观看欧美精品| 精品一区二区三区不卡| 中文字幕在线观看一区二区| 91亚洲国产成人精品一区二区三 | 中文字幕久久午夜不卡| 在线视频你懂得一区|