直接拿出大学时候的51单片机就开始回顾总结吧。首先关于什么是单片机,我觉得解释起来没那么麻烦,原来学习的时候听这些人说的高大上,然后自己就为了学个这个还有多次入门,多次放弃,多次从入门到放弃,现在想来真是傻透了,其实单片机是啥,其实就是一个可以编写程序然后让它能输出高低电平的东西,其实就是这么简单,不用想的特别复杂。至于51单片机,其实就是有个单片机类叫做51单片机,至于具体的谁care呢,至于C语言,学过两天就能搞,实在不行就再拿本书翻翻呗,当然我也会回顾,但不是现在啦,用到哪儿实在不会了再去查呗,边回忆边学习。那就直接开始吧。
1. 硬件
首先单片机编程是一个先由硬件再到软件的过程,要编程就需要先看一个东西,叫做开发板原理图,我们首先第一个回忆的是led灯,那先打开开发板原理图:
我们可以看到VCC在左边,之后经过一个二极管然后经过电阻到达p20到p27口。那其实就是说假如我们右边给了一个低电平,那么我们就可以让led灯亮起来,那其实说来就是说这样我们就能点亮一个led灯了。
2. 软件:
那我们可以试着先点亮一个灯,程序如下
至于为啥会有“reg52.h”头文件,其实就是说你为了能操作这个芯片,其实它内部是有一些寄存器的,你需要去包含它,这个头文件里面就有对应的寄存器的声明。sbit是C语言不存在的一个数据类型,其实就是定义P2^0这个位,while循环里面就是先给它一个低电平,延迟一段时间再给它一个高电平,这样就能使得这个led灯亮灭。
接下来我们其实还可以同时点亮多个led灯,很多人都可能会想到使用API来写这个,关于API其实就是一些大神写好的函数,就比如我上面的写的delay函数一样,我们直接调用就好了,但是我觉得才开始还是可以考虑自己写一个比较好,下面就是我写的关于led流水灯的内容:
哈哈,其中还是有些位运算比较难的,但是位运算还是需要学会吧,关于这个位运算这种东西还是可以多算,就很快就会有感觉啦。当然还是有些小公式需要记住,比如把某一位置0,或者是某一位置1,这个比较简单,就不回顾啦。
3. 简单的拓展:
我们现在来输出的引脚其实就是我们所说的通用IO,就是因为它可以控制输出高低电平,而输出高低电平就是GPIO的其中一个重要特性,当然51单片机还有一些其他的引脚,反正边学边看呗,也不用记,多编程不就知道每个引脚的意思了么。
关于电阻,我们高中的时候就学过电阻了,其实我们拿到一个电阻可以直接用电压表就能测出电压是多少,但是我还是觉得简单的可以记一下,其实就是假如是三位数103,前两位就是系数,后面的是指数,即是10乘以10的3次方,即是1000欧,而假如1004就是前三位是系数,其他的看一下假如能看出来可以,实在把握不住直接电压表吧
关于发光二极管:,它具有单向导电性,通过5mA电流就能发光,其亮度越强,但假如电流过大,就会烧毁二极管,所以我们一般控制在3~20mA就可以了,在这里给发光二极管一个电阻的目的就是为了防止电流过大。
关于led的大致回顾就到这里啦,希望自己再接再厉,继续回顾和学习原来的知识,温故而知新,把每个系列都认真出完。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!