记得若干年前,我还没学c语言,单片机的资料是在一个淘宝店里下载的;当然,我的第一块开发板也是从他店里买来的.
那时候的工作是修电视机,平时比较闲,感觉单片机比较神奇,几乎能完成硬件的各种电路,而且只需要改一点程序就可以了.太奇妙了.
刚到手,视频教程没看,就一堆的插头插上,里边有最简单的跑马灯程序,上电就亮了.
我的第一天就是盯着开发板睡着的.
记得若干年前,我还没学c语言,单片机的资料是在一个淘宝店里下载的;当然,我的第一块开发板也是从他店里买来的.
那时候的工作是修电视机,平时比较闲,感觉单片机比较神奇,几乎能完成硬件的各种电路,而且只需要改一点程序就可以了.太奇妙了.
刚到手,视频教程没看,就一堆的插头插上,里边有最简单的跑马灯程序,上电就亮了.
我的第一天就是盯着开发板睡着的.
第二天开始研究怎么写程序,怎么安装各种的上位机软件,虽然压根不会C语言.
我只是想着有教程,有例子.我照抄总是可以的吧.嘿嘿嘿
于是想弄一个8*8点阵顺序点亮并且循环的一个程序.
悲催的日子这就开始了:
先是试着学会使用软件删除程序,再下载一个新的程序,因为不会写.只能下载淘宝那家伙送我的程序了.
折腾了一整天,先是接触不好,换了跟打印机线(以前的老东西是从打印口传输的),好了.
再是被旁边的电视机干扰,总是下载中断,出错,各种的死机.开始怀疑开发板是假的了.....恨
后来偶尔关了旁边的电视机,一切OK了.可以顺利写进去了.
哇哈哈,那时候好开心的样子现在依然记得很清楚.
乐极生悲就是说我啊!
程序是下载进去了.可压根不会动.我重启,复位,拔掉IC,再插,再下载,再擦除.......
若干天之后,经QQ群的大虾指点:里面的电路图和程序不匹配,我瞬间崩溃。。。愣愣的看着不会亮的开发板,感觉自己还没芯片聪明啊……啊…….啊.无限悔恨为啥初中英文不学好(其实英文老师蛮漂亮的,光顾得看她了,根本没听她讲的啥)
这楼想写一些我体会到的东东,就当是自己的日记了.
读别人的程序是一个痛苦的过程。痛苦才有进步。编程时,务必力求简洁。
也犹豫过到底那本书适合入门,真的是随便一本大学教材就可以,
我这里说的是入门,也就是书的重点应该放在51单片机的内部结构上。
没事翻翻,熟悉一下硬件结构。因为毕竟软件是依赖于硬件运行的。
单片机的内部模块无非那么几个:
中断,定时器,串口,SPI,IIC,AD,EEPROM,DA有的还有LCD驱动模块,
所有的单片机几乎都是这些模块。那么我们只要掌握了这些功能模块的运用,单片机就算学了个大概了.
虽然不同的单片机在这些功能模块上的操作有区别,不过大同小异。
功能越强大,寄存器就越多。这简单,看数据手册就是了。
有的单片机官方还提供例程,比如TI。(这里不是广告.)
单片机内部模块的学习重点,放在前6个模块上。即中断,定时器,串口,SPI,IIC,AD,DA
在买了书,学了一点点的C,终于可以对照着书,将书上的程序移植到我的开发板上。
哇,两灯来回闪亮了,
然后是根据网上提供的详细例程来试着下载到开发板上.
那段时间,看着开发板的灯各种的闪,对上位机的操作也越来越熟悉,让我感觉到一次次骄傲.
需要说明的是,千万不要以为你给板子通上电,例程烧进去,单片机就会了。
我必须冷静下来.因为就算你看了例程,看懂了注释也不叫会。那只是在理解。
擦掉单片机的程序,自己不看例程,实现任何你想实现的功能,自己把程序编出来,这才叫学会。
这里插入一位单片机大虾的良言:
没有必要专门学习!要带着问题来边学习边实践的。单片机只是自动控制系统中的一个部件而已。学习什么?怎样学习?应该看看毛泽东的《改造我们的学习》。
学到现在,依然停留在玩开发板的阶段.
想起曾经一些傻缺的问题,列几个,看看有没有人跟我一样傻缺.
这头文件到底是啥意思?#include
为啥每个程序开始都这样写捏?
喂马程序中可以有中文注释,而并不会占用可怜的存储空间呢?
为什么100块的开发板可以写程序,可以各种玩,而几千块的 编程器却只能写程序不能玩呢?
为什么单片机都需要一个固定频率的晶振?而不是像电源一样可以变频?
都说数字电路抗干扰能力强,为啥单片机却会因电压不稳而死机?
说到抗干扰,这里说说我自己的心得.
早期的开发板都是单独一个7805来解决供电问题的.
但在自己组装的电路中,却很多初学的都忽视了7805的退耦电容.
准确的说是因为模电基础没打好.
其实在7805的前和后,也就是1—2和3—2脚分别接入一个104的电容,
就能很有效的防止7805的自激,或者莫名奇妙的干扰问题了.
如果有可能,也可以在7805的3脚上串入一个你能找得到的电感.比如电脑电源里拆出来的那些.就能让你的单片机远离干扰.
深有同感啊!每次看到自己看到自己编的程序就有一种说不出的开心。
有种自豪的成就感