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

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

?? dcmotor.asm

?? 利用凌陽單片機開發(fā)電機,方便制作與學習凌陽單片機
?? 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.
//========================================================

//============================================================
// 文件名稱:DCMotor.asm
// 實現(xiàn)功能:SPGT62C19B的直流電機驅動程序,使用IRQ4_4KHz中斷
// 日期:    2005/7/18
//============================================================

//================================================
//	SPGT62C19B控制端口設定
//================================================

/////-----       若使用IOA則使用下面的定義	    -----/////
//.define P_Motor_Data	0x7000
//.define P_Motor_Buf		0x7001
//.define P_Motor_Dir		0x7002
//.define P_Motor_Attr	0x7003

/////-----       若使用IOB則使用下面的定義	    -----/////
.define P_Motor_Data	0x7005
.define P_Motor_Buf		0x7006
.define P_Motor_Dir		0x7007
.define P_Motor_Attr	0x7008

//================================================
//	SPGT62C19B控制引腳設定
//================================================

//			bit:	FEDCBA9876543210
.define PIN_I01		0000000000001000b		//IO PIN 3
.define PIN_I11		0000000000100000b		//IO PIN 5
.define PIN_PH1		0000000000000001b		//IO PIN 0
.define PIN_I02		0000000000010000b		//IO PIN 4
.define PIN_I12		0000000001000000b		//IO PIN 6
.define PIN_PH2		0000000000000010b		//IO PIN 1
.define PIN_SPD		0000000000000100b		//IO PIN 2
.define PIN_MOTOR	PIN_I01+PIN_I11+PIN_PH1+PIN_I02+PIN_I12+PIN_PH2

//================================================
//	速度檢測去抖動時間設定,單位為1/4096秒
//================================================

.define MOTOR_DEBOUNCE	10

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

.define P_INT_Mask		0x702d
.define C_IRQ4_4KHz		0x0040

//================================================
//	變量定義
//================================================

.iram
/////-----       電機驅動狀態(tài)變量	    -----/////
.var Motor_Status = 0x00ff	// b15: Enable Motor2
							// b14: Enable Motor1
							// b13: Motor2 Direction. 0-Fwd, 1-Bwd
							// b12: Motor1 Direction
							// b11\
							//  |   Motor2 Speed Level(0~63)
							// b06/
							// b05\
							//  |   Motor1 Speed Level(0~63)
							// b00/
.var Motor_PWM_Cnt = 0x0000	// IO模擬PWM寬度計數(shù),b11~b6:Motor2; b5~b0:Motor1

/////-----       電機速度檢測相關變量	    -----/////
.var Motor_Timer_Cnt = 0	// 定時器計數(shù)值
.var Motor_Pulse_Cnt = 0	// 速度檢測脈沖計數(shù)值
.var Motor_Pulse_Deb = 0	// 速度檢測脈沖去抖動計數(shù)
.var Motor_Speed = 0x00		// 電機速度

//================================================
//	公有函數(shù)聲明
//================================================
.public _DCMotor_Init
.public F_DCMotor_Init
.public _DCMotor_SetSpeed
.public F_DCMotor_SetSpeed
.public _DCMotor_Forward
.public F_DCMotor_Forward
.public _DCMotor_Backward
.public F_DCMotor_Backward
.public _DCMotor_Drive
.public F_DCMotor_Drive
.public _DCMotor_Stop
.public F_DCMotor_Stop
.public _DCMotor_GetSpeed
.public F_DCMotor_GetSpeed

.code
//======================================================
// 函數(shù)名稱:	DCMotor_Init
// C調(diào)用:		void DCMotor_Init(void)
// 匯編調(diào)用:	F_DCMotor_Init
// 實現(xiàn)功能:   直流電機驅動初始化
// 入口參數(shù):	無
// 出口參數(shù):	無
// 破壞寄存器:	無
//======================================================
_DCMotor_Init:
F_DCMotor_Init:
	push r1 to [sp]

	r1 = [P_Motor_Attr]						// 初始化IO
	r1 |= PIN_MOTOR
	r1 &= ~PIN_SPD
	[P_Motor_Attr] = r1
	r1 = [P_Motor_Dir]
	r1 |= PIN_MOTOR
	r1 &= ~PIN_SPD
	[P_Motor_Dir] = r1
	r1 = [P_Motor_Buf]
	r1 |= PIN_MOTOR
	r1 &= ~PIN_SPD
	[P_Motor_Data] = r1

	r1 = 0x0000
	[Motor_Status] = r1
	[Motor_PWM_Cnt] = r1
	[Motor_Speed] = r1
	[Motor_Pulse_Cnt] = r1
	[Motor_Pulse_Deb] = r1
	[Motor_Timer_Cnt] = r1

	r1 = [P_INT_Mask]
	r1 |= C_IRQ4_4KHz
	[P_INT_Mask] = r1
	IRQ ON

	pop r1 from [sp]
