单片机(二)

十一.延时

①软件延时:一直占用CPU,浪费CPU资源

②定时器延时:精准,且不占用CPU

十二.

main函数会自动循环,但一般还是要加while

这样写的话,led灯也会亮,但亮度会低一半,因为其一半时间是亮,一半时间是灭

0xff也可以写成十进制的255,把这组数据赋值给IO口,数据的最低位给IO口的最低位

闪烁间隔比一秒稍大

 

十三.

#define uchar unsigned char

用uchar代替unsigned char

define是预处理指令,不能加分号

typedef需要分号

十三.

左移运算符<<和循环左移不一样。左移运算符移位后空缺的低位补零,而循环移位高位移动到低位

_crol_可以直接对IO口使用,但会出现问题,不知道为什么会出现问题

#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char

uint temp;

void Delay()        //@12.000MHz 100ms
{
    unsigned char i, j, k;

    _nop_();
    _nop_();
    i = 5;
    j = 144;
    k = 71;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}


void main()
{
        int i;
    while(1)
    {
                temp=0xf7;
                P2=temp;
                Delay();
          temp=_crol_(temp,1);
                P2=temp;
                Delay();
                temp=_crol_(temp,1);
                P2=temp;
                    Delay();
                    for(i=3;i>0;i--)
                    {
                        temp=0xc7;
                        P2=temp;
                        Delay();
            P2=0xff;
                        Delay();
                    }
    }
}

/*void main()
{
        int i;
    while(1)
    {
                P2=0xf7;
                Delay();
          P2=_crol_(P2,1);
                Delay();
                    P2=_crol_(P2,1);
                    Delay();
                    
                    for(i=3;i>0;i--)
                    {
                        temp=0xc7;
                        P2=temp;
                        Delay();
            P2=0xff;
                        Delay();
                    }
    }
}*/

/**/内的为有问题代码,暂不清楚问题所在

十四.

电磁蜂鸣器有两种:无源和有源,有源的有振荡器

蜂鸣器有一个金属导体,导体绕有线圈,当通5v直流电时,产生磁场,这时会吸附导体上面的金属震动薄片,然后若快速让薄片吸合弹开(即电压为0v),薄片就会发出声音。有源的有振荡器,所以其声音的频率是固定的,无源的可以自行调节方波,让薄片可以随自己想要的频率发声。

扬声器的工作原理与蜂鸣器差不多。

蜂鸣器的工作电流一般为几时mA,最大不能超过0.5A。

 无源蜂鸣器发声代码如上

十五.

直插式封装:TO-92

贴片式封装:SOT-23

三极管饱和压降:0.2v-0.3v

箭头起始位置电压比结束位置电压高0.7v

具体计算可以参考:

判断三极管处于饱和状态的几种方法 - 知乎

三极管的放大倍数是指基极电流到集电极电流的放大倍数,同一个三极管的放大倍数不是固定的,收到静态工作点和温度影响。但大部分情况下可以把它看成固定的。

NPN和PNP三极管区别详细解释:

https://mp.weixin.qq.com/s?__biz=MzA3OTM2NzUxOA==&mid=2651574957&idx=1&sn=b26064a705e42a1e8cd17a2f121c317e&chksm=844bee9cb33c678a5c0c22bc25fdfff4bc89bb298a33d9160c56c828e35a7a386abe096d90c3&scene=27

十六.

当P23默认状态时,电平被上拉电阻拉到5v,R10右侧电压为5v,不满足发射极大于基极0.7v,三极管截止,相当于开关闭合。当P23输出0v时,R10右侧电压为4.3伏,基极电流为43mA,经过放大,发射极电流为几百毫安,蜂鸣器正常工作。

十七.

单片机只适合做控制用,不是功率器件,驱动电流非常小(因为IO口有内阻,且比较大)

十八.

51单片机灌电流能力为10mA,而拉电流能力(即驱动电流)却为几百微安

 这是NPN型的。NPN型为高电平触发,PNP为低电平触发。所以根据上面理论,当选用NPN时,单片机往外拉电流,会使蜂鸣器声音较小,所以51单片机一般选用PNP,即低电平触发。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值