导航:首页 > 操作系统 > 单片机摇杆模块程序

单片机摇杆模块程序

发布时间: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

阅读全文

与单片机摇杆模块程序相关的资料

热点内容
速腾carplay怎么用安卓 浏览:13
红塔银行app怎么样 浏览:564
农行app怎么开网银 浏览:651
java迭代器遍历 浏览:303
闽政通无法请求服务器是什么 浏览:48
怎么做积木解压神器 浏览:205
王者荣耀解压玩具抽奖 浏览:49
12位是由啥加密的 浏览:870
程序员编迷你世界代码 浏览:897
php取现在时间 浏览:248
单片机高吸收 浏览:429
怎么区分五代头是不是加密喷头 浏览:246
hunt测试服务器是什么意思 浏览:510
2013程序员考试 浏览:641
毕业论文是pdf 浏览:736
服务器跑网心云划算吗 浏览:471
单片机定时器计数初值的计算公式 浏览:801
win7控制台命令 浏览:567
猫咪成年app怎么升级 浏览:692
360有没有加密软件 浏览:315