基于atmega16的遥控车遥控器设计.doc_第1页
基于atmega16的遥控车遥控器设计.doc_第2页
基于atmega16的遥控车遥控器设计.doc_第3页
基于atmega16的遥控车遥控器设计.doc_第4页
基于atmega16的遥控车遥控器设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/* * yaokongqi.c * * Created: 2015/9/8 19:55:29 * Author: LOVE */ /*/* 常用头文件及宏定义 */*/#include #include /延时文件#include /睡眠文件#include /中断文件#include /eeprom#define BIT(x)(1(x)#define ucharunsigned char#define uintunsigned int/*/* NRF24L01 */*/PA0 CEPA1 CSN PA2 SCK PA3 MOSI PA4 MISO PA5 IQR#define DDR_NRF2401DDRB#define PORT_NRF2401PORTB#define PIN_NRF2401PINB#define CE_HPORT_NRF2401|=BIT(0)#define CE_LPORT_NRF2401&=BIT(0)#define CSN_HPORT_NRF2401|=BIT(1)#define CSN_LPORT_NRF2401&=BIT(1)#define SCKPORT_NRF2401|=BIT(2),PORT_NRF2401&=BIT(2)#define MOSI_HPORT_NRF2401|=BIT(3)#define MOSI_LPORT_NRF2401&=BIT(3)#define MISO_PIN(PIN_NRF2401&BIT(4)#define IQR_PIN(PIN_NRF2401&BIT(5)char a3=0;uchar b4=0;char read_peizhi(char dizhi)CSN_L;char i;for (i=0;i8;i+)if (dizhi&BIT(7-i)MOSI_H;elseMOSI_L;SCK;dizhi=0;for (i=0;i8;i+)_delay_us(10);if (MISO_PIN)dizhi+=BIT(7-i);SCK;CSN_H;return dizhi;void write_peizhi(char dizhi,char shuju)char i;CSN_L;dizhi+=BIT(5);for (i=0;i8;i+)if (dizhi&BIT(7-i)MOSI_H; elseMOSI_L;SCK;for (i=0;i8;i+)if (shuju&BIT(7-i)MOSI_H;elseMOSI_L;SCK;CSN_H;void read_shuju(uchar n)uchar i,j;CSN_L;for (i=0;i8;i+)if (0x61&BIT(7-i)MOSI_H;elseMOSI_L;SCK;for (j=0;jn;j+)aj=0;for (i=0;i8;i+)_delay_us(10);if (MISO_PIN)aj+=BIT(7-i);SCK;CSN_H;void write_shuju(uchar n)uchar i,j;CSN_L;for (i=0;i8;i+)if (0xa0&BIT(7-i)MOSI_H; elseMOSI_L;SCK;for (j=0;jn;j+)for (i=0;i8;i+)if (bj&BIT(7-i)MOSI_H;elseMOSI_L;SCK;CSN_H;void qingchu_tx()char i;CSN_L;for (i=0;i8;i+)if (0xe1&BIT(7-i)MOSI_H; elseMOSI_L;SCK;CSN_H;void qingchu_rx()char i;CSN_L;for (i=0;i8;i+)if (0xe2&BIT(7-i)MOSI_H;elseMOSI_L;SCK;CSN_H;char read_zhuangtai()CSN_L;char i,zhuangtai=0;MOSI_H;for (i=0;i8;i+)SCK;_delay_us(40);if (MISO_PIN)zhuangtai+=BIT(7-i);CSN_H;return zhuangtai;void read_dizhi(char dizhi,char *shuju,char zijie)CSN_L;char i,j;for (i=0;i8;i+)if (dizhi&BIT(7-i)MOSI_H;elseMOSI_L;SCK;shuju+=zijie;for (j=0;jzijie;j+)shuju-; *shuju=0;for (i=0;i8;i+)_delay_us(10);if (MISO_PIN)*shuju+=BIT(7-i);SCK;CSN_H;void write_dizhi(char dizhi,char *shuju,char zijie)char i,j;CSN_L;dizhi+=BIT(5);for (i=0;i8;i+)if (dizhi&BIT(7-i)MOSI_H;elseMOSI_L;SCK;shuju+=zijie;for (j=0;jzijie;j+)shuju-;for (i=0;i8;i+)if (*shuju&BIT(7-i)MOSI_H;elseMOSI_L;SCK;CSN_H;void chushihua_nrf2401()DDR_NRF2401|=BIT(0)|BIT(1)|BIT(2)|BIT(3);DDR_NRF2401&=(BIT(4)|BIT(5);PORT_NRF2401|=BIT(4)|BIT(5);CSN_H;CE_L;char dizhi5=l,o,v,e,0x01;write_peizhi(0x00,0x0a);write_peizhi(0x02,0x01);write_peizhi(0x04,0x00);write_dizhi(0x0a,dizhi,5);/接收地址love01write_dizhi(0x10,dizhi,5);/发送地址love01write_peizhi(0x11,0x03);/接收数据宽 3/*/* 按键 */*/#define DDR_ANJIANDDRD#define PORT_ANJIANPORTD#define PIN_ANJIANPINDuchar sudu=1,zhuangxiang=1;char en=1;void chushihua_anjian()DDR_ANJIAN=0;PORT_ANJIAN=0xff;void jianma()if (PIN_ANJIAN!=0xff)_delay_ms(10);if (PIN_ANJIAN!=0xff)switch(PIN_ANJIAN)case 0xfe:/1 速度+if (sudu!=4)sudu+;while(PIN_ANJIAN!=0xff);break;case 0xfd:/2 速度-if (sudu!=1)sudu-;while(PIN_ANJIAN!=0xff);break;case 0xfb:/3 转向+while(PIN_ANJIAN!=0xff);break;case 0xf7:/4 转向-while(PIN_ANJIAN!=0xff);break;case 0xef:/5 蜂鸣器b2|=BIT(4);break;case 0xdf:/6 刹车b3&=b2|0xf3;b2|=BIT(2)|BIT(3);break;case 0xcf:/5+6组合键 蜂鸣器+刹车b3&=b2|0xf3;b2|=BIT(2)|BIT(3)|BIT(4);break;default:;/*/* ADC */*/int dianya3=0;uchar tongdao=0,dianchi=100;void chushihua_adc()DDRA&=(BIT(1)|BIT(2)|BIT(3);ADMUX=0x43;ADCSRA|=BIT(ADEN)|BIT(ADSC)|BIT(ADIE)|BIT(ADPS2)|BIT(ADPS1)|BIT(ADPS0);while(!(ADCSRA&BIT(ADIF);/等待转换结束dianya2=ADCL+(ADCH511)b0=(dianya0-511)/20+98; elseb0=98-(511-dianya0)/20;if (dianya1511)b1=(dianya1-511)/3;if (b12)b2&=BIT(5);elseif (en)b2|=BIT(5);elseb2&=BIT(5);b2|=BIT(3);b2&=BIT(2);elseswitch(sudu)case 1:b1=(511-dianya1)/4;if (b13)b2&=BIT(5);elseif (en)b2|=BIT(5);elseb2&=BIT(5);break;case 2:b1=(511-dianya1)/3;if (b13)b2&=BIT(5);elseif (en)b2|=BIT(5);elseb2&=BIT(5);break;case 3:b1=(511-dianya1)/8+160;if (b1163)b2&=BIT(5);elseif (en)b2|=BIT(5);elseb2&=BIT(5);break;case 4:b1=(511-dianya1)/10+200;if (b10)i=(dianya2-700)*100/(1023-700)+5;elsei=0;if (idianchi)dianchi=i; jianma();if (!IQR_PIN)zhuangtai=read_peizhi(0x07);if (zhuangtai&BIT(5)write_peizhi(0x07,BIT(5);qingchu_tx();if (zhuangtai&BIT(4)write_peizhi(0x07,BIT(4);qingchu_tx();if (zhuangtai&BIT(6)write_peizhi(0x07,BIT(6);elsewrite_shuju(3);CE_H;_delay_us(10);CE_L;b2&=BIT(4);b2&=b3;b3=0xff;ntongdao=0;numtongdao=0;switch(tongdao)case 0:ADMUX=0x42;tongdao=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论