retf

//======================================================
// 函數(shù)名稱:	DCMotor_SetSpeed
// C調(diào)用:		void DCMotor_SetSpeed(unsigned Motor,unsigned Speed)
// 匯編調(diào)用:	F_DCMotor_SetSpeed
// 實現(xiàn)功能:   設定電機轉速等級
// 入口參數(shù):	Motor(R1) - 選擇對哪個直流電機接口進行轉速等級設定:
//					MOTOR_1		直流電機接口1
//					MOTOR_2		直流電機接口1
//				Speed(R2) - PWM占空比,范圍0-63,單位1/64
// 出口參數(shù):	無
// 破壞寄存器:	無
//======================================================
_DCMotor_SetSpeed:
	push r1,r2 to [sp]
	r1 = sp + 6
	r2 = [r1--]
	r1 = [r1]
	call F_DCMotor_SetSpeed
	pop r1,r2 from [sp]
retf

F_DCMotor_SetSpeed:
	push r3 to [sp]
	r2 &= 0x003f
	r3 = [Motor_Status]
	cmp r1,1
	je ?Motor1
	cmp r1,2
	je ?Motor2
	cmp r1,3
	jne ?Exit
?Motor1:
	r3 &= ~0x003f
	r3 |= r2
	cmp r1,3
	jne ?Motor_SaveStatus
?Motor2:
	r2 = r2 LSL 4
	r2 = r2 LSL 2
	r3 &= ~0x0FC0
	r3 |= r2
?Motor_SaveStatus:
	[Motor_Status] = r3
	r3 = 0
	[Motor_PWM_Cnt] = r3
?Exit:	
	pop r3 from [sp]
retf

//======================================================
// 函數(shù)名稱:	DCMotor_Forward
// C調(diào)用:		void DCMotor_Forward(unsigned Motor)
// 匯編調(diào)用:	F_DCMotor_Forward
// 實現(xiàn)功能:   使電機正向轉動
// 入口參數(shù):	Motor(R1) - 設定正向轉動的電機:
//					MOTOR_1		電機1
//					MOTOR_2		電機2
// 出口參數(shù):	無
// 破壞寄存器:	無
//======================================================
_DCMotor_Forward:
	push r1 to [sp]
	r1 = sp + 4
	r1 = [r1]
	call F_DCMotor_Forward
	pop r1 from [sp]
retf

F_DCMotor_Forward:
	push r2,r3 to [sp]
	r2 = [Motor_Status]
	cmp r1,1
	je ?Motor1
	cmp r1,2
	je ?Motor2
	cmp r1,3
	jne ?Exit
?Motor1:
	r3 = [P_Motor_Buf]
	r3 &= ~PIN_PH1
	[P_Motor_Data] = r3
	r2 &= ~0x1000
	r2 |= 0x4000
	cmp r1,3
	jne ?Motor_SaveStatus
?Motor2:
	r3 = [P_Motor_Buf]
	r3 &= ~PIN_PH2
	[P_Motor_Data] = r3
	r2 &= ~0x2000
	r2 |= 0x8000
?Motor_SaveStatus:
	[Motor_Status] = r2
	r2 = 0
	[Motor_PWM_Cnt] = r2
?Exit:	
	pop r2,r3 from [sp]
retf

//======================================================
// 函數(shù)名稱:	DCMotor_Backward
// C調(diào)用:		void DCMotor_Backward(unsigned Motor)
// 匯編調(diào)用:	F_DCMotor_Backward
// 實現(xiàn)功能:   使電機反向轉動
// 入口參數(shù):	Motor(R1) - 設定反向轉動的電機:
//					MOTOR_1		電機1
//					MOTOR_2		電機2
// 出口參數(shù):	無
// 破壞寄存器:	無
//======================================================
_DCMotor_Backward:
	push r1 to [sp]
	r1 = sp + 4
	r1 = [r1]
	call F_DCMotor_Backward
	pop r1 from [sp]
