从头开始学习单片机,软件硬件怎么学?
eetrendMcuBlog 2021-04-08

很多人会想知道怎样动手从头开始学习单片机 。例如怎样理解晶振/中断/存储器等? 怎样记住单片机汇编指令? 怎样看懂单片机外围电路? 为什么都说用C比汇编好?

下面是几个人的经验之谈:
   
我个人认为首先你要汇编和C语言,这门课程我们大一开的,有两本书:微机原理与接口技术(清华大学出版)和C++程序设计(谭浩强编),这两本书介绍基 本的汇编和C语言程序。平时多琢磨多练习就行,如果你不是搞计算机软件的,你只要会用C和汇编写函数,了解if,or,while,switch等,还要 了解结构体,就差不多了,然后我们是大二开始学单片机的,老师会开始介绍51系列,52系列的单片机,掌握内部结构,重点是定时,中断上面,书名叫单片机 原理与接口技术,市面上的书内容大部分差不多,也不必专门买有程序的书,程序在网上有很多可以下载,关键是弄懂原理。然后学串口通信,I2C协议,ISP 下载,以及各种电平转换协议。
  
学单片机肯定少不了和硬件打交道的,所以也 要学好模拟电路和数字电路,这些我们都是在大二上学期开的课,如果你自己要做小系统板,就需要学习制PCB的软件,比较常用的有PROTEL 99SE 和Altium Designer 6.9(现在有更高的版本)。布线的时候要学习高频电子电路(王卫东编),这样你就知道为什么要考虑电磁兼容和电气检查的原因。学好模拟电路和数字电路是 为了熟悉各种元器件:二极管,三极管,电路,电容,电感,开关,蜂鸣器等。
   
学习的时候最重要的是不要眼高手低,不要看到别人验证了一个DEMO就在那里和学着追随潮流,这样什么都学不到。要踏踏实实的把原理学好。这样将来做什 么都事半功倍的,下面将实验方面的,我个人最喜欢硬件了,所以找的工作也是做电源的,呵呵。刚开始做实验要培养兴趣,不要一开始就想做一个大的系统,这样 会越来越讨厌学单片机的,建议开始是:
  
1、最先设计个最小系统版,然后做成实物,我们学校的实验室有制版机,呵呵,比较方便,不过我做了两个,一个是制版机做的,还有一个是自己手工焊的。性能一样,如果你没有条件就自己手工焊,其实卖系统版的地方有卖版子的,上面没有焊任何元器件,要自己买器件焊。这样的也行。
  
2、点亮一个发光二极管(哈哈,老生常谈啊),然后点亮led点阵,然后设计广告灯,发挥自己的想象力设计出比较好看的广告牌啊。可以弄一个在自己的寝室门口,那多帅啊!
  
3、按键控制的,这是绝对少不了的,呵呵,单个按键,按键组,ZLG7290按键板(顺便学习一下I2C协议)
  
4、LCD液晶显示:字符显示,图像显示,这里重要的是读懂时序图,各函数调用,这里要用到C的功底了,呵呵
  
5、AD/DA转换,这个用的知识比较多,模拟电路和数字电路都要会,还要用到数学(呵呵,那就是编码啊)。
  
上面的弄会了,接下来自己可以做一些比较好玩的的产品了:电子琴,日历,步进电机,机器人,充电器,红外遥控,波形发生器,语音存储,甚至mp3都可以做出来,呵呵

实验要用到的两个软件:Keil uVision3和ISIS 7 Professional(我用的是7.4版本的,常用的是7.2版本的),Keil uVision3是用来写程序并生成HEX文件,ISIS 7 Professional是用来仿真的,越用越喜欢,不过也不要迷恋它,等你成为高手了,就不要它的,呵呵,这些都可以在网上下载,不要钱的,免费的就是 好。呵呵
  
工具:电烙铁,锡焊枪,人民币(这个是少不了的,人民币用来买元 器件的)。仿真和做实物是有很大的区别的。实物做好了,相当于学好了,前提是自己做的,不要是别人做的,自己拿来玩,记得面试的时候很多女生拿着一大块实 验板,一看就知道是买的,以为面试官都是sb,呵呵。
  
学单片机要忍住寂寞,要把它当作自己的恋人,呵呵,越摸越有感觉的,不摸就忘了。呵呵
  
好了,这是本人在实验室学的一点经验,拿出来YY,呵呵,望各位拍砖啊!
  
