一、原理图:
二、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
关键字:51单片机 电力载波 通信开关电路
引用地址:
基于51单片机的电力载波通信开关电路的制作
推荐阅读最新更新时间:2024-03-16 15:07
uIP在51单片机上的移植
uIP其主要是为8位和16位系统设计的,程序在编写时就考虑到了移植问题。uIP的主要文件包括uip.c和uip_arp.c。 (1)移植的基本过程。 针对所用编译器的类型更改定义数据类型,底层RTL8019AS芯片的驱动和实现应用层代码,系统定时器接口等。下面分别予以说明。 数据类型的定义: typedefunsignedcharu8_t;typedefunsignedshortu16_t;typedefunsignedshortuip_stats_t;由于KeilC编译器默认情况下的编译模式为small,变量的定义在内部RAM中,编译时编译模式应改为Large,即变量的定义在XDATA中
[单片机]
51单片机学习——7--8*8LED点阵显示
原理 点阵简介 点阵的外部 点阵的内部结构 和矩阵按键相似,将每一行或每一列的LED阳极或阳极并联一起。如左图,如果我们想让某个led灯点亮,就让某一行输出高电平,某一列输出低电平。 我们通过74HC595向led点阵输入段选数据,即控制每一列哪些灯亮 通过P0口输入位选数据,即控制哪一列显示 74HC595 通过控制14,11,12引脚来输入数据。 14:DS(SER)对应网络标号的P3^4 11:SHCP(SRCLK)对应网络标号中的P3^6 12:STCP(RCLK)对应网络标号中的P3^5 上升沿就是数字电路中,数字电平从低电平(数字“0”)变为高电平(数字“1”)的那一瞬间(时刻)叫作上升沿。
[单片机]
解决51单片机复位触发的4种方法
51内核的单片机有个比较恼人的特性就是复位期间,IO口呈高电平状态,万一IO口控制的设备是使用高电平触发的话,在复位的瞬间会造成设备触发。 总结一下接触过的解决方法: 1、把MCU换成别的体系的,譬如AVR、PIC等,这些单片机复位时IO口呈浮空高阻状态,不会造成触发。 2、使用反相驱动,MCU输出低电平反相成高电平再去控制设备。复位时的高电平反相后变成低电平,不会触发。这是比较常用的方法,稳定,但布线复杂了不少。 3、使用光耦隔离。光耦隔离后MCU也是输出低电平打开光耦再驱动被控设备,复位时的高电平不会打开光耦,不会造成误触发。 4、使用多余的IO口锁定,这种方法比较奇怪,在没用的IO口里挑一个出来接到NPN管的基极,
[单片机]
用51单片机实现串口通信
#include void ckInt()//串口初始化 { TMOD=0x20;//定时计数器1,方式2 TH1=0xF3; //计算出来的初值 TL1=0xF3; //计算出来的初值 PCON=0X80;//波特率加倍 TR1=1;//启动定时计数器1 SCON=0x50;//串口工作方式1 ES=1;//打开串口中断 EA=1;//打开总中断 } void main()//主函数 { ckInt();//调用函数 while(1); } void ckzd()interrupt 4//中断函数,串口中断编号4 { unsigned int DATA; DATA=SBUF;//发送数据 RI=0;//
[单片机]
51单片机的LCD1602液晶屏密码锁汇编程序
;说 明:首先显示器提示输入密码,密码在12.5S内输入有效, ; 输入次三次错误报警10S,输入正确开门,7秒后返回初态 ; 以上参数均可在主程序里设定,修改系统密码在程序的结尾 RS BIT P2.7 RW BIT P2.6 E BIT P2.5 ENTER BIT 22H.0 OPEN BIT P3.6 SPEAK BIT P3.7 PASSBUF EQU 40H KEYNUMBER EQU 41H ;存放识别后的按键号 ORG 0000H
[单片机]
AT89C51单片机解密原理
AT89C系列单片机擦除操作的时序为:擦除开始---- 擦除操作硬件初始化(10微秒)---- 擦除加密锁定位(50----200微秒)--- 擦除片内程序存储器内的数据(10毫秒)----- 擦除结束。如果用程序监控擦除过程,一旦加密锁定位被擦除就终止擦除操作,停止进一步擦除片内程序存储器,加过密的单片机就变成没加密的单片机了。片内程序可通过总线被读出。 对于AT89C系列单片机有两种不可破解的加密方法。 一、永久性地破坏单片机的加密位的加密方法。简称OTP加密模式。 二、永久性地破坏单片机的数据总线的加密方法。简称烧总线加密模式。AT89C系列单片机OTP加密模式原理这种编程加密算法烧坏加密锁定位(把芯片内的硅片击
[单片机]
基于89C51单片机的环境噪声测量仪
1 引 言 环境噪声监测,是人类提高生活质量,加强环境保护的一个重要环节,在各大城市的繁华街区和居民区,已有大型环境噪声显示器竖立街头。但目前国内的便携式噪声测试仪,多为价格昂贵的进口专用设备,除卫生、计量等环保专业部门拥有外,无法作为民用品推广普及。本文介绍一种以89C51单片机为核心,采用V/F转换技术构成的低成本、便携式数字显示环境噪声测量仪。该仪器工作稳定、性能良好,经校验定标后能满足一般民用需要,可广泛应用于工矿企业、机关、学校等需要对环境噪声进行测量和控制的场合。 2 声压级的测量机理 人耳的听阈一般是20μPa,痛阈一般是200 Pa,其间相差107倍,这样宽广的声压范围很不易测量,
[应用]
什么是51单片机最小系统
1.什么是51单片机 51 内核单片机是 指兼容Intel 的8051指令系统的单片机统称;从诞生到现在的几十年时间,已成为一款经过市场考验、成熟的芯片产品。目前国内也众多51单片机厂家,且还有众多带51内核,用于各种不同场景的专用类单片机。 51单片机内部框架: 以下以STC89C52单片机为例,其内部总体结构其基本特性如下: 8位CPU、4-8k 字节 ROM、128 字节 RAM、21 个特殊功能寄存器32根I/0线、可寻址的 64 字节外部数据、程序存贮空间、2个 16 位定时器计数器中断结构:具有二个优先级、五个中断源、一个全双工串行口、位寻址(即可对寄存器进行位操作)功能,能按位进行逻辑运算的位处理器。 除 1
[单片机]