retf

F_DCMotor_Backward:
	push r2,r3 to [sp]
	r2 = [Motor_Status]
	cmp r1,1
	je ?Motor1
	cmp r1,2
	je ?Motor2
	cmp r1,3
	jne ?Exit
?Motor1:
	r3 = [P_Motor_Buf]
	r3 |= PIN_PH1
	[P_Motor_Data] = r3
	r2 |= 0x5000
	cmp r1,3
	jne ?Motor_SaveStatus
?Motor2:
	r3 = [P_Motor_Buf]
	r3 |= PIN_PH2
	[P_Motor_Data] = r3
	r2 |= 0xA000
?Motor_SaveStatus:
	[Motor_Status] = r2
	r2 = 0
	[Motor_PWM_Cnt] = r2
?Exit:	
	pop r2,r3 from [sp]
retf

//======================================================
// 函數(shù)名稱:	DCMotor_Stop
// C調(diào)用:		void DCMotor_Stop(unsigned Motor)
// 匯編調(diào)用:	F_DCMotor_Stop
// 實現(xiàn)功能:   直流電機停止轉動
// 入口參數(shù):	Motor(R1) - 需要停轉的電機
//					MOTOR_1		電機1
//					MOTOR_2		電機2
// 出口參數(shù):	無
// 破壞寄存器:	無
//======================================================
_DCMotor_Stop:
	push r1 to [sp]
	r1 = sp + 4
	r1 = [r1]
	call F_DCMotor_Stop
	pop r1 from [sp]
retf

F_DCMotor_Stop:
	push r2 to [sp]
	cmp r1,1
	je	?Motor1
	cmp r1,2
	je	?Motor2
	cmp r1,3
	jne ?Exit
?Motor1:
	r2 = [P_Motor_Buf]
	r2 |= PIN_I01 + PIN_I02
	[P_Motor_Buf] = r2
	r2 = [Motor_Status]
	r2 &= ~0x4000
	[Motor_Status] = r2
	cmp r1,3
	jne ?ClearSpeed
?Motor2:
	r2 = [P_Motor_Buf]
	r2 |= PIN_I11 + PIN_I12
	[P_Motor_Buf] = r2
	r2 = [Motor_Status]
	r2 &= ~0x8000
	[Motor_Status] = r2
?ClearSpeed:
	r2 = 0
	[Motor_Speed] = r2
?Exit:
	pop r2 from [sp]
retf

//======================================================
// 函數(shù)名稱:	DCMotor_Drive
// C調(diào)用:		void DCMotor_Drive(void)
// 匯編調(diào)用:	F_DCMotor_Drive
// 實現(xiàn)功能:   產(chǎn)生PWM波形,在IRQ4_4KHz中斷服務程序中調(diào)用
// 入口參數(shù):	無
// 出口參數(shù):	無
// 破壞寄存器:	無
//======================================================
_DCMotor_Drive:
F_DCMotor_Drive:
	push r1,r5 to [sp]
	r1 = [Motor_Status]
	test r1,0xC000
	jnz	?Motor_ChkPulse
	goto ?Exit
?Motor_ChkPulse:							// 速度檢測
	r2 = [P_Motor_Data]
	r2 &= PIN_SPD
	jz	?Motor_Pulse
	r2 = 0
	[Motor_Pulse_Deb] = r2
	jmp ?Motor_GetSpeed
?Motor_Pulse:
	r2 = [Motor_Pulse_Deb]
	jnz	?Motor_Pulse_Old
	r3 = [Motor_Pulse_Cnt]
	r3 += 1
	[Motor_Pulse_Cnt] = r3
?Motor_Pulse_Old:
	r2 += 1
	[Motor_Pulse_Deb] = r2
?Motor_GetSpeed:
	r4 = [Motor_Timer_Cnt]
	r4 += 1
	cmp r4, 2048
	jb ?Motor_Drive
	r5 = [Motor_Pulse_Cnt]
	r5 = r5 LSR 1
	[Motor_Speed] = r5
	r5 = 0
	[Motor_Pulse_Cnt] = r5
	r4 = 0
