首页 接线图文章正文

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

接线图 2023年01月29日 16:41 247 admin

一、原理图:

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

  二、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 //返回到扫描


版权与免责声明

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

标签: led 指示灯 计数器

发表评论

接线图网Copyright Your WebSite.Some Rights Reserved. 备案号:桂ICP备2022002688号-2 接线图网版权所有 联系作者QQ:360888349