大牛总结单片机的几个重要概念

发布者:温馨小屋最新更新时间:2022-12-07 来源: zhihu关键字:单片机  重要概念 手机看文章 扫描二维码
随时随地手机看文章

随着电子技术的迅速发展,计算机已深入地渗透到我们的生活中,许多电子爱好者开始学习单片机知识,但单片机的内容比较抽象,相对电子爱好者已熟悉的模拟电路、数字电路,单片机中有一些新的概念,这些概念非常基本以至于一般作者不屑去谈,教材自然也不会很深入地讲解这些概念,但这些内容又是学习中必须要理解的,下面就结合本人的学习、教学经验,对这些最基本概念作一说明,希望对自学者有所帮助。


一、总线:

我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以就需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两个器件同时送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有多个器件同时接收)。器件的数据线也就被称为数据总线,器件所有的控制线被称为控制总线。在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的,由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为地址总线。


二、数据、地址、指令:

之所以将这三者放在一起,是因为这三者的本质都是一样的──数字,或者说都是一串‘0’和‘1’组成的序列。换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不可以由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更改,外部的单元可以由单片机开发者自行决定,但有一些地址单元是一定要有的(详见程序的执行过程)。数据:这是由微处理机处理的对象,在各种不同的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况:

1·地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。 2·方式字或控制字(如MOV TMOD,#3),3即是控制字。 3·常数(如MOV TH0,#10H)10H即定时常数。 4·实际输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗,则执行指令:MOV P1,#00H)这里0FFH和00H都是实际输出值。又如用于LED的字形码,也是实际输出的值。 理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飞,会把数据当成指令来执行了。


三、P0口、P2口和P3的第二功能用法:

初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能之间要有一个切换的过程,或者说要有一条指令,事实上,各端口的第二功能完全是自动的,不需要用指令来转换。如P3.6、P3.7分别是WR、RD信号,当微片理机外接RAM或有外部I/O口时,它们被用作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有相应的信号从P3.6或P3.7送出,不需要事先用指令说明。事实上‘不能作为通用I/O口使用’也并不是‘不能’而是(使用者)‘不会’将其作为通用I/O口使用。你完全可以在指令中按排一条SETB P3.7的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者不会这么去做,因为这通常这会导致系统的崩溃。


四、程序的执行过程:

单片机在通电复位后8051内的程序计数器(PC)中的值为‘0000’,所以程序总是从‘0000’单元开始执行,也就是说:在系统的ROM中一定要存在‘0000’这个单元,并且在‘0000’单元中存放的一定是一条指令。


五、堆栈:

堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且堆栈有特殊的数据传输指令,即‘PUSH’和‘POP’,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值的基础上)自动减1。由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP的值,就可以把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么一条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的浑乱。不同作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题。当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是可以象普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存用了。


六、单片机的开发过程:

这里所说的开发过程并不是一般书中所说的从任务分析开始,我们假设已设计并制作好硬件,下面就是编写软件的工作。在编写软件之前,首先要确定一些常数、地址,事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后,其地址也就被确定了,当器件的功能被确定下来后,其控制字也就被确定了。然后用文本编缉器(如EDIT、CCED等)编写软件,编写好后,用编译器对源程序文件编译,查错,直到没有语法错误,除了极简单的程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后,就可以写片(将程序固化在EPROM中)。在源程序被编译后,生成了扩展名为HEX的目标文件,一般编程器能够识别这种格式的文件,只要将此文件调入即可写片。在此,为使大家对整个过程有个认识,举一例说明:

ORG 0000H LJMP START ORG 040H START: MOV SP,#5FH ;设堆栈 LOOP: NOP LJMP LOOP ;循环 END ;结束


关键字:单片机  重要概念 引用地址:大牛总结单片机的几个重要概念

上一篇:单片机的“功耗”如何计算
下一篇:掌握了技巧,你还敢说学习单片机很难吗?

推荐阅读最新更新时间:2024-11-04 07:37

