Manco的学习日志之51单片机篇(后续慢慢更新)

Manco的学习日志之51单片机篇(后续慢慢更新)

硬件基础知识——三极管

在数字电路中,三极管的主要用处是作为开关,无论是NPN管还是PNP管,只要箭头两端电压差大于0.7V(硅管),那么三极管就处于导通状态,反之,就可以当做处于断开状态,以此来实现我们所需要的开关作用。以上是对三极管截止状态的应用。

硬件基础知识——总线

在数字电路中的黑色粗线表示的是总线,但是这并不一定代表所有在电路中连到此线上的电路都是连接在了一起。

Typedef函数

Typedef函数的意义是让我们可以去定义一个已知的类型创建一个同义词,方便后续的使用。

Sbit函数

Sbit函数是一个寻地址的函数,你可以给一个特定的地址定义一个特定的名称,主要用来调用芯片的不同接口。例如:sbit led = P2^0; 表示命名P20口为led,以后调用此接口可直接使用输入led来调用。

delay函数

delay是一个常用的延时函数,但是目前仅仅是使用并没有具体细讲其具体用法

#define预处理命令的使用

#define A P0(后面不加分号)是一个预处理命令,作用和sbit一样,可以定义一个常用的量为特定名称,方便之后的代码维护。例如#define led = P2代表着我们把P2口的输出定义为led这个名称,后期我们可以直接使用led来调用这个P2口

循环左(右)移函数

循环左(右)移函数如其名,可以令一个值左(右)移动特定的位数。
crol(x,y)与_cror_(x,y)分别为左移和右移,辨识为最右边的字母l与r,分别代表left和right。X为需要移动的值,y为需要移动的位数。
注意:当我们是用这个函数的时候需要注意设定延时参数,因为在单片机中这个操作是非常快的,如果不设置延时参数的话,我们人眼是无法看到单片机上的实际现象的。
本节无关,但需注意:如果我们设置一个口有很多个输出的话,我们需要用16进制的数字来表示二进制的开关例如本节中8个led灯我们使用0xfe来表示灯的亮与否,16进制的0xfe转换为2进制则为1111 1110,意思是除了第8个灯其他灯全部都熄灭。
问题,我们用16进制的数字来表示灯的亮否是怎么实现的为什么转换为二进制后就可以控制高低电平。
答:16进制数进入一个IO口后会根据16进制的数字转换为二进制的0 1分别对这个IO口的不同负载进行高低电平的调整,最终实现不同的LED灯的明亮与否。

蜂鸣器的使用

蜂鸣器的使用其实就是在于对与蜂鸣器相连的P15端口的控制,蜂鸣器的原理就是不同频率的高低电平变换会产生不同的声音所以可以通过对P15端口高低电平的切换频率的控制实现对蜂鸣器的声调的设置。
其中高低电平的变换可以使用”~”来实现,例如beep = ~beep;表示的就是beep的电平反向。

数码管的使用

u8 code smgduan[] = {
   0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,<
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值