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

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

?? ver30.asm

?? 用一片單片機控制兩個直流無刷電機運轉,所以可有效的控制兩個直流無刷電機的同步運轉
?? ASM
?? 第 1 頁 / 共 5 頁
字號:
	bcf updirectionflag		;不再處于上升狀態

	bcf storeflag
	call writedatasub	;保存數據
	btfss mainflag		;不是主控制器則跳過延時
	goto upnotmainbranch
	call delay10ssub	;延時10S
	call changeparametersub	;改變系統參數	
upnotmainbranch
	movlw topstart	;計算延時數據地址
	addwf topcount,w
	movwf fsr
	movf indf,w
	movwf delaytemp
	;movwf indf		;把延時數據保存
	btfss runmodeflag
	goto modesetbranch
	bcf bottomerrorflag
	;bcf storeflag
	;call writedatasub	;保存數據
	goto downnormalrunstart	;轉到向下正常運轉
updelay10sbranch

	bcf storeflag
	call writedatasub	;保存數據
	btfss mainflag
	goto upnotmainbranch1 
	call delay10ssub	;延時10S
	call changeparametersub	;改變系統參數
upnotmainbranch1	
	movlw topstart	;計算延時數據地址
	addwf topcount,w
	movwf fsr
	movf indf,w
	movwf delaytemp
	;movwf indf		;把延時數據保存
	;incf topcount,f	;指向下一組地址
	
	btfss runmodeflag
	goto modesetbranch
	bcf storeflag
	call writedatasub	;保存數據

	goto upnormalrun	;繼續向上正常運轉

downnormalrunstart	;下降開始
	;call readdatasub	;數據重新讀取
	movf advcount,w
	movwf advcounttemp

	;movlw 3h
	;subwf topcount,f
	;clrf topcount

	bcf topflag		;不再處于頂部
	bsf downdirectionflag	;處于下降狀態
	;goto downnormalrunbranch1	
downnormalrun
downnormalrunbranch

	btfsc stopflag
	goto waitdownstartrun1
	btfsc notrunvoltagestopflag
	goto downcall1	;如由于停電引起則downcall1
	btfsc mainflag
	goto continuedownbranch	;為主控制器則直接運轉
	btfss finishflag	;一幅畫已完成?
	goto continuedownbranch	;沒有完成則應完成該幅畫
downcheckinput
	btfsc mode
	goto modeset	;處于參數設置狀態
	call voltagecomparesub ;比較電壓低于規定值則斷開蓄電池并保存數據
	btfsc startpulseinput	;檢測有沒有負脈沖發生
	goto downcheckinput
	call delaysub
	call delaysub
	btfsc startpulseinput
	goto downcheckinput
	btfsc directioninput	;是否向下運行
	goto downcheckinput	;不是則等待向下運行

continuedownbranch
	movlw d'3'
	subwf topcount,f	;指向下一組地址
	
	movlw d'1'
	subwf topcount,w	
	btfsc status,z	;判斷TOPCOUNT是否為1
	goto topcountisone
	
	movlw d'4'
	subwf topcount,f
	call getdatafromramsub	;從RAM中提取數據
	goto addspeeddatalowbranch
topcountisone
	movf bottomlow,w	;是則置0
	movwf toplow
	movwf lowspeedlow
	movf bottommed,w
	movwf topmed
	movwf lowspeedmed
	movf bottomhig,w
	movwf tophig
	movwf lowspeedhig
	movlw topstart
	movwf fsr	;第一幅畫的停留時間
	movf indf,w
	movwf delaytemp
addspeeddatalowbranch
	call addspeeddatalowsub	;計算需要減速的位置
	goto downcall
downcall1
	bcf notrunvoltagestopflag
	goto downcall
downcall2
	bcf stopflag
downcall
	bcf storeflag
	call writedatasub
	bsf pclath,3h
	call downsub		;電機下降
	bcf pclath,3h

	btfss stopflag
	goto downrunbranch1	;如沒有按停止鍵則繼續往復運轉
waitdownstartrun1
	btfsc lockerrorflag
	call lockerrorhowtodosub
	btfsc bottomerrorflag
	call bottomerrorhowtodosub
	;goto downcall2
					;如按下停止鍵則等待按下開始運行鍵