?Motor_Drive:								// PWM發(fā)生
	[Motor_Timer_Cnt] = r4
	r4 = [Motor_PWM_Cnt]
	r5 = [P_Motor_Buf]
?Motor1:
	r2 = r1&0x003f
	r3 = r4&0x003f
	cmp r3,r2
	jae ?Motor1_PWM_Low
?Motor1_PWM_High:
	r5 &= ~(PIN_I11+PIN_I01)
	jmp ?Motor1_PWM_Next
?Motor1_PWM_Low:
	r5 |= (PIN_I11+PIN_I01)
?Motor1_PWM_Next:
	r3 += 1
	r3 &= 0x003f
	r4 &= ~0x003f
	r4 |= r3
?Motor2:
	r2 = r1 & 0x0fc0
	r3 = r4 & 0x0fc0
	cmp r3,r2
	jae ?Motor2_PWM_Low
?Motor2_PWM_High:
	r5 &= ~(PIN_I12+PIN_I02)
	jmp ?Motor2_PWM_Next
?Motor2_PWM_Low:
	r5 |= PIN_I12+PIN_I02
?Motor2_PWM_Next:
	r3 += 0x0040
	r3 &= 0x0fc0
	r4 &= ~0x0fc0
	r4 |= r3
?Motor_Update:
	[Motor_PWM_Cnt] = r4
	[P_Motor_Data] = r5
?Exit:
	pop r1,r5 from [sp]
retf

//======================================================
// 函數(shù)名稱:	DCMotor_GetSpeed
// C調(diào)用:		unsigned DCMotor_GetSpeed(void)
// 匯編調(diào)用:	F_DCMotor_GetSpeed
// 實現(xiàn)功能:   獲取電機轉速
// 入口參數(shù):	無
// 出口參數(shù):	r1 - 測得的電機轉速值,單位(轉/秒)
// 破壞寄存器:	無
//======================================================
_DCMotor_GetSpeed:
F_DCMotor_GetSpeed:
	r1 = [Motor_Speed]
