?? car.c
字號:
#include <reg52.h>
#define uchar unsigned char
#define ulong unsigned long
#define uint unsigned int
#include "irda.c"
uchar time_long;
ulong time_count;
sbit mo_en=P3^5;
//-------------------------------------------------------------------------------------------------
void delay(uint t) /*延時子程序*/
{while(t--);
}
/*----------------------------------------------------------------------*/
void int0_srv(void)interrupt 0 using 3
{
Regist_Value=time_long;
int0_flg=0;
time_long=0;
}
//-------------------------------------------------
void T0_interrupt (void) interrupt 1 using 1
{
TH0=0xff;
TL0=0xdc;
time_long++;
}
/*-------------------------------------------------------------------------*/
void mo_driver(uchar zkb,ulong time,uchar mo)
{ mo&=0x0f; P1=mo;
for(;time;time--)
{mo_en=1;
delay(50);
mo_en=0;
delay(zkb);
}
mo_en=0;
}
//--------------------------------------------------------------------------
void init(void)
{
TMOD=0x11;
TH0=0xff;
TL0=0xf6;
EA=1;
ET0=1;
IT0=1;
PT0=0;
EX0=1;
TR0=1;
PX0=1;
TH1=0x4b;
TL1=0xff;
ET1=1;
//TR1=1;
PT1=0;
}
/*-------------------------------------------------------------------------*/
//前進
void qianjing(uchar shudu,ulong time)
{
mo_driver(shudu,time,0x0a);
}
//------------------------------------------------------------
//后退
void houtui(uchar shudu,ulong time)
{
mo_driver(shudu,time,0x05);
}
//-----------------------------------------------------------
//左傳
void t_left(uchar shudu,ulong time)
{
mo_driver(shudu,time,0x09);
}
//-----------------------------------------------------------
void t_right(uchar shudu,ulong time) //右轉
{
mo_driver(shudu,time,0x06);
}
/*-------------------------------------------------------------------------*/
void main (void)
{
uchar mode=0;
uchar dta_irda=0;
init();
//---------------------------------------
for(;;)
{
dta_irda=irda();
if(dta_irda)
{
switch(dta_irda)
{
case 182:houtui(10,300) ;break;
case 188:qianjing(10,300);break;
case 190:t_left(0,150); break;
case 186:t_right(0,150); break;
//-------------------------------------
case 132:houtui(0,150);break;
case 164:qianjing(0,150);break;
//-------------------------------------
}
dta_irda=0;
}
//-----------------------------------
mode=0;
}//對應for(;;)
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -