登录|立即注册|使用QQ帐号登录
论坛 > 24小时必答区
发帖|
看4318|回26|收藏
楼主 ID:386826 只看他
2018-8-21 15:29
怎样才能学好51单片机,总感觉自己都学得差不多了,但是每次上手就又不懂了,看了好多例程,能看懂,但是到自己编程的时候就不会了,是不是学习方法有问题,求各位大神指导。

沙发 ID:388197 只看他
2018-8-21 22:11
我以前上学的时候觉得单片机里的寄存器很难记,花了不少时间,其实根本没必要去记,也记不住,记住在哪本技术资料里能查到就行,要用的时候再去查,时间长了,常用的自然记住了,不用的..记了也白记.

学单片机得多动手,建议买点洞洞板面包板电阻电容二极管,三极管MOS管74系列,LM324 LM358 DC-DC降压升压等等之类的常用芯片,分立元件可以去某宝上买混装的,电阻电容三极管各买一斤,可以玩很长时间,培养阅读DATASHEET的能力,多用实物来学习,多尝试不同的方法,一个案例可能有几种方法来实现,学习板不用太贵的,甚至完全可以不买.可以考虑自己用洞洞板焊一个,最小系统电路图网上到处都是.仿真软件必不可少,适当使用可以少走弯路,但是不能完全依赖于仿真软件,有些问题是仿真软件无法仿真的(如干扰导致单片机程序跑飞).二者结合起来用,每次当出现实物与仿真软件效果不一样的时候,一定要想尽一切办法去解决它.只有这样,才会有进步.
      
板凳 ID:388768 只看他
2018-8-22 09:20
1、用文字描述自己需要的功能(假设功能大于2) 2、拆分出各个功能,用文字描述每个功能是如何实现的 3、完成各个功能的程序,并做好测试,对于我来说,如果了解单片机的工作方式,那么编写程序其实就是把汉语翻译成汇编语言。 4、修改每个功能模块的程序,尽量让程序简短,并且预留好和其他功能衔接的功能(接口、变量等) 5、合并简单功能模块,复杂功能逐一合并,每次合并做好程序备份,以便纠错 6、如果上述工作做的足够好,那么可以直接得到想要的结果,我的程序往往都是写完了就可以用,这是建立在部分模块程序的完美基础之上的。 如果是设计了独一无二的作品,比如说我的立方光(我是独立设计的原理和程序,不管是新版还是旧版),那就在第一条补充一条:构思,这需要你对单片机很了解,预想如何实现,会遇到什么样的问题,以及解决的方案。立方光我构思了2个月,真正做实物的时间,只有一周。等到了新版立方光问世,我也是用了三周构思,一周做实物。
地板 ID:389197 只看他
2018-8-23 11:27
做东西前有先规划,有个整体思路在脑海里
1、用文字描述自己需要的功能(假设功能大于2)
2、拆分出各个功能,用文字描述每个功能是如何实现的
3、完成各个功能的程序,并做好测试,对于我来说,如果了解单片机的工作方式,那么编写程序其实就是把汉语翻译成汇编语言。
4、修改每个功能模块的程序,尽量让程序简短,并且预留好和其他功能衔接的功能(接口、变量等)
5、合并简单功能模块,复杂功能逐一合并,每次合并做好程序备份,以便纠错
6、如果上述工作做的足够好,那么可以直接得到想要的结果
5# ID:308903 只看他
2018-8-24 16:49
我目前是刚才长期处于你的这个状态中跳出来了一只脚;
首先,单片机,你要想到真正的去做一个东西,发自内心的迫切的..... (目前,已行成这个心态)

其次,行成自己的编程风格 (我目前正处于这个状态,正在摸索)

怎么形成?

1.自我尝试就是 对着范例程序,一个字一个字的打下来,开发板仿真。

2.然后,在范例上,根据自己的想法,改变代码,看看是否可以实现。
这个时候,能实现,说明,思路是对的,不能实现,就思考,找答案,翻找各种类似程序,找异同点,理解思路。

3.以前不明白,为啥各种单片机的范例程序都差不多。现在的感悟是: 简单的程序,可以巩固,强化,理清,自己的编程思维。

借鉴,吴哥的第一篇文章(第一节:吴坚鸿谈初学单片机的误区。)
4.额,还在前面三步..... 同勉同勉



6# ID:387076 只看他
2018-8-21 20:50
学单片机,最重要的是实践。
学完一些例程,不要偷懒,自己按自己编程的思路写一遍,加深记忆。
另外,有些芯片的datasheet等是不用记的,需要使用时再查资料。
要搞通例程中语句的内容。
7# ID:366559 只看他
2018-8-21 21:49
把例程搭一遍写一遍,没条件就在Proteus里面做,看怎么运行的;理解每一句语句的意义与用途,然后尝试在例程的基础上做一点扩展。
还有很多,懒得写了。
PS:我是用AVR的,听说51可以位操作,这样的话51对C语言基础的要求还低一点。
8# ID:296831 只看他
2018-8-21 23:11
只能说看书的时候对照照着程序,这样理解会快些,然后仿真,先模仿后推广呗,谁也不是天才嘛,重要的是要有自己的想法,别被框住了。
9# ID:386381 只看他
2018-8-22 00:28
那是因为你的c语言没有学好,像这种情况下就先主攻C了,想做个项目就按照他的语法一步一步的实现。
10# ID:388741 只看他
2018-8-22 06:16
自己动手慢慢做一遍就会了
11# ID:277550 只看他
2018-8-22 08:48

加油,烧写坏数个MCU、做数十个电路板
12# ID:388760 只看他
2018-8-22 08:59
主要是你想学硬件还是软件,当然无论硬件还是软件,都要多动手,带着一定的项目目的去学习去实验,就看几个例程,体会不可能太深了。简单点说就是先搞个开发板,然后先简单例程,然后再复杂点的,循序渐进,肯定会成功的
13# ID:388655 只看他
2018-8-22 09:30
我觉得自己看例程后一定要亲手去实验一下,仿真或者是上实物板子,可以自己尝试修改代码,再结合板子观察现象,这样可以理解的更透彻,希望对你有所帮助
14# ID:299493 只看他
2018-8-22 09:45
建议先看例程弄清楚每一步在做什么,然后自己跟着例程写一次,然后再自己不看别人的例程,自己回想例程的原理自己编写,这样就能自己慢慢开始自己写例程了。最后就是一定要坚持。
15# ID:388785 只看他
2018-8-22 09:55
书看的再多,也不如亲手实践,实践跟学习结合,找到其中的乐趣,51就不那么枯燥了
16# ID:370231 只看他
2018-8-22 11:17
做个收音机吧,在论坛里下载的,在这里给看看[attach]139552[/attach
附件列表

51黑论坛_程序.rar (2018-8-22 11:16 上传)

153.81 KB, 下载次数: 4

17# ID:389206 只看他
2018-8-23 11:38
做一个简单的项目
18# ID:385372 只看他
2018-8-23 13:03
还是要有一定的电子电工基础的
19# ID:389275 只看他
2018-8-23 14:30
单片机得多动手,建议买点洞洞板面包板电阻电容二极管,三极管MOS管74系列,LM324 LM358 DC-DC降压升压等等之类的常用芯片,分立元件可以去某宝上买混装的,电阻电容三极管各买一斤,可
20# ID:389272 只看他
2018-8-23 14:36
买个开发板,练习,然后网上找喜欢的项目自己做,从简单的开始,多动手多花时间
21# ID:389229 只看他
2018-8-23 15:15
买块开发板从简单的开始调试就好
22# ID:389275 只看他
2018-8-23 16:02
单片机得多动手,建议买点洞洞板面包板电阻电容二极管,三极管MOS管74系列,LM324 LM358 DC-DC降压升压等等之类的常用芯片,分立元件可以去某宝上买混装的,电阻电容三极管各买一斤,可
23# ID:379740 只看他
2018-8-23 16:34
学会编程语言,自己动手做
24# ID:389097 只看他
2018-8-23 22:39
除了学习理论知识外,还要付诸于应用。网上买块51单片机开发板,然后将自己所学的设计一个小项目写出程序,生成烧录文件烧进开发板看效果。动手做多几个实例,就进步得快。理论与实践相结合。单单学习理论知识,没用起来,一下子就忘了。反复运用起来,才是真的学会了。果断买块开发板,边学边模拟。我就是这样学起来的。
25# ID:389458 只看他
2018-8-23 23:34
先预设一到两个功能项目,对应项目编写程序,完成后进行调试修改完善程序,后续再增加功能,从单一到多功能,从简单到复杂,循序渐进,同时可以仿照成熟的案例模拟训练,这样进步会快一点。
26# ID:381818 只看他
2018-8-24 09:32
刚做完一个基于nRF24L01P的无线通信的项目,使用AVR的mega328做的,之前并没有学过,你要学会的是51的寄存器映射,晶振,I/O,中断,定时器,串口,SPI,I2C。这些学会,其他的8位单片机也一定可以难不倒你,32的话你还是买一块开发板按着视频教程学吧,加油
27# ID:320525 只看他
2018-8-24 16:03
建议先用开发板学习 然后做一些电子设计 可以提高兴趣 在制作中学习 在学习中进步

51黑电子论坛

Powered by Discuz! X3.1

首页|标准版|触屏版|电脑版