本月累计签到次数:

今天获取 积分

4

单片机怎么入门?

单片机怎么入门?
已邀请 :
3

一袭青衫

赞同来自 : 黑and白 绅士男人 JGSZHDFS

Proteus可以仿真单片机,你可以先在那上面体验一下,如何让一个MCU使一个LED闪烁。对于单片机要干什么事有一个了解,如果你之前没有这方面的基础。

但是,我还是推荐你花点钱去买一个开发板,哪怕这个板子花掉你壹贰叁肆百块钱也不要紧,因为你以后能挣回来。这就是投资。

单片机的概念中,有些方面很重要,例如但不限于此:时钟、总线、中断、寄存器、堆栈、取指令、寻址等等。针对你所学的单片机会有书籍来讲解。

单片机有很多种,互相之间甚至指令都不兼容,但是思想都是一样的:
1)利用其特有的指令语句,
2)来分配存储空间和控制外设资源,
3)以此来完成你想要的功能。

在你学会第一种单片机以后,再遇到新的单片机类型,你就只要去看这种单片机的指令系统(思想1)文档、数据手册(思想2),然后以思想3作为你组织思想1和思想2的宗旨原则。

基本上目前的单片机厂商都会在网上提供了演示程序的源代码,你可以模仿这些源代码写你自己的程序,你可以开始的时候先在演示程序的源代码基础上修改(比如原来LED每秒闪1次,你就改为让它每18秒闪8次),然后自己模仿这些源代码写一个全新的程序让LED按照你想要的方式点亮或熄灭。先这样开始,简单,快乐。然后慢慢进入到高级应用,例如各种串行总线。用开发板来学习到的,只是这个单片机的指令系统,以及这个单片机有什恶魔资源可以被你所使用。任何的终极目标,都应该是你的应用需求,开发板只是个例子。如何把你要做的抽象的事情一步步地具体到单片机的电路和程序(例如电动机的旋转速度的控制过程可以一步步具体到单片机外围电路需求和单片机程序逻辑),才是你干这一行真正应该学习的事情。
2

黑and白

赞同来自 : 绅士男人 JGSZHDFS

找几个案例,多实验几次就会了
 
1

绅士男人

赞同来自 : JGSZHDFS

1. 如果你没有任何基础的话,建议买一块开发板,先在上面运行一些简单的程序,比如说让LED灯亮灭,用UART通讯之类的。当然,我觉得用开发板学单片机其实啥都学不到,最好还是找一个项目,哪怕是自己想要做的,从头开始自己画板子,这样学习才最快最好。
2. 简单来说,晶振就是提供时钟的,单片机的任何一条指令都需要一个或几个时钟周期,没有时钟单片机就无法工作,任何串行执行的CPU都是同理。中断就是你的程序需要临时处理一些其他的功能的时候,CPU暂时停止手头的工作,保护好现场,执行中断程序,执行完了再回来干之前的事情。存储器就是存储程序和数据的地方。这些其实都是最基础的东西,找一本书看看就好。
3. 汇编指令这东西得熟能生巧,用的多了就记住了,千万不要死记硬背,因为每种单片机的指令集都不同,初学可以暂时不用考虑这些。
4. 外围电路需要你有一定的硬件基础,其实外围电路主要也就是电源(给单片机供电)、复位电路、连接存储器(有的单片机内置了FLASH,这些就不需要了),晶振电路,单片机手册上都有介绍。学单片机的话,一定要多看芯片手册,这个东西要比外面卖的书有用的多。一开始可能觉得很枯燥,因为全都是英文的,但是你想啊,芯片种类那么多,每个芯片都得靠芯片手册,少看国内出的那些什么单片机教程的书,多看芯片手册,这样才能提高。
5. 没有人说过C比汇编好,只是你开发起来会快一些,会好上手,真正调试的时候,往往还是得看看反汇编的。 
 
0

JGSZHDFS

赞同来自 :

淘宝买个销量高的51单片机开发板。
用开发板从最简单的代码开始写。(开发板配套的教程或者网上搜)
对着视频教程和文字教程,结合百度/谷歌开始写代码吧!

要回复问题请先登录注册