首页 理论教育 单片机学习应用:六大重要部分解析

单片机学习应用:六大重要部分解析

时间:2023-09-25 理论教育 版权反馈
【摘要】:器件的数据线被称为数据总线,器件所有的控制线被称为控制总线。在单片机内部或者外部存储器及其他器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的,由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为地址总线。下面以8051单片机为例讲解单片机的端子及相关功能。

单片机学习应用:六大重要部分解析

1.总线

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

2.数据、地址、指令

之所以将这三者放在一起,是因为这三者的本质都是一样的——二进制数字,或者说都是一串“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的字形码,也是实际输出的值。

理解了地址、指令的本质,就不难理解程序运行过程中为什么会“飞跑”,会把数据当成指令来执行了。

3.程序的执行过程

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

4.堆栈

堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一部分,特殊之处在于它存放和取用数据的方式,即所谓的“先进后出,后进先出”,并且堆栈有特殊的数据传输指令,即“PUSH”和“POP”,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次“PUSH”指令时,SP就(在原来值的基础上)自动减2,每当执行一次“POP”指令,SP就(在原来值的基础上)自动加2。由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP的值,就可以把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就是把堆栈设置在从内存单元60H开始的单元中。

5.单片机的开发过程

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

下面以8051单片机为例讲解单片机的端子及相关功能。

40个端子按端子功能大致可分为4个种类:电源、时钟、控制和I/O端子。

(1)电源

1)VCC-芯片电源,接+5V。

2)VSS-接地端。

注意:用万用表测试单片机端子电压一般为0V或者5V,这是标准的TTL电平。但有时候当单片机程序正在工作时候测试结果并不是这个值,而是介于0~5V之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机端子电压仍保持在0V或者5V。

(2)时钟

XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。

(3)控制线(www.xing528.com)

控制线共有4根。

1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲。

①ALE功能:用来锁存P0口送出的低8位地址。

②PROG功能:片内有EPROM的芯片,在EPROM编程期间,此端子输入编程脉冲。

2)PSEN:外ROM读选通信号。

3)RST/VPD:复位/备用电源。

①RST(Reset)功能:复位信号输入端。

②VPD功能:在VCC掉电情况下,接备用电源。

4)EA/Vpp:内外ROM选择/片内EPROM编程电源。

①EA功能:内外ROM选择端。

②VPP功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源VPP。

(4)I/O线

80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个端子。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

(5)P3口第二功能

P30 RXD串行输入口;

P31 TXD串行输出口;

P32 INT0外部中断0(低电平有效);

P33 INT1外部中断1(低电平有效);

P34 T0定时计数器0;

P35 T1定时计数器1;

P36 WR外部数据存储器写选通(低电平有效);

P37 RD外部数据存储器读选通(低电平有效)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