智能车制作

标题: 简单漂移!自己写的。自己是一个菜鸟,刚刚会让车跑起来,喜欢玩飞车, [打印本页]

作者: 王其奇    时间: 2010-11-12 21:33
标题: 简单漂移!自己写的。自己是一个菜鸟,刚刚会让车跑起来,喜欢玩飞车,
本帖最后由 王其奇 于 2010-11-12 21:35 编辑

#include <hidef.h>        /* common defines and macros *///有的注释是前期的了,会有一些错误,但是还是能明白的
#include <MC9S12XS128.h>        /* derivative information */
#include "derivative.h"      /* derivative-specific definitions */


#define uchar unsigned char
#define uint unsigned int


#define      SCE  PTT_PTT0   
#define      RST  PTT_PTT1   
#define      DC   PTT_PTT2   
#define      DIN  PTT_PTT3     
#define      CLK  PTT_PTT4   
#define      LED  PTT_PTT5
//字库太长就删了
unsigned char Ton[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
};
void pwm_init(void) {
  PWMPRCLK=0x44;    //通道时钟预分频, 16分频
  PWMSCLA=0x09;     //时钟A分频 ,  50分频
  PWMSCLB=0x19;     //时钟B分频 ,  50分频
  
  PWMCLK=0xFF;  //PCLK1选择ClockSA,PCLK选择ClockSB
  
  PWMPOL=0xFF;  //起始输出高电平
  PWMCAE=0x00;  //PWM输出左对齐
  PWMCTL=0xF0;  //通8道01级联,通道23级联
  
  PWMPER0=0x0A;
  PWMPER1=0X9DA;
  PWMPER2=0x00; //级联通道23的周期高字节
  PWMPER3=0x09; //级联通道23的周期低字节
  PWMPER4=0x00;
  PWMPER5=0x09;
  PWMPER6=0x0A;
  PWMPER7=0x9DA;
  
  PWMDTY0=0x00; //级联通道01的占空比高字节
  PWMDTY1=200; //级联通道01的占空比低字节
  PWMDTY2=0x00; //级联通道01的占空比高字节
  PWMDTY3=Ton[0]; //级联通道01的占空比低字节
  PWMDTY4=0x00;
  PWMDTY5=Ton[0];
  PWMDTY6=0x00;
  PWMDTY7=0xB0;
  PWME=0xFF;
  }


                                                                           

//锁相环寄存器初始化
void Pll_Init(void)
{
    REFDV = 129;                  // 设置REFDV寄存器
    SYNR =196;               // 选择时钟频率,在.h里选SYNR_SET的值
    asm nop                     // 等待PLL 稳定
    asm nop
    asm nop
    asm nop
    while ((CRGFLG&0x08) == 0); // 等待PLL频率锁定
    CLKSEL |= 0x80;             // PLL向系统总线输出时钟
}

void delay_1ms(void)//1ms 延时函数
{
  uint i;
for (i=0;i<600;i++);

}


void delay_nms(uint n)        //N ms 延时函数
{
  uint i=0;
        for (i=0;i<n;i++)
           delay_1ms();
}

void LCD_write_byte(unsigned char dt, unsigned char command)
{
unsigned char i;
SCE=0;
DC=command;
for(i=0;i<8;i++)
{
if(dt&0x80)
        DIN=1;
else
DIN=0;
dt=dt<<1;
CLK=0;
CLK=1;
}
DC=1;
SCE=1;
DIN=1;
}

void LCD_init(void)
{
DDRT=0Xff;
RST=0;
delay_1ms();
RST=1;
LCD_write_byte(0x21,0);//初始化 Lcd,功能设定使用扩充指令 LCD_write_byte(0xd0,0);//设定液晶偏置电压
LCD_write_byte(0xd0,0);
LCD_write_byte(0x20,0);//使用基本指令
LCD_write_byte(0x0C,0);//设定显示模式,正常显示
}

void LCD_set_XY(unsigned char X, unsigned char Y)
{
LCD_write_byte(0x40 | Y, 0);// column
        LCD_write_byte(0x80 | X, 0);// row
}

void LCD_clear(void)
{
unsigned char t;
unsigned char k;
LCD_set_XY(0,0);
for(t=0;t<6;t++)
{
for(k=0;k<84;k++)
{
LCD_write_byte(0x00,1);
         }
    }
}



void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c) //row:列        page:页
//dd:字符
{
unsigned char i;
LCD_set_XY(row*4, page);//  列,页
for(i=0; i<8;i++)
{
LCD_write_byte(shuzi[c*16+i],1);
}

LCD_set_XY(row*4, page+1);//  列,页
for(i=8; i<16;i++)
{
LCD_write_byte(shuzi[c*16+i],1);
}
}