waitdownstartrun
	movlw remotemask	
	andwf remote,w	;讀取遙控器輸入數據
	movwf remotetemp		
	movlw increasekey	;是否為increasekey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z		;=0?
	goto downcall2	

	call presschangespeedkeysub	;是否按下速度變化鍵
	call writedatasub	;保存數據
	call cannotrunvoltagesub	;電壓低于規定值則關閉電源
	btfsc mode
	goto modeset	;處于參數設置狀態
	goto waitdownstartrun

downrunbranch1
	decfsz advcounttemp,f
	goto downdelay10sbranch
	bsf bottomflag	;處于最低位置
	bcf downdirectionflag	;不再處于下降狀態
	bcf storeflag
	call writedatasub	;保存數據
	btfss mainflag
	goto downnotmainbranch
	call delay10ssub	;延時10S	
	call changeparametersub	;改變系統參數
downnotmainbranch
	movlw topstart	;計算延時數據地址
	movwf fsr
	movf indf,w
	movwf delaytemp
	;movwf indf		;把延時數據保存	

	btfss runmodeflag
	goto modesetbranch
	;bcf storeflag
	;call writedatasub	;保存數據
	movlw bottommin
	movwf pulselow1
	clrf pulsemed1
	clrf pulsehig1
	bcf toperrorflag
	goto upnormalrunstart	;轉到向上正常運轉
downdelay10sbranch
	bcf storeflag
	call writedatasub	;保存數據
	btfss mainflag
	goto downnotmainbranch1
	call delay10ssub	;延時10S
	call changeparametersub	;改變系統參數
downnotmainbranch1
	movlw topstart	;計算延時數據地址
	addwf topcount,w
	movwf fsr
	movf indf,w
	movwf delaytemp
	;movwf indf		;把延時數據保存
	btfss runmodeflag
	goto modesetbranch	
	;bcf storeflag
	;call writedatasub	;保存數據
	goto downnormalrun	;繼續向下正常運轉
	return

;****************
;主控制器判斷子程序
;****************
mainchecksub
	bsf directionsignal	;7輸出高電平
	banksel trisc
	movlw b'10001111'	;0,1,2,3,7輸入,其他輸出
	movwf trisc
	banksel portc
	bcf startpulsesignal	;輸出低電平
	call delaysub
	btfss directionsignal	;判斷PORT6,PORT7是否聯在一起
	goto notmain
	bsf mainflag	;沒有聯在一起則為主控制
	;call delaysub
	;call delaysub
notmain
	banksel trisc
	movlw b'00001111'
	movwf trisc
	banksel portc
	bsf startpulsesignal
	bsf directionsignal	
	return

	

;*********************
;上限超錯誤處理子程序
;*********************
toperrorhowtodosub
	bsf systemerror
	call threehightonesub
	call delaysub
	call delaysub
	call delaysub
	call threehightonesub
	call delaysub
	call delaysub
	call delaysub
	call threehightonesub
	call delaysub
	call delaysub
	call delaysub
	return
;*********************
;下限超錯誤處理子程序
bottomerrorhowtodosub
	bsf systemerror
	call threelowtonesub
	call delaysub
	call delaysub
	call delaysub
	call threelowtonesub
	call delaysub
	call delaysub
	call delaysub
	call threelowtonesub
	call delaysub
	call delaysub
	call delaysub
	return
;********************
;按速度改變鍵子程序
;********************
presschangespeedkeysub
	movlw highspeedkey	;是否為highspeedkey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z		;=0?
	call highspeedkeysub

	movlw medspeedkey	;是否為medspeedkey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z		;=0?
	call medspeedkeysub

	movlw lowspeedkey	;是否為lowspeedkey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z		;=0?
	call lowspeedkeysub

	movlw stoptime1minkey	;是否為stoptime1minkey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z		;=0?
	call stoptime1minkeysub

	movlw stoptime5minkey	;是否為stoptime5minkey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z		;=0?
	call stoptime5minkeysub

	movlw stoptime10minkey	;是否為stoptime10minkey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z		;=0?
	call stoptime10minkeysub
	

	return
;***********************
;系統發生堵轉錯誤時處理子程序
;***********************
lockerrorhowtodosub
	bsf systemerror
	call threelowtonesub
	call delaysub
	call delaysub
	call delaysub
	call threehightonesub
	call delaysub
	call delaysub
	call delaysub
	call threelowtonesub
	call delaysub
	call delaysub
	call delaysub
