|
1570801872817.jpg (2.8 MB, 下載次數(shù): 37)
下載附件
2019-10-11 21:53 上傳
已經(jīng)做了快2周了。差程序。一個(gè)中斷PWM,一個(gè)串口中斷。兩個(gè)在一起不會(huì)寫(xiě)。。。前后是通過(guò)一個(gè)電機(jī)驅(qū)動(dòng),左右是通過(guò)舵機(jī)控制。,寫(xiě)的程序問(wèn)題好多。希望有大神指點(diǎn)迷津~~~
#include<reg52.h>
sbit pwm = P0^0;
sbit E1 = P2^0;
sbit E2 = P2^1;
sbit jia =P2^2;
sbit jan =P2^3;
unsigned char jd = 3;
unsigned char count;
void UART_int(unsigned char baud);
void Timer_int0();
void Init()
{
E1 = 0;
E2 = 0;
jd = 4;
count = 0;
}
void QJ()
{
E1 = 1;
E2 = 0;
}
void HT()
{
E1 = 0;
E2 = 1;
}
void TZ()
{
E1 = 0;
E2 = 0;
}
void ZUO()
{
count = 0;
jd = 4;
}
void YOU()
{
count = 0;
jd = 2;
}
void ZHONG()
{
count = 0;
jd=3;
}
void main()
{
Init();
Timer_int0();
UART_int(9600);
while(1)
{
switch(SBUF)
{
case 'Q': QJ(); break;
case 'H': HT(); break;
case 'K': TZ(); break;
case 'Z': ZUO(); break;
case 'Y': YOU(); break;
case 'T': ZHONG();break;
}
}
}
void UART_int(unsigned char baud)
{
SCON = 0x50;
TMOD |= 0x21;
TH1 = 256 - (11059200/12/32)/baud;
TL1 = TH1;
ET1 = 0;
ES = 1;
TR1 = 1;
EA = 1;
}
void Timer_int0()
{
TR0 =0;
TH0 = 0xFE;
TL0 = 0x33;
ET0 = 1;
TR0 = 1;
}
void InterruptTimer1() interrupt 4
{
if(RI)
{
RI = 0;
}
}
void InterruptTime0() interrupt 1
{
TH0 = 0xFE;
TL0 = 0x33;
if(count<jd)
pwm = 1;
else
pwm = 0;
count = (count+1);
count = count%40;
}
|
|