我把C51学完了,下一步到底去学习汇编优化程序设计以及深入了解51单片机,还是去学其他类型的单片机?希望有经验的人给我分享一下,在此谢过
学完还是学会亦或者是熟练还是精通,想明白这点就知道干嘛了
根据你的需要而定,先找个小项目练手,51满足不了时就可以增学其他的了。
深入了解51单片机吧
不玩坑里跳不知坑深浅
天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
你的情况我有点感同身受,当年我也觉得我51学完了,然而我所谓的学完,无非就是学了一遍郭天祥的书,好在代码我也是有敲的,什么流水灯,数码管,EEPROM存储,RTC,LCD液晶,AD,DA,反正常见的实验都是做过的。我就天真的认为我掌握了51。然后我又花了不少时间学习了AVR单片机,当时AVR还是有点火,不像现在消失了。当我学了AVR又从头把这些实验做了一遍,我才发现,无非就是换了寄存器而已,编程的原理都一样,我还花了这么久去学。
确实,按照我当时的能力,也可以做出一些东西了。但是单片机的思维还是太局限了。肯定的啊,就在学校自学能学多少东西。拿郭天祥的按键检测程序来说,思路就是if检测到IO口电平变化,等待10ms去抖动。然后再次确认IO口电平是不是还是之前的状态,if还是,则认为检测到按键,执行事件。然后执行完事件,while按键释放,结束。这个当时在我看来毫无问题的程序,却漏洞百出,只能用来写个程序交作业。首先10ms的等待事件,相当于按下按键,系统就会卡顿10ms,不要小看这个10ms,如果是一个庞大的系统,可能就是一个隐患。更槽糕的是while按键释放,如果有人一直按着按键不松开,或者按键坏了,呈短路状态。那系统就死机了。一个按键的问题就造成了死机,是不是说不过去。还有问题就是没办法移植,如果要求再加几个按键,需要每个按键再写一遍。或者实现一个菜单界面,有好几层菜单。在不同菜单里,按键的功能都不一样,那这种程序的写法就会非常麻烦,自己都搞的云里雾里。
这里只是举个简单的例子,LZ自己验证一下自己是否是学会了51。如果用这样的思路写程序,会用ARM9,ARM11又怎么样,还是写不出好程序啊。
网上有个帖子《从单片机初学者迈向单片机工程师》。可以看看,希望有启发。如果LZ看完这个文档,觉得里面说的已经会了,说明LZ的水平还是不错的。如果有一种原来单片机还有这么多奥妙的感觉的话,说明LZ还只是入门了51,离学会还有距离。还要多多学习,当然不是说要把51学到死,新的单片机又便宜还功能强大,当然也要学。但是我的建议是,脱离单片机,不要在乎自己是用的什么单片机,编程思路和方法远比用什么单片机重要。
学以致用。学完,不等于会了,找个实际的内容练练手。搞点外设,实现一些功能。你就会发现自己的差距在哪里。先积累点实际操作经验。再考虑下一步。 学更复杂的单片机,练习硬件调试,学习外围电路,很多的,不论怎么走,都要实践。
@鹏鹏0830
6楼的观点我是赞同的,但是编程思路方法的提升总得有个切入点吧,所以,我的建议,找个稍微大点的项目开始做吧。这个项目里面,建议包括以太网,os (自选),TFT屏幕,顺带一点SD卡什么的,包你受用终身
我也是学的郭天祥的,那个延时和按键松手检测,确实只能在实验板上搞一搞。对,编程的思路和方法确实很重要,你的话使我受益匪浅。
现在正在和几个同学正在做一个多功能数字万年历的小项目,做的过程确实有或多或少的问题、
我说这些其实也没啥用,编程思想这种东西要等你工作以后,有人指导可能领悟的更快。刚开始自己也不知道怎么学。我这里不过这里是给点你思路,不要以为看完了郭天祥的视频51就学会了。郭天祥录这个视频的时候,也就是个学生,水平能有多高,不要太迷信他的视频。我以前竟然还看到有人说郭天祥是单片机之父,脑残粉。不过不可否认,学完他的视频,也算入门了。
你可以看看论坛,一些好的帖子,人家是怎么写程序的。不要沉迷于实现了多牛多牛的功能,写了几千几万行代码。好的代码又短效率又高,还非常方便移植。这些也是学习的重点。
我也是从看老郭的视频开始的,通俗易懂,的确不错。
师傅带入门,这已经够了,咱尊敬师傅,但不迷信师傅。
我的看法是入门靠师傅,提高靠项目。
也刚学了郭老师的视频入门,编程思路确实很重要,实际做项目中有一半多的时间是在设计程序框架,框架搭好了,代码实现和调试也就水到渠成了。
看书,编写简单的程序只是入门,熟悉单片机的人都不敢说自己已经完全会了。你可以想一下自己想要DIY一些小产品,看能不能独立完成
做些想做的东西 多多接触想做的事情 开拓视野 汇编的话感觉有需要时再学吧 没学过。。