waitpersondo
	call cannotrunvoltagesub
	movlw remotemask
	andwf remote,w	;讀取遙控器輸入數據
	movwf remotetemp
		
	movlw increasekey	 ;是否為increasekey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfss status,z		;=0?
	goto waitpersondo
	call delaysub
	call delaysub
	movlw remotemask
	andwf remote,w	;讀取遙控器輸入數據
	movwf remotetemp
		
	movlw increasekey	 ;是否為increasekey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z		;=0?
	goto waitpersondo
	bcf lockerrorflag
	bcf systemerror
	call threelowtonesub
	return
;**************************
;計算繼電器吸合斷開電壓子程序
;**************************
calculatevoltagesub
	bsf adcon0,go		;開始轉換
	call readadcsub		;讀取輸入電壓
	movf adcvoltage,w
	movwf turnonvoltagereg
	movwf turnoffvoltagereg
	movlw deltturnoffvoltage
	subwf turnoffvoltagereg,f	;計算實際的繼電器斷開電壓
	movlw deltturnonvoltage
	subwf turnonvoltagereg,f	;計算實際的繼電器吸合電壓
	return
;*********************
;檢查電機HALL輸入子程序
;*********************
checkhallinputsub
checkhallinputstart
				;判斷上電機霍爾元件輸入信號是否正確
	movlw upsensormask	;retain only the sensor bits
	andwf sensorport,w	;get sensor data
	btfsc status,z	;sensor=0?
	GOTO DOSYSTEMERROR	;sensor=0則錯誤燈亮
	;bsf systemerror
	xorlw b'00000111'	;sensor=7?
	btfss status,z
	goto upsensornotequal7	
	bsf systemerror	;sensor=7則錯誤燈亮
	goto dosystemerror
upsensornotequal7
	bcf systemerror	;其他則錯誤燈滅
upsensorend		
					;判斷下電機霍爾元件輸入信號是否正確
	movlw downsensormask	;retain only the sensor bits
	andwf sensorport,w	;get sensor data
	btfsc status,z	;sensor=0?
	goto dosystemerror	;sensor=0則錯誤燈亮
	;bcf systemerror
	xorlw b'00111000'	;sensor=7?
	btfss status,z
	goto downsensornotequal7
dosystemerror	
	bsf systemerror	;sensor=7則錯誤燈亮
	call threelowtonesub	;三聲低音
	;call threelowtonesub	;三聲低音
	goto checkhallinputstart
downsensornotequal7
	bcf systemerror	;其他則錯誤燈滅
	return


;**************
;改變參數子程序
;**************
changeparametersub
changeparameterstart
	btfss changeparameterflag
	return
	movlw remotemask
	andwf remote,w	;讀取遙控器輸入數據
	movwf remotetemp
		
	movlw increasekey	 ;是否為increasekey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z		;=0?
	call increasekeysub	;=0則調用increasekeysub

	movlw decreasekey	 ;是否為decreasekey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z		;=0?
	call decreasekeysub	;=0則調用decreasekeysub
	
	movlw runtomodekey	 ;是否為runtomodekey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z		;=0?
	call runtomodekeysub	;=0則調用runtomodekeysub

	movlw stopandrunkey	 ;是否為stopandrunkey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z		;=0?
	call clearchangeparameterflagsub	;=0則調用clearchangeparameterflagsub

	movlw stoptimekey	;是否為stoptimekey按鈕
	subwf remotetemp,w	;remotetemp-w
	btfsc status,z
	call stoptimekeysub		;=0則調用stoptimekeysub	

	movlw allstoptimekey	;是否為allstoptimekey按鈕
	subwf remotetemp,w		;remotetemp-w
	btfsc status,z
	call allstoptimekeysub		;=0則調用allstoptimekeysub
	
	movlw allstoptime3key	;是否為allstoptime3key按鈕
	subwf remotetemp,w		;remotetemp-w
	btfsc status,z
	call allstoptime3keysub		;=0則調用allstoptime3keysub
	
	movlw defaultspeedkey	;是否為defaultspeedkey按鈕
	subwf remotetemp,w		;remotetemp-w
	btfsc status,z
	call defaultspeedkeysub		;=0則調用defaultspeedkeysub
	
	call cannotrunvoltagesub	;低于規定電壓則需關閉系統

	btfsc mode
	bcf runmodeflag	;處于參數設置狀態
	goto changeparameterstart

	return
