微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 计算机通过串口向单片机发送数据问题!

计算机通过串口向单片机发送数据问题!

时间:10-02 整理:3721RD 点击:
串口发送一个数值,改变pwm,从而改变灯的亮度,请高手帮我看看程序,谢谢了
#include<reg52.h>
#define uchar unsigned char

uchar PWM=0,t=0;
  uchar flag;
void main()
{
TMOD|=0x21;   
   TH0 = ( 65535 - 50 ) / 256;       
     TL0 = ( 65535 - 50 ) % 256;   
       
         TR0=1;        
        SCON|= 0x50;      
        TMOD|= 0x20;                              
                                                             
         TH1 = 0xFD;     //  波特率9600   
         TL1 = 0xFD;     
         TR1  = 1;                                                               
         ES   = 1;            
         PS=1;//串口中断优先级高,PWM优先级低        //
         PT0=0;   
         EA=1;      
     P0=1;  
while(1)
{  if(flag==1)
{  flag=0;
      ES=0;   
    SBUF=PWM;
  while(!TI)
{  TI=0;  ES=1;  }
}  }        }
void s() interrupt 4
{ RI=0; PWM=SBUF; flag=1;  }  
void time0_s()interrupt 1 using 1
{  t++;
TH0 = (65536 - 50) / 256;
TL0 = (65536 - 50)% 256;
if(PWM==t)  {  P0=1;  }
if(t==255)  {  t=0;
if(PWM != 0        )
{
P0 = 0;
}  }
  }  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top