智能车制作

标题: 拨码开关使用问题 [打印本页]

作者: 猫窝    时间: 2013-6-27 20:08
标题: 拨码开关使用问题
请问下拨码开关应该如何使用?我一端接的是地,另一端接的是PH,应该如何初始化和使用?能不能我设8个函数,每一个打上去就调用一个函数?我用的是xs128


作者: 『拖拉机』    时间: 2013-6-27 20:41
可以的,会用51吧,51怎么用这个就怎么用
作者: 猫窝    时间: 2013-6-27 20:57
『拖拉机』 发表于 2013-6-27 20:41
可以的,会用51吧,51怎么用这个就怎么用

没学过51.。。直接被捉来弄车了,需要初始化吗?后面怎么判断输入的值?

作者: 『拖拉机』    时间: 2013-6-27 21:12
只要你会任何一款单片机,都应该会用。先初始化IO口,然后读取IO口的状态,然后就能用了,实在不会就随便借本单片机的书看看。我是不是说的太多了
作者: 猫窝    时间: 2013-6-27 21:17
『拖拉机』 发表于 2013-6-27 21:12
只要你会任何一款单片机,都应该会用。先初始化IO口,然后读取IO口的状态,然后就能用了,实在不会就随便借 ...

初始化了,
void PORTB_Init(void){
  DDRB=0xff;
  //PB口作输出使用,1为输出,0为输入
  PORTB=0x00;
  //PB口数据寄存器值
}

void boman(){
  if(PORTA_PA0==1) {
    PWMDTY3=130;
  }
}
可是调不进去,我连的是PH0-PH7,纠结好久了,求解救啊大婶


作者: 『拖拉机』    时间: 2013-6-27 21:20
你连的是PH口,那你不干吗初始化PH口,而初始化B口呢,你初始化B口就初始化吧,但是你用的还是A口,不明白你是怎么想地
作者: 猫窝    时间: 2013-6-27 21:23
『拖拉机』 发表于 2013-6-27 21:20
你连的是PH口,那你不干吗初始化PH口,而初始化B口呢,你初始化B口就初始化吧,但是你用的还是A口,不明白你 ...

我都是上网找的例程啊。。。
PORTH=0x00;这句代码错误,什么情况。。。应该如何设?

作者: 『拖拉机』    时间: 2013-6-27 21:33
猫窝 发表于 2013-6-27 21:23
我都是上网找的例程啊。。。
PORTH=0x00;这句代码错误,什么情况。。。应该如何设?

那你是用的80的封装还是112的封装,PH口的数据寄存器不是PORTH,好像是PTH
作者: 猫窝    时间: 2013-6-27 22:20
『拖拉机』 发表于 2013-6-27 21:33
那你是用的80的封装还是112的封装,PH口的数据寄存器不是PORTH,好像是PTH

抱歉我刚才洗澡了去。
对的,初始化是PTH,谢谢了
还有使用应该如何使用?
if(PTH==1) {
    PWMDTY3=130;
  }
这条语句执行不了

作者: 『拖拉机』    时间: 2013-6-27 22:32
猫窝 发表于 2013-6-27 22:20
抱歉我刚才洗澡了去。
对的,初始化是PTH,谢谢了
还有使用应该如何使用?

试试PTH_PTH0

作者: 猫窝    时间: 2013-6-27 22:41
『拖拉机』 发表于 2013-6-27 22:32
试试PTH_PTH0

/**************************/
/*        IO 初始化       */
/**************************/
void PTH_Init(void){
  DDRH=0xff;
  //PH口作输出使用,1为输出,0为输入
  PTH=0x00;
  //PH口数据寄存器值
}
for(;;) {      
    DELAY(5000);
    DELAY(5000);
    DELAY(5000);
    DELAY(5000);
    if(PTH_PTH0==1) {
    PWMDTY3=130;
    }
     _FEED_COP(); /* feeds the dog */
    }
我这样编程,可是占空比跳不进去。。。初始化这样有问题吗?还需要加什么内容?

作者: 『拖拉机』    时间: 2013-6-27 23:22
void PTH_Init(void){
   DDRH=0x00;
   //PH口作输出使用,1为输出,0为输入
}
for(;;) {      
     DELAY(5000);
     DELAY(5000);
     DELAY(5000);
     DELAY(5000);
     if(PTH_PTH0==1) {
     PWMDTY3=130;
     }
      _FEED_COP(); /* feeds the dog */
     }
作者: 猫窝    时间: 2013-6-27 23:24
『拖拉机』 发表于 2013-6-27 23:22
void PTH_Init(void){
   DDRH=0x00;
   //PH口作输出使用,1为输出,0为输入

刚想回复你说,我弄出来了。。。
不过还是谢谢了,我输入输出搞混乱了,呵呵
谢谢大神!!!

作者: 啥也不会    时间: 2013-6-28 09:09

作者: wangpeng421    时间: 2014-6-26 11:24
  DDRB=0xff;什么意思
作者: wangpeng421    时间: 2014-6-26 11:28
『拖拉机』 发表于 2013-6-27 23:22
void PTH_Init(void){
   DDRH=0x00;
   //PH口作输出使用,1为输出,0为输入

为何初始化为0呢

作者: 星空回忆    时间: 2014-7-5 14:30
拨码开关设置的函数,写在main里面还是初始化里面呢?
作者: 空有一人    时间: 2014-9-23 20:50
路过




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2