0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >电路图 > 基于51单片机的电力载波通信开关电路的制作

基于51单片机的电力载波通信开关电路的制作

来源: 维库电子网
2020-04-13
类别:电路图
eye 74
文章创建人 拍明

原标题:基于51单片机的电力载波通信开关电路的制作

  一、原理图:

二、C程序源代码

  /*

  此程序已经经本人亲自调试运行过,如有疑问,请联系

  QQ:286288986

  */

  #include//预定义头文件

  #define uchar unsigned char //宏定义

  sbit keyin=P3^3; //按键定义

  sbit LED=P3^5; //指示灯定义

  uchar a; //接收数据记存器

  void main() //主函数

  {

  keyin=1; //按键口置1

  led=1;  //灭led灯

  TMOD=0x20; //选择顶时器/计数器1中的方式2

  SP=0x60;   // 设置堆榨地址

  TH1=0xfd; //波特率9600bit/s

  TL1=0xfd;

  SCON=0x50; //串口通信方式2,允许收发

  TR1=1;  //开启计数器

  while(1)   //循环

  {

  if(keyin==0) //判断按键是否按下,是则按键处理

  {

  SBUF=0x00; //接收数据处理

  while(TI==0) ;  //发送完清除接收标志位

  TI=0;

  }

  if(RI==1)  //是否接收

  {

  RI=0;   //接收完接收标志位清零

  a=SBUF;   //读接收数据

  if(a==0)   //判断接收数据是否正确

  {

  if(led==1) //正确led灯取反

  led=0;

  else

  led=1;

  }

  }

  }

  }

  三、汇编程序

  /*

  此程序已经经本人亲自调试过,如果在学习当中有什么疑问,

  QQ:286288986

  */

  ORG 00H

  JMP START    //开始

  ORG 10H    //开始地址

  START:

  MOV SP,#60H    //设置堆榨地址

  MOV SCON,#50H //串口通信方式2,允许收发

  MOV  TMOD,#20H //选择顶时器/计数器1中的方式2

  MOV TH1,#0FDH //波特率9600bit/s

  MOV TL1,#0FDH

  SETB TR1  //开启计数器

  SETB P3.3  //开关输入口置1

  SETB P3.5  //LED显示口灭

  SCAN:

  JB RI,UART   //判断是否接收

  JNB P3.3,KEYIN //判断按键是否按下,是则按键处理

  JMP SCAN  //不是按键扫描

  KEYIN:

  MOV  A,#5AH  //发送数据装入A

  MOV SBUF,A  //发送数据

  WAIT:    // 等待发送

  JBC TI,SCAN  //发送完了清除TI标志位

  JMP WAIT

  UART:      //接收数据处理

  MOV A,SBUF

  CJNE A,#5AH,ERROR  //简单的地址码设置为5AH,用户可随便定义

  CLR RI    //清除接收标志位

  CPL P3.5   //点亮灯

  ERROR:

  JMP SCAN   //返回到扫描

  END


责任编辑:

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: 51单片机

相关资讯