導航:首頁 > 操作系統 > 單片機搖桿模塊程序

單片機搖桿模塊程序

發布時間:2022-07-16 17:53:49

㈠ 搖桿驅動程序的搖桿驅動程序

該詞語最早來源於校園文化用語,詞義范圍已經超出原來的涵義。在大學文化中,這個詞語暗示一種人體本能運動,該詞條一般被賦予文件名的形式藏於電腦中,只有某一愛好的資深者,方明白此含義。這種程序多產於日本及歐美地區,而基於文化身體素質等原因,國人多偏好日系產品,其質量表現令人滿意。
有墨客騷人賦詩贊曰:蒼天有井獨自空,星落天川遙映瞳,小溪流泉映花彩,松江孤島一葉楓。
此詩以巧妙的手法蘊含該程序日系幾大著名設計開發工程師的姓名,這也表達了廣大中國使用者對她們的擁護與愛戴。

單片機程序這段代碼看不懂,求解釋

注釋如下:
uchardx1,dx2,dy1,dy2; //1正2負0中
ucharxy1,xy2; //1:0到22.5度2:22.5度到67.5度3:67.5度到90度
voidmain(void)
{
//ucharx1,x2,y1,y2;
P1M0=0x00;
P1M1=0xff;//P1設為輸入口,AD用的話必須如此

InitADC(); //初始化ADC
InitTimer0();//初始化定時器
while(1)//主循環
{

if(dx1&&dy1) //左搖桿 while(dx1==1&&dy1==1&&xy1=1);
{//以下根據變數dx1,dy1,xy1的值決定執行動作,也就是某些IO口產生周期為1秒的脈沖
if(dx1==1&&dy1==1&&xy1==1){P31=P30=0;_delay_ms(500);P31=P30=1;}
if(dx1==1&&dy1==1&&xy1==2){P31=P30=0;P32=P33=0;_delay_ms(500);P31=P30=1;P32=P33=1;}//
if(dx1==1&&dy1==1&&xy1==3){P32=P33=0;_delay_ms(500);P32=P33=1;}

if(dx1==1&&dy1==2&&xy1==1){P31=P30=0;_delay_ms(500);P31=P30=1;}
if(dx1==1&&dy1==2&&xy1==2){P34=P35=0;P31=P30=0;_delay_ms(500);P34=P35=1;P31=P30=0;}//
if(dx1==1&&dy1==2&&xy1==3){P34=P35=0;_delay_ms(500);P34=P35=1;}

if(dx1==2&&dy1==1&&xy1==1){P36=P37=0;_delay_ms(500);P36=P37=1;}
if(dx1==2&&dy1==1&&xy1==2){P32=P33=0;P36=P37=0;_delay_ms(500);P32=P33=1;P36=P37=1;}//
if(dx1==2&&dy1==1&&xy1==3){P32=P33=0;_delay_ms(500);P32=P33=1;}

if(dx1==2&&dy1==2&&xy1==1){P36=P37=0;_delay_ms(500);P36=P37=1;}
if(dx1==2&&dy1==2&&xy1==2){P34=P35=0;P36=P37=0;_delay_ms(500);P34=P35=1;P36=P37=1;}//
if(dx1==2&&dy1==2&&xy1==3){P34=P35=0;_delay_ms(500);P34=P35=1;}
}
if(dx2&&dy2) //搖桿 while(dx1==1&&dy1==1&&xy1=1);
{
if(dx2==1&&dy2==1&&xy2==1){P21=P20=0;_delay_ms(500);P21=P20=1;}
if(dx2==1&&dy2==1&&xy2==2){P21=P20=0;P22=P23=0;_delay_ms(500);P21=P20=1;P22=P23=1;}//
if(dx2==1&&dy2==1&&xy2==3){P22=P23=0;_delay_ms(500);P22=P23=1;}

if(dx2==1&&dy2==2&&xy2==1){P21=P20=0;_delay_ms(500);P21=P20=1;}
if(dx2==1&&dy2==2&&xy2==2){P24=P25=0;P21=P20=0;_delay_ms(500);P24=P25=1;P21=P20=0;}//
if(dx2==1&&dy2==2&&xy2==3){P24=P25=0;_delay_ms(500);P24=P25=1;}

if(dx2==2&&dy2==1&&xy2==1){P26=P27=0;_delay_ms(500);P26=P27=1;}
if(dx2==2&&dy2==1&&xy2==2){P22=P23=0;P26=P27=0;_delay_ms(500);P22=P23=1;P26=P27=1;}//
if(dx2==2&&dy2==1&&xy2==3){P22=P23=0;_delay_ms(500);P22=P23=1;}

if(dx2==2&&dy2==2&&xy2==1){P26=P27=0;_delay_ms(500);P26=P27=1;}
if(dx2==2&&dy2==2&&xy2==2){P24=P25=0;P26=P27=0;_delay_ms(500);P24=P25=1;P26=P27=1;}//
if(dx2==2&&dy2==2&&xy2==3){P24=P25=0;_delay_ms(500);P24=P25=1;}
}

}
}
voidTimer0Interrupt()interrupt1
{
//TH0=(65535-1000)/256;
//TL0=(65535-1000)%256;
chuli(255-zhADC(2),zhADC(3),&dx1,&dy1,&xy1);//沒有這個函數原型,所以不明所以
chuli(255-zhADC(1),zhADC(0),&dx2,&dy2,&xy2);//猜測應該是將AD轉換結果轉換為後面三個
}//變數的值

㈢ 怎麼用搖桿電位器通過單片機控制直流電機!反正轉和調速 希望友電路圖!謝謝

可以去了解一下H橋控制直流電機原理就知道怎麼控制PWM波形實現電機反轉,正轉以及停止運行。
簡單介紹:PWM=50%時,電機不轉,大於或小於50%時,電機正轉或者反轉(決定自己如何設計)占空比不一樣,電機速度不一樣。

㈣ 用單片機做街機搖桿怎麼做

先提需求,再按需求確定單片機方案,
最後一點一點實施

㈤ 想自己做滑鼠或者搖桿,需要學哪些單片機嵌入式

1.PC機編程軟體,如:C++,delphi。。。。。
2.單片機就可以實現搖桿功能了,要學。包括標准C語言
3.USB介面。搖桿驅動windows本身就能識別,只是你如何用C++打開設備,並讀寫數據的過程,要學習。

㈥ 搖桿驅動程序的介紹

搖桿驅動程序英文名為「Rocker drivingprogram,全稱為「搖桿設備驅動程序」。它是一種可以使計算機和搖桿通信的特殊程序,相當於硬體的介面,操作系統只有通過這個介面,才能控制搖桿的工作,假如某搖桿的驅動程序未能正確安裝,便不能正常工作。 因此,搖桿驅動程序被譽為「搖桿的靈魂」,「搖桿和系統之間的橋梁」等。

㈦ 單片機如何將搖桿和菜單連接

蛋蛋_rmvb閱讀數:110152010-12-26
圖形點陣式液晶可顯示用戶自定義的任意符號
和圖形,並可卷動顯示。它作為單片機系統人機交互界面的重要組成部分被廣泛應用於實時檢測和顯
示的儀器儀表中,例如手機上的顯示屏就是圖點陣液晶,採用圖形點陣式液晶顯示較之其它顯示方式主要有以下優點:
(1) 工作電壓低、功耗極低。工作電壓僅為3~
5 v ,工作電流≤10 μa/ cm2 ,特別適用於低功耗的
儀器儀表中。
(2) 液晶顯示屬被動顯示,受外界光線干擾小。
(3) 圖形點陣式液晶可顯示的信息量大、分辨
率高。
(4) 不產生電磁干擾。

(5) 可*性高,使用壽命長。

本文所介紹的lcd 採用128 ×64 點陣的液晶

屏,因此可顯示16 ×16 點陣的漢字4 行8 列。菜單
為多級嵌套形式,最長的有13 層,主要完成對某個
測點各方面的設置或查詢,可通過「向上」、「向下」、
「回退」、「確認」4 個鍵或遙控器來實現對菜單的選擇。具體功能:
「向上」鍵:在本層菜單的項目中向上移動進行
選擇;
「向下」鍵:在本層菜單的項目中向下移動進行
選擇;
「回退」鍵:取消本層的菜單設置,返回上層菜
單;
「確認」鍵:確認本層的菜單設置,進入下級菜單。

可根據用戶在菜單中的選擇項對測點進行某些

設置,或者進行某些特殊的顯示,例如對某個測點的實時曲線顯示等。
程序設計根據需求,首先建立一個結構,並定義一個結構變數kbdtabst ruct 。結構變數就是把多個不同類型的變數結合在一起形成的一個組合型變數,構一個結構的各個變數稱為結構元素。該結構中共有6 個結構元素,分別是5 個字元型和1 個指針變數5 個字元型變數分別為當前及各個按鍵的索引號,也就是*作的狀態號,最後1 個指針變數指向需執行函數。這樣就可以做一個結構數組,在結構數組,里為每一個菜單項編制一個單獨的函數,並根據菜,單的嵌套順序排好本菜單項的索引號,以及本級菜單項的上、下卷動的索引號和上、下級菜單的索引

㈧ 請問,用keil單片機編程 如何編船模的 PS2雙軸搖桿 的程序,來控制電機和舵機呢跪求

第一,建議stm32,或msp,或NXP的32位單片機走起。
如果你是用的是手柄的話,那個按照數據格式來讀取(這個是自帶無線的,不需要你自己搞定無線通信)。
如果你是一個個的模塊的話,遙桿模塊一個要兩路ADC(有可能還要一個按鍵),然後使用無線模塊,自己再寫一下協議。收那邊再寫一下。
但是不論哪種,對程序能力要求都比較高。

㈨ 用搖桿和adc0809控制8*8點陣顯示任意一個點。使用51單片機

你把這兩個程序合起來改下就差不多咯!時間忙 只能把自己以前學的子程序給你咯
; :1602顯示
LCD_RS EQU P2.0
LCD_RW EQU P2.1
LCD_EN EQU P2.2
LCD_DATA EQU P0

;*******************************************************************
ORG 0000H
AJMP MAIN
ORG 0030H
;*******************************************************************
MAIN:
MOV SP,#60H
ACALL LCD_INIT ;LCD初始化
MAIN1:
ACALL CLR_LCD ;清LCD
MOV A,#90H ;在第一行第17列的位置
ACALL LCD_CMD
MOV DPTR,#LINE1 ;第一行字元串的起始地址送入DPTR。
ACALL WRITE
MOV A,#0D0H ;在第二行第17列的位置
ACALL LCD_CMD
MOV DPTR,#LINE2 ;第二行字元串的起始地址送入DPTR。
ACALL WRITE

MOV R3,#10H ;向左移動16格
LOOPA:
MOV A,#18H ;字元同時左移一格
ACALL LCD_CMD
MOV R5,#03H ;延時375MS
ACALL DELAY125MS
DJNZ R3,LOOPA

ACALL DELAY4 ;延時1.6s
ACALL DELAY4
MOV R4,#02H ;設置閃爍次數
ACALL FLASH ;開始閃爍
AJMP MAIN1

LINE1:
DB "YALONG:",00H
LINE2:
DB "welcome you!",00H

;***************************************************************
;LCD初始化設定子程序
;***************************************************************
LCD_INIT:
ACALL DELAY5MS ;延時15MS
ACALL DELAY5MS ;等待LCD電源穩定
ACALL DELAY5MS

MOV A,#38H ;16*2顯示,5*7點陣,8位數據
ACALL LCD_CMD_NC ;不進行LCD忙檢測
ACALL DELAY5MS

MOV A,#38H ;16*2顯示,5*7點陣,8位數據
ACALL LCD_CMD_NC ;不進行LCD忙檢測
ACALL DELAY5MS

MOV A,#38H ;16*2顯示,5*7點陣,8位數據
ACALL LCD_CMD_NC ;不進行LCD忙檢測
ACALL DELAY5MS

MOV A,#08H ;顯示關
ACALL LCD_CMD ;進行LCD忙檢測

MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;進行LCD忙檢測

MOV A,#0CH ;顯示開,關游標
ACALL LCD_CMD ;進行LCD忙檢測

RET
;***************************************************************
;清LCD子程序
;***************************************************************
CLR_LCD:
MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;進行LCD忙檢測
RET

