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

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

?? uart.s

?? CS5532的驅動程序
?? S
?? 第 1 頁 / 共 3 頁
字號:
	.module uart.c
	.area text(rom, con, rel)
	.dbfile G:\CS5532\firmware\uart.c
	.dbfunc e uart_init _uart_init fV
	.even
_uart_init::
	.dbline -1
	.dbline 47
; /****************************************Copyright (c)**************************************************
; **                               	
; **                                   
; **                                 
; ** 文   件   名: uart.c
; ** 最后修改日期: 2007-10-8
; ** 描        述: rs232通訊函數
; ** 版	     本: V1.0
; ** 主  控  芯 片:M16 晶振頻率:7.37MHZ, 波特率19200
; ** IDE:ICCAVR 6.31
; **********************************************************************************************************/																							   
; 
; #define 	MCU_M16
; #define		MCLK737	
; 
; 
; #ifdef MCU_M8
; #include <iom8v.h> 
; #endif
; 
; #ifdef MCU_M16
; #include <iom16v.h>
; #endif
; 
; #include <macros.h>
; #include "DEFINE.H"
; #include "UART.H"
; #include "COMMAND.H"
; 
; 
; uint08 uart_tx_buf[UART_BUF_SIZE];			//發送緩沖
; uint08 uart_tx_wr_ptr,uart_tx_rd_ptr;		
; uint08 uart_rx_counter,uart_tx_counter;
; uint08 uart_rx_buf[UART_BUF_SIZE];			//接收緩沖,相當于消息體
; uint08 seq_number;					//順序數
; uint08 check_sum;					//和校驗
; uint08 rx_stu_mac;					//接收狀態機
; uint08 msg_end_flag;					//消息體結束標志
; uint16 msg_size;					//消息尺寸
; 
; 
; /**********************************************************************
; functionName:void uart_init(void)
; description:uart初始化
; **********************************************************************/	
; void uart_init(void)
; {
	.dbline 49
; 	//IO初始化
; 	SET_BIT(PORTD,PD0);
	sbi 0x12,0
	.dbline 50
; 	SET_BIT(PORTD,PD1);
	sbi 0x12,1
	.dbline 51
; 	SET_BIT(DDRD,PD1);	
	sbi 0x11,1
	.dbline 52
; 	CLR_BIT(DDRD,PD0);	
	cbi 0x11,0
	.dbline 55
; 	
; 	//寄存器初始化
; 	UCSRB = 0x00; 		
	clr R2
	out 0xa,R2
	.dbline 56
;  	UCSRA = 0x00;
	out 0xb,R2
	.dbline 57
;  	UCSRC = 0x86;
	ldi R24,134
	out 0x20,R24
	.dbline 58
; 	UBRRL = BAUD19200; 			//設置撥特率
	ldi R24,23
	out 0x9,R24
	.dbline 59
;  	UBRRH = 0x00; 				//set baud rate hi
	out 0x20,R2
	.dbline 60
;  	UCSRB = 0x98;				//使用中斷
	ldi R24,152
	out 0xa,R24
	.dbline 63
; 	
; 	//變量初始化
; 	uart_tx_wr_ptr=uart_tx_rd_ptr=0;
	sts _uart_tx_rd_ptr,R2
	sts _uart_tx_wr_ptr,R2
	.dbline 64
; 	uart_rx_counter=uart_tx_counter=0;
	sts _uart_tx_counter,R2
	sts _uart_rx_counter,R2
	.dbline 65
; 	msg_end_flag=0;				//表示沒有接收到數據
	sts _msg_end_flag,R2
	.dbline 66
; 	rx_stu_mac=ST_START;
	ldi R24,240
	sts _rx_stu_mac,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.area vector(rom, abs)
	.org 44
	jmp _uart0_rx_isr
	.area text(rom, con, rel)
	.dbfile G:\CS5532\firmware\uart.c
	.dbfunc e uart0_rx_isr _uart0_rx_isr fV
;      uart_data -> R16
	.even
_uart0_rx_isr::
	st -y,R2
	st -y,R3
	st -y,R4
	st -y,R5
	st -y,R16
	st -y,R18
	st -y,R19
	st -y,R24
	st -y,R25
	st -y,R30
	st -y,R31
	in R2,0x3f
	st -y,R2
	.dbline -1
	.dbline 78
; }
; 
; 
; 
; 
; /**********************************************************************
; functionName:void uart0_rx_isr(void)
; description:串口接受中斷函數
; **********************************************************************/
; #pragma interrupt_handler uart0_rx_isr:12
; void uart0_rx_isr(void)
; {
	.dbline 80
;  	uint08 uart_data;
;  	uart_data=UDR;
	in R16,0xc
	.dbline 81
;  	switch(rx_stu_mac)
	lds R18,_rx_stu_mac
	clr R19
	cpi R18,240
	ldi R30,0
	cpc R19,R30
	breq L6
	cpi R18,241
	ldi R30,0
	cpc R19,R30
	breq L9
	cpi R18,242
	ldi R30,0
	cpc R19,R30
	breq L10
	cpi R18,243
	ldi R30,0
	cpc R19,R30
	brne X1
	xjmp L11
X1:
	cpi R18,244
	ldi R30,0
	cpc R19,R30
	brne X2
	xjmp L12
X2:
	cpi R18,245
	ldi R30,0
	cpc R19,R30
	brne X3
	xjmp L15
X3:
	cpi R18,246
	ldi R30,0
	cpc R19,R30
	brne X4
	xjmp L18
X4:
	xjmp L3
X0:
	.dbline 82
;  	{
L6:
	.dbline 84
;  		case ST_START:
;  		{
	.dbline 85
;  			if(uart_data==MESSAGE_START)
	cpi R16,27
	breq X5
	xjmp L4
X5:
	.dbline 86
; 			{
	.dbline 87
; 				rx_stu_mac = ST_GET_SEQ_NUM;	
	ldi R24,241
	sts _rx_stu_mac,R24
	.dbline 88
; 				check_sum = MESSAGE_START;
	ldi R24,27
	sts _check_sum,R24
	.dbline 89
; 			}
	.dbline 90
;  			break;
	xjmp L4
L9:
	.dbline 93
;  		}
;  		case ST_GET_SEQ_NUM:
;  		{
	.dbline 94
;  			seq_number = uart_data;
	sts _seq_number,R16
	.dbline 95
; 			check_sum ^= uart_data; 
	lds R2,_check_sum
	eor R2,R16
	sts _check_sum,R2
	.dbline 96
; 			rx_stu_mac = ST_MSG_SIZE_H;
	ldi R24,242
	sts _rx_stu_mac,R24
	.dbline 97
;  			break;
	xjmp L4
L10:
	.dbline 100
;  		}
;  		case ST_MSG_SIZE_H:
;  		{
	.dbline 101
;  			msg_size = uart_data;
	mov R2,R16
	clr R3
	sts _msg_size+1,R3
	sts _msg_size,R2
	.dbline 102
; 			msg_size <<=8;
	mov R3,R2
	clr R2
	sts _msg_size+1,R3
	sts _msg_size,R2
	.dbline 103
; 			check_sum ^= uart_data;
	lds R2,_check_sum
	eor R2,R16
	sts _check_sum,R2
	.dbline 104
; 			rx_stu_mac = ST_MSG_SIZE_L;
	ldi R24,243
	sts _rx_stu_mac,R24
	.dbline 105
;  			break;
	xjmp L4
L11:
	.dbline 108
;  		}
;  		case ST_MSG_SIZE_L:
;  		{
	.dbline 109
;  			msg_size |= uart_data;
	mov R2,R16
	clr R3
	lds R4,_msg_size
	lds R5,_msg_size+1
	or R4,R2
	or R5,R3
	sts _msg_size+1,R5
	sts _msg_size,R4
	.dbline 110
; 			check_sum ^= uart_data;
	lds R2,_check_sum
	eor R2,R16
	sts _check_sum,R2
	.dbline 111
; 			rx_stu_mac = ST_GET_TOKEN;	
	ldi R24,244
	sts _rx_stu_mac,R24
	.dbline 112
;  			break;
	xjmp L4
L12:
	.dbline 115
;  		}
;  		case ST_GET_TOKEN:
;  		{
	.dbline 116
;  			if(uart_data==TOKEN)
	cpi R16,14
	brne L13
	.dbline 117
; 			{
	.dbline 118
; 				check_sum ^= uart_data;
	lds R2,_check_sum
	eor R2,R16
	sts _check_sum,R2
	.dbline 119
; 				rx_stu_mac = ST_GET_DATA;
	ldi R24,245
	sts _rx_stu_mac,R24
	.dbline 120
; 				uart_rx_counter=0;
	clr R2
	sts _uart_rx_counter,R2
	.dbline 121
; 			}
	xjmp L4
L13:
	.dbline 123
; 			else
; 			{
	.dbline 124
; 				rx_stu_mac = ST_START;
	ldi R24,240
	sts _rx_stu_mac,R24
	.dbline 125
; 			}
	.dbline 126
;  			break;
	xjmp L4
L15:
	.dbline 129
;  		}
;  		case ST_GET_DATA:
;  		{
	.dbline 130
;  			uart_rx_buf[uart_rx_counter++]=uart_data;
	lds R2,_uart_rx_counter
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _uart_rx_counter,R24
	ldi R24,<_uart_rx_buf
	ldi R25,>_uart_rx_buf
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R16
	.dbline 131
; 			check_sum ^= uart_data;
	lds R2,_check_sum
	eor R2,R16
	sts _check_sum,R2
	.dbline 132
; 			if(uart_rx_counter==msg_size)
	lds R2,_msg_size
	lds R3,_msg_size+1
	lds R4,_uart_rx_counter
	clr R5
	cp R4,R2
	cpc R5,R3
	brne L4
	.dbline 133
; 			{
	.dbline 134
; 				rx_stu_mac = ST_GET_CHECK;
	ldi R24,246
	sts _rx_stu_mac,R24
	.dbline 135
; 			}
	.dbline 136
;  			break;
	xjmp L4
L18:
	.dbline 139
;  		}
;  		case ST_GET_CHECK:
;  		{
	.dbline 140
;  			if(uart_data == check_sum)
	lds R2,_check_sum
	cp R16,R2
	brne L19
	.dbline 141
; 			{
	.dbline 142
; 				msg_end_flag=1;
	ldi R24,1
	sts _msg_end_flag,R24
	.dbline 143
; 			}		
L19:
	.dbline 144
; 			rx_stu_mac = ST_START;
	ldi R24,240
	sts _rx_stu_mac,R24
	.dbline 145
;  			break;
	xjmp L4
L3:
	.dbline 148
	.dbline 149
	ldi R24,240
	sts _rx_stu_mac,R24
	.dbline 150
L4:
	.dbline -2
L2:
	ld R2,y+
	out 0x3f,R2
	ld R31,y+
	ld R30,y+
	ld R25,y+
	ld R24,y+
	ld R19,y+
	ld R18,y+
	ld R16,y+
	ld R5,y+
	ld R4,y+
	ld R3,y+
	ld R2,y+
	.dbline 0 ; func end
	reti
	.dbsym r uart_data 16 c
	.dbend
	.dbfunc e rx_pkg_process _rx_pkg_process fV
;            cmd -> R20
;              i -> R20,R21
	.even
_rx_pkg_process::
	xcall push_gset1
	.dbline -1
	.dbline 840
;  		}
;  		default:
;  		{
;  			rx_stu_mac=ST_START;
;  			break;
;  		}
;  	}
; }
; 
; 
; 
; 
; /*void packageProcess(uint08 seqNum) 
; {
; 	uint08 cmd;
; 	uint08 tmp=0;
; 	uint08 tmp2=0;
; 	uint08 tmp3=0;
; 	uint08 mode;
; 	uint16 block_size;
; 	uint16 i;
; 	uint16 tmp16;
; 	uint16 num_bytes=0;
; 	uint32 polling_address=0;
; 	uint32 start_address = address;
; 	cmd = msg_buffer[0];
; 	
; 	//命令CMD_SIGN_ON
; 	if(cmd==CMD_SIGN_ON)
; 	{
; 		num_bytes = 11;
; 		msg_buffer[0] = CMD_SIGN_ON;
; 		msg_buffer[1] = STATUS_CMD_OK;
; 		msg_buffer[2] = 8;
; 		memcpy(msg_buffer+3,"STK500_2",8);
; 	}
; 	//命令CMD_SET_PARAMETER
; 	else if(cmd==CMD_SET_PARAMETER)
; 	{
; 		switch(msg_buffer[1])
; 		{
; 			case PARAM_SCK_DURATION:
; 				
; 				if((msg_buffer[2]) >= 1  ) clockSpeed=SPI_SPEED_2MHZ;
; 				if((msg_buffer[2]) >= 2  ) clockSpeed=SPI_SPEED_1MHZ;
; 				if((msg_buffer[2]) >= 4  ) clockSpeed=SPI_SPEED_500KHZ;
; 				if((msg_buffer[2]) >= 8  ) clockSpeed=SPI_SPEED_250KHZ;
; 				if((msg_buffer[2]) >= 16 ) clockSpeed=SPI_SPEED_125KHZ;
; 				if((msg_buffer[2]) >= 32 ) clockSpeed=SPI_SPEED_62KHZ;
; 				if(EEPROMread(EEP_SCK_DURATION)!=clockSpeed) 
; 				EEPROMwrite(EEP_SCK_DURATION,clockSpeed);
; 				//spi_set_speed(clock_speed);		//因為我這里不用硬件SPI 
; 				break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99在线热播精品免费| 成人精品高清在线| 亚洲欧美日本韩国| 欧美mv日韩mv亚洲| 欧美性生活久久| 国产不卡在线播放| 久久国产精品99久久人人澡| 亚洲女同ⅹxx女同tv| 久久精品亚洲麻豆av一区二区 | 久久伊人中文字幕| 欧美在线观看视频一区二区三区| 国产精品羞羞答答xxdd | 国产91高潮流白浆在线麻豆| 午夜视频在线观看一区二区| 国产精品三级电影| 26uuu精品一区二区| 91精品婷婷国产综合久久竹菊| 白白色亚洲国产精品| 国产一区二三区| 日韩av电影天堂| 亚洲自拍与偷拍| 亚洲欧洲韩国日本视频| 国产欧美va欧美不卡在线| 日韩欧美一级特黄在线播放| 欧美综合天天夜夜久久| 91一区在线观看| 99这里只有久久精品视频| 成人自拍视频在线| 成人午夜视频福利| 国产精品影视在线| 国产一区在线精品| 国产一区二区伦理片| 另类成人小视频在线| 日韩精彩视频在线观看| 视频精品一区二区| 亚洲成av人片观看| 午夜精品在线视频一区| 午夜亚洲国产au精品一区二区| 亚洲一二三四区不卡| 寂寞少妇一区二区三区| 九九热在线视频观看这里只有精品| 丝袜美腿亚洲综合| 日本不卡1234视频| 麻豆精品久久久| 狠狠色丁香久久婷婷综| 韩国女主播一区| 国产精品77777| 成人午夜电影小说| 成人午夜视频在线观看| 91美女福利视频| 91九色最新地址| 欧美日韩精品一区二区| 91精品国产一区二区人妖| 欧美一级日韩免费不卡| 2020日本不卡一区二区视频| 久久久久88色偷偷免费| 国产精品国产三级国产有无不卡 | 亚洲一区二区欧美日韩| 日韩中文字幕1| 久久国产精品色婷婷| 国产福利一区二区三区| 99精品视频中文字幕| 色诱亚洲精品久久久久久| 欧美日韩欧美一区二区| 日韩欧美中文字幕精品| 国产日韩欧美亚洲| 亚洲男人的天堂av| 日韩高清一级片| 国产精品一区二区三区网站| 99精品视频一区| 欧美日韩国产美女| 久久综合成人精品亚洲另类欧美| 中文字幕一区二区三区在线播放| 一区二区在线看| 美女爽到高潮91| av午夜精品一区二区三区| 欧美四级电影在线观看| 日韩欧美精品三级| 亚洲素人一区二区| 奇米影视在线99精品| 成人免费精品视频| 欧美日韩一卡二卡三卡 | 亚洲图片欧美视频| 精品在线播放午夜| 一本久久综合亚洲鲁鲁五月天| 91精品蜜臀在线一区尤物| 欧美国产欧美亚州国产日韩mv天天看完整| 艳妇臀荡乳欲伦亚洲一区| 韩国毛片一区二区三区| 欧美在线|欧美| 国产视频一区二区三区在线观看| 亚洲一区二区三区四区在线 | 国产精品二三区| 美女视频一区二区| 欧洲一区在线电影| 国产欧美一区二区精品仙草咪| 亚洲成人免费影院| 波多野洁衣一区| 欧美va亚洲va香蕉在线| 亚洲一二三专区| 91日韩一区二区三区| 亚洲精品在线网站| 天天操天天综合网| 91丨porny丨国产| 久久久久久久久久久黄色| 亚洲一级二级三级在线免费观看| 成人免费视频一区| 久久综合资源网| 日韩电影在线免费观看| 在线精品视频一区二区三四 | 亚洲国产视频网站| 成人一二三区视频| 久久蜜臀中文字幕| 美日韩一区二区三区| 欧美久久久一区| 一区二区三区产品免费精品久久75| 国产99一区视频免费| 26uuu色噜噜精品一区| 免费高清不卡av| 欧美日本韩国一区| 亚洲成在线观看| 在线观看视频一区二区 | 久久er99精品| 欧美一级专区免费大片| 亚洲韩国一区二区三区| 在线精品视频一区二区| 一区二区三区高清| 在线观看视频一区二区欧美日韩| 亚洲精品网站在线观看| 91欧美一区二区| 亚洲视频一区在线观看| 99久精品国产| 亚洲码国产岛国毛片在线| 91在线国产福利| 亚洲伦在线观看| 欧美性一区二区| 日韩主播视频在线| 91精品综合久久久久久| 久久国产精品第一页| 久久久噜噜噜久噜久久综合| 国产成人综合在线播放| 日本一区二区三区国色天香 | 亚洲精品国产第一综合99久久| 99精品热视频| 亚洲在线视频网站| 精品视频在线免费看| 日本欧美肥老太交大片| 日韩欧美的一区二区| 免费成人结看片| 久久久午夜精品理论片中文字幕| 国产麻豆日韩欧美久久| 国产精品污网站| 日本高清不卡一区| 婷婷久久综合九色综合伊人色| 91精品啪在线观看国产60岁| 激情国产一区二区| 国产欧美精品国产国产专区| 91丨九色丨尤物| 日本中文在线一区| 久久久久久久久99精品| 91在线国产观看| 日韩中文字幕91| 欧美国产禁国产网站cc| 91久久免费观看| 毛片一区二区三区| 欧美国产精品一区二区三区| 欧美三级视频在线播放| 久久精品国产精品亚洲红杏| 国产精品热久久久久夜色精品三区| 色综合久久综合网97色综合| 日韩av在线播放中文字幕| 久久久久久免费| 日本高清免费不卡视频| 精品写真视频在线观看| 亚洲视频在线一区二区| 日韩一二三区不卡| av高清不卡在线| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品日日摸夜夜摸av| 欧美日韩国产成人在线免费| 国产成人午夜视频| 午夜伊人狠狠久久| 中文字幕不卡一区| 欧美一级片免费看| 91色|porny| 国产精品一二三在| 视频在线观看91| 成人欧美一区二区三区小说| 欧美一区二区久久久| 91视频观看视频| 九色porny丨国产精品| 亚洲一区二区三区激情| 中文字幕乱码日本亚洲一区二区| 9191国产精品| 91热门视频在线观看| 粉嫩av亚洲一区二区图片| 日本欧美肥老太交大片| 一个色综合av| 国产精品第一页第二页第三页| 日韩亚洲欧美在线|