单片机做PPM调制
各位大佬,问一下,我这个程序为什么做不出来ppm调制,哪里有问题,就是利用串口输出特定的波形,为什么出来的波形是乱的????
#include<reg52.h>
unsigned char flag;
unsigned int i,a;
void main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
i=1;
EA=1;
ES=1;
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
SBUF=a;
while(!TI);
TI=0;
ES=1; } }}
void ser() interrupt 4
{
for(;i<=8;i++) { RI=0;
switch(i) {
case 1: SBUF=0x20; break;
case 2: SBUF=0x01; break;
case 3: SBUF=0x40; break;
case 4: SBUF=0x02; break;
case 5: SBUF=0x40; break;
case 6: SBUF=0x10; break;
case 7: SBUF=0x10; break;
case 8: SBUF=0x20; break;
default: SBUF=0x00; break; }
a=SBUF;
if(i==8) i=1;
flag=1; }}
或者,哪个大佬有成熟的利用单片机做ppm调制的程序啊?