单片机初学者几个不易掌握的概念

发布者:Joyful444Life最新更新时间:2012-10-16 来源: 21ic 关键字:单片机  总线  数据  地址 手机看文章 扫描二维码
随时随地手机看文章

一、总线:
我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中 ,连连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很 多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以就需要的连线就很多了,如果仍如同模拟电路一样 ,在各微处理器和各器件间单独连线线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的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. 或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 ;

关键字:单片机  总线  数据  地址 引用地址:单片机初学者几个不易掌握的概念

上一篇:基于STC12C5616AD单片机的操作指示器设计
下一篇:单片机系统中的掉电保护电路

推荐阅读最新更新时间:2024-03-16 13:10

单片机调EEPROM存储器24C256
设置MSP430单片机为主设备,24C256为从设备。IIC总线由SDA和SCL两条线组成,每根线都联结4.7K的上拉电阻。 主设备向24C56写:主设备发送start信号— 接着发送8位Device address(0xa0写)— 24C256比较受到的地址,发送应答信号ack- 主设备受到ACK后,先发送First word address(高8位)— 24C256受到后返回ack应答— 主设备发送Second word address(低8位)— 24C256受到后返回ack应答- 主设备发送数据data— 256返回ack,从设备每受到一个数据就返回一个ack,主设备受到ack后就接着发送下一个data,直到所有数据发送
[单片机]
LIN总线概述与汽车门控系统设计实例
    动力和车速已经不再是消费者对汽车性能的唯一追求,人们越来越关心驾车时的舒适感、安全保障、功能的易用性,和对环境的保护等方面。     因此,除了车身系统(Car body)和传动系统(Power Train)等传统的汽车控制单元以外,安全系统(Safety)和车载资通娱乐系统(Telematics / Infotainment)也随着电子技术的进步而逐渐成熟。     现代的汽车电子系统中,电子控制组件(ECU)因在上述系统中赋予汽车更高效和更具智能性的操控能力而扮演了重要角色,也实现了诸如电源、车灯和门窗等自动检测功能,给驾驶提供了更大便利。     汽车中的电子系统和组件平均达到80多个,它们之间越来越复杂的
[嵌入式]
PIC单片机配置字
1、对于PIC来说,状态字的配置尤其重要,其直接影响MCU的正常工作与否; 2、以PIC18F45K22为例,打开mplab8.92, 3、我们就可以看到配置字的说明文档: 4、比如:Oscillator Selection bits:(振荡器选择配置字) HS是使用超过4M的石英晶体振荡器(外部晶振),其中HSHP为大于16Mhz,HSMP为4-16Mhz;XT是使用1M到4M的石英晶体振荡器。LP是使用低于1M的陶瓷振荡器,上述都是用外部晶振,只是所用晶振的材质和频率不同。RC是不使用外部晶振,直接用内部的RC时钟电路。其中HS和XT因为用石英晶体振荡器,所得时钟比较准确,适用于各种串口、can、TCPIP
[单片机]
PIC<font color='red'>单片机</font>配置字
MSP430单片机输入与输出
MSP430单片机的输入输出线绝大多数是服用的,除了个别的端口外,基本上是8为为一组,不同的型号的MSP430的端口有所不同,就msp430F5438而言,一共有11个I/O端口,其中除了第十一P11的宽度是3位以外,其他的端口全是8为宽度,为了方便使用,分别命名为PA,PB,PC,……,分别对应P1,P2P3…… 值得注意的是MSP430F5438单片机的P1和P2端口还具有申请中断的功能,而其他的端口则无此功能 每个端口都有控制开关,分别可以控制端口的方向,引脚的功能,每个端口都有自己的输入输出寄存器,MSP430F5438海域中断管理寄存器,他们分别决定端口的中断使能,中断有效边沿,和中断标志位 示例代码:
[单片机]
MSP430<font color='red'>单片机</font>输入与输出
23-基于51单片机土壤湿度检测及自动浇花系统(带时间显示)
具体实现功能 具体功能: (1)液晶第一行显示实际湿度,液晶第二行显示当前时间; (2)按键说明:减键、加键、设置键; (3)可以设置湿度上下限报警范围,具有掉电保存功能,上电无需重新设置; (4)当湿度低于下限值时,打开水泵(风扇开始转动)进行抽水且声光报警,当湿度高于上限值时,自动关闭水泵停止抽水。 单片机介绍 51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O
[单片机]
23-基于51<font color='red'>单片机</font>土壤湿度检测及自动浇花系统(带时间显示)
基于51单片机的风机温度控制系统的设计
0.引言 风机为通用机械,它广泛地使用在国民经济的各个部门中。风机广泛用在工厂、矿井、车辆、建筑物、家用电器等的通风、排尘和冷却;谷物的烘干和选送;风洞风源和气垫船的充气和推进等。另外,在一些对环境温度有特殊要求的场所,要求温度变化在1℃以下,这就需要一种可以根据外界环境温度来确定风机的转动与停止的风机温控系统。 本文设计的风机微小温控系统,可使温度检测精度达到0.01℃,并可手动设定温度上下限,且具有自动声光报警功能。 1.设计要求 本系统采用PT1000温度传感器检测环境温度(温度检测精度0.01℃),根据环境温度变化控制风机降温,并具备按键手动设定温度上下限、声光报警等功能。其控制面板示意图如图1所示。
[单片机]
基于51<font color='red'>单片机</font>的风机温度控制系统的设计
ST发布低成本嵌入式闪存微控制器STR910F
5月2日讯,ST发布通用闪存微控制器系列:STR910F,组合了以太网连接功能、ARM9E处理器核与大容量嵌入式SRAM及闪存。STR910F系列为基于ARM的闪存MCU设置了新的性/价与连接功能标准,为系统设计人员在低成本LAN或网络节点中转入强大的嵌入式控制应用带来了众多新的可能。 STR910F系列专为满足高性能嵌入式控制应用不断增长的需求开发,支持以太网连接功能。这些器件是ST基于ARM7TDMI MCU的STR7XX系列的扩充。销售点终端与外设、自动贩卖机、工业控制与工厂自动化、串行协议网关、楼宇设备自动化、安全与监视、便携式仪表等应用对性能与网络连接功能的需要越来越高。此外,这些应用也需要更大容量的嵌入式程
[新品]
STM32单片机特性解析
STM32单片机 由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、 低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其简单的结构和易用的工具再配合其强大的功能在行业中赫赫有名。其强大的功能主要表现在: 特性 1、内核:ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz,单周
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

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

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

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved