云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于单片机的红外遥控智能小车毕业设计报告

基于单片机的红外遥控智能小车毕业设计报告

  • 62 次阅读
  • 3 次下载
  • 2025/7/14 14:42:20

基于单片机的红外遥控小车

附录1:源程序

1 main.c

#include #include #include \#include \#include \#include sbit Eout=P1^0; sbit hw =P1^4;

bit MODE_ZIDONG=0; bit MODE_SHOUDONG=1; bit mode;

unsigned char dis1[]={%unsigned char dis2[]={\

void EX0_isr()interrupt 0 using 0 //切换小车运行模式 {

if(mode==MODE_ZIDONG) mode=MODE_SHOUDONG; if(mode==MODE_SHOUDONG) mode=MODE_ZIDONG; }

void Delay1ms(unsigned char x)//延时处理 { unsigned char i; while(x--)

{ for(i-0;i<250;i++) {

_nop_(); _nop_(); _nop_(); _nop_(); } } }

void display(unsigned char add,unsigned char *str) {

unsigned char i; lcd_pos(add); i=0;

while(str[i] != '\\0') {

lcd_wdat(str[i]); i++;

第29页

基于单片机的红外遥控小车

} }

void Ir_work(void) {

switch(IRcord[2])//判断第三个数码值 {

case 0:go; display(0x4c,\ case 1:back; display(0x4c,\ case 2:right;display(0x4c,\ case 3:left; display(0x4c,\ case 4:count0+=5;

if(count0>=100)count0=100;display(0x40,\add\加速

case 5:count0-=5;

if(count0<=0) count0=0; display(0x4c,\dec\减速

case 6:Flag=~Flag;break;//反转 case 8:;break; }

irpro_ok=0;//处理完成标志 }

void EX0_init()

{ EX0=1; //开启外部中断0

IT0=1; // 设置成下降沿触发方式 }

void main(void)

{mode=MODE_ZIDONG;//初始化为自动运行模式 TMOD=0x00;

lcd_init(); // 初始化LCD time1_init();//初始化T1定时采集温度 time0_init(); time2_init(); EX0_init();

EX1_init();

EA=1; //开启总中断 Eout=0; while(1) {

while(!mode) //自动控制状态 { display(0x00,dis1); if(hw) {go;

display(0x4c,\ }

第30页

基于单片机的红外遥控小车

if(!hw) {back;

display(0x4c,\ Delay1ms(100); right;

display(0x4c,\ Delay1ms(100); } }

while(mode)//遥控控制状态 {

display(0x00,dis2); if(irok) {

Ircordpro();//码值处理 irok=0; }

if(irpro_ok) { Ir_work(); } } } }

*******************************************************************

2 1602c.h

#include #include

typedef unsigned char BYTE; typedef unsigned int WORD; typedef bit BOOL ; sbit rs=P1^5; sbit rw=P1^6; sbit ep=P1^7; #define dis_data P2 delay(BYTE ms)

{ // 延时子程序 BYTE i; while(ms--) {

for(i = 0; i< 250; i++) {

_nop_();_nop_();_nop_();_nop_(); }

第31页

基于单片机的红外遥控小车

} }

BOOL lcd_bz()// 测试LCD忙碌状态 {BOOL result; rs = 0; rw = 1; ep = 1; _nop_(); _nop_(); _nop_(); _nop_();

result = (BOOL)(dis_data & 0x80); ep = 0;

return result; }

lcd_wcmd(BYTE cmd)

{ // 写入指令数据到LCD while(lcd_bz()); rs = 0; rw = 0; ep = 0; _nop_(); _nop_();

dis_data = cmd; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; }

lcd_pos(BYTE pos)

{ //设定显示位置 lcd_wcmd(pos | 0x80); }

lcd_wdat(BYTE dat)

{ //写入字符显示数据到LCD while(lcd_bz()); rs = 1; rw = 0;

第32页

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

基于单片机的红外遥控小车 附录1:源程序 1 main.c #include #include #include \#include \#include \#include sbit Eout=P1^0; sbit hw =P1^4; bit MODE_ZIDONG=0; bit MODE_SHOUDONG=1; bit mode; unsigned char dis1[]={%unsigned char dis2[]={\void EX0_isr()interrupt 0 using 0 //切换小车运行模式 { if(mode==MODE_ZIDONG) mode=MODE_SHOUDONG;

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com