日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
單片機(jī)控制的遙控步進(jìn)電機(jī)程序
單片機(jī)控制的遙控步進(jìn)電機(jī)程序
 更新時(shí)間:2008-7-26 19:44:55  點(diǎn)擊數(shù):3
【字體: 字體顏色

;遙控電機(jī)程序, 按遙控器0-9步進(jìn)電機(jī)正轉(zhuǎn)0-9步,按遙控器11-19步進(jìn)電器分別反轉(zhuǎn)
;0-9步,同時(shí)數(shù)碼管分別顯示當(dāng)前的數(shù)字!

;***************************************************************************
org 00h
JMP MAIN
ORG 30H
MAIN:
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
START:
JB P3.7,$ ;等待遙控信號出現(xiàn)
SB:
MOV R4,#8 ;8毫秒為高電平錯(cuò)誤
SBA:
MOV R5,#250
SBB:
JB P3.7,SXB1
DJNZ R5,SBB
DJNZ R4,SBA
MOV R4,#2
JMP SBC
SXB1:
MOV R5,#5
SXB2: ;去掉20US的尖峰干擾信號
JNB P3.7,SBB
DJNZ R5,SXB2
JMP START
SBC:
MOV R5,#250
SB1:
JB P3.7,SB2 ;2MS內(nèi)不為高電平錯(cuò)誤(監(jiān)測9MS的低電平引導(dǎo)碼)
DJNZ R5,SB1
DJNZ R4,SBC
JMP START
SB2: ;去掉20US募夥甯扇判藕?BR>MOV R5,#5
SB2_A:
JNB P3.7,SB1
DJNZ R5,SB2_A
MOV R4,#3
SB2_1:
MOV R5,#250
SB3: ;監(jiān)測4.5MS高電平,如3MS內(nèi)出現(xiàn)低電平錯(cuò)誤
JNB P3.7,SXC
DJNZ R5,SB3
DJNZ R4,SB2_1
MOV R4,#2
JMP SB3_1
SXC: ;去掉20US的尖峰干擾信號
MOV R5,#5
SXC1:
JB P3.7,SB3
DJNZ R5,SXC1
JMP START
SB3_1: ;監(jiān)測4.5MS高電平,如5MS內(nèi)不為低電平錯(cuò)誤
MOV R5,#250
SB3_2:
JNB P3.7,SB4
DJNZ R5,SB3_2
DJNZ R4,SB3_1
JMP START
SB4: ;去掉20US的尖峰干擾信號
MOV R5,#5
SB4_1:
JB P3.7,SB3_2
DJNZ R5,SB4_1
MOV R1,#1AH ;設(shè)定1AH為起始RAM區(qū)
MOV R2,#4
PP: MOV R3,#8
JJJJ:
MOV R5,#250
JJJJ2: ;1MS內(nèi)不為低電平錯(cuò)誤
JB P3.7,JJJJ3
DJNZ R5,JJJJ2
JMP START
JJJJ3:
LCALL YS1 ;高電平開始后用882微秒的時(shí)間尺去判斷信號此時(shí)的高低電平狀態(tài)
MOV C,P3.7 ;將P3.7引腳此時(shí)的電平狀態(tài)0或1存入C中
JNC UUU ;如果為0就跳轉(zhuǎn)到UUU
MOV R5,#250
JJJJ4:
JNB P3.7,UUU
NOP
DJNZ R5,JJJJ4
JMP START
UUU: MOV A,@R1 ;將R1中地址的給A
RRC A ;將C中的值0或1移入A中的最低位
MOV @R1,A ;將A中的數(shù)暫時(shí)存放在R1中
DJNZ R3,JJJJ ;接收地址碼的高8位
INC R1 ;對R1中的值加1,換成下一個(gè)RAM
DJNZ R2,PP ;接收完16位地址碼和8位數(shù)據(jù)碼和8位數(shù)據(jù)反碼,存放在1AH/1BH/1CH/1DH的RAM中
;以下對代碼是否正確和定義進(jìn)行識別
MOV A,1AH ;比較高8位地址碼
XRL A,#00000000B ;判斷1AH的值是否等于00000000,相等的話A為0
JNZ EXIT ;如果不相等說明解碼失敗退出解碼程序
MOV A,1BH ;比較低8位地址
XRL A,#11111111B ;再判斷高8位地址是否正確
JNZ EXIT ;如果不相等說明解碼失敗退出解碼程序
LCALL YS3
MOV A,1CH ;比較數(shù)據(jù)碼和數(shù)據(jù)反碼是否正確?
CPL A
XRL A,1DH ;將1CH的值取反后和1DH比較 不同則無效丟棄,核對數(shù)據(jù)是否準(zhǔn)確
JNZ EXIT ;如果不相等說明解碼失敗退出解碼程序
LCALL YS3
CLR P2.6 ;選中數(shù)碼管
CLR P3.3 ;解碼成功喇叭響?
AJMP BIJIAO
;判斷在118毫秒內(nèi)是否有連發(fā)碼
AA: MOV R1,#25
XX: ACALL YS2
JNB P3.7,HH ;跳轉(zhuǎn)到判斷連發(fā)代碼是否正確的程序段
DJNZ R1,XX
EXIT: ;對所有端口清零

AJMP START
;連發(fā)碼判斷程序段-----------
HH: MOV R6,#4
S: ACALL YS1 ;調(diào)用882微秒延時(shí)子程序
JB P3.7,EXIT ;延時(shí)882微秒后判斷P3.7腳是否出現(xiàn)高電平如果有就退出解碼程序
DJNZ R6, S ;重復(fù)4次,目的是確認(rèn)連發(fā)碼的低電平信號波形
JNB P3.7, $ ;等待高電?
LCALL YS3
AJMP AA

BIJIAO:
MOV R0,#18 ;一共18個(gè)按鍵
MOV DPTR,#TAB_REM ;遙控鍵值查表
LOOKUP_1:
MOV A,R0 ;查表偏移量
MOVC A,@A+DPTR
XRL A,1cH ;比較鍵值
JZ REM_BAK0 ;相等轉(zhuǎn)移
DJNZ R0,LOOKUP_1 ;直到18個(gè)健比較完畢
JMP EXIT ;都不對退出
REM_BAK0: ;鍵值處理
MOV A,R0 ;R0
MOV R1,A ;
SUBB A,#9 ;如果大于9則反轉(zhuǎn)并將值減去9
JC REM_BAK1 ;小余或等于9到正轉(zhuǎn)
INC A ;加1
MOV R1,A ; 查顯示碼表
MOV DPTR,#TABLE1 ;
MOVC A,@A+DPTR
MOV P0,A ;送顯示
CLR P2.6 ;開顯示

REM_REV: ;反轉(zhuǎn)程序
CALL REV
CALL delay ;轉(zhuǎn)速
DJNZ R1,REM_REV ;轉(zhuǎn)動的步數(shù)到了停止
JMP AA
REM_BAK1: ;正轉(zhuǎn)程序
NOP
MOV A,R1 ;按鍵數(shù)值判斷執(zhí)
MOV DPTR,#TABLE1 ; 查顯示碼表
MOVC A,@A+DPTR
MOV P0,A ;送顯示
CLR P2.6 ;開顯示

REM_FOR: ;正轉(zhuǎn)
CALL FOR
CALL DELAY
DJNZ R1,REM_FOR
JMP AA
for: MOV r0,#00h ;正轉(zhuǎn)到tab取碼指針初值
for1:MOV a,r0 ;取碼
MOV dptr,#table ;
MOVc a,@a+dptr
jz FOREXT ;是否到了結(jié)束碼00h
cpl a ;把a(bǔ)cc反向
MOV p1,a ;輸出到p1開始正轉(zhuǎn)
call delay ;轉(zhuǎn)動的速度
inc r0 ;取下一個(gè)碼
jmp for1 ;繼續(xù)正轉(zhuǎn)
rev:MOV r0,#05h ;反轉(zhuǎn)到tab取碼指針初值
rev1:MOV a,r0
MOV dptr,#table ;取碼
MOVc a,@a+table
jz FOREXT ;是否到了結(jié)束碼00h
cpl a ;把a(bǔ)cc反向
MOV p1,a ;輸出到p1開始反轉(zhuǎn)
call delay ;轉(zhuǎn)動的速度
inc r0 ;取下一個(gè)碼
jmp rev1 ;繼續(xù)反轉(zhuǎn)
FOREXT:
RET

YS1: MOV R4,#20 ;延時(shí)子程序1,精確延時(shí)882微秒
D1: MOV R5,#20
DJNZ R5,$
DJNZ R4,D1
RET
YS2: MOV R4,#10 ;延時(shí)子程序2,精確延時(shí)4740微秒
D2: MOV R5,#235
DJNZ R5,$
DJNZ R4,D2
RET
YS3: MOV R4,#2 ;延時(shí)程序3,精確延時(shí)1000微秒
D3:MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
RET

TAB_REM: ;遙控的鍵值
DB 00H
DB 10H,03H,01H,06H,09H,1DH,1FH,0DH,19H
DB 11H,15H,17H,12H,16H,4CH,40H,48H,04H

delay: MOV r3,#40 ;步進(jìn)電機(jī)的轉(zhuǎn)速20ms
m3: MOV r2,#248
djnz r2,$
djnz r3,m3
ret
TABLE1:db 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h;數(shù)碼管的碼表
;0 1 2 3 4 5 6 7 8 9
table:
db 03h,09h,0ch,06h ;正轉(zhuǎn)表
db 00 ;正轉(zhuǎn)結(jié)束
db 03h,06h,0ch,09h ;反轉(zhuǎn)
db 00 ;反轉(zhuǎn)結(jié)束
end

 
  • 上一篇: SST單片機(jī)用PCA功能產(chǎn)生PWM 脈沖的介紹
  • 下一篇: AT89C52中斷嵌套問題
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1