|
之前為了控制小車做的51主控的遙控器 ,源碼上傳了 , PCB 壓縮了 ,但太大 傳不上來, 奉獻一下,也希望有黑幣獎賞, 以后會常給大家?guī)c小制作出來 。
制作出來的實物圖如下:
IMG_0752.JPG (2.52 MB, 下載次數(shù): 144)
下載附件
小車
2018-11-4 12:46 上傳
IMG_0751.JPG (1.91 MB, 下載次數(shù): 121)
下載附件
2018-11-4 12:46 上傳
IMG_0750.JPG (2.11 MB, 下載次數(shù): 123)
下載附件
2018-11-4 12:46 上傳
IMG_0749.JPG (1.85 MB, 下載次數(shù): 135)
下載附件
2018-11-4 12:46 上傳
單片機源程序:
- /*
- 海風吹著涼
- */
- #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; //串口發(fā)數(shù)據(jù)
- char Rdata=10; //串口收數(shù)據(jù) 初始化不用的值
- 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;
- }
復(fù)制代碼
所有資料51hei提供下載:
遙控程序.rar
(57.75 KB, 下載次數(shù): 49)
2018-11-4 12:48 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|