更高级的就不说了,呵呵,我也正在学,更高级的要自己创造了。
  
陶钧,嵌入式软件工程师:
  
研究生阶段开始用单片机的,从零开始自己学的。简单回答下你的问题,顺便说下我的学习过程,希望能帮到你。
  
1、 如果你没有任何基础的话,建议买一块开发板,先在上面运行一些简单的程序,比如说让LED灯亮灭,用UART通讯之类的。当然,我觉得用开发板学单片机其实啥都学不到,最好还是找一个项目,哪怕是自己想要做的,从头开始自己画板子,这样学习才最快最好。
   
2、简单来说,晶振就是提供时钟的,单片机的任何一条指令都需要一个或几个时钟周期,没有时钟单片机就无法工作,任何串行执行的CPU都是同理。中断就是你的 程序需要临时处理一些其他的功能的时候,CPU暂时停止手头的工作,保护好现场,执行中断程序,执行完了再回来干之前的事情。存储器就是存储程序和数据的 地方。这些其实都是最基础的东西,找一本书看看就好。
  
3、汇编指令这东西得熟能生巧,用的多了就记住了,千万不要死记硬背,因为每种单片机的指令集都不同,初学可以暂时不用考虑这些。
   
4、外围电路需要你有一定的硬件基础,其实外围电路主要也就是电源(给单片机供电)、复位电路、连接存储器(有的单片机内置了FLASH,这些就不需要了), 晶振电路,单片机手册上都有介绍。学单片机的话,一定要多看芯片手册,这个东西要比外面卖的书有用的多。一开始可能觉得很枯燥,因为全都是英文的,但是你 想啊,芯片种类那么多,每个芯片都得靠芯片手册,少看国内出的那些什么单片机教程的书,多看芯片手册,这样才能提高。
  
5、没有人说过C比汇编好,只是你开发起来会快一些,会好上手,真正调试的时候,往往还是得看看反汇编的。
  
潘前华
  
1、怎样动手从头开始?
  
Proteus可以仿真单片机,你可以先在那上面体验一下,如何让一个MCU使一个LED闪烁。对于单片机要干什么事有一个了解,如果你之前没有这方面的基础。
  
但是,我还是推荐你花点钱去买一个开发板,哪怕这个板子花掉你壹贰叁肆百块钱也不要紧,因为你以后能挣回来。这就是投资。
  
单片机的概念中,有些方面很重要,例如但不限于此:时钟、总线、中断、寄存器、堆栈、取指令、寻址等等。针对你所学的单片机会有书籍来讲解。
  
单片机有很多种,互相之间甚至指令都不兼容,但是思想都是一样的:
  
1)利用其特有的指令语句,
  
2)来分配存储空间和控制外设资源,
  
3)以此来完成你想要的功能。
  
在你学会第一种单片机以后,再遇到新的单片机类型,你就只要去看这种单片机的指令系统(思想1)文档、数据手册(思想2),然后以思想3作为你组织思想1和思想2的宗旨原则。
   
基本上目前的单片机厂商都会在网上提供了演示程序的源代码,你可以模仿这些源代码写你自己的程序,你可以开始的时候先在演示程序的源代码基础上修改(比 如原来LED每秒闪1次,你就改为让它每18秒闪8次),然后自己模仿这些源代码写一个全新的程序让LED按照你想要的方式点亮或熄灭。先这样开始,简 单,快乐。然后慢慢进入到高级应用,例如各种串行总线。用开发板来学习到的,只是这个单片机的指令系统,以及这个单片机有什恶魔资源可以被你所使用。任何 的终极目标,都应该是你的应用需求,开发板只是个例子。如何把你要做的抽象的事情一步步地具体到单片机的电路和程序(例如电动机的旋转速度的控制过程可以 一步步具体到单片机外围电路需求和单片机程序逻辑),才是你干这一行真正应该学习的事情。
  
2、怎样理解晶振/中断/存储器等?
  
看书。
  
3、怎样记住单片机汇编指令?
  
这个东西确实是熟能生巧。但是“熟能生巧”是结果,不是起点。怎样才能熟呢?——多写程序,多注释!
  
4、怎样看懂单片机外围电路?
   
