从零开始学习单片机的日志51单片机篇【随缘编写】

本文是一篇个人学习单片机开发的笔记,作者旨在通过学习积累,最终制作出基于51单片机的智能巡线小车。首篇内容从基础的点亮二极管入手,使用AT89C52单片机,讲解了如何设置端口状态以及51单片机的低电平有效特性。文中还提及了错误的端口描述方式,并给出了正确的数组编写端口状态的示例代码。
摘要由CSDN通过智能技术生成

1.1 前言

        这只是出于个人兴趣所记录的学习笔记,我会边学边记,没有什么很深奥的奇数向干货,只是想作为我学习单片机开发的一个网络日记本。其中可能会记录一些写好的程序或者从开源渠道获取的程序;也会记录一些程序在51单片机上运行的结果;还会记录一些我的个人感受,虽然知道没什么人看,但是请勿喷,感谢。

1.2 目标

        作为一个不入流211的准大四,如山的求职压力让我深知摆了三年后找工作是异常艰巨的,因此有了重新学习单片机开发作为一项技能而非一个课程的想法。这次就定个对诸位大佬来说很小很小但对我来说堪称艰巨的目标吧:终极目标为自己攒一台基于51单片机的智能巡线小车。

1.3 第一篇日志的内容:先点亮一个二极管

        提到单片机就不得不说流水灯了。所有的单片机学习都是从发光二极管开始的,我也不想免俗,这就上代码吧。

        #include <regx52.h>
void main ()
    {
    P2 = 0XFE;
}

        代码很简单,单片机型号是AT89C52,结构也很简单,只有头文件与对P2端口的定义。这里相当于直接定义了P2整个的状态,0XFE是以十六进制表示的八位二进制数,其结果为11111110;分别对应P2下的P2_0到P2_7八个端口的状态。如果乐意,也可以用P2_0=0这样的形式来点亮自己想要的二极管。但是要注意,51是低电平有效,编程的时候要改掉在C中1为有效的习惯。

        另外,像 for (i=0;i<8;i++){P2_i=0;}这样的端口描述我尝试过,单片机是不认这样的端口写法的,除非你用define进行宏定义(我不会)。想用数组编写自己的端口正确写法如下:

#include <regx52.h>
#include <intrins.h>
#include <stdio.h>
void delay (unsigned int time)        //@12.000MHz
{
    unsigned char i, j;
    while (time--)
    {
        i = 2;
        j = 239;
        do
        {
            while (--j);
        } while (--i);
    }
}

void main ()
{        
        char a[8] ={0Xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
        char i;
        while (1)
    {    for (i=0;i<8;i++){
        P2=a[i];
        delay (300);
        }
    }
}

因为是第一篇,所以懒狗病犯了,就留到下篇再写吧。以上,感谢观看。

                        

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值