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

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

?? sd_hardware.asm

?? M430SP完整I2C代碼MSP430控制LED代碼及原理圖(PROTEL格式)凌陽61A數(shù)字電子鐘代碼凌陽SD卡存儲(chǔ)擴(kuò)展代碼凌陽數(shù)據(jù)采集系統(tǒng)C代碼
?? ASM
字號(hào):
//======================================================
// 文件名稱:	SD_Hardware.c
// 功能描述:	SD底層驅(qū)動(dòng)文件
// 維護(hù)記錄:	2006-8-03	v1.0
//======================================================

.include SD_CFG.inc
.code
.public _SPI_CLOCK
.public _SD_BLOCKSIZE
.public _SD_BLOCKSIZE_NBITS

//	下面三個(gè)變量需要用戶自行定義,以配合SD驅(qū)動(dòng)庫

_SD_BLOCKSIZE:
	.DW 1 DUP(512)					//	SD卡塊的長度
_SD_BLOCKSIZE_NBITS:
	.DW 1 DUP(9)					//	與SD卡塊的長度相關(guān) SD_BLOCKSIZE = 2 ^ SD_BLOCKSIZE_NBITS
_SPI_CLOCK:
	.DD 1 DUP(185654)				//	SPI總線的SCLK的頻率
									//	49.152MHz下執(zhí)行SPI接收/發(fā)送字節(jié)函數(shù)大概需要2118cycles
									//		發(fā)送字節(jié)需要8clk,大概折合185654Hz
.code
//=============================================================
// 語法格式:	void SPI_SCK_SET(void)
// 實(shí)現(xiàn)功能:	拉高SCLK
// 參數(shù):		無
// 返回值:		無
//=============================================================
SPI_SCK_SET:	.macro
	r4 = [SD_BUS_Buffer]
	r4 |= SD_BUS_SCK
	[SD_BUS_Buffer] = r4
	.endm

//=============================================================
// 語法格式:	void SPI_SCK_CLR(void)
// 實(shí)現(xiàn)功能:	拉低SCLK
// 參數(shù):		無
// 返回值:		無
//=============================================================
SPI_SCK_CLR:	.macro
	r4 = [SD_BUS_Buffer]
	r4 &= ~SD_BUS_SCK
	[SD_BUS_Buffer] = r4
	.endm

//=============================================================
// 語法格式:	void SPI_DOUT_SET(void)
// 實(shí)現(xiàn)功能:	拉高Dout
// 參數(shù):		無
// 返回值:		無
//=============================================================
SPI_DOUT_SET:	.macro
	r4 = [SD_BUS_Buffer]
	r4 |= SD_BUS_Dout
	[SD_BUS_Buffer] = r4
	.endm

//=============================================================
// 語法格式:	void SPI_DOUT_CLR(void)
// 實(shí)現(xiàn)功能:	拉低 Dout
// 參數(shù):		無
// 返回值:		無
//=============================================================
SPI_DOUT_CLR:	.macro
	r4 = [SD_BUS_Buffer]
	r4 &= ~SD_BUS_Dout
	[SD_BUS_Buffer] = r4
	.endm

//=============================================================
// 語法格式:	void SD_IOInit(void)
// 實(shí)現(xiàn)功能:	SD端口初始化
// 參數(shù):		無
// 返回值:		無
//=============================================================
.public _SD_IOInit
_SD_IOInit:	.proc
	push r1 to [sp]
	r1 = [SD_BUS_Dir]
	r1 |= SD_BUS_Dout + SD_BUS_SCK + SD_BUS_CS
	r1 &= ~(SD_BUS_CardDetect + SD_BUS_WriteProtect + SD_BUS_Din)
	[SD_BUS_Dir] = r1
	r1 = [SD_BUS_Attrib]
	r1 |= SD_BUS_Dout + SD_BUS_SCK + SD_BUS_CS + SD_BUS_Din
	r1 &= ~(SD_BUS_CardDetect + SD_BUS_WriteProtect)
	[SD_BUS_Attrib] = r1
	r1 = [SD_BUS_Buffer]
	r1 |= SD_BUS_Dout + SD_BUS_SCK + SD_BUS_CS + SD_BUS_CardDetect + SD_BUS_WriteProtect + SD_BUS_Din
	[SD_BUS_Buffer] = r1
	pop r1 from [sp]
	retf
	.endp

//=============================================================
// 語法格式:	void SPI_SendByte(unsigned char ucByte)
// 實(shí)現(xiàn)功能:	通過SPI總線發(fā)送一個(gè)字節(jié)
// 參數(shù):		ucByte	-	要發(fā)送的數(shù)據(jù)
// 返回值:		無
//=============================================================
.public _SPI_SendByte
_SPI_SendByte:	.proc
	r1 = sp + 3
	r1 = [r1]
	r2 = 8
?L_SPI_SendByte_Lop:
	test r1, 0x0080
	jz ?L_SPI_SendByte_Bit8_0
	SPI_DOUT_SET
	jmp ?L_SPI_SendByte_Bit8_End
?L_SPI_SendByte_Bit8_0:
	SPI_DOUT_CLR
?L_SPI_SendByte_Bit8_End:
	SPI_SCK_CLR
	SPI_SCK_SET
	r1 = r1 lsl 1
	r2 -= 1
	jnz ?L_SPI_SendByte_Lop
	retf
	.endp

//=============================================================
// 語法格式:	unsigned char SPI_RecByte(void)
// 實(shí)現(xiàn)功能:	通過SPI總線接收一個(gè)字節(jié)
// 參數(shù):		無
// 返回值:		接收到的數(shù)據(jù)
//=============================================================
.public _SPI_RecByte
_SPI_RecByte:	.proc
	r1 = 0
	r2 = 8
?L_SPI_RecByte_Loop:
	SPI_SCK_CLR
	SPI_SCK_SET
	r1 = r1 lsl 1
	r3 = [SD_BUS_Data]
	test r3, SD_BUS_Din
	jz ?L_SPI_RecByte_NoAdd
	r1 += 1
?L_SPI_RecByte_NoAdd:
//	SPI_SCK_CLR
	r2 -= 1
	jnz ?L_SPI_RecByte_Loop
	retf
	.endp

//=============================================================
// 語法格式:	unsigned char SD_ChkCard(void)
// 實(shí)現(xiàn)功能:	檢測卡是否完全插入
// 參數(shù):		無
// 返回值:		1:	插入;	0:	未插入
//=============================================================
.public _SD_ChkCard
_SD_ChkCard:	.proc
	r1 = 1
	r2 = [SD_BUS_Data]
	test r2, SD_BUS_CardDetect
	jz ?L_SD_ChkCard_Exit
	r1 = 0
?L_SD_ChkCard_Exit:
	retf
	.endp

//=============================================================
// 語法格式:	unsigned char SD_ChkCardWP(void)
// 實(shí)現(xiàn)功能:	檢測卡是否有寫保護(hù)
// 參數(shù):		無
// 返回值:		1:	有寫保護(hù);	0:	沒有寫保護(hù)
//=============================================================
.public _SD_ChkCardWP
_SD_ChkCardWP:	.proc
	r1 = 0
	r2 = [SD_BUS_Data]
	test r2, SD_BUS_WriteProtect
	jz ?L_SD_ChkCardWP_Exit
	r1 = 1
?L_SD_ChkCardWP_Exit:
	retf
	.endp

//=============================================================
// 語法格式:	void SPI_CS_Assert(void)
// 實(shí)現(xiàn)功能:	拉低CS
// 參數(shù):		無
// 返回值:		無
//=============================================================
.public _SPI_CS_Assert
_SPI_CS_Assert:	.proc
	r4 = [SD_BUS_Buffer]
	r4 &= ~SD_BUS_CS
	[SD_BUS_Buffer] = r4
	retf
	.endp

//=============================================================
// 語法格式:	void SPI_CS_Deassert(void)
// 實(shí)現(xiàn)功能:	拉高CS
// 參數(shù):		無
// 返回值:		無
//=============================================================
.public _SPI_CS_Deassert
_SPI_CS_Deassert:	.proc
	r4 = [SD_BUS_Buffer]
	r4 |= SD_BUS_CS
	[SD_BUS_Buffer] = r4
	retf
	.endp

//=============================================================
// 語法格式:	void SD_SPIDelay(unsigned char ucTim)
// 實(shí)現(xiàn)功能:	SPI總線延時(shí)
// 參數(shù):		ucTim	-	延時(shí)時(shí)長
// 返回值:		無
//=============================================================
.public _SD_SPIDelay
_SD_SPIDelay:	.proc
	r1 = sp + 3
	r1 = [r1]
	jz ?L_SD_SPIDelay_Exit
	SPI_DOUT_SET
?L_SD_SPIDelay_Loop_o:
	r2 = 8
?L_SD_SPIDelay_Loop_i:
	SPI_SCK_CLR
	SPI_SCK_SET
	r2 -= 1
	jnz ?L_SD_SPIDelay_Loop_i
	r1 -= 1
	jnz ?L_SD_SPIDelay_Loop_o
