|
之前为了控制小车做的51主控的遥控器 ,源码上传了 , PCB 压缩了 ,但太大 传不上来, 奉献一下,也希望有黑币奖赏, 以后会常给大家带点小制作出来 。
制作出来的实物图如下:
小车
单片机源程序:
- /*
- 海风吹着凉
- */
- #include "nokia_5110.h"
- #include "bmp_pixel.h"
- //***********************************
- #define delay_time 25767
- int a=-30000; //初值110ms
- int b=-85000; //初值85ms
- sbit shang=P2^4;
- sbit xia=P2^0;
- sbit zuo=P2^3;
- sbit you=P2^1;
- sbit zhong=P2^2;
- int anjianzhi;
- char Tdata; //串口发数据
- char Rdata=10; //串口收数据 初始化不用的值
- int AJflag;
- int biaozhi=0;
- /********************************************************************/
- void zhongduanInit();
- void Delay();
- /******************************************************************************/
- void main(void)
- {
- LCD_init(); //初始化液晶
- LCD_clear();
- LCD_write_english_string(4,0," SEA BREEZE ");
- zhongduanInit();
- while(1)
- {
- /*************** 按键显示 ******************/
- if(anjianzhi==2)
- {
- LCD_write_english_string(0,1," shang ");
- }
- else if(anjianzhi==8)
- {
- LCD_write_english_string(0,1," xia ");
- }
- else if(anjianzhi==4)
- {
- LCD_write_english_string(0,1," zuo ");
- }
- else if(anjianzhi==6)
- {
- LCD_write_english_string(0,1," you ");
- }
- else if(anjianzhi==5)
- {
- LCD_write_english_string(0,1," zhong ");
- }
- else if(anjianzhi==0)
- {
- LCD_write_english_string(0,1," NO ");
- }
- else if(anjianzhi==1)
- {
- LCD_write_english_string(0,1," yaokong ");
- }
- else if(anjianzhi==3)
- {
- LCD_write_english_string(0,1," xunji ");
- }
- else if(anjianzhi==7)
- {
- LCD_write_english_string(0,1," bizhang ");
- }
- /************* 接收显示 **************/
-
- if(Rdata=='0')
- {
- LCD_write_english_string(0,2," succse ");
- }
- else if(Rdata=='2')
- {
- LCD_write_english_string(0,2," qianjin ");
- }
- else if(Rdata=='8')
- {
- LCD_write_english_string(0,2," houtui ");
- }
- else if(Rdata=='4')
- {
- LCD_write_english_string(0,2," zuozhuan ");
- }
- else if(Rdata=='6')
- {
- LCD_write_english_string(0,2," youzhuan ");
- }
- else if(Rdata=='5')
- {
- LCD_write_english_string(0,2," tingzhi ");
- }
- else if(Rdata=='1')
- {
- LCD_write_english_string(0,3," yaokong ");
- }
- else if(Rdata=='3')
- {
- LCD_write_english_string(0,3," xunji ");
- }
- else if(Rdata=='7')
- {
- LCD_write_english_string(0,3," bizhang ");
- }
- else
- {
- LCD_write_english_string(0,2," fail ");
- }
- }
- }
- void Delay(unsigned int ims )
- {
- unsigned int i;
- for(;ims>0;ims--)
- {
- for(i=0;i<124;i++){;}
- }
- }
- void zhongduanInit()
- {
- TMOD=0X21;
- TH0=a/256;
- TL0=a%256;
- ET0=1;
- TR0=1;
-
- PCON=0;
- SCON=0X50;
- TH1=0XFD;
- TL1=0XFD;
- ES=1;
- TR1=1;
- EX0=1;
- IT0=1;
- EX1=1;
- IT1=1;
-
- EA=1;
-
- }
- void ZD0() interrupt 0
- {
- biaozhi++;
- Delay(150);
- biaozhi=biaozhi%3;
- if(biaozhi==0)
- {
- anjianzhi=1;
- AJflag=0;
- }
- else if(biaozhi==1)
- {
- anjianzhi=3;
- AJflag=0;
- }
- else if(biaozhi==2)
- {
- anjianzhi=7;
- AJflag=0;
- }
- }
- void ZD1() interrupt 2
- {
-
- }
- void anjian() interrupt 1
- {
- TH0=a/256;
- TL0=a%256;
- if(AJflag==0)
- {
- if(shang==0)
- {
- Delay(10);
- if(shang==0)
- {
- anjianzhi=2;
- }
- }
- else if(xia==0)
- {
- Delay(10);
- if(xia==0)
- {
- anjianzhi=8;
- }
- }
- else if(zuo==0)
- {
- Delay(10);
- if(zuo==0)
- {
- anjianzhi=4;
- }
- }
- else if(you==0)
- {
- Delay(10);
- if(you==0)
- {
- anjianzhi=6;
- }
- }
- else if(zhong==0)
- {
- Delay(10);
- if(zhong==0)
- {
- anjianzhi=5;
- }
- }
- else if (shang==0&&xia==0)
- {
- anjianzhi=0;
- }
- switch(anjianzhi)
- {
- case(0):Tdata=0+48;SBUF=Tdata; while(!TI); break;
- case(2):Tdata=2+48;SBUF=Tdata; while(!TI); break; //按键上
- case(8):Tdata=8+48;SBUF=Tdata; while(!TI); break; //按键下
- case(4):Tdata=4+48;SBUF=Tdata; while(!TI); break; //按键左
- case(6):Tdata=6+48;SBUF=Tdata; while(!TI); break; //按键右
- case(5):Tdata=5+48;SBUF=Tdata; while(!TI); break; //按键中
- case(1):Tdata=1+48;SBUF=Tdata; while(!TI); break; //按键中
- case(3):Tdata=3+48;SBUF=Tdata; while(!TI); break; //按键中
- case(7):Tdata=7+48;SBUF=Tdata; while(!TI); break; //按键中
- default: break;
- }
- AJflag=1;
- }
- else if(AJflag==1)
- {
- if(shang==0||xia==0||zuo==0||you==0||zhong==0)
- {
- Delay(10);
- if(shang==0||xia==0||zuo==0||you==0||zhong==0)
- {
- AJflag=0;
- }
- }
- TI=0; //这边清零
- }
-
-
- }
- void dingshi1() interrupt 3
- {
-
- }
- void chuankou() interrupt 4
- {
- Rdata=SBUF;
- RI=0;
- }
复制代码
所有资料51hei提供下载:
遥控程序.rar
(57.75 KB, 下载次数: 49)
|
评分
-
查看全部评分
|