;********************
;從RAM中取數據子程序
;********************
getdatafromramsub
	movlw topstart	;取出比較數據
	addwf topcount,w
	movwf fsr
	movf indf,w
	movwf toplow		;停止位置
	movwf lowspeedlow	;開始減速位置
	incf fsr,f
	movf indf,w
	movwf topmed		;停止位置
	movwf lowspeedmed	;開始減速位置
	incf fsr,f
	movf indf,w
	movwf tophig		;停止位置
	movwf lowspeedhig	;開始減速位置

	incf fsr,f
	movf indf,w
	movwf delaytemp
	movlw 3h
	addwf topcount,f	;到延時數據地址
	return
;********************
;減去SPEEDDATALOWSUB
;********************
subspeeddatalowsub
	movlw speeddatalow
	subwf lowspeedlow,f	
	btfsc status,c
	goto subspeedmed	;lowspeedmed-speedatamed
	movlw 1h	;有借位則LOWSPEEDMED-1
	subwf lowspeedmed,f
	btfsc status,c
	goto subspeedmed	;lowspeedmed-speeddatamed
	decf lowspeedhig,f	;有借位則LOWSPEEDHIG-1
subspeedmed
	movlw speeddatamed
	subwf lowspeedmed,f
	btfsc status,c
	return	
	decf lowspeedhig,f	;有借位則LOWSPEEDHIG-1
	return
;********************
;增加speeddatalowsub
;********************
addspeeddatalowsub
	
