嵌入式课程设计--红外遥控小车程序.doc

嵌入式课程设计--红外遥控小车程序.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式课程设计--红外遥控小车程序

#include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit IRIN = P3^3; sbit P1_0=P1^0; //数码管动态扫描接口 sbit P1_1=P1^1; sbit P1_5=P1^5; //蜂鸣器报警接口 sbit P2_0=P2^0; //控制两个直流电机的控制端口 sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; sbit P2_4=P2^4; sbit P2_5=P2^5; bit flag; //红外解码判断标志位,0有效 uchar IR_buf[4]={0x00,0x00,0x00,0x00};//IR_buf[0]、IR_buf[1]为用户码低位、用户码高位接收缓冲区 // IR_buf[2]、IR_buf[3]为键数据码和键数据码反码接收缓冲区 uchar disp_buf[4]={0x00,0x00,0x40,0x00}; //显示缓冲单元 uchar seg_data[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //0~F符的显示码(字形码) void delay(uchar x); //延时函数 void Delay_ms(uint xms); //延时 void init(); void car_forward(); //小车前进函数 void car_back(); //小车后退函数 void car_Leftturn(); //小车左转弯函数 void car_Rightturn(); //小车右转弯函数 void car_stop(); //小车停止函数 void Display(uint m); //数码管显示函数 void aralm(); void car_jiaspeed(); void car_jianspeed(); /********以下是主函数********/ void main() { init(); while(1) { Display(disp_buf[2]); switch(disp_buf[2]) { case 0x46: car_forward();break; case 0x15: car_back();break; case 0x44: car_Leftturn();break; case 0x43: car_Rightturn();break; case 0x40: car_stop();break; case 0x47: car_jiaspeed();break; case 0x45: car_jianspeed();break; default: aralm();break; } } } void init() { EA=1;EX1=1; //允许总中断中断,使能 INT1 外部中断 IT1 = 1; //触发方式为脉冲负边沿触发 IRIN=1; //遥控输入脚置1 P2_0=0; P2_1=0; P2_2=0; P2_3=0; P2_4=1; P2_5=1; } void car_jiaspeed() { P2_4=1; P2_5=1; } void car_jianspeed() { while(1) { P2_4=1; P2_5=0; Delay_ms(200); P2_4=0; P2_5=1; Delay_ms(200); if(disp_buf[2]!=0x45) { break; } } } /********以下是0.14ms的x倍延时函数********/ void delay(uchar x) //延时x*0.14ms { uchar i; while(x--) for (i = 0; i13; i++); } /********以下是延时函数*****

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档