|
基于hc-05和hc-31的程序
單片機(jī)源程序如下:
- #include<reg51.h>
- #include <intrins.h>
- sbit Sound=P0^0;//嘀嘀嘀
- sbit car1=P0^1;
- sbit car2=P0^2;
- sbit car3=P0^3;
- sbit car4=P0^4;
- sbit LEDARRAY_CLK = P0^5;
- sbit LEDARRAY_LE = P0^6;
- sbit LEDARRAY_DI = P0^7;//點(diǎn)陣
- bit flag;
- unsigned char led_8;
- unsigned char js;
- unsigned char code xin[]={0x0C,0x1E,0x3E,0x7C,0x7C,0x3E,0x1E,0x0C};
- unsigned char code jin[]={0x00,0x00,0x42,0x82,0x7e,0x02,0x02,0x00};
- unsigned char code xiao[]={0x84,0x42,0x24,0x18,0x18,0x24,0x42,0x80};
- unsigned char code qian[]={0x00,0x1e,0x21,0x21,0x31,0x21,0x5e,0x40};
- unsigned char code black[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
- void delay(unsigned char t)
- {
- unsigned int m;
- for(;t>0;t--)
- for(m=5000;m>0;m--);
- }
- /*-------------函數(shù)聲明-----------*/
- void sport(unsigned char sport);
- void Send_Byte( unsigned char dat);
- void disply(unsigned char code *p);
- /*=*=*=*=*=*=*=*=*=*=*主--函--數(shù)=*=*=*=*=*=*=*=*=*=*=*/
- void main ()
- {
- unsigned char LED;
- TMOD=0X20; //設(shè)置定時(shí)器1工作方式2,八位自動(dòng)重裝
- TH1=0Xfd;
- TL1=0Xfd; //設(shè)定9600波特率
- TR1=1; //啟動(dòng)定時(shí)器
- REN=1; //允許串行口接收控制位
- SM0=0;
- SM1=1; //設(shè)定串行口工作方式1
- EA=1; //總中斷控制位打開
- ES=1; //串行口中斷控制位打開
- Sound=1;
- car1=0;
- car2=0;
- car3=0;
- car4=0;
- led_8=0x1f;
- flag=0;LED=1;
- while(1)
- {
- L:
- if(flag==1)
- {
- LED=~LED;
- disply(black);
- P1=0Xff;
- flag=0;
- }
- if(LED==1)
- {
- disply(xin);if(flag==1) goto L;
- disply(jin);if(flag==1) goto L;
- disply(xiao);if(flag==1) goto L;
- disply(qian);
- }
- }//while
- }//main
- /*=================串口中斷程序=================*/
- void serial() interrupt 4
- {
- RI=0; //清零,準(zhǔn)備接收數(shù)據(jù)
- js=SBUF; //接收數(shù)據(jù)
- sport(js); //運(yùn)動(dòng)控制
- }
- /*=====================================================
- ---------運(yùn)動(dòng)調(diào)節(jié)函數(shù)---------
- =====================================================*/
- void sport(unsigned char sport)
- {
- switch(sport)
- {
- case 0x41: car1=1;car2=0;car3=0;car4=1; break;/////////////方向鍵 A
- case 0x42: car1=0;car2=1;car3=1;car4=0; break;/////////////方向鍵 B
-
- case 0x43: car1=1;car2=1;car3=1;car4=1; break;/////////////暫停鍵 C
- case 0x44: car1=0;car2=1;car3=0;car4=1; break;/////////////后退鍵 D
- case 0x45: car1=1;car2=0;car3=1;car4=0; break;/////////////前進(jìn)鍵 E
- case 0x46: Sound=1; break;/////////////喇叭響 F
- case 0x47: Sound=0; break;/////////////喇叭靜 G
-
- case 0x48: flag=1; break;/////////////開燈 H
- default: break;
- }
-
- }
- /*=====================================================
- ---------點(diǎn)陣發(fā)送一個(gè)字節(jié)---------
- =====================================================*/
- void Send_Byte( unsigned char dat)
- {
- unsigned char i;
- LEDARRAY_LE = 0;
- _nop_();
- LEDARRAY_LE = 0;
- _nop_();
- for( i = 0 ; i < 8 ; i++ )
- {
- if( dat&0x01 )
- {
- LEDARRAY_DI = 1;
- }
- else
- {
- LEDARRAY_DI = 0;
- }
-
- LEDARRAY_CLK = 1; //上升沿發(fā)送數(shù)據(jù)
- _nop_();
- LEDARRAY_CLK = 0;
- _nop_();
-
- dat >>= 1;
- }
- }
- void disply(unsigned char code *p)
- {
- unsigned char *led;
- unsigned char temp;
- unsigned int i;
- unsigned char j;
- temp = 0x7f;
-
- for(i=1800;i>0;i--)
- {
- led=p;
- for(j=0;j<8;j++)
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
QQ_小車.zip
(57.91 KB, 下載次數(shù): 16)
2017-12-19 18:29 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|