欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
求助51單片機(jī)舵機(jī)驅(qū)動(dòng)匯編程序
[打印本頁(yè)]
作者:
chydn2000
時(shí)間:
2024-12-13 16:26
標(biāo)題:
求助51單片機(jī)舵機(jī)驅(qū)動(dòng)匯編程序
讓舵機(jī)左轉(zhuǎn)動(dòng)90度,輸出1ms脈沖,然后右轉(zhuǎn)動(dòng)90度,輸出1.5MS脈沖,只使用延時(shí)可以嗎?我這樣編寫的,但有時(shí)候不能用。麻煩給姐說一下
作者:
Tonghao666
時(shí)間:
2024-12-26 09:23
假設(shè)左轉(zhuǎn)90度和右轉(zhuǎn)90度對(duì)應(yīng)的脈沖寬度1ms、PWM信號(hào)的周期為20ms,步驟:設(shè)置PWM信號(hào)的周期;根據(jù)所需的角度,設(shè)置PWM信號(hào)的高電平時(shí)間。
ORG 0000H ; 程序起始地址
LJMP START ; 跳轉(zhuǎn)到程序開始處
ORG 000BH ; 定時(shí)器0中斷向量地址
LJMP TIMER0_ISR ; 跳轉(zhuǎn)到定時(shí)器0中斷服務(wù)程序
START:
MOV TMOD, #01H ; 設(shè)置定時(shí)器0為模式1(16位定時(shí)器)
MOV TH0, #0FCH ; 定時(shí)器0高8位初值(假設(shè)周期為20ms)
MOV TL0, #66H ; 定時(shí)器0低8位初值
SETB ET0 ; 使能定時(shí)器0中斷
SETB TR0 ; 啟動(dòng)定時(shí)器0
CLR P1.0 ; 假設(shè)P1.0連接舵機(jī)控制信號(hào); 左轉(zhuǎn)90度,輸出1ms脈沖
MOV R0, #1000 ; 假設(shè)1ms需要1000個(gè)機(jī)器周期(具體根據(jù)單片機(jī)時(shí)鐘頻率算)
LCALL DELAY_MS
SETB P1.0 ; 設(shè)置P1.0為高電平
MOV R0, #9999 ; 20ms - 1ms = 19ms,假設(shè)需要9999個(gè)機(jī)器周期
LCALL DELAY_MS
CLR P1.0 ; 清除P1.0為高電平; 右轉(zhuǎn)90度,輸出1.5ms脈沖
MOV R0, #1500 ; 假設(shè)1.5ms需要1500個(gè)機(jī)器周期
LCALL DELAY_MS
SETB P1.0 ; 設(shè)置P1.0為高電平
MOV R0, #9400 ; 20ms - 1.5ms = 18.5ms,假設(shè)需要9400個(gè)機(jī)器周期
LCALL DELAY_MS
CLR P1.0 ; 清除P1.0為高電平
SJMP $ ; 無限循環(huán)
DELAY_MS:
MOV R1, R0 ; 將延時(shí)計(jì)數(shù)值存入R1
DJNZ R1, $ ; 延時(shí)循環(huán)
RET
復(fù)制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1