pwm脉宽调制.txt

来自「航模舵机」· 文本 代码 · 共 80 行

TXT
80 行
字号
#include "REG51.h"
int getdata=0;
unsigned char count;
unsigned char i,j,n;
sbit P37=P3^7;
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit CLK=P3^5;
void main(void)//本次实验选的通道IN0
{TMOD=0x21; 
 TH0=(65536-25600)/256; 
 TL0=(65536-25600)%256; 
 TH1=206;
 TL1=206;
 TR0=1;
 TR1=1; 
 ET0=1;
 ET1=1; 
 EA=1; 
 OE=0;//不允许输出
 ST=0;
 ST=1;
 ST=0;//启动ADC0809
 count=0;
while(1)
{ 
  if(EOC==1)//数据转换完毕
  {
   OE=1;//输出允许
   getdata=P0;
   OE=0;//关毕输出

   P1=getdata;
   getdata=getdata*100;

 
   ST=1;
   ST=0;//又启动ADC0809
  
   }
 }
}
void t0(void) interrupt 1 using 0 

{       


    switch(count)
        {
        case 0:
            
            P37=1;
            TH0=(65535-getdata)/256;
            TL0=(65535-getdata)%256;
            count=1;
            break;
        case 1:
     
            P37=0;
            TH0=(65535-(25600-getdata))/256;
            TL0=(65535-(25600-getdata))%256;
            count=0;
            break;
        }
 
        


} 
void t1(void) interrupt 3 using 0
{
CLK=~CLK;
}





⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?