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

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

?? dig.asm

?? 利用凌陽單片機開發電機,方便制作與學習凌陽單片機
?? ASM
字號:
//======================================================
//  The information contained herein is the exclusive property of
//  Sunnnorth Technology Co. And shall not be distributed, reproduced,
//  or disclosed in whole in part without prior written permission.
//             (C) COPYRIGHT 2003  SUNNORTH TECHNOLOGY CO.
//                          ALL RIGHTS RESERVED
//  The entire notice above must be reproduced on all authorized copies.
//========================================================

//============================================================
// 文件名稱:Dig.asm
// 實現功能:4位共陰數碼管顯示驅動程序,使用IRQ4_4KHz中斷
// 日期:    2005/7/18
//============================================================

//================================================
//	LED段控制端口設定
//================================================

.DEFINE SEG_IO_Port			0		// 若LED段選使用IOA口則采用該行定義
//.DEFINE SEG_IO_Port			1		// 若LED段選使用IOB口則采用該行定義

.DEFINE SEG_IO_HighByte		0		// 若LED段選使用IO口低8位則采用該行定義
//.DEFINE SEG_IO_HighByte		1		// 若LED段選使用IO口高8位則采用該行定義

//================================================
//	LED位控制端口設定
//================================================
.DEFINE DIG_IO_Port			0		// 若LED位選使用IOA口則采用該行定義
//.DEFINE DIG_IO_Port			1		// 若LED位選使用IOB口則采用該行定義

/////-----   數碼管的位數   -----/////
.DEFINE DIG_Count			4

/////-----   數碼管每一位的控制腳設定   -----/////
.DATA
PIN_DIG:
	.DW 0x0100,0x0200,0x0400,0x0800				

/////-----   數碼管所有位的控制腳設定,應等于PIN_DIG所有數之和   -----/////
.DEFINE PIN_DIG_ALL			0x0f00					

//================================================
//	不必修改下面的定義
//================================================

.IF	SEG_IO_Port==0
	.DEFINE P_SEG_Data		0x7000
	.DEFINE P_SEG_Buf		0x7001
	.DEFINE P_SEG_Dir		0x7002
	.DEFINE P_SEG_Attrib	0x7003
.ELSE
	.DEFINE P_SEG_Data		0x7005
	.DEFINE P_SEG_Buf		0x7006
	.DEFINE P_SEG_Dir		0x7007
	.DEFINE P_SEG_Attrib	0x7008
.ENDIF

.IF SEG_IO_HighByte==0
	.DEFINE PIN_SEG_ALL		0x00ff
.ELSE
	.DEFINE PIN_SEG_ALL		0xff00
.ENDIF

.IF	DIG_IO_Port==0
	.DEFINE P_DIG_Data		0x7000
	.DEFINE P_DIG_Buf		0x7001
	.DEFINE P_DIG_Dir		0x7002
	.DEFINE P_DIG_Attrib	0x7003
.ELSE
	.DEFINE P_DIG_Data		0x7005
	.DEFINE P_DIG_Buf		0x7006
	.DEFINE P_DIG_Dir		0x7007
	.DEFINE P_DIG_Attrib	0x7008
.ENDIF

//================================================
//	中斷常量定義
//================================================

.DEFINE P_INT_Mask			0x702d
.DEFINE C_IRQ4_4KHz			0x0040


//================================================
//	變量定義
//================================================
.RAM
R_DIG_Buf:		.DW 		DIG_Count DUP (?)	// 數碼管顯示緩沖區
.IRAM
R_CurDIG:		.DW 		0xffff				// 當前顯示的數碼管位,0xffff表示不顯示

//================================================
//	公有函數聲明
//================================================
.PUBLIC F_DIG_Init
.PUBLIC _DIG_Init
.PUBLIC F_DIG_Set
.PUBLIC _DIG_Set
.PUBLIC F_DIG_SetAll
.PUBLIC _DIG_SetAll
.PUBLIC F_DIG_Get
.PUBLIC _DIG_Get
.PUBLIC F_DIG_GetAll
.PUBLIC _DIG_GetAll
.PUBLIC F_DIG_Drive
.PUBLIC _DIG_Drive
.PUBLIC F_DIG_Off
.PUBLIC _DIG_Off
.PUBLIC F_DIG_On
.PUBLIC _DIG_On

.code

//======================================================
// 函數名稱:	DIG_Init
// C調用:		void DIG_Init(void)
// 匯編調用:	F_DIG_Init
// 實現功能:   數碼管顯示初始化,該函數將開啟IRQ4_4KHz中斷
// 入口參數:	無
// 出口參數:	無
// 破壞寄存器:	無
//======================================================
_DIG_Init:
F_DIG_Init:
	push r1,bp to [sp]
	INT Off

	r1 = DIG_Count
	r2 = 0x0000
	bp = R_DIG_Buf
?DIG_InitBuf:						// 清除顯示緩沖區
	[bp++] = r2
	r1 -= 1
	jnz ?DIG_InitBuf
	[R_CurDIG] = r2					// 當前顯示的位設置為0
	
	r1 = [P_SEG_Attrib]				// 初始化段選IO
	r1 |= PIN_SEG_ALL
	[P_SEG_Attrib] = r1
	r1 = [P_SEG_Buf]
	r1 &= ~PIN_SEG_ALL
	[P_SEG_Data] = r1
	r1 = [P_SEG_Dir]
	r1 |= PIN_SEG_ALL
	[P_SEG_Dir] = r1
	
	r1 = [P_DIG_Attrib]				// 初始化位選IO
	r1 |= PIN_DIG_ALL
	[P_DIG_Attrib] = r1
	r1 = [P_DIG_Buf]
	r1 &= ~PIN_DIG_ALL
	[P_DIG_Buf] = r1
	r1 = [P_DIG_Dir]
	r1 |= PIN_DIG_ALL
	[P_DIG_Dir] = r1
	
	r1 = [P_INT_Mask]				// 開啟IRQ4_4KHz中斷
	r1 |= C_IRQ4_4KHz
	[P_INT_Mask] = r1
	INT FIQ,IRQ

	pop r1,bp from [sp]
retf

//======================================================
// 函數名稱:	DIG_Set
// C調用:		void DIG_Set(unsigned DigPos, unsigned DigBuffer)
// 匯編調用:	F_DIG_Set
// 實現功能:   設置數碼管某一位的顯示內容
// 入口參數:	DigPos(r1) - 設置的數碼管位(1~DIG_Count)
//				DigBuffer(r2) - 數碼管的顯示內容
// 出口參數:	無
// 破壞寄存器:	無
//======================================================
_DIG_Set:
	push r1,r2 to [sp]
	r1 = sp + 5
	r1 = [r1]
	r2 = sp+6
	r2 = [r2]
	call F_DIG_Set
	pop r1,r2 from [sp]
retf

F_DIG_Set:
	push bp to [sp]
.IF SEG_IO_HighByte==1
	r2 = r2 lsl 4
	r2 = r2 lsl 4
.ENDIF
	r1 -= 1
	cmp r1,DIG_Count				// 如果"位"值超出范圍則退出
	ja ?Exit
	bp = R_DIG_Buf					// 將R_DIG_Buf的相應元素修改為設定值
	bp += r1
	[bp] = r2
?Exit:
	pop bp from [sp]
retf

//======================================================
// 函數名稱:	DIG_SetAll
// C調用:		void DIG_SetAll(unsigned *DigBuffer)
// 匯編調用:	F_DIG_SetAll
// 實現功能:   設置所有數碼管的顯示內容
// 入口參數:	DigBuffer(r1) - 數碼管顯示內容的起始地址
// 出口參數:	無
// 破壞寄存器:	無
//======================================================
_DIG_SetAll:
	push bp to [sp]
	bp = sp
	r1 = [bp+4]
	call F_DIG_SetAll
	pop bp from [sp]