;***************************************************************
;寫指令數據到LCD
;RS=L,RW=L,D0-D7=指令碼,E=高脈沖
;***************************************************************
LCD_CMD:
CALL CHECKBUSY
LCD_CMD_NC:
CLR LCD_RS
CLR LCD_RW
MOV LCD_DATA,A
SETB LCD_EN
NOP
NOP
NOP
NOP
CLR LCD_EN
RET
;***************************************************************
;寫顯示數據到LCD
;RS=H,RW=L,D0-D7=數據,E=高脈沖
;***************************************************************
LCD_WDATA:
ACALL CHECKBUSY
SETB LCD_RS
CLR LCD_RW
MOV LCD_DATA,A
SETB LCD_EN
NOP
NOP
NOP
NOP
CLR LCD_EN
RET
;***************************************************************
;檢測LCD控制器忙狀態
;讀數據
;RS=L,RW=H,E=H,輸出:D0-D7=數據
;LCD_DATA.7=1,LCD忙,等待。LCD_DATA.7=0,LCD閑,可以進行讀寫操作。
;***************************************************************
CHECKBUSY:
PUSH ACC
MOV LCD_DATA,#0FFH
CLR LCD_RS
SETB LCD_RW
SETB LCD_EN
BUSYLOOP:
NOP
JB LCD_DATA.7,BUSYLOOP
CLR LCD_EN
POP ACC
RET
;***************************************************************
; 發送字元串子程序
;***************************************************************
WRITE:
PUSH ACC
WRITE1:
CLR A
MOVC A,@A+DPTR
JZ WRITE2
INC DPTR
ACALL LCD_WDATA
JMP WRITE1
WRITE2:
POP ACC
RET
;***************************************************************
;閃爍子程序
;***************************************************************
FLASH:
MOV A,#08H ;關閉顯示
ACALL LCD_CMD
ACALL DELAY4
MOV A,#0CH ;開顯示,關閉游標
ACALL LCD_CMD
ACALL DELAY4
DJNZ R4,FLASH
RET
;***************************************************************
;延時5MS子程序
;LCD初始化使用
;***************************************************************
DELAY5MS:
MOV R6,#10
DL1:
MOV R7,#249
DL2:
DJNZ R7,DL2
DJNZ R6,DL1
RET
;***************************************************************
;延時125MS子程序
;字元串移動時使用
;***************************************************************
DELAY125MS:
DL3:
MOV R6,#250
DL4:
MOV R7,#249
DL5:
DJNZ R7,DL5
DJNZ R6,DL4
DJNZ R5,DL3
RET
;***************************************************************
;延時800MS子程序
;閃爍時使用
;***************************************************************
DELAY4:
MOV R5,#40
DL6:
MOV R6,#100
DL7:
MOV R7,#100
DL8:
DJNZ R7,DL8
DJNZ R6,DL7
DJNZ R5,DL6
RET
;***************************************************************
ENd
; ADC0809子程序
; 引腳定義
ADC_EOC EQU P2.0
ADC_CS EQU P2.1
ADC_RD EQU P2.2
ADC_WR EQU P2.3

ADC_DATA EQU P0

ORG 0000H
AJMP MAIN

ORG 0030H
MAIN:
SETB ADC_EOC
SETB ADC_WR
SETB ADC_RD
SETB ADC_CS

CLR ADC_CS ;START and ALE is H
CLR ADC_WR
NOP
NOP
NOP
SETB ADC_WR
SETB ADC_CS
NOP
JB ADC_EOC,$ ; JNB ADC_EOC,$
CLR ADC_CS
CLR ADC_RD
MOV ADC_DATA,#0FFH
MOV A,ADC_DATA
SETB ADC_RD
SETB ADC_CS

CJNE A,#00H,BELL
INC A

BELL:
MOV R5,A
BELL1: ACALL DELAY
DJNZ R5,BELL1
CPL P2.7
AJMP MAIN

DELAY:
MOV R7,#02H
D1:
MOV R6,#0FFH
DJNZ R6,$
DJNZ R7,D1
RET

END

㈩ arino+nrf24l01搖桿控制小車程序

NRF24L01作為雙工的通信模塊,可以幫助你通過遙感將指令發送到小車。
首先你要清楚遙感發出來的信號,然後再小車接收之後能夠順利的解析並做出反應。
其次就是通信模塊需要保證通信順暢,它有很多個寄存器,但是常用的不多,比如工作方式、地址等等設置好了之後直接往數據寄存器賦值發送即可。
具體的使用方法可以參考以下文章,寫得很詳細,有示例代碼以及原廠配套手冊,相信看一下然後根據常式改改應該可以使用。
希望能夠幫到你
祝你的問題早日得到解決~~

文章地址:http://blog.csdn.net/mc_hust/article/details/39473913

閱讀全文

與單片機搖桿模塊程序相關的資料

熱點內容
app怎麼交付 瀏覽:341
圖蟲app怎麼才能轉到金幣 瀏覽:173
如何做徵文app 瀏覽:444
用什麼app管理斐訊 瀏覽:167
安卓如何下載寶可夢劍盾 瀏覽:164
編譯器開發屬於哪個方向 瀏覽:938
megawin單片機 瀏覽:685
以色列加密貨幣監督 瀏覽:907
程序員前端現在怎麼樣 瀏覽:497
伺服器和介面地址ping不通 瀏覽:555
linux命令返回上級目錄 瀏覽:897
移動花卡寶藏版為什麼不能選免流app 瀏覽:255
速騰carplay怎麼用安卓 瀏覽:13
紅塔銀行app怎麼樣 瀏覽:564
農行app怎麼開網銀 瀏覽:651
java迭代器遍歷 瀏覽:303
閩政通無法請求伺服器是什麼 瀏覽:48
怎麼做積木解壓神器 瀏覽:205
王者榮耀解壓玩具抽獎 瀏覽:49
12位是由啥加密的 瀏覽:872