文档详情

循迹小车51单片机参考程序.doc

发布:2017-12-25约1.37万字共12页下载文档
文本预览下载声明
循迹小车51单片机参考程序 #includeintrins.h #includereg52.h //头文件/ #define uchar unsigned char #define uint unsigned int uchar t=0; // 定时器中断计数器 // uchar PWM_TL=0 ; //定义左电机的占空比控制变量// unsigned char PWM_TR=0 ; //定义右电机的占空比控制变量// uchar code dis1[] = {0123456789}; uchar code dis2[] = {2011.04.28 }; uchar code dis3[] = {time:}; uchar code dis4[] = {date:}; bit flag=0; //标志位,用来判断轮子是否一圈转完,进行占空比控制// #define temp P2 /******************************************************* 控制口定义 //*******************************************************/ sbit DIN1=P1^0; // 左轮电机端口 1 // sbit DIN2=P1^1; // 左轮电机端口 2 // sbit DIN3=P1^2; // 右轮电机端口 1 // sbit DIN4=P1^3; // 右轮电机端口 2 // sbit PWML=P1^6; //左轮电机的PWM控制// sbit PWMR=P1^5; //右轮电机的PWM控制// sbit LCD_RS = P2^0; sbit LCD_RW = P2^1; sbit LCD_EN = P2^2; /************************************************************ 定时器0服务程序、用来产生两路的PWM波 //************************************************************/ void timer0() interrupt 1 // 定时器T0中断服务程序 // { // 定时器中断PWM计数 // if(tPWM_TL) PWML=1; else PWML=0; // 产生左电机的PWM信号 // if(tPWM_TR) PWMR=1; else PWMR=0; // 产生右电机的PWM信号 // t++ ; if(t=100) t=0; // 1个PWM信号由100次循环产生 // } /************************************************************* 循迹程序 *************************************************************/ void xunji(void) { switch(te
显示全部
相似文档