retf

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线视频网址| 成人av在线一区二区| 国产精品色哟哟网站| 欧美日韩亚洲另类| 成人激情校园春色| 裸体一区二区三区| 亚洲妇女屁股眼交7| 久久精品亚洲精品国产欧美kt∨| 欧洲精品一区二区三区在线观看| 国产精品中文有码| 欧美bbbbb| 性感美女久久精品| 亚洲黄色在线视频| 国产精品久久久久久亚洲毛片 | 欧美日韩一区二区三区在线| 国产iv一区二区三区| 麻豆传媒一区二区三区| 日日夜夜精品视频天天综合网| 亚洲欧洲成人自拍| 欧美激情一区二区三区| 精品三级av在线| 欧美日韩成人激情| 欧美四级电影网| 成人免费毛片嘿嘿连载视频| 韩国女主播成人在线| 久色婷婷小香蕉久久| 日韩激情一区二区| 日韩激情一二三区| 免费成人深夜小野草| 视频在线观看国产精品| 亚洲成av人片| 午夜激情综合网| 日韩精品免费视频人成| 日本不卡123| 久久99精品国产| 国产一区欧美一区| 国产乱码字幕精品高清av | 欧美男同性恋视频网站| 在线精品视频小说1| 色婷婷国产精品久久包臀| 一本大道av伊人久久综合| 色综合久久中文综合久久97| 一本久久精品一区二区| 欧美综合亚洲图片综合区| 色欧美88888久久久久久影院| 色哦色哦哦色天天综合| 欧洲精品在线观看| 欧美日韩三级视频| 日韩一二三四区| 亚洲精品在线网站| 26uuu亚洲综合色| 欧美国产一区视频在线观看| 国产精品大尺度| 伊人色综合久久天天人手人婷| 亚洲综合色噜噜狠狠| 亚洲国产精品影院| 麻豆91在线看| 丰满放荡岳乱妇91ww| 91香蕉视频mp4| 欧美老肥妇做.爰bbww视频| 欧美一级精品大片| 国产视频一区二区三区在线观看| 亚洲不卡在线观看| 国产精品中文字幕日韩精品| 一区二区三区高清在线| 国产精品乱人伦中文| 亚洲444eee在线观看| 日本不卡中文字幕| 国产欧美1区2区3区| 日韩一级高清毛片| 欧美一区二区视频在线观看2022| 久久亚洲免费视频| 亚洲黄色av一区| 精久久久久久久久久久| 国产乱码精品一区二区三区忘忧草| 丰满放荡岳乱妇91ww| 在线精品视频一区二区三四| 久久色.com| 婷婷久久综合九色国产成人| 国产麻豆视频精品| 欧美一区二区三区喷汁尤物| 亚洲精品乱码久久久久久日本蜜臀| 亚洲一区二区三区四区在线免费观看| 一区二区三区四区不卡视频| 亚洲大片免费看| 国产精品动漫网站| 亚洲国产日韩a在线播放性色| 老鸭窝一区二区久久精品| 丁香婷婷综合色啪| 91精品国产综合久久蜜臀| 国产精品乱人伦一区二区| 视频一区免费在线观看| 波多野结衣亚洲| 日韩一级片在线播放| 伊人色综合久久天天人手人婷| 精品一区精品二区高清| 色天使久久综合网天天| 久久精品免视看| 日本在线不卡视频| 欧美在线观看视频一区二区三区| 久久精品人人爽人人爽| 五月天欧美精品| 99re免费视频精品全部| 久久久亚洲高清| 日一区二区三区| 色狠狠桃花综合| 国产精品三级电影| 美国欧美日韩国产在线播放| 欧美中文字幕不卡| 中文字幕五月欧美| 国产成人综合网| 26uuu国产在线精品一区二区| 亚洲第一成人在线| 色婷婷综合在线| 国产精品久久久爽爽爽麻豆色哟哟| 久久精品国内一区二区三区| 欧美精品18+| 亚洲国产成人91porn| 色一情一乱一乱一91av| 国产精品视频麻豆| 国产成人精品亚洲日本在线桃色 | 高清不卡一区二区| 欧美成人艳星乳罩| 免费欧美在线视频| 67194成人在线观看| 婷婷国产v国产偷v亚洲高清| 在线视频一区二区三| 亚洲你懂的在线视频| 91小宝寻花一区二区三区| 中文字幕日韩一区二区| 成人高清av在线| 亚洲国产精品国自产拍av| 国产成a人亚洲| 日本一区二区视频在线| 懂色中文一区二区在线播放| 国产欧美一区二区三区在线老狼| 国产一区二区三区黄视频 | 欧美成人精品高清在线播放| 久久99精品视频| 久久久精品黄色| 国产不卡视频在线观看| 亚洲国产精品成人综合色在线婷婷 | 久久久噜噜噜久噜久久综合| 国产一区二区三区在线观看免费 | 亚洲国产精华液网站w | 欧美挠脚心视频网站| 日本不卡一区二区三区| 欧美变态口味重另类| 国产福利精品导航| 国产精品久久久久久亚洲毛片 | 久久av资源网| 久久久精品黄色| 91农村精品一区二区在线| 一区二区三区在线观看国产 | 欧美xxxxx牲另类人与| 国产精品一区二区果冻传媒| 国产精品人人做人人爽人人添| av高清不卡在线| 亚洲电影你懂得| www久久久久| 91香蕉视频mp4| 日韩极品在线观看| 国产日韩欧美高清在线| 色综合久久天天| 天天av天天翘天天综合网色鬼国产| 91精品国产欧美一区二区18| 国产在线一区二区| 亚洲人精品午夜| 日韩亚洲欧美一区二区三区| 国产成人综合在线播放| 一区二区三区在线免费视频| 日韩欧美国产电影| av电影在线不卡| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品三级电影| 3atv一区二区三区| 成人一级片在线观看| 亚洲高清不卡在线| 亚洲国产成人在线| 欧美一区午夜精品| 暴力调教一区二区三区| 日本一区中文字幕| 亚洲婷婷在线视频| 日韩美女主播在线视频一区二区三区| 粉嫩嫩av羞羞动漫久久久| 午夜精品福利久久久| 国产精品理论片在线观看| 91精品国产综合久久香蕉麻豆| 成人h精品动漫一区二区三区| 丝袜美腿亚洲一区| 日韩美女视频一区二区| 久久影院电视剧免费观看| 欧美在线观看视频一区二区三区| 国产 欧美在线| 午夜激情一区二区| 中文字幕一区二区三区在线观看| 精品久久久久久最新网址| 欧美午夜影院一区| 91视频一区二区三区| 国产一区福利在线|