zoukankan      html  css  js  c++  java
  • 单片机 二极管的发光

    #include<reg52.h>

    sbit led1=P1^0;      // 声明P1口的第一位

    void  main()

    {

        led1=0;

    }
               “  sbit  led1=P1^0  ”,  将P1口的最低位定义为led1。TX-1C实验板上,8个发光二极管的阴极通过一个71HC573锁存器分别连接至单片机的P1口,若要控制某个二极管发光,就要控制P1口的某位,必定要声明这一位,否则单片机不知道我们要操作什么东东。注意,这里的P一定要大写,因为在头文件中 “  sfr  P1=0x90 ”,把单片机内部地址为0x90处的寄存器命名为P1。
               “  led1=0   ”, 这是这个程序最核心的部分。在数字电路中电平只有2种状态,高电平 1;低电平 0。该语句的意思就是让P1口的最低位清0。那么板上的第一个二极管为什么会亮呢?  8个发光二极管的阴极通过锁存器与P1口的8个位相连,阳极串接电阻,阳极为高电平,当阴极位高电平时,二极管不会发光,所以只有P1口的第一位清0二极管才会发光。那么这个锁存器有什么目的呢?(关于锁存器下篇叙说) ,A/D芯片的数据输出端与单片机的P1口相连,当我们做A/D试验时,A/D芯片数据输出端的数据就会发生实时变化,若不加锁存器,二极管就会发生无规则闪动。为了在做A/D实验时,不影响二极管,我们在二极管与P1口之间加入一个锁存器用以隔离,当做A/D试验时,我们可以通过单片机将锁存器的锁存端关闭,此时无论P1口数据怎样变化,二极管也不会闪动。当我们做二极管实验时,,可将锁存端始终打开,也就是让锁存端处于高电平状态,而此时二极管就随P1口的状态而变化。 注意:在单片机一上电时,如果我们没有人为控制其I/O口的状态,它所有为控制的I/O口都将默认为高电平。
        对单片机P1口某个I/O口的控制可以对某个二极管的进行控制,当然我们也可以对其的8个I/O口同时进行控制。

    #include<reg52.h>

    void main()

    {

        P1=0xaa;      // 十六进制 aa 转换成 二进制 是10101010,那么即表示P1^0=0,P1^1=1……第一三五七个二极管发光

    }

  • 相关阅读:
    为经典版eclipse增加web and JavaEE插件
    类型之间进行隐式和显示转换&创建使用枚举&创建使用结构类型&创建使用数组&;如何处理字符串值
    VS2013秘钥
    VS2013快捷键大全
    2016年4月20日开会学习
    随机验证码.ashx
    关于代码开发的一些心得
    C#list泛型的定义,作用,用法
    String,StringBuffer与StringBuilder的区别??
    C# DataTable的详细用法
  • 原文地址:https://www.cnblogs.com/ATMvip/p/2404791.html
Copyright © 2011-2022 走看看