AMEYA360:单片机能做什么?
sh皇华
sh皇华 Lv.2
2022年09月22日 14:36:20
只看楼主

  当前我们接触的大多数计算机都是数字计算机(这里是针对模拟计算机而言的),在数字电路这门课程中,我们学习了组合逻辑电路和时序逻辑电路,所谓的组合逻辑电路实现了基于电路的运算.这是构成计算机运算的基础,而时序逻辑电路使计算机具有了“记忆”,也就是所谓状态的历史相关性,这构成了计算机存储与程序运行的基础。我们站在数字电路的角度来看待单片机或者某个单片机外设,它正是运用各种同步信号(包括时钟、触发等),更改或者获取某一特定存储空间的数据。

  当前我们接触的大多数计算机都是数字计算机(这里是针对模拟计算机而言的),在数字电路这门课程中,我们学习了组合逻辑电路和时序逻辑电路,所谓的组合逻辑电路实现了基于电路的运算.这是构成计算机运算的基础,而时序逻辑电路使计算机具有了“记忆”,也就是所谓状态的历史相关性,这构成了计算机存储与程序运行的基础。我们站在数字电路的角度来看待单片机或者某个单片机外设,它正是运用各种同步信号(包括时钟、触发等),更改或者获取某一特定存储空间的数据。

pYYBAGMqaaaAX-y1AAGBYSZMtIs379.jpg

  如:单片机内部是通过时钟信号驱动PC指针从制定的RAM空间或者程序ROM空间中依次读取指令,单片机内部的CPU核心再通过对指令的解码实现相关动作。而所有的外部设备包括传感器、存储器、输入输出设备也都是通过制定时序实现与单片机实现通讯,并通过对外设内部存储空间的读写完成相关功能。如通过规定的时序完成对DS18B20的读写即可完成温度的读取,通过SPI口与ILI341液晶显示屏通讯,将每个像素的颜色信息写入规定的显示空间地址即可完成显示,通过设置AD寄存器启动AD转换并通过寄存器读回等等。


  我当初学习单片机使用的是汇编语言,现在除了BootLoader很少会使用到汇编,但正是汇编语言的学习让我真正理解到了计算机底层的逻辑工作原理。特殊寄存器、累加器、B寄存器、程序状态字、程序计数器PC,它们是如何相互配合完成运算的,立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址等寻址方式更是C语言指针的基础,(BTW:当初尝试考计算机三级第一次就卡在机试的PC汇编上了,学完单片机后满分通过)。


  同时也正是汇编的学习,让我对中断的处理有了及深刻的认识,在中断时需要“保护现场“,此时需要压栈处理,恢复现场时,则需要出栈操作。这对于后面的操作系统中所说的的任务切换的实质动作了。综上所述,打好学科基础是非常必要的。我们在大学时学到的知识在学校期间也许是脱离实际的,只局限于做题解题,但是当你积蓄了大量的理论知识后,在实际工作中就会有一个明确的理论支撑,能够让你更快的熟悉工作。


  我觉得对于想学习单片机的人目的各有不同,不能给出一个笼统的答案,只要在个人经济范围能够承受的范围内,买个外设齐全的开发板也是不错的选择。如果喜欢动手就从核心板、洞洞板做起,只要我们学到东西就行,现在某宝上有很多的开发板,并且都带有很多的教程。但是这里面的教程都是针对某一个功能、外设的,比如按键、串口等等单个外设的例程,目的就是让学习者掌握某一类外设的应用,根据自己的需要进行综合。还有一类就是像无际老师这样,将自己的工程案例制作成开发板,有针对性的进行教学,这样可以从外设到架构一起学习,关于架构这一点我们后面谈。


  


免费打赏

相关推荐

APP内打开