retf

F_DIG_SetAll:
	push r2,bp to [sp]
	bp = r1
	r2 = DIG_Count
	r3 = R_DIG_Buf
?DIG_Set_Loop:
	r1 = [bp++]						// 將R_DIG_Buf修改為設定值
.IF SEG_IO_HighByte==1
	r1 = r1 lsl 4
	r1 = r1 lsl 4
.ENDIF
	[r3++] = r1
	r2 -= 1
	jnz ?DIG_Set_Loop
	pop r2,bp from [sp]
retf

//======================================================
// 函數名稱:	DIG_Get
// C調用:		unsigned DIG_Get(unsigned DigPos)
// 匯編調用:	F_DIG_Get
// 實現功能:   獲取所有數碼管的顯示內容
// 入口參數:	DigPos(r1) - 要獲取顯示內容的位
// 出口參數:	該位數碼管的顯示內容
// 破壞寄存器:	無
//======================================================
_DIG_Get:
	push bp to [sp]
	bp = sp
	r1 = [bp+4]
	call F_DIG_Get
	pop bp from [sp]
retf

F_DIG_Get:
	push r2 to [sp]
	r2 = R_DIG_Buf
	r2 += r1
	r1 = [r2]
	pop r2 from [sp]
retf

//======================================================
// 函數名稱:	DIG_GetAll
// C調用:		unsigned *DIG_GetAll(unsigned *DigBuffer)
// 匯編調用:	F_DIG_GetAll
// 實現功能:   獲取所有數碼管的顯示內容
// 入口參數:	DigBuffer(r1) - 保存數碼管顯示內容的起始地址
// 出口參數:	保存數碼管顯示內容的起始地址
// 破壞寄存器:	無
//======================================================
_DIG_GetAll:
	push bp to [sp]
	bp = sp
	r1 = [bp+4]
	call F_DIG_GetAll
	pop bp from [sp]
retf

F_DIG_GetAll:
	push r2,bp to [sp]
	bp = r1
	r2 = DIG_Count
	r3 = R_DIG_Buf
?DIG_Get_Loop:
	r4 = [r3++]
	[bp++] = r4
	r2 -= 1
	jnz ?DIG_Get_Loop
	pop r2,bp from [sp]
retf

//======================================================
// 函數名稱:	DIG_Drive
// C調用:		void DIG_Drive(void)
// 匯編調用:	F_DIG_Drive
// 實現功能:   數碼管顯示函數,由IRQ4_4KHz中斷服務程序調用
// 入口參數:	無
// 出口參數:	無
// 破壞寄存器:	無
//======================================================
_DIG_Drive:
F_DIG_Drive:
	push r1,r4 to [sp]
	r1 = [R_CurDIG]					// 如果不顯示則直接退出
	cmp r1,0xffff
	je	?DIG_Exit
	r2 = r1 + R_DIG_Buf
	r2 = [r2]
	r2 &= PIN_SEG_ALL

	r3 = [P_DIG_Buf]				// 清除當前位顯示
	r3 &= ~PIN_DIG_ALL
	[P_DIG_Data] = r3
	
	r4 = [P_SEG_Buf]				// 段數據設置
	r4 &= ~PIN_SEG_ALL
	r4 |= r2
	[P_SEG_Data] = r4
	
	r3 = [P_DIG_Buf]				// 位數據設置
	r4 = r1 + PIN_DIG
	r3 |= [r4]
	[P_DIG_Data] = r3
	
	r1 += 1							
	cmp r1,DIG_Count
	jb ?DIG_Next					// R_CurDIG指向下一位
?DIG_Reverse:
	r1 = 0							// 若已顯示到最后一位則R_CurDIG指向第一位
?DIG_Next:
	[R_CurDIG] = r1
?DIG_Exit:
	pop r1,r4 from [sp]
retf

//======================================================
// 函數名稱:	DIG_Off
// C調用:		void DIG_Off(void)
// 匯編調用:	F_DIG_Off
// 實現功能:   停止數碼管顯示
// 入口參數:	無
// 出口參數:	無
// 破壞寄存器:	無
//======================================================
_DIG_Off:
F_DIG_Off:
	push r1 to [sp]
	r1 = [P_DIG_Buf]
	r1 &= ~PIN_DIG_ALL
	[P_DIG_Buf] = r1
	r1 = 0xffff
	[R_CurDIG] = r1
	pop r1 from [sp]
retf

//======================================================
// 函數名稱:	DIG_On
// C調用:		void DIG_On(void)
// 匯編調用:	F_DIG_On
// 實現功能:   恢復數碼管顯示
// 入口參數:	無
// 出口參數:	無
// 破壞寄存器:	無
//======================================================
_DIG_On:
F_DIG_On:
	push r1 to [sp]
	r1 = 0
	[R_CurDIG] = r1
	pop r1 from [sp]
retf

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区自拍偷拍| 99r精品视频| 麻豆传媒一区二区三区| 日韩福利视频网| 免费精品99久久国产综合精品| 亚洲在线观看免费| 亚洲不卡在线观看| 亚洲国产aⅴ成人精品无吗| 亚洲福利一二三区| 午夜精品久久久久久| 视频一区二区三区中文字幕| 日本最新不卡在线| 久久成人久久爱| 国产一区二区女| 成人久久18免费网站麻豆| 成人aaaa免费全部观看| 99这里只有久久精品视频| 日本高清不卡一区| 欧美日韩久久不卡| www日韩大片| 日韩一区在线播放| 亚洲精选在线视频| 首页欧美精品中文字幕| 免费成人小视频| 国产成人鲁色资源国产91色综| 成人18视频日本| 欧美无砖专区一中文字| 欧美一区二区三区人| 久久久久国产精品麻豆| 亚洲少妇30p| 石原莉奈在线亚洲二区| 狠狠v欧美v日韩v亚洲ⅴ| 高清shemale亚洲人妖| 91色.com| 欧美videossexotv100| 久久久久99精品国产片| 亚洲黄网站在线观看| 日本女优在线视频一区二区| 国产宾馆实践打屁股91| 91毛片在线观看| 日韩欧美一二区| 欧美国产日韩精品免费观看| 亚洲一区二区三区中文字幕 | 国产在线精品不卡| av一区二区三区在线| 欧美日韩高清在线播放| xvideos.蜜桃一区二区| 一区二区不卡在线播放| 久久99久久99精品免视看婷婷| 成人教育av在线| 8x8x8国产精品| 国产精品伦一区| 青椒成人免费视频| 99re亚洲国产精品| 久久综合999| 亚洲国产视频一区二区| 成人免费高清在线| 91精品欧美福利在线观看| 综合分类小说区另类春色亚洲小说欧美 | 欧美亚洲综合一区| 久久久久久久久久电影| 五月天亚洲精品| 成人午夜看片网址| 日韩欧美精品在线| 亚洲国产日韩av| av电影在线观看不卡| 精品国产a毛片| 亚洲mv大片欧洲mv大片精品| 成人激情开心网| 欧美www视频| 日本一区中文字幕| 91久久精品日日躁夜夜躁欧美| 26uuu国产日韩综合| 午夜精品爽啪视频| 色综合久久久久综合99| 国产亚洲人成网站| 蜜桃av一区二区三区电影| 欧美伊人久久大香线蕉综合69| 国产精品美女视频| 国产尤物一区二区| 欧美日韩日日骚| 亚洲欧美影音先锋| 风间由美性色一区二区三区| 欧美大片一区二区三区| 亚洲成人福利片| 色婷婷久久久久swag精品| 国产精品免费视频网站| 国产精品一区二区三区四区| 欧美一区二区黄| 午夜激情一区二区三区| 欧美视频一区二区三区| 亚洲欧美日韩中文字幕一区二区三区| 国产在线播放一区三区四| 欧美成人vr18sexvr| 日韩成人免费电影| 欧美精品tushy高清| 首页国产欧美久久| 欧美高清视频不卡网| 亚洲午夜免费福利视频| 欧美无砖砖区免费| 午夜精品福利久久久| 欧美高清视频www夜色资源网| 无码av免费一区二区三区试看| 欧美伊人久久久久久久久影院| 亚洲一二三四久久| 欧美日韩亚洲国产综合| 日韩精品一二三区| 538prom精品视频线放| 蜜桃视频在线一区| wwwwxxxxx欧美| 国产盗摄视频一区二区三区| 中文字幕乱码久久午夜不卡 | 色婷婷亚洲一区二区三区| 日韩美女视频一区二区| 91丝袜呻吟高潮美腿白嫩在线观看| 中文字幕亚洲精品在线观看| 成人av在线看| 亚洲一区二区视频在线观看| 欧美三级电影精品| 日韩不卡在线观看日韩不卡视频| 日韩视频免费直播| 国产麻豆精品theporn| 国产精品灌醉下药二区| 91久久精品一区二区二区| 午夜精品久久久久久不卡8050| 欧美一区二区三区小说| 激情小说欧美图片| 中文字幕中文在线不卡住| 一本色道久久综合精品竹菊| 午夜视频一区二区三区| 911精品国产一区二区在线| 久久国产视频网| 中文字幕欧美国产| 欧美伊人久久大香线蕉综合69 | 成人免费毛片aaaaa**| 一区二区三区加勒比av| 欧美一级视频精品观看| 国产大片一区二区| 亚洲图片欧美综合| 精品国精品自拍自在线| 白白色 亚洲乱淫| 亚洲成人资源网| 精品国产一二三| 色网站国产精品| 蜜桃视频第一区免费观看| 日本一区二区综合亚洲| 欧美日韩午夜在线| 国产精品一区专区| 香蕉加勒比综合久久| 国产亚洲短视频| 欧美日韩一区三区四区| 国产传媒日韩欧美成人| 一区二区三区欧美在线观看| 精品国产一二三区| 色婷婷久久99综合精品jk白丝| 寂寞少妇一区二区三区| 一区二区国产盗摄色噜噜| 久久精品人人做| 欧美精品免费视频| 成人看片黄a免费看在线| 人人狠狠综合久久亚洲| 国产精品久久久久久久蜜臀| 日韩一区二区三区免费观看| 99精品欧美一区| 久久精品72免费观看| 亚洲免费色视频| 精品福利一区二区三区免费视频| 色婷婷一区二区三区四区| 国产精品自在在线| 午夜视频在线观看一区二区三区| 国产精品美女www爽爽爽| 日韩欧美123| 欧美日韩激情一区二区三区| 成人国产精品免费观看| 国产综合一区二区| 日韩精品视频网| 亚洲综合图片区| 国产精品另类一区| 337p粉嫩大胆噜噜噜噜噜91av | 精品久久国产老人久久综合| 欧美性猛交xxxxxx富婆| 不卡一卡二卡三乱码免费网站| 看电影不卡的网站| 天天亚洲美女在线视频| 伊人夜夜躁av伊人久久| 国产精品久久影院| 久久久激情视频| 久久网这里都是精品| 日韩一区二区免费在线电影| 欧美日韩的一区二区| 在线看不卡av| 在线观看日韩毛片| 色哟哟国产精品免费观看| 成人黄色在线看| 国产91精品在线观看| 国产一区999| 国产精品一区久久久久| 国产乱人伦偷精品视频免下载| 日本va欧美va精品发布| 香港成人在线视频|