?L_SD_SPIDelay_Exit:
	retf
	.endp

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文无字幕一区二区三区| 欧美一区二区网站| 美女一区二区三区| 国产精品久久久久久久久搜平片 | 亚洲精品视频在线观看网站| 日韩一区二区三区av| 91在线免费看| 国产九色精品成人porny| 天堂一区二区在线| 日韩理论电影院| 国产亚洲美州欧州综合国| 91精品欧美综合在线观看最新| 99国产欧美另类久久久精品| 国产一区啦啦啦在线观看| 亚洲1区2区3区4区| 亚洲激情综合网| 国产精品激情偷乱一区二区∴| 欧美不卡视频一区| 欧美日产在线观看| 色婷婷狠狠综合| 波波电影院一区二区三区| 国产综合色视频| 久久精品国产77777蜜臀| 日韩精品一二三四| 五月婷婷色综合| 亚洲综合色丁香婷婷六月图片| 中文字幕亚洲区| 国产精品嫩草影院com| 久久综合久久鬼色中文字| 欧美一级久久久久久久大片| 欧美三级日本三级少妇99| 91日韩在线专区| 91亚洲精品久久久蜜桃网站| 成人国产精品免费网站| 国产精品羞羞答答xxdd| 国产福利一区在线| 国产成人精品综合在线观看| 国产老妇另类xxxxx| 欧美肥妇毛茸茸| 日韩电影在线免费观看| 欧美经典一区二区| 91网上在线视频| 午夜不卡av免费| 亚洲精品免费电影| 久久久久9999亚洲精品| 欧美日韩国产小视频在线观看| 国产在线麻豆精品观看| 亚洲免费在线观看视频| 欧美成人猛片aaaaaaa| 成人av午夜影院| 麻豆国产欧美一区二区三区| 亚洲综合小说图片| 久久久夜色精品亚洲| 日韩片之四级片| 99精品黄色片免费大全| 国内精品久久久久影院一蜜桃| 精品久久一区二区三区| 精品伊人久久久久7777人| 亚洲国产精品人人做人人爽| 日韩美女视频19| 日本免费新一区视频| 欧美性猛片xxxx免费看久爱| 高清不卡在线观看av| 国产成人精品免费网站| av福利精品导航| 欧美日韩一区国产| 日韩一区二区三区四区| 久久久影视传媒| 亚洲同性gay激情无套| 夜夜亚洲天天久久| 免费人成在线不卡| 国产一区二区0| 色婷婷久久综合| 一本到不卡精品视频在线观看| 91同城在线观看| 欧美日韩和欧美的一区二区| 欧美精品视频www在线观看| 91老司机福利 在线| 99国产精品99久久久久久| 91九色最新地址| 91精品国产乱| 国产成人日日夜夜| 亚洲另类春色国产| 久久精品99国产精品日本| 国产精品18久久久久久久久| 91视频国产资源| 日韩欧美色综合网站| 亚洲视频网在线直播| 久久99精品视频| 一本久道中文字幕精品亚洲嫩| 欧美一级xxx| 亚洲小说春色综合另类电影| 国产精品123区| 欧美一级精品在线| 一区二区免费视频| 国产精品99久久久久久有的能看| 欧美视频完全免费看| 欧美国产日韩在线观看| 免费精品99久久国产综合精品| 91一区二区在线| 欧美激情一区三区| 免费欧美在线视频| 欧美性大战久久久久久久蜜臀| 久久久久久综合| 免费一区二区视频| 欧美日韩一区三区| 亚洲乱码一区二区三区在线观看| 国产精品影视在线| 在线综合视频播放| 亚洲第一福利视频在线| 99久久综合国产精品| 精品国产免费一区二区三区香蕉| 亚洲国产精品一区二区www| 99视频精品全部免费在线| 久久综合九色欧美综合狠狠| 丝袜诱惑制服诱惑色一区在线观看 | 国产女同性恋一区二区| 日本伊人色综合网| 欧美美女一区二区三区| 亚洲综合一区二区| 91捆绑美女网站| 国产精品初高中害羞小美女文| 国产一区二区在线免费观看| 日韩一区二区三区精品视频| 亚洲福利视频导航| 欧美视频在线播放| 亚洲愉拍自拍另类高清精品| 99re热这里只有精品免费视频| 国产精品色在线| 成人国产视频在线观看| 中文字幕制服丝袜一区二区三区| 成人动漫一区二区三区| 中文字幕免费观看一区| 国产成人精品在线看| 欧美激情中文不卡| 97久久超碰国产精品电影| 一区在线观看视频| 99久久精品免费看国产| 亚洲色图欧美在线| 色悠久久久久综合欧美99| 一区二区三区四区在线播放| 欧美亚州韩日在线看免费版国语版| 亚洲男人电影天堂| 欧美主播一区二区三区| 亚洲成人自拍网| 欧美一三区三区四区免费在线看 | 夜色激情一区二区| 欧美日韩一区视频| 看电影不卡的网站| 国产三级一区二区| av不卡在线播放| 亚洲成人在线网站| 精品欧美一区二区久久| 国产福利一区在线观看| 亚洲女与黑人做爰| 精品视频在线免费看| 日韩国产欧美在线观看| 久久久一区二区三区捆绑**| www.日韩精品| 亚洲国产乱码最新视频| 精品国免费一区二区三区| 高清国产一区二区三区| 亚洲最大成人网4388xx| 日韩一级精品视频在线观看| 国产乱码精品一品二品| 一区二区三区小说| 日韩欧美高清dvd碟片| 成人蜜臀av电影| 亚洲第一会所有码转帖| 国产亚洲综合av| 91精品1区2区| 国产麻豆成人传媒免费观看| 一区二区三区中文免费| 欧美va亚洲va| 91麻豆精东视频| 免费日本视频一区| 亚洲视频一区在线| 欧美一区二区三区婷婷月色| 国产成人av福利| 午夜精品久久久久久久蜜桃app| 久久午夜色播影院免费高清| 欧美亚洲国产一卡| 福利电影一区二区三区| 婷婷丁香激情综合| 国产精品视频一二三| 欧美日本高清视频在线观看| 国产成人亚洲综合a∨猫咪| 亚洲午夜激情av| 国产女人18水真多18精品一级做| 欧美日韩国产电影| 91亚洲精品久久久蜜桃网站| 久久精品国产第一区二区三区| 一区二区三区欧美日韩| 国产日产精品1区| 欧美一级午夜免费电影| av一区二区三区在线| 国产在线视频一区二区三区| 亚洲第四色夜色| 亚洲精品视频免费看| 中文字幕欧美日本乱码一线二线|