原创 写给初学单片机的朋友

2008-10-28 23:51 2531 2 2 分类: MCU/ 嵌入式

    在一些很长的一些时间里,看到论坛和关于单片机或嵌入式的网站上,看到较多的哥们总是在问,“单片机怎么学呀?”“我想学单片机,不知选哪一种好,请大虾指点”“学单片机有前途吗?”,关于同行哥们的这些问题,本人想了很久,很想写一篇关于这样的文章,只是最工作太忙,实在是找不出多少时间来写这些东西,后来我身边的一些刚毕业的哥们也向我问
这同样的一个问题,我问他们,“你们在学校里老师是怎么讲的呢”,他们给我的回答:“上学的时侯老师讲的都是个L,一般很少去上课,考试的时侯都是蒙过关的”,哎,不禁为这些哥们捏把汗,就好象一些有趣的兄弟说的“被大学上了”,其实回想起来也是,在学校里,个个都没日没夜地玩网游,早把课本抛到九宵云外了,估计在学校里,听到最多的一句话就是
,“走,哥们,杀两把星际 ......”好了,不啰嗦这些了,还是回到正题吧,下面,本人将这些年来的学习经验与同的的朋友和想要入行的哥们些分享一下,因为在单片机的路上我吃了不少苦头 下面是一点个人愚见,请大虾们不要见笑...希望能给朋友们带来一点帮助。文才太差,语言组织不好请“勿贱笑”:)如果你想要入电子或单片机这一行,那么你必须要对这一行有着极高的兴趣。那我们应当如何下手学习单片机呢?


  1.我们用MS-51内核的单片机举例,在学习单片机之前,除了上述的必要条件以外,还应该对电子这一门课有一定的基础,至少你应该知道二进制、十六进制是个什么东东?什么是逻辑门?等等,因为单片机是和电子技术是密切相关的,如果一个系统中没有电子电路那是不可能也是没有意义的,单片机你可以看成是一个宠大逻辑门电路,你可以不必精通电路基础,但
如果你的电路基础很好,那么你学起单片机来,可以说是事半功倍,而且对以后的发展很有帮助。建议各位朋友好好看看《数字电路基础》(只看前两三章就可以了)和《微型计算机接口》这两本书,很有必要。


  2.单片机就是用来完成我们想要的某种功能或结果,但单片机只接受逻辑“0和1”东东,而我们又如何将我们的想法变成“0或1”呢?,我们就必须要借助编译器了,编译器就是将我们输入的程序代码(程序语言)解释成单片机能够识别的“0或1(称为机器语言)”使其完成我们想要的功能,所以我们还必须最少会一种程序语言,其实最好是两种“汇编语言和C语言”这两种语言各有各的好处,各有各的用法,下面我简单介绍一下:汇编语言它更接近于机器语言,它是基于过程式的程序语言,51单片机共101条助记符,常用的语句有30多条,它具有代
码效率高和占用存储空间小优点,它一般被用在单片机的引导代码部分,因为和相比其它的程序语言来讲,其代码效率较高(相同功能的代码)占用存储空间小的优点,所以在一些对成本十分敏感的产品中,使用资源较少的单片机时,用汇编来写代码是十分必要的。但其不足之处就在于,移植性较差,可以说是没有移值性可言,在不同的单片机体系上是不太可能用相同
的代码的,但较少的一部分除外。 C语言也是一种基于过程式的程序语言,但其十分清晰的程序结构,可读性和极其良的移植性,得到了许多工程师的青睐,C语言它需要专门的C编译器,不过现在的单片机编译器,比如:Keil,IAR,ADS等等,都支持对C语言的编译功能,在一些大
型的项目开发中,现在几乎都是使用的C语言,它的好处我就不再重复了,朋友们可以买本书看看,或是百度一下就知道了.在这里强烈建议朋友们学习C语言。如果你有了上述的数字电路基础和程序语言基础,那么可以很高兴的告诉你,你已经具备了学习单片机条件,有你的兴趣加上的积极向上和不知疲倦的努力,那么你将可以在较短的时间里得到一定的提高


   3.那学习哪一种单片机呢?据我这几年来学习和做项目的经验,其实学哪一种单片机并不是最重要的,最重要的是要掌握它的概念,更深一点就是你将用你学过的单片机来做什么?能不能为公司或是自已带来效益和乐趣,因为单片机的功能可以说是通用的,不论哪一种内核的单片机功能都是差不多的,一般单片机都具有如下一些功能模块,用8051单片机举例:
(1):独立的通用输入输出口,简称GPIO, 一般用来控制一个开关或继电器的打开和关闭,事实上它的作用不止这些,你甚到可以用它来模拟总线,比如做液晶显示的数据总线.
(2):定时器,Timer   是一个很重要的东西,单片机系统中关系到时间的东西基本上都要和它他交道
(3):中断,Interrupt 中断是单片机系统中一个十分重要的慨念,需要重点掌握
(4):串行通信口,UART 一般用在主从机的数据传输中,当然也可是和PC机通信.
(5):数据总线和地址总线。很多外围器件,都要用到地址总线和数据总线,如8255,8254,12C887等.
这5点是单片机都具备的功能,除少数单片机没有UART和用来外扩的数据总线和地址总线以外,还有的增强型单片机具备了许


多功能,如:片内A/D、I2C、WatchDog看门狗,等等。所以,学习单片机可以从这几个功能模块入手,先从功能简单的地方开始,这样可以循序渐渐,提高你的兴趣,增强学习的信心。


  4.建议买一块51的单片机开发板,或是别的内核的单片机开发板也行,最好是自已动手做一块,这样可以锻炼你的动手能力和焊接水平,这对以后很有帮助的。资料可以在网上寻找,一般都能找到许多,也可以向我要(QQ:417997270,群号:67311114,Email:hejiang177@163.com)或是在我的博客空间下载。下面将分七步来教你如何入门:


 第一步:当你有一块可以用的开发板后,先学习GPIO,闪烁地点亮一个灯,再点一排灯,流水灯,再变变花样,当你完成这几个实验后,那么恭喜你,你已经正式入门单片机的世界了。
 第二步:学习定时器,51单片机一般有两到三个定时器,学习用定时器每隔500ms交替点亮一个灯,1S打开一次蜂鸣器,分别用几种定时方式,(8位自动重装、13位和16位计数方式).
 第三步:学习中断, 外接一个按键来产生中断事件,在中断程序里打开一个蜂鸣器或是点亮一个灯
 第四步: 学习UART串行通信,用PC机的串口大师模拟发送数据到单片机,单片机收到后的数据再发到上位机,看单片机接收到的数据正不正确.虽然不是每一个单片机系统都会用到串行能信功能,但事实上绝大多数的系统都用到了.建议一定要掌握
 第五步: 总线的使用,扩展IO口,用一片或两片8255.   不管51单片机还是ARM处理器等都有地址总线和数据总线的概念,很多的外围器件都提供用总线的方式来接口,总线的的原理都是一样的,只是根据不同的处理器有所差别.
 第六步: 综合的学习,就是把单片机的一些功能组合起来, 事实上实际的工程项目中就是这样的,这也是最重要的,要参加多的项目实践,不要怕出错,出错了一般情况下会有你的老大顶起的.哈哈.



     当你做完这些后,那么很高兴的告诉你,你已经正式成为单片机开发者的一员了,虽然刚学完这些还撑不起场子,但最少你已经进一步的掌握了一些十分重要的概念, 掌握这些后不管你以后学任何单片机你都会觉得单片机变得如此容
易,不仅是对你以后的工作机遇带来的影响,在学习过程中的坚持也是一种人生的磨炼,刚开始不懂的时侯学起来是会有很痛苦的时侯 呵呵,现在想起来也没啥,当你把第一次没看懂的东西再重复一遍时,你一定会惊奇地发现.



     单片机的路还有很长,学完上面这些后,还应该继续学习 如:AD转换、液晶显示、USB通信,TCP/IP网络通信等,当你能把这些都掌握了,你已经是一个单片机中虾了或者说是某个行业的大虾了。:)学无止境,山外有山,人外有人请谦虚做人,


祝各位热烈爱好单片机和电子专业的兄弟姐妹早日成功!icon


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 



 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /3 下一条