找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8123|回复: 10
打印 上一主题 下一主题
收起左侧

51单片机io口怎么检测电平变化

[复制链接]
跳转到指定楼层
楼主
ID:730775 发表于 2020-4-16 17:52 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
信号从一个io口(比如P0^0)输入单片机,从另一个io口输出(比如P1^0),怎么实现呢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:729982 发表于 2020-4-16 23:22 | 只看该作者
首先,对于你的题目,检测电平变化可以用电表,如果时间短了可能检测不出来,但是示波器一定可以但是比较贵。其次,对于你这个问题,你需要输入的是什么信号?数电还是模电?那是不一样的。输出很简单的。但是输入的话你需要写一个读io口的函数,如果输入是模电的话你还要进行AD转换。
回复

使用道具 举报

板凳
ID:341833 发表于 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;
           }
   }
}
回复

使用道具 举报

地板
ID:420836 发表于 2020-4-17 08:26 | 只看该作者
你需要编写一段代码来实现该任务。
回复

使用道具 举报

5#
ID:213173 发表于 2020-4-17 11:28 | 只看该作者
#include "reg52.h"  
sbit IN =P0^0;
sbit OUT=P1^0;  

void main()
{
        while(1)
        {
                OUT=IN;
        }
}
回复

使用道具 举报

6#
ID:430197 发表于 2020-4-17 13:25 | 只看该作者
直接if判断就行吧
回复

使用道具 举报

7#
ID:574507 发表于 2020-4-17 15:31 | 只看该作者
#include "reg52.h"sbit IN =P0^0; sbit OUT=P1^0;    void main() {         while(1)         {                 OUT=IN;         } }
回复

使用道具 举报

8#
ID:574507 发表于 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转换,这些都是相关教材上必备的知识,需要自己用心去看
回复

使用道具 举报

9#
ID:606493 发表于 2020-4-17 16:09 | 只看该作者
直接让P1的输出等于P0的输入,有硬件的话可以用万用表测试检测一下,没有硬件的话可以用proteus仿真一下,用里面的探针测试
回复

使用道具 举报

10#
ID:327724 发表于 2020-4-17 20:17 | 只看该作者
定义一个中间参数呗
回复

使用道具 举报

11#
ID:267932 发表于 2020-4-18 14:08 | 只看该作者
一直检测输入IO电平,   根据输入IO状态,在另一个输出IO做对应的输出高低就可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表