标题:
51单片机io口怎么检测电平变化
[打印本页]
作者:
cornelio
时间:
2020-4-16 17:52
标题:
51单片机io口怎么检测电平变化
信号从一个io口(比如P0^0)输入单片机,从另一个io口输出(比如P1^0),怎么实现呢
作者:
我未曾来过
时间:
2020-4-16 23:22
首先,对于你的题目,检测电平变化可以用电表,如果时间短了可能检测不出来,但是示波器一定可以但是比较贵。其次,对于你这个问题,你需要输入的是什么信号?数电还是模电?那是不一样的。输出很简单的。但是输入的话你需要写一个读io口的函数,如果输入是模电的话你还要进行AD转换。
作者:
finezwl
时间:
2020-4-16 23:45
最简单的高低电平识别
#include <STC15F2K60S2.H>
sbit in = P0^0;
sbit out = P1^0;
void main()
{
while(1)
{
if (in==0)
{
out=0;
}
else if (in==1)
{
out=1;
}
}
}
作者:
TTQ001
时间:
2020-4-17 08:26
你需要编写一段代码来实现该任务。
作者:
wulin
时间:
2020-4-17 11:28
#include "reg52.h"
sbit IN =P0^0;
sbit OUT=P1^0;
void main()
{
while(1)
{
OUT=IN;
}
}
作者:
Mr丶朋
时间:
2020-4-17 13:25
直接if判断就行吧
作者:
heliuro
时间:
2020-4-17 15:31
#include "reg52.h"sbit IN =P0^0; sbit OUT=P1^0; void main() { while(1) { OUT=IN; } }
作者:
heliuro
时间:
2020-4-17 15:40
51单片机对于数字电路信号的输入输出很简单,判断对应引脚电平就行,以下以点触型输入型号为例
#include "reg52.h"
sbit P0_0 = P0^0;
sbit P1_0 = P1^0;
void main()
{
int k = 0;
while(1)
{
if (P0_0 == 0)
{
for(k=0;k<30;k++);
if(P0_0 == 0)
P1_0 = 0;
}
else if (P1_0 ==1)
{
for(k=0;k<30;k++);
if(P0_0 == 1)
P1_0 = 1;
}
}
}
而模拟信号需进行AD/DA转换,这些都是相关教材上必备的知识,需要自己用心去看
作者:
hangsy
时间:
2020-4-17 16:09
直接让P1的输出等于P0的输入,有硬件的话可以用万用表测试检测一下,没有硬件的话可以用proteus仿真一下,用里面的探针测试
作者:
ONLY_pc
时间:
2020-4-17 20:17
定义一个中间参数呗
作者:
zhai1995
时间:
2020-4-18 14:08
一直检测输入IO电平, 根据输入IO状态,在另一个输出IO做对应的输出高低就可以了。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1