addspeeddatabranch1
	movlw speeddatalow
	addwf lowspeedlow,f		;lowspeedlow+speeddatalow

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲乱码精品一二三四区日韩在线 | 国内精品免费在线观看| 国产伦理精品不卡| 色综合中文综合网| av在线一区二区| 欧美片网站yy| 中文文精品字幕一区二区| 亚洲国产精品欧美一二99| 国产精品18久久久久久久久| 欧美三级午夜理伦三级中视频| 精品精品国产高清a毛片牛牛| 亚洲日本一区二区三区| 国产精品一区二区无线| 欧美日韩一区久久| 亚洲色图欧美在线| 成人性色生活片| 精品福利在线导航| 蜜桃视频第一区免费观看| 欧美性做爰猛烈叫床潮| 亚洲美女视频在线观看| 91在线视频18| 国产精品传媒在线| 成人黄色在线视频| 国产精品传媒视频| 99久久免费精品高清特色大片| 国产网红主播福利一区二区| 韩国女主播成人在线观看| 日韩精品最新网址| 男人操女人的视频在线观看欧美 | 中文字幕一区二区三中文字幕| 精品无人区卡一卡二卡三乱码免费卡| 3d动漫精品啪啪| 欧美aa在线视频| 日韩久久精品一区| 精品一区二区免费| 久久这里只有精品首页| 国产精品2024| 综合网在线视频| 色哟哟日韩精品| 亚洲成人一区在线| 欧美一区二区三区视频| 美女一区二区视频| 久久久亚洲午夜电影| 国产寡妇亲子伦一区二区| 国产精品区一区二区三区| 91在线高清观看| 午夜视频在线观看一区二区| 欧美日韩电影在线播放| 日本不卡视频在线| 国产日韩三级在线| 色婷婷综合五月| 日韩综合小视频| 久久久久久久久99精品| 成人免费观看av| 亚洲电影欧美电影有声小说| 日韩一级片网址| 成人午夜视频福利| 亚洲一区在线观看视频| 欧美一级二级三级乱码| 国产精品自产自拍| 一区二区三区在线观看国产| 欧美日韩国产a| 国产精品亚洲а∨天堂免在线| 中文字幕一区二区三区精华液 | 成人小视频在线| 午夜精品久久久久久久蜜桃app| 欧美电影精品一区二区| 成人美女视频在线看| 亚洲一区免费观看| 久久亚洲影视婷婷| 色哟哟日韩精品| 国产精品一区二区三区乱码| 成人欧美一区二区三区白人 | 国产日韩欧美高清在线| 欧美性猛交xxxx黑人交| 韩国av一区二区三区四区| 一区二区三区四区精品在线视频| 91精品国产色综合久久ai换脸| 国产高清久久久久| 男男gaygay亚洲| 国产精品白丝在线| 精品久久久久久久一区二区蜜臀| 99精品欧美一区二区三区综合在线| 偷拍与自拍一区| 亚洲丝袜另类动漫二区| 精品国产91乱码一区二区三区| 色婷婷激情久久| 国产成人av电影| 久久国产精品第一页| 午夜精品视频一区| 亚洲精品视频一区二区| 国产婷婷精品av在线| 日韩一区二区三区四区五区六区| 一本久道久久综合中文字幕| 精品夜夜嗨av一区二区三区| 夜夜揉揉日日人人青青一国产精品| 国产欧美一区二区三区鸳鸯浴 | 欧美在线free| 91蜜桃视频在线| 成人高清伦理免费影院在线观看| 精品一二三四区| 国产一区激情在线| 免费成人结看片| 日韩国产精品大片| 亚洲不卡av一区二区三区| 一二三区精品视频| 一区二区在线免费| 中文字幕综合网| 亚洲图片另类小说| 亚洲欧洲韩国日本视频| 国产欧美一区二区精品性色超碰| 精品美女一区二区三区| 日韩视频国产视频| 日韩欧美一区二区视频| 欧美一区二区精美| 精品成人在线观看| 国产欧美日本一区二区三区| 国产拍欧美日韩视频二区| 日本一区二区高清| 国产精品久久久久久久久动漫 | 4438x成人网最大色成网站| 正在播放亚洲一区| 91精品欧美久久久久久动漫 | 久久成人免费网站| 国产一区二区h| 成人美女在线观看| 91成人在线免费观看| 欧美日本免费一区二区三区| 69精品人人人人| 精品国产一区二区三区久久久蜜月 | 欧美日韩亚洲国产综合| 欧美久久久久久久久中文字幕| 91精品国产色综合久久不卡蜜臀 | 91精品黄色片免费大全| 精品噜噜噜噜久久久久久久久试看| 日韩欧美亚洲国产精品字幕久久久| 日韩欧美中文字幕公布| 国产片一区二区| 一区二区三区.www| 欧美a一区二区| 不卡的看片网站| 欧美日韩性生活| 国产亚洲成aⅴ人片在线观看| 亚洲人精品一区| 日本女人一区二区三区| 国产精品99久久久久久似苏梦涵 | 日本不卡在线视频| 国产精品一区免费视频| eeuss国产一区二区三区| 欧美在线小视频| 欧美变态tickle挠乳网站| 中文字幕一区二区三区在线播放 | 色综合天天做天天爱| 91麻豆精品国产91久久久使用方法| 精品久久国产老人久久综合| 国产精品九色蝌蚪自拍| 三级精品在线观看| 成人性生交大片免费看在线播放 | 97精品久久久午夜一区二区三区 | 老汉av免费一区二区三区| 国产成人综合网| 欧美熟乱第一页| 久久九九99视频| 亚洲国产一区二区视频| 国产成人精品亚洲午夜麻豆| 欧美日韩一级片在线观看| 国产欧美日韩亚州综合 | 91麻豆精品国产91久久久更新时间 | 亚洲精品ww久久久久久p站 | 久久综合给合久久狠狠狠97色69| 亚洲蜜臀av乱码久久精品蜜桃| 另类小说综合欧美亚洲| 在线观看一区二区视频| 国产午夜精品一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 99热99精品| 精品不卡在线视频| 天堂av在线一区| 97久久超碰精品国产| 久久九九99视频| 久草热8精品视频在线观看| 欧美性猛交xxxx黑人交| 亚洲色图欧洲色图婷婷| 成人福利视频在线| 久久久精品蜜桃| 激情国产一区二区| 欧美一区二区性放荡片| 亚洲午夜成aⅴ人片| 成人精品高清在线| 国产日韩欧美高清在线| 精品中文字幕一区二区| 91精品国产91综合久久蜜臀| 亚洲成人一区在线| 欧美日韩免费在线视频| 亚洲综合激情小说| 欧美亚洲另类激情小说| 亚洲一区二区美女| 欧美日韩午夜在线视频| 亚洲成人av一区二区| 欧美日韩国产a|