飞思卡尔智能车程序汇总Word格式文档下载.docx
- 文档编号:21627583
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:32
- 大小:20.26KB
飞思卡尔智能车程序汇总Word格式文档下载.docx
《飞思卡尔智能车程序汇总Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《飞思卡尔智能车程序汇总Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
}
voidmain(void){
/*putyourowncodehere*/
EnableInterrupts;
DDRA=0x00;
DDRB_DDRB0=1;
for(;
;
)
{
delay(25000);
PORTB_PB0=1;
PORTB_PB0=0;
2.液晶屏按键程序
lcd5110.h"
24c02.h"
button.h"
/******************************倍频*****************************************/
voidvPLLInit(void)
{
unsignedcharrefdv;
refdv=3;
CLKSEL=0X00;
//disengagePLLtosystem
PLLCTL_PLLON=1;
//turnonPLL
SYNR=0xc0|((80/(refdv+1))-1);
REFDV=0x40|refdv;
POSTDIV=0x00;
//pllclock=2*osc*(1+SYNR)/(1+REFDV)=160MHz;
_asm(nop);
//BUSCLOCK=80M
while(!
(CRGFLG_LOCK==1));
//whenpllissteady,thenuseit;
CLKSEL_PLLSEL=1;
//engagePLLtosystem;
unsignedchari;
unsignedcharsetnum[12];
unsignedcharcur_sel;
constcharlcd_show[12][4]={"
MID\0"
"
LEF\0"
RIG\0"
Kp\0"
Kd\0"
K1\0"
K2\0"
STP\0"
MAX\0"
MIN\0"
HTM\0"
HTX\0"
};
vPLLInit();
lcd_init();
init_24c02();
init_btn();
//EnableInterrupts;
for(i=0;
12;
i++)setnum[i]=RdEEPROM(i);
//读取24c02
i++)//显示初值
disply_listchar((i/6)*42,i%6,lcd_show[i],1);
disply_number((i/6)*42+16,i%6,setnum[i],5);
}
if(btn_change())
cur_sel=0;
i++)
disply_listchar((i/6)*42,i%6,lcd_show[i],(cur_sel==i)?
0:
1);
if(btn_add())
setnum[cur_sel]++;
disply_number((cur_sel/6)*42+16,cur_sel%6,setnum[cur_sel],5);
if(btn_sub())
setnum[cur_sel]--;
cur_sel++;
if(cur_sel>
11)cur_sel=0;
i++)disply_listchar((i/6)*42,i%6,lcd_show[i],(cur_sel==i)?
if(btn_sav())
i++)WrEEPROM(i,setnum[i]);
disply_listchar(0,0,"
SMARTCAR"
1);
disply_listchar(0,1,"
SAVEOK"
disply_listchar(0,2,"
================="
disply_listchar(0,3,"
TURNPOWEROFF"
disply_listchar(0,4,"
disply_listchar(0,5,"
"
while
(1);
DDRA=0x00;
delay(setnum[0]*100);
delay(setnum[1]*100);
3.电机程序
#defineservo_period20//ms
#definemotor_pwm_frequ1//khz
/**PWM初始化***/
voidInit_PWMout(void)
PWME=0x00;
//禁止输出
PWMPOL=0xff;
//极性寄存器,1先输出高电平后为低电平0先输出低电平后为高电平
PWMCTL=0xf0;
//01234567通道级联
PWMPRCLK=0x55;
//ClockA=BusClock/32;
ClockB=BusClock/32;
PWMCLK=0b00000000;
//选择clock:
7B,6B,5A,4A,3B,2B,1A,0A
PWME=0xaa;
//pp1,pp3,pp5,pp7口输出
PWMPER67=80/4*125/motor_pwm_frequ;
PWMPER45=80/4*125/motor_pwm_frequ;
PWMPER23=80/4*servo_period*125;
PWMPER01=80/4*servo_period*125;
PWMDTY67=0;
PWMDTY45=0;
PWMDTY23=0;
PWMDTY01=0;
Init_PWMout();
EnableInterrupts;
for(;
delay(setnum[0]*1000);
PORTB_PB0=1;
PWMDTY67=0;
PWMDTY45=1000;
PORTB_PB0=0;
PWMDTY45=0;
PORTB_PB0=0;
PWMDTY67=1000;
4.码盘控速
//////////////////////测速增加部分/////////////////////////
intcur_speed;
intcur_time;
/****测速初始化****/
voidspeed_Init(void)
PACTL_PAMOD=0;
//0Eventcountermode.
PACTL_PEDGE=1;
//1RisingedgesonIOC7pincausethecounttobeincremented.
PACTL_PAEN=1;
//1PulseAccumulatorsystemenabled.
//////stl测速定时器中断/////////////
voidInit_INT_Timer(void)
TSCR2_PR=5;
TSCR2_TOI|=1;
TSCR1_TEN=1;
#pragmaCODE_SEG__NEAR_SEGNON_BANKED
voidinterrupt16INT_Timer0(void)
cur_speed=PACNT;
PACNT=0;
cur_time++;
TFLG2_TOF=1;
intpwm_motor;
Boolopen=FALSE;
speed_Init();
cur_time=0;
pwm_motor=0;
PACNT=0;
Init_INT_Timer();
{
disply_number(16,5,cur_speed/3,5);
if(cur_time>
=setnum[0])
open=!
open;
cur_time=0;
pwm_motor=0;
if(FALSE==open)
PORTB_PB0=1;
pwm_motor=(setnum[4]-cur_speed/3)*20;
if(pwm_motor>
PWMPER45)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 卡尔 智能 车程 汇总
![提示](https://static.bdocx.com/images/bang_tan.gif)