单片机交流
直播中

胖子的逆袭

12年用户 1092经验值
私信 关注
[问答]

请问上位机是如何发送’1’给单片机的

请问上位机是如何发送’1’给单片机的?怎样去编写其代码?

回帖(1)

王建华

2021-11-2 10:21:53
  串口使用练习一
  由上位机发送’1’给单片机时,蜂鸣器以400Hz频率发声,发‘2’时以200Hz频率发声,发‘3’时以100Hz频率发声,发‘4’时关闭蜂鸣器。
  本实验使用锐志电子RZ-51/AVR V2.8单片机,不同单片机引脚可能不同。下面给出代码段,欢迎讨论。
  #include《reg52.h》
  #define uint unsigned int
  #define uchar unsigned char
  uint num;
  uint temp;//用于记录num的变化
  uchar a;
  ***it buzzer=P2^3;
  void main()
  {
  TMOD=0x21;//定时器T1选择工作方式2
  TH1=0xfd;
  TL1=0xfd;//定时器T1装初值
  TR1=1;
  REN=1;//SOCN中开串行接受
  SM0=0;
  SM1=1;//SCON中设定定时器工作方式为1
  EA=1;
  ES=1;//IE中开串行口中断
  buzzer=0;
  num=0;
  temp=0;
  TH0=(65536-45972)/256;
  TL0=(65536-45872)%256;
  ET0=1;
  TR0=1;
  while(1)
  {
  switch(a)
  {
  case ‘1’:
  temp++;
  if(temp==4)
  {
  temp=0;
  buzzer=~buzzer;
  }
  break;
  case ‘2’:
  num++;
  temp++;
  if(temp==2)
  {
  temp=0;
  buzzer=~buzzer;
  }
  break;
  case ‘3’:
  num++;
  temp++;
  if(temp==1)
  {
  temp=0;
  buzzer=~buzzer;
  }
  break;
  default: break;
  }
  }
  }
  void ser() interrupt 4
  {
  RI=0;
  a=SBUF;
  }
  void enter0() interrupt 1//50ms
  {
  TH0=(65536-45872)/256;
  TL0=(65536-45872)%256;
  }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分