单片机介绍
程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。
单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller
Unit),常用英文字母的缩写MCU表示单片机,它早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。其中成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL
i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。单片机比专用处理器更适合应用于嵌入式系统,因此它得到了多的应用。事实上单片机是世界上数量多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
单片机VS嵌入式区别
基础定义:核心不同,定位各异
单片机(Single-Chip Microcomputer)是一颗“高度集成的芯片”,内部集成了CPU、内存、定时器等核心组件,相当于一个“迷你计算机系统”。它的功能固定,适合简单任务,比如控制电饭煲的加热流程或遥控器的按键响应。嵌入式系统(Embedded System)则是一个“综合解决方案”,包含单片机/处理器、操作系统(如Linux、RTOS)、外设和软件算法。它更复杂,像智能家居的中控屏或车载娱乐系统,需要处理多任务和复杂逻辑。
硬件复杂度:谁更“全能”?
单片机的硬件结构简单,资源有限(内存通常以KB计),成本极低(几元到几十元),适合批量生产的消费电子,比如玩具、小家电。嵌入式系统则可能采用多核处理器、更大内存(甚至GB级),支持以太网、摄像头等外设。例如,智能手表需要运行操作系统、处理传感器数据,这就必须用嵌入式方案。
简单比喻:单片机是“自行车”,轻便但功能单一;嵌入式是“汽车”,复杂却能应对多种路况。
学习C语言的挑战
理解语法障碍
仅仅理解表面的语法知识是远远不够的。在编写程序或软件时,我们需要根据实际问题的需求来精心控制程序的流程。 没有深入理解C语言语句的执行过程(或流程),将无法有效地编写程序来解决这些实际问题。
仅仅理解表面的语法知识是远远不够的。在编写程序或软件时,我们需要根据实际问题的需求来精心控制程序的流程。 没有深入理解C语言语句的执行过程(或流程),将无法有效地编写程序来解决这些实际问题。
实践的重要性
用C语言解决实际问题,不仅需要编程知识,还需 结合相关领域的专业知识。例如,若不了解长方形面积的计算公式,即便C语言掌握得再熟练,也难以编写出求长方形面积的程序。此外,C语言程序设计是一门高度实践性的课程,缺乏动手实践,理论再优秀也难以真正掌握C语言。
用C语言解决实际问题,不仅需要编程知识,还需 结合相关领域的专业知识。例如,若不了解长方形面积的计算公式,即便C语言掌握得再熟练,也难以编写出求长方形面积的程序。此外,C语言程序设计是一门高度实践性的课程,缺乏动手实践,理论再优秀也难以真正掌握C语言。
程序设计的基本步骤
在解决实际问题时,需具备相关领域的知识。例如,若没有数学基础,很难设计出有效的算法。C语言程序设计课程的目标是让学生综合运用知识, 接触实际问题并训练解决能力。
在解决实际问题时,需具备相关领域的知识。例如,若没有数学基础,很难设计出有效的算法。C语言程序设计课程的目标是让学生综合运用知识, 接触实际问题并训练解决能力。
单片机怎么学

