标题:
电磁智能车的程序
[打印本页]
作者:
wangshuai123
时间:
2018-1-9 18:35
标题:
电磁智能车的程序
发大家整个电磁智能车的程序
单片机源程序如下:
#include "includes.h"
sbit Motor_EN=P2^1;
sbit LED1=P4^4;
sbit LED2=P4^5;
unsigned char a=0;
extern unsigned int AD0[6]; //保留六次数据
extern float Speed; //小车转速 在cepin.c中定义
void delay(unsigned short k) //延时
{
unsigned short i,j;
for(i=0;i<k;i++)
for(j=0;j<2000;j++);
}
void main()
{
WDTCN=0XDE; //关闭看门狗
WDTCN=0XAD;
OSCILLATOR_Init(); //系统时钟初始化,内部时钟的2倍
GPIO_Init(); //引脚初始化
TIM0_Init(); //定时器0初始化,产生舵机用的低频PWM
PCA0_Init(); //产生直流电机用的PWM
TIM1_Init(); //用于防止小车撞墙
TIM3_Init(); //定时器3初始化,用于ADC连续测量
ADC0_Init();
Init_EXT1(); //检测起跑线
Frequent_Measure_Init();
SPI_Init();
EA=1;
LCD_Init();
LCD_Clear_Screen();
// Motor_Duty(60);
// DuoJi_Angle(108.9);
Motor_EN=1;
while(1)
{
LCD_Display_Num(1,0,AD0[0]);
LCD_Display_Num(1,64,AD0[3]);
LCD_Display_Num(3,0,AD0[1]);
LCD_Display_Num(3,64,AD0[4]);
LCD_Display_Num(5,0,AD0[2]);
LCD_Display_Num(5,64,AD0[5]);
LCD_Display_Str(7,0,"Speed:");
LCD_Display_Num(7,48,(unsigned int)Speed);
if((AD0[0]<300)||(AD0[1]<300)||(AD0[2]<300)||(AD0[3]<300)||(AD0[4]<300)||(AD0[5]<300))
{
TR1=1;
}
delay(300);
}
}
void TIM1_Init(void)
{
char SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
SFRPAGE = TIMER01_PAGE;
TMOD=0X10;
CKCON |=0X01; //系统时钟的4分频 //定时器0时钟为外部时钟8分频
TH1=0X10; //5ms初值时间
TL1=0Xbe;
ET1=1;//打开定时器0中断
// TR1=1;//打开定时器0
SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
}
void TIM1_ISR()interrupt 3
{
char SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
SFRPAGE = TIMER01_PAGE;
a++;
TH1=0X10; //5ms初值时间
TL1=0Xbe;
if(a==400)
{
a=0;
TR1=0;
if((AD0[0]<300)||(AD0[1]<300)||(AD0[2]<300)||(AD0[3]<300)||(AD0[4]<300)||(AD0[5]<300))
Motor_EN=0;
}
SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
}
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
36组源程序.zip
(105.99 KB, 下载次数: 27)
2018-1-9 18:34 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
763775094
时间:
2018-2-27 20:46
这是k60的嘛
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1