void main(void)
{
uint a,c,i,j,k,l,m,dj,kz;
l=3;
kz=0;
Pll_Init();
pwm_init();
LCD_init();         //初始化 LCD 模块
LCD_clear(); //清屏幕
DDRT=0xFF;
i=0,j=0,m=0;
LED=1;
delay_nms(300);
LED=0;
delay_nms(1000);
LED=1;


        EnableInterrupts;
//PWMDTY1=0xC5;
        delay_nms(500);
        PWMDTY7=0xB0;
        delay_nms(500);

      for(dj=195;dj<196;dj++){
        PWMDTY1=197;
       //if(kz%2==0)
       delay_nms(10000);                     //舵机从173到223,居中为197(跑试)
       PWMDTY3=Ton[3];
       // else
       // PWMDTY5=Ton[3];
   for(k=0;k<1;k++){
   a=PWMDTY1/100;
   c=(PWMDTY1-a*100)/10;
   i=PWMDTY1-a*100-c*10;
   
   LCD_write_shu(j,0,13);  //舵机速度显示
   j+=2;
   LCD_write_shu(j,0,28);
   j+=2;
   LCD_write_shu(j,0,50);
   j+=2;
     LCD_write_shu(j,0,a);
    delay_nms(500);
    j+=2;
    LCD_write_shu(j,0,c);
    delay_nms(500);
    j+=2;
    LCD_write_shu(j,0,i);
    delay_nms(500);
    j=0;                  //
   
   
    LCD_write_shu(m,2,22);  //MOTOR速度显示
    m+=2;
    LCD_write_shu(m,2,28);
    m+=2;
    LCD_write_shu(m,2,50);
    m+=2;
     LCD_write_shu(m,2,3);
     m+=2;
    delay_nms(500);
     LCD_write_shu(m,2,13);
    delay_nms(500);                                    //
    m=0;                 
     }
     delay_nms(20000);
     PWMDTY3=Ton[0];
     PWMDTY1=215;
     delay_nms(500);
     PWMDTY3=Ton[4];
     delay_nms(5000);
     PWMDTY3=Ton[0];
     PWMDTY5=Ton[3];
     delay_nms(2000);
      PWMDTY5=Ton[0] ;
     PWMDTY1=197;
     PWMDTY3=Ton[3];
     delay_nms(20000);
     PWMDTY3=Ton[0];
    }
     
  }
作者: Mousekeys    时间: 2010-11-14 10:22
好东东~~~谢谢楼主分享!
作者: wp1989    时间: 2010-11-14 11:22
兄弟 啊 你们确实很强啊!这么早开始玩车啦!
作者: kinggwangg    时间: 2010-11-16 18:03
太给力了
作者: ly466098850    时间: 2010-11-16 18:48
飘逸效果怎么样,给个视频看看
作者: askeil    时间: 2010-11-16 21:01
給力
作者: 王其奇    时间: 2010-11-17 13:54
回复 5# ly466098850


    180度急转后回来,持续大概8秒,地方太小了,限制
作者: 王其奇    时间: 2010-11-17 13:56
回复 2# Mousekeys


    是自己在寝室呆着无聊就找老师,求了半天总算进来了。
我是机械工地比较好,家里都是机械,从小玩机械到初二
作者: 毛毛628    时间: 2010-12-8 19:33
感谢楼主!太有才了!
作者: tutufanfan    时间: 2011-1-13 13:50
給力
作者: tutufanfan    时间: 2011-1-13 13:50

作者: tutufanfan    时间: 2011-1-13 13:50

作者: tutufanfan    时间: 2011-1-13 13:50

作者: tutufanfan    时间: 2011-1-13 13:53

作者: a7335562    时间: 2011-3-2 17:06
强,参考参考
作者: chilong1212    时间: 2011-3-3 17:07
LZ液晶用的是什么型号?
作者: supper大毛    时间: 2011-3-4 16:13
顶你,好好学习
作者: 转角踩到屎    时间: 2011-3-4 16:41
先顶了再说。不知道是不是正确
作者: 瞬风    时间: 2011-4-23 12:27
刻苦啊谢谢;额
作者: laoniuxxj    时间: 2011-4-23 17:24

作者: zsshiwo1    时间: 2011-4-25 17:05
额。。貌似没写什么舵机的吧!没什么用!!
作者: 杀虫剂    时间: 2011-11-14 18:45
强的一塌糊涂
作者: longhunlanxue    时间: 2011-11-20 15:54
给力
作者: lrbdh    时间: 2011-11-30 01:53

作者: 清明    时间: 2011-12-1 20:54
不错。
作者: shadowowen    时间: 2011-12-13 01:11
飘移会不会造成车子英年早逝啊
作者: guichuqing    时间: 2011-12-29 22:02
求视频,瞅瞅
作者: 370255785    时间: 2012-2-15 16:49

作者: csycaiyan    时间: 2012-2-18 13:08
顶一个吧
作者: ぷ无雨κiζs    时间: 2013-4-26 19:39

作者: 石秋燕子    时间: 2013-7-14 15:14
有才
作者: 哆啦A梦cyou    时间: 2014-1-17 08:31
给力
作者: 光【宅、、’    时间: 2014-3-21 19:52
PWMDTY0=0x00; //级联通道01的占空比高字节
  PWMDTY1=200; //级联通道01的占空比低字节
  PWMDTY2=0x00; //级联通道01的占空比高字节
  PWMDTY3=Ton[0]; //级联通道01的占空比低字节
这里为什么不直接用PWMDTY01=xxxx?
作者: 光【宅、、’    时间: 2014-3-23 16:24
楼主能大概说下原理么?




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