别人都说51单片机很容易学,为什么我学起来那么难,学了很久还没入门?

有个疑问


相对于STM32、ARV等,51单片机入门是相对容易的,寄存器配置比较简单,IO口为准双向口不需要配置方向。而且51单片机出现比较早,资料比较多,很多学习都开设51单片机的课程。学习单片机可以按照如下几个步骤去学习。


1. 入手开发板,勤动手

单片机是一门偏重于动手的技术,需要多动手,不要一直抱着书看,有的单片机类书籍讲的比较杂或者是从数据手册翻译过来的,正本书看完了说不定都不知道单片机使用什么开发环境去编程、使用什么工具去烧写程序。所以,如果要学51单片机就去买一块51单片机开发板,卖家会把编程环境、烧写工具、进阶步骤、各种学习资料都给配齐的。

2.看原理图,学习硬件设计

单片机开发板比较方便的地方就是就成了各种常用的外设电路,方便了初学者学习。在拿到开发板后,先看一下说明资料,有哪些功能电路,各种接口,再认知研究一下硬件原理图。硬件原理图与后面的编程密切相关,这些常用的电路,以后都可能会用到。

3.看配套例程,学习程序设计

原理图了解的差不多后,就可以编程了,先跑一遍例程,再看一下别人的程序是怎么写的,再新建自己的工程去实现功能,一般来说按照如下步骤去学习单片机的各种资源

GPIO口的配置,这是最基本的操作,与之相关的电路有:流水灯、控制蜂鸣器、控制继电器、按键输入、数码管显示等。通过这些功能,学习GPIO口的配置方法和硬件电路的控制方法。

定时器、中断、AD采样等,这类资源都是单片机的基本资源,通过例程学习这些资源的基本概念、工作原理、寄存器的配置方式等,可以结合前边的外设,实现自己想要的效果。

UART、RS232、RS485等通讯功能,借助例程学习各种通讯接口的含义、了解通讯协议。单片机的各类通讯基本都可以通过UART来扩展,记住常用的电平转换芯片和使用方法,学习如何配置相关的寄存器。

自己组合功能,通过上边的学习之后,就可以实现自己的功能了,根据外设资源自己组合功能,并编程实现。

以上就是这个问题的回答,感谢留言、评论、转发。更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。


玩转嵌入式


原理都一样,一通百通,stc15系列的增强型51单片机资料丰富,还是中文的,性能也不错,想玩单片机的话,是首选,我的经验是: 基本知识先了解一下,关键是要勤动手,从小制作开始,动手实操,再返回知识点,再实际动手验证,认知就会升级一点,几个制作做下来,就入门了。另外,目前的教科书也有待改进,许多例程脱离实际应用,学了很多,依然不能完成项目,比如就一个LED闪烁的例子,目前大部分是这样的,没啥实用价值,只是个验证而已:

while(1)

{

delay1S();

P10=!P10;

}

采取的是的阻塞延时,书本的例程,对初学者编程思维有很大的负面影响,现实中,单片机是动态执行任务的,下面代码更接近实际应用:

u16 i=0;

while(1)

{

i++;

if(i>50000)

{

i=0;

P10=!P10;

}

}

强烈推荐这个作为单片机Helloworld入门程序。


科技迷001


如果是新手我建议从stm32开始学习,51虽然修修补补能做一些产品,毕竟资源有限体验感较差,没必要从51再过度到32位机,就像以前有8031,或者4位机,没有人再从那些芯片开始学。stm32的家族非常庞大,低价的有2元级的,高价的有几十元的,而且他可以面向对象选择适合的芯片,比如面向电机,物联网等等。这个行业,单片机本身不是难事,就算你吧内部资源等都精通,那也不代表你可以开发出好的产品,关键还是你开发产品所处的领域,对细分行业不精通,那也只是学了皮毛。


良子2018


推荐看,郭天祥老师视频,没有什么太深奥的专业理论通俗易懂,由简如繁,慢慢学习,20天应该可以入门了,,哪些说从CPU计算机原理,模电,数电学习的都是大神级别的人你们太厉害了,,其实原理是简单的就是太多人硬是把简单东西复杂化,写些让人看不懂的东西,让小白们望而却步,越学越头晕。


大道至简150864476


51是原理简单,能够帮助学习者快速理解了解单片机的硬件结构和软件设计思想,但原理简单并不意味着好上手,其实原理简单带来的往往是复杂。。。。。。好上手是指人机界面友好,代码易书写自由度高。从好上手的角度说,类似arduino这类经过二次开发的产品更易上手,但缺点是略过了底层架构,学习者不容易理解单片机底层部分的知识。。。打个不恰当的比方:51就是加法,容易理解,但要计算100个100的和就得写很长一段式子,对编程着来说并不友好;arduino是乘法,100个100的和就写100x100就好了,但让编程者不容易理解为啥100x100的本质是100个100相加。


Da2


单片机编程需要学一些基础课程,特别是c语言编程基础和数字电路基础,如果这两门课程能够拿下,单片机编程就没有问题。


陕西1945志愿营


感觉,兴趣和成就感是最好驱动力,可以直接从开发板的例程入手,先不用想太多什么原理什么逻辑,从点亮LED到流水灯到数码管……在做的过程中,当你有了成就感,你肯定会想知道其中的实现原理,再从某一个点入手,去查资料,去再次验证,去举一反三,慢慢的,你的知识积累越来越多,也会越来越顺手!万事开头难,也是知识最欠缺的时候,努力一把,等走过去回头看的时候,发觉真的没有想象中那么难!其实,无论51,还是stm32,都是一个套路,都是相通的,只不过最近stm32有点火,例程资料相对多一点。到最后,你会发现,单片机只是你实现功能的一个工具,自己的思维、解决问题的思路和方法,才是最重要的


一起走过嵌入式


学习新东西主要是建立概念。

了解CPU的核心寄存器,知道怎么读写存储器、怎么表示地址、怎么实现多字段的加法,知道比较和计算产生的条件怎么表示,知道怎么控制程序的分支,对计算机就入门了。

然后,逐个了解片上外设的功能、原理和用法。


ScholarMartin


私聊我,我可以教你(看我认证,不骗人的)


电子爱好者


学这个要有电路分析,数电,模电,C的基础,没有的话,最好补上再学,磨刀不误砍柴工。


分享到:


相關文章: