0101、ATMEGA16单片机寻迹小车程序及其原理图
收藏
资源目录
压缩包内文档预览:
编号:6122214
类型:共享资源
大小:787.03KB
格式:ZIP
上传时间:2017-11-23
上传人:超****计
IP属地:浙江
4.8
积分
- 关 键 词:
-
atmega16
单片机
小车
程序
及其
原理图
- 资源描述:
-
0101、ATMEGA16单片机寻迹小车程序及其原理图,atmega16,单片机,小车,程序,及其,原理图
- 内容简介:
-
/*R M L 1 0 1 小车正对轨迹R M L 1 1 0 小车右偏R M L 0 1 1 小车左偏*/#includesbit R=P10;/左边传感器sbit M=P11;/中间传感器sbit L=P12;/右边传感器sbit RM=P13;/右边电机sbit LM=P14;/左边电机void main()RM=1;LM=1;/左右两个电机同时启动,直线前进while(1)if(R=1)&(M=1)&(L=0)/小车右偏RM=1;LM=0;/左边的电机停止转动,右边的电机转动,这样就实现了左转if(R=0)&(M=1)&(L=1)/小车左偏RM=0;LM=1;/右边的电机停止转动,左边的电机转动,这样就实现了右转if(R=0)&(M=1)&(L=1)/小车居中RM=1;LM=1;/左右电机同时转,直线前进#include #include #define uchar unsigned char #define uint unsigned intvoid main() DDRA=0X00;DDRB=0XFF;DDRD|=0X30;TCCR1A=0x91; /8位相位修正PWM 8000000/(64*2*256)=244.14hzTCCR1B=0x03; /clk/64OCR1A=250;/初值占空比100%while(1)if(PINA=0xe7)/加速前进4、5灯OCR1A=202;/占空比100%turn();/居中if(PINA=0xcf)/速度稍减前进5、6灯OCR1A=202;/占空比90%turnL();/左转-15度if(PINA=0x9f)/速度再减前进6、7灯OCR1A=176;/占空比80%turnLL();/左转-30度if(PINA=0x3f)/速度减前进7、8灯OCR1A=176;/占空比70%turnLLL();/左转-45度if(PINA=0X7f)/速度稍减前进8灯OCR1A=176;/占空比70%turnLLL();/右转45度if(PINA=0xf3)/速度稍减前进3、4灯OCR1A=202;/占空比90%turnR();/右转15度if(PINA=0Xf9)/速度再减前进2、3灯OCR1A=176;/占空比80%turnRR();/右转30度if(PINA=0Xfc)/速度稍减前进1、2灯OCR1A=176;/占空比70%turnRRR();/右转45度if(PINA=0Xfe)/速度稍减前进1灯OCR1A=176;/占空比70%turnRRR();/右转45度/*-45度*/void turnLLL()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i30;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(4);/*-30度*/void turnLL()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i30;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(6);/*-15度*/void turnL()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i30;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(8);/*0度居中*/void turn()/居中uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i30;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(10);/*15度*/void turnR()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i30;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(12); /*30度*/void turnRR()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i30;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(14);/*45度*/void turnRRR()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i30;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(17);/*定时0.1MS*/void delay(uint z)uint i,j;for(i=0;iz;i+)for(j=0;j90;j+);#include #include #define uchar unsigned char #define uint unsigned intvoid turnLLL(void);/左转45度void turnLL(void);/左转30度void turnL(void);/左转15度void turn(void);/居中void turnR(void);/右转15度void turnRR(void);/右转30度void turnRRR(void);/右转45度void delay(uint z);/延时0.1msvoid main() uint i;DDRA=0X00;DDRB=0XFF;DDRD|=0X30;TCCR1A=0x91; /8位相位修正PWM 8000000/(64*2*256)=244.14hzTCCR1B=0x03; /clk/64OCR1A=250;/初值占空比100%while(1)PINA=i;for(i=0;i8;i+)if(PINA=0xf7)/加速前进4灯1111,0111OCR1A=170;/占空比100%/202turn();/居中if(PINA=0xef)/加速前5灯1110,1111OCR1A=170;/占空比100%turn();/居中if(PINA=0xe7)/加速前进4、5灯1110,0111OCR1A=170;/占空比100%turn();/居中if(PINA=0xcf)/速度稍减前进5、6灯1100,1111OCR1A=170;/占空比90%/176turnL();/左转-15度if(PINA=0xdf)/速度稍减前进6灯1101,1111OCR1A=120;/占空比90%/176turnL();/左转-15度if(PINA=0x9f)/速度再减前进6、7灯1001,1111OCR1A=110;/占空比80%/150turnLL();/左转-30度 if(PINA=0xbf)/速度再减前进7灯1011,1111OCR1A=110;/占空比80%/150turnLL();/左转-30度if(PINA=0x3f)/速度减前进7、8灯0011,1111OCR1A=90;/占空比70%/150turnLLL();/左转-45度if(PINA=0X7f)/速度稍减前进8灯0111,1111OCR1A=90;/占空比70%/150turnLLL();/右转45度if(PINA=0xf3)/速度稍减前进3、4灯1111,0011OCR1A=120;/占空比90%/176turnR();/右转15度if(PINA=0xfb)/速度稍减前进3灯1111,1011OCR1A=120;/占空比90%/176turnR();/右转15度if(PINA=0Xf9)/速度再减前进2、3灯1111,1001OCR1A=110;/占空比80%150turnRR();/右转30度if(PINA=0Xfd)/速度再减前进2灯1111,1101OCR1A=110;/占空比80%/150turnRR();/右转30度if(PINA=0Xfc)/速度稍减前进1、2灯1111,1100OCR1A=90;/占空比70%/150turnRRR();/右转45度if(PINA=0Xfe)/速度稍减前进1灯1111,1110OCR1A=90;/占空比70%/150turnRRR();/右转45度/*-45度*/void turnLLL()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i5;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(4);/*-30度*/void turnLL()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i5;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(6);/*-15度*/void turnL()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i5;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(8);/*0度居中*/void turn()/居中uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i5;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(10);/*15度*/void turnR()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i5;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(12); /*30度*/void turnRR()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i5;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(14);/*45度*/void turnRRR()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i5;i+)PORTB&=BIT(0); delay(18); PORTB|=BIT(0);delay(17);/*定时0.1MS*/void delay(uint z)uint i,j;for(i=0;iz;i+)for(j=0;j90;j+);/*8MHZ晶振*/#include#include#define uchar unsigned char #define uint unsigned intvoid delay(uint z);void main()while(1) /turnLLL();/turnLL();/turnL();turn(); /turnR();/ turnRR();turnRR(); /*-45度*/void turnLLL()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i200;i+)PORTB&=BIT(0); delay(10); PORTB|=BIT(0);delay(1);/*-30度*/void turnLL()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i200;i+)PORTB&=BIT(0); delay(10); PORTB|=BIT(0);delay(2);/*-15度*/void turnL()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i200;i+)PORTB&=BIT(0); delay(10); PORTB|=BIT(0);delay(3);/*0度居中*/void turn()/居中uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i200;i+)PORTB&=BIT(0); delay(20); PORTB|=BIT(0);delay(4);/*15度*/void turnR()uchar i;DDRB=0XFF;PORTB=0XFF;for(i=0;i200;i+)PORTB&=BIT(0); delay(20); PORTB|=BIT(0);delay(5); /*30度*/void turnRR()uchar i;DDRB=
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。