外围电路如果用到其他集成电路芯片,那么就容易读懂,因为你可以按照芯片上的型号规格在网上查到这个芯片是干什么的,还能下载到这个芯片的数据手册,就 能知道这个芯片与MCU之间大致应该怎么连接的。如果MCU周围没有什么芯片而只有大量的电阻和电容,那么这时候就需要你具有一定的模拟电路和数字电路的 基本功了。
  
5、为什么都说用C比汇编好?
  
这个提问本身就是个误解。没有谁比谁好,而是市场要什么你就得用什么。

我说的这些,其实很TM空洞无聊,都不如你去买一块开发板跟着教科书去改演示代码来得直接和高潮。

我怀着极左的态度,建议你去看看周立功先生在新浪的博客,老周在那里分享了很多学习的心得和经验,可以让你少走些弯路。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
热门推荐
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 单片机基础及主流厂商一览

    MCU是Microcontroller Unit 的简称,中文叫微控制器,俗称单片机 ,是把CPU的频率与规格做适当缩减,并将内存、计数器、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制,

    昨天
  • 单片机的几种数字滤波算法

    单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。 在单片机进行数据采集时,会遇到数据的随机误差,随机

    前天
  • 故障排查,软件遇到IO异常怎么回事

    软件工程师在调试样板时,遇到这样一个问题,有个按键一直没有反应。他检查了按键IO的配置,确定已经是配置成了输入模式,试了很多遍,都是一样,怎么按按键,都是没有反应。 于是,必需硬件工程师出马。我的排查过程是这样的。 首先,样板断电用万用表的短路

    04-19
  • 智能化交通信号机解决方案

    面向交通信号灯行业,ZLG推出智能化交通信号机解决方案,该方案可大幅提升设备的智能化和道路使用率,改善道路拥堵,打造高效畅通的“智慧交通”。   行业背景 据公安部统计,2020年,全国机动车保有量达3.72亿辆,其中汽车2.81亿辆。百度地图发布的《2020年度

    04-16
  • 单片机如何实现Bootloader?

    去某新能源大厂出了一次差,这次出差是为了升级程序解决Bug,需要给单片机重新烧录.hex文件,用户已经将产品封装起来,无法开盖,只能使用CAN总线来更新程序,用Bootloader实现。其实就是通过上位机把.bin/hex文件以CAN通讯的方式发送给单片机并存储在规定的F

    04-13
  • 单片机应用系统的开发流程

    我们学习单片机的目的就是为了进行嵌入式系统的开发,学好单片机首先要有一个整体认识,下面将简要介绍一下单片机应用系统的开发流程,如图1所示。 图1 单片机系统开发流程 (1)明确任务 分析和了解项目的总体要求,并综合考虑系统使用环境、可靠性要求、可维

    04-12
  • 太经典了!用最少的IO口,扫最多的键

    在做项目(工程)的时候,我们经常要用到比较多的按键,而且IO资源紧张,于是我们就想方设法地在别的模块中节省IO口,好不容易挤出一两个IO口,却发现仍然不够用,实在没办法了就添加一个IC来扫键。一个IC虽然价格不高,但对于大批量生产而且产品利润低的厂家

    03-30
  • 单片机的学习方法和步骤

    注 | 文末留言有福利 作为一名电子技术从业人员,你学过单片机吗?你会运用单片机吗? 我想你一定学过,但不一定会运用。 因为学习单片机比学习其他学科需要付出更多的努力和代价,不仅要学习理论知识还要练习实际操作,而且主要是在实际操作中才能真正学到单

    03-25
  • 单片机内存的分配

    单片机执行指令过程详解 单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令

    03-22
  • 几种常用单片机之间的通信方式

    越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。对于莫一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计,可以得到极

    03-17
  • STM32F4的总线架构和STM8的中断控制

    STM32F4的总线架构 总线架构    DMA: Direct Memory Access,直接内存存取。    八条主控总线: Cortex-M4 内核I总线,D总线和S总线; DMA1存储器总线,DMA2存储器总线; DMA2外设总线; 以太网DMA总线; USB OTG HS DMA总线。 七条被控总线: 内部FLASH ICo

    03-17
  • 单片机P0口必须加上上拉电阻?

    在我们刚一开始接触到51单片机的时候对P0口必须加上上拉电阻,否则P0就是高阻态。 对这个问题可能感到疑惑,为什么是高阻态?加上拉电阻?今天针对这一概念进行简单讲解。 高阻态 高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电

    03-15
下载排行榜
更多
广告
X
广告