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……第一三五七个二极管发光

    }

  • 相关阅读:
    Python、Lua和Ruby比较——脚本语言大P.K.
    vim 设置默认显示行号
    C语言
    How To Add Swap on Ubuntu 14.04
    How To Install Apache Kafka on Ubuntu 14.04
    php的错误和异常处理
    md5sum
    大牛的博客
    【转】4G手机打电话为什么会断网 4G上网和通话不能并存原因分析
    【转】女人最想要的是什么
  • 原文地址:https://www.cnblogs.com/ATMvip/p/2404791.html
Copyright © 2011-2022 走看看