小白跨行入门单片机从89C51到STM32

        新手小白入门单片机其实很简单。硬件,软件的入门只需要理解他们之间的一个核心原理,然后配合入门几个基本的元器件和常用的几个编程关键字词的识别,应用。即可开始单片机的入门之旅。

        这只是希望提供一个思路。你想让单片机按照你的想法工作。那么通过软件编程去设置它吧。

        这个核心原理。从改变单片机某个引脚高低电开始。你想让这个单片按照你想要的方式改变它某个引脚的电平。于是编写一段软件代码烧录到单片机里面,然后单片机按照你想要的方式改变引脚的电平状态。比如让一个引脚接一个LED灯以1秒间隔闪烁。

        具体到不同的单片机硬件软件都有些许不同,理解了核心原理,其他只是换汤不换药。比如想同样的改变某个引脚的电平状态只是软件写法,名称,规则等会有不同,原理都是差不多的。

        以C51单片机为例。

        这是一个STC15F104亮灭一个LED实例。需要硬件一个USB转TTL,一个stc15f104单片机,一个3.3V的LED灯,一个1K的电阻,连接这些零件的电线若干。需要准备软件KEILL的EDA编程环境,配套USB转TTL驱动,stc-isp-15xx烧录软件。还有最贵的一个东西。。。。一台能开机的电脑。

看示意图:了解基本的电路及电子元器件知识,看图接好准备的硬件电路。

 电脑上89C51软件开发环境配置好,串口驱动打好。

程序思路就是导入C51的头文件,然后给用的哪个引脚取个名字然后加个延时每隔一秒改变一次引脚的电平状态。从而控制LED灯的亮灭。

代码示意如下:

#include <REGX52.H>
sbit LED =P3^3;        //为控制LED灯的引脚取一个名字叫LED以下代码都围绕你想怎么控制这个LED灯展开。
void DELAY_MS(unsigned int a ){
        unsigned int i;
        while (--a !=0){
                for (i=0;i<=600;i++);
        }
}
void main (void){
        while (1){
                LED=~LED;
                DELAY_MS(1000);
        }
}


编译通过后烧录进单片机不出意外就可以看到效果。

----------------------------------------------------------------------

再看看STM32单片机。只是多了些引脚和其他所需基本电路,核心思想是一样的,想用哪个引脚控制LED灯就接哪个引脚,比如接在PA13上。

 电脑上STM32软件开发环境配置好,串口驱动打好,FlyMcu等烧录软件安装好。

程序也是多了一些控制引脚所需的其他配置。也是导入stm32的头文件,然后给用的那个引脚配置好工作所需参数取个名字然后加个延时每隔一秒改变一次引脚的电平状态。从而控制LED灯的亮灭。

代码示意如下:
#include "stm32f10x.h"
 void DELAY(unsigned int a ){                //设置延时函数,需适配
        unsigned int i;
        while (--a !=0){
                for (i=0;i<=6000;i++);
        }
}
void LedConfig(void)        //配置好引脚工作所需参数
{
    GPIO_InitTypeDef GPIO_InitStructure;    //定义结构体
    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);    //打开GPIOA的外设时钟
    
    /* 配置结构体并初始化到GPIOA */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;            //选择需要使用的引脚
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    //配置输出频率
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //配置引脚输出模式
    GPIO_Init(GPIOA, &GPIO_InitStructure);                //初始化结构体
}
 
int main (void)
{
    LedConfig(); //调用配置好引脚工作所需参数

    while(1){

    GPIO_SetBits(GPIOA,GPIO_Pin_13);//控制PA13引脚电平变高

    DELAY(20);//调用延时

    GPIO_ResetBits(GPIOA,GPIO_Pin_13);//控制PA13引脚电平变低

    DELAY(20);

}

STM32比C51多了更多代码,名称规则也不尽相同,功能更强大。这些东西思路都是相通的。从C51开始能通过敲代码实际控制一个灯的状态开始,单片机的门就算入了。剩下的就是不断学习,不断深入以实现更多更复杂更好玩的功能。硬件软件各有侧重,一切尽在入门之后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bothAD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值