点亮一个LED灯

       第二次更新开始啦,这才第二天我怎么就有点更不下去的感觉了呢,哈哈,看来我还是真的懒,最后终于还是下定决心继续更新吧,我希望这个博客能不仅能够让我回顾技术,也能让我记录我现在每天的生活,将来某一天我自己回顾我的研发的生活也挺有趣的呀。当然,你不喜欢,直接下一段,哈哈,这段时间受到疫情影响,公司整体没有事情干,感觉有时候挺无聊的,任务也比较少,但是难度却是很高,最近在调一个摄像头的驱动,本来其实就是一个标准化的东西,直接调用内核的函数就可以完成了,结果有两个摄像头兼容性不好,导致帧率死活都很低,我都已经找到内核里面去了,结果还是不知道怎么回事,在内核里面算了半天时间,结果到一个回调函数的时候走到死胡同里面去了,直接就把我心态搞崩了啊,后来到晚上实在搞不下去了,就看lpl比赛啦,哈哈,就当是放松了,明天继续去搞。感觉搞技术就是这样,有时候突然会走入死胡同,过一会儿或者一晚上之后就好像突然被打通了任督二脉,突然就有很多思路啦,那都不是问题。哈哈。。。。。。。。。。开始我今天的授课吧。

  • 学前的准备?

             首先硬件条件就是一台装了keil51加上一个开发板.至于软件怎么装没兴趣说,不会?百度一下咯,要有自己学习的习惯嘛(其实主要是我也没记住啊,我又不想去复制粘贴),至于之后的怎么建立文件还是自己去看看和学学把,我主要是讲解比较重要的知识点,有了这些就可以开始你的编程之路啦。

  • 点亮一个led灯

          在点亮这个灯之前,需要先明确一个概念,在编程之前,一定是先看硬件,再看软件,最后开始编程,就以点亮led灯为例,先看一下你的板子上的led灯在哪儿,有没有led灯,你别最后连led灯都没有,那你岂不是编了个寂寞,之后是看你的芯片原理图,以我的芯片原理图为例吧

首先我知道了我的8个led灯全部都是连接到P20到P27这7个地方的,按照我们小学自然的知识我们都应该知道假如我给P20一个低电平那D1是不是就可以亮了,那我们就可以开始编写程序啦,我的程序如下:

#include <reg52.h>
sbit led1 = P2^0;
void main(){
    while(1){
        led1 = 0;
    }
}

这段程序首先有一个头文件reg52.h,可能学过C语言的知道这其实就是一个头文件,其实假如你连这个都不知道的话,可以稍微看一下C语言的书了,当然我也可以讲解一下,你看第二行有个P2^0这个东西,这个就可以理解为P20,意思是有了这个头文件他就能解释P2^0是怎么回事,不然天知道那是啥啊,你假如要用51单片机的任何资源都需要加上这个头文件,P2实际是一个寄存器,后面的标号就是这个寄存器的第零位,寄存器说来也简单,其实可以想象为就是用来存东西的,它的第零位为0也就是P20为0了,那D1是不是就应该能亮了呢?好好看看你的现象,是不是亮了?你的假如不是P20,对应修改就行了啊。

  • 点亮之后?

        点亮了完事了,但是上面还有一些东西可以深挖啊,毕竟学技术的嘛,很多东西可以深挖一下,上面有个地方有sbit,这个是什么意思呢?比如上面的while有什么用呢?首先sbit是代表寄存器的一位,当然还可以用sfr来表示8位寄存器,比如sfr P2;那这是不是又给了你思路,比如0246亮,让1357灭呢?这里面其实还涉及了一个知识点2进制和16进制,可能你现在还不会,我明天决定出一个数据类型和进制的东西,应该是放到C语言基础第一天说一下,但是你可以用自己的思路去解决一下。这儿其实还有两个要稍微说一下,虽然用的很少,一个是sfr16表示的是16位寄存器,和sfr的用法基本一致,还有一个就是bit,就是申明一个简单的位变量,至于这儿的sbit能不能用bit取代,你们自己去实验实验啊,哈哈,反正我是知道的,就不想直接告诉你。。。假如还是想知道,看我下回能不能记起来讲解吧啊

  • 写到最后?

      每天写这个东西真的有点累,毕竟我是还要上班的人,但是我还是希望我能坚持下去,一直把我学到的所有东西一直回忆下去,前面的可能写的不是很好,等我慢慢学,慢慢看,有什么纰漏再回来改改,以后总能慢慢进步的,哈哈,朕累了,爱卿们跪安吧!!明天C语言基础准备开始更新了

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页