结论:原理是一样的,只是选择的硬件架构不同,选择的CPU或者MCU不同。
1、单片机和微型计算机均符合冯诺依曼结构(或改进的哈弗结构)
它们都包括:
(1) 执行指令的控制器组件CU
(2)ALU,可以进行算术运算和逻辑运算的组件
(3)存储器M,包括寄存器
(4)输入输出接口组件IO。
一般将CU、ALU和一些寄存器集成在一块芯片上,称为CPU(中央处理单元)。
那么,一般的计算机由三部分组成:CPU、内存M和接口IO。
微机原理课程,对应的CPU经历了从mc6800,到z80,再到现在的80×86,未来可能是ARM架构、RISC-V架构等。
微机原理课程要求学习相应CPU的组成、指令系统、汇编程序设计、CPU与存储器连接设计、CPU与IO接口连接设计以及不同IO接口原理等。
2、为什么叫单片机?
微控制器是一种单芯片计算机。
把上面的CPU、内存M和一些基本的IO接口放到一个芯片中,感觉就像一台计算机,所以称为单片机,也叫MCU(微控制器)。 实际应用中,1个MCU是不够的,需要根据具体应用进行外部扩展。
这样做的好处是,CPU、M和基本IO都集成在一颗芯片上,更容易设计特定的应用。
MCU=CPU+M+IO。 基于一定的CPU核,可以根据不同的应用类别选择不同容量的内存M和不同的IO接口,从而衍生出一系列的MCU。 因此,MCU的种类比CPU的种类多得多。
著名的有MCS51、AVR、MSP430、STM32等,有的是CISC指令集,有的是RISC指令集,8位、16位、32位等。
单片机原理的课程,会选择具体的MCU,比如8位的AT89c51、avr等,现在有32位的STM32芯片等,需要学习相应的MCU原理、汇编语言和C语言语言编程,学习MCU IO接口原理,内部包含,设计实际应用。 有时你必须学习相应的操作系统(uCOS、linux、FreeRTOS…)
3.两门课程的知识点很相似
只不过单片机课程是基于某个MCU,而微机原理是基于某个CPU。
基于MCU的应用:
因为MCU将CPU、M、IO放到了一颗芯片中,根据应用对M容量和IO的不同要求,可以选择合适的MCU,加上较少的扩展,来设计特定的应用系统。 非常适合控制密集型应用,也适合嵌入式系统应用。
基于CPU的应用程序:
选择某个CPU,如4004、8008、8086、8088、80386、6502、MC6800、Z80、Z280…,然后选择内存M,然后选择IO接口。 这比使用 MCU 设计应用程序要复杂得多。 非常适合计算密集型应用。
然而,基于CPU学习计算机知识的微机原理课程将使学生更好地理解系统的各个部分。
问题1:你能区分CPU中的寄存器和IO接口中的寄存器吗?
问题二:为什么用C语言编写的传统操作系统底层代码“必须”有汇编代码?
学习微机原理将有助于你更好地理解以上两个问题。