MCU开发成本从硬件转移到软件
嵌入式系统中的MCU(微控制器)正在经历着从8/16位到32位的转移,虽然在量产上8/16位还是主流,但是新的设计采用32位占多数,32位MCU越来越多地采用ARM CortexM内核,具备更大的内置存储空间,集成了更多的外设和丰富的互联功能。MCU无论是开发成本,还是开发难度都在从硬件转移到软件,如何降低软件开发的成本、如何克服软件开发中的问题变得非常重要。 IDE是主流 原厂工具有空间 传统的IDE工具仍然会在MCU开发中广泛使用,比如IAR公司Eembeded Workbench,支持各家MCU芯片公司从8/16位到ARM MCU、KEIL公司8051和ARM MDK,这些工具强调的是全面的MCU支持和易用性,也就是说它
[嵌入式]
大联大友尚集团推出ST STM32 F4系列中的最小微控制器
2016年3月15日,致力于亚太地区市场的领先半导体元器件分销商---大联大控股宣布,其旗下友尚推出ST STM32 F4系列中最小的微控制器---STM32F410,并同时搭配其最新开发板---NUCLEO-F410RB,以帮助客户实现尺寸更小,功耗更低且更高性能的产品。 大联大友尚代理的STM32F410搭载ARM Cortex -M4F处理器内核,在100MHz时指令周期可达125 DMIPS,并在EEMBC CoreMark 测试中取得339分的优异成绩。具有功耗意识(Power-conscious)的STM32 Dynamic Efficiency 特性,例如意法半导体的ART Accelerator 和电压调整,可
[单片机]
大联大友尚集团推出ST STM32 F4系列中的最小<font color='red'>微控制器</font>
朱春涛:打造MCU+竞争力,服务智能化发展需求
由中国汽车技术研究中心有限公司、中国汽车工程学会、中国汽车工业协会、中国汽车报社共同主办,天津经济技术开发区管理委员会特别支持,日本汽车工业协会、德国汽车工业协会、中国汽车动力电池产业创新联盟、 新能源汽车 国家大数据联盟联合协办的第二十届中国汽车产业发展(泰达)国际论坛(以下简称“泰达汽车论坛”)于2024年8月29日至9月1日在天津滨海新区举办。本届论坛以“风雨同舟二十载 携手并肩向未来”为年度主题,邀请重磅嘉宾展开深入研讨。 在9月1日“ 智能网联 方向专题分论坛四:20年智驾新篇,智能网联汽车软硬件技术协同新趋势”中,苏州国芯科技股份有限公司汽车电子和机器人芯片事业部副总经理朱春涛发表了题为“打造MCU+竞争力,服务中
[汽车电子]
朱春涛:打造<font color='red'>MCU</font>+竞争力,服务智能化发展需求
51单片机的指令英文全名
MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送; MOVC(Move Code)读取程序存储器数据表格的数据传送; MOVX (Move External RAM) 对外部RAM的数据传送; XCH (Exchange) 字节交换; XCHD (Exchange low-order Digit) 低半字节交换; PUSH (Push onto Stack) 入栈; POP (Pop from Stack) 出栈; (2)算术运算类指令(8种助记符) ADD(Addition) 加法; ADDC(Add with Carry) 带进位加法; SUBB(Subtract with Borrow) 带
[单片机]
基于单片机的智能家用报警系统设计
随着国民经济的增长、科学技术的发展和人民生活水平的提高,人们需要对室内环境的安全进行有效的监控和及时的报警。传统安防设备如防盗窗、防盗门等在使用时存在灵活性弱,有效性和及时性差等缺点。如果有一种家用智能报警系统,在室内环境产生异常时能够及时发现、报警和通知主人,人们的生活环境将会更加安全。嵌入式技术和传感技术的发展为这一系统的实现提供了可能。 本设计提出了一个基于STC89C52单片机控制GSM的智能家用报警系统,对房屋灾情进行实时监控和报警。系统使用温度传感器对室内温度进行检测并且在数码管显示;使用热释电红外传感器检测屋内是否有人非法侵入,检测数据传入单片机,单片机对数据进行分析和处理,若有异常,进行蜂鸣报警,并控制GSM系统
[嵌入式]
基于<font color='red'>单片机</font>的智能家用报警系统设计
基于SPE61A单片机的非接触式高压试电笔的设计
本文详细解密了了以SPE61A单片机为核心开发新式验电器的设计思想和方法。文章首先从单片机硬件方面介绍了系统的硬件组成结构和原理。接着在单片机软件方面介绍了系统的整个工作流程和设计思路。 设计思想与总体方案 1 非接触式验电器的设计思想 本次开发的验电器主要用于铁路中高压输电线路的监测工作,其设计要求是监测铁路中高压线路的运行情况,要求能正确判断高压线是否带电,并将有电、无电信号通过发光二极管显示出来,同时还要发出相应状态的语音提示信息。 另外,验电器通常安装在室外,因此本装置还要满足室外工作的要求。 2 总体设计方案和框图 本验电器以SPE61A单片机作为检测和控制核心。装置采用铜片式传感器监测高压线附近电场,将电场
[单片机]
基于SPE61A<font color='red'>单片机</font>的非接触式高压试电笔的设计
强化安全电子化服务 ST推出身份证微控制器
为帮助政府部门在持续演进的电子攻防战中保持优势,意法半导体(ST)推出一款身份证微控制器ST23YR80,新产品支持最新的加密技术,芯片中整合大容量的内存,用于保存生物测定数据。 ST23YR80提供接触式和非接触式两种接口,兼容于最先进的安全智慧卡标准,符合国际民航组织(ICAO)的机读旅行证件(MRTD)的要求,支持安全加密电子证明文件,如电子身份证和电子签名。这款产品计划在2009年第一季前获得通用标准EAL5+3.1版认证。 ST23YR80包括一个加密协同处理器,支持增强型RSA和椭圆曲线加密(ECC)算法。支持EAC(扩展型存取控制)电子护照作业,包括38KB的数据,用时不超过3.5秒。
[单片机]
PIC单片机程序设计的基本格式
为了快速掌握PIC单片机源程序的基本结构,这里给出一个典型的程序结构框架。建立源程序时首先用伪指令TITLE提供程序的标题,接着给出整个程序的总说明,并用列表伪指令LIST指定所用单片机型号和文件输出格式,再利用INCLUDE伪指令读入MPASM中提供的定义文件如《P16F84INC》,然后对片内常用资源进行定义,再给出一般程序的基本结构框架。现举例如下。 TITLE“This is……”;程序标题   ;程序说明   LIST P="16F84",F=1NHX8M   ;   include   -config_RC_Qsc &_WDT_0FF…   ;资源定义和变量定义   STATUS EQU 03   FSR EQU
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved