|
單片機(jī)源程序如下:
- #include <reg51.h>
- //typedef unsigned char uint8;
- typedef unsigned int uint16;
- //typedef unsigned int u16; //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
- typedef unsigned char u8;
- //unsigned char timer6;
- //sbit IRIN=P3^2;
- //sbit IN1=P1^0;
- //sbit IN2=P1^1;
- //sbit ENA=P1^2;
- sbit pwm=P2^1;//輸出PWM信號(hào)
- //sbit k1=P3^3;
- sbit led=P2^0;
- u8 a,b,c;
- void uart_init()
- {
- TMOD|=0x20;
- PCON =0x00;
- SCON = 0x50;
- TH1 = 0xFd; //設(shè)置波特率 9600
- TL1 = 0xFd;
- TR1 = 1; //啟動(dòng)定時(shí)器1
- ES = 1; //開(kāi)串口中斷
- EA = 1; //開(kāi)總中斷
- }
- void uart() interrupt 4
- {
- if(RI==1)
- RI=0;
- a=SBUF;
- }
- void InitTimer()
- {
- TMOD|=0x01;//開(kāi)定時(shí)器0,1
- TH0=0xff;//定時(shí)1.5MS,這時(shí)舵機(jī)處于0度
- TL0=0xf6;
- EA=1;//開(kāi)總斷
- TR0=1;//開(kāi)定時(shí)器0
- ET0=1;
- }
- void timer0() interrupt 1//定時(shí)器0中斷函數(shù)
- {
- TH0=0xff;//定時(shí)1.5MS,這時(shí)舵機(jī)處于0度
- TL0=0xf6;
- b++;
- if(b==1) pwm=0;
- else if(b==2) pwm=1;
- else if(b==c) b=0;
- }
- void main()
- {
- InitTimer();
- uart_init();
- // while(1)
- {
- if(a==0x01)
- {
- c=28;
- led=1;
- } //左轉(zhuǎn) 28 2
- else if(a==0x02)
- {
- c=62; //右轉(zhuǎn) 62 2
- led=0;
- }
- else if(a==0x00) c=51; //中 51 2
-
- }
- }
復(fù)制代碼
|
|