五邑大学本科毕业设计
WR地址储存A/D启动寄存器清“0”
图2-19 信号的时间配合
从图中可以看到,把ALE信号与START信号接在一起了,这样连接使得在信号的前沿
写入(锁存)通道地址,后沿就启动转换。
启动A/D转换只需要一条MOVX指令。在此之前,要将P2.0清零并将最低三位与所选择的通道好像对应的口地址送入数据指针DPTR中。例如要选择IN0通道时,可采用如下两条指令,即可启动A/D转换:
MOV DPTR , #FE00H ;送入0809的口地址;
MOVX @DPTR , A ; 启动A/D转换(IN0); 注意:此处的A与A/D转换无关,可为任意值。
2.5.4 转换数据的传送
A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式,本论文采用了定时传送方式来实现通信。 (1)定时传送方
对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 (2)查询方式
A/D转换芯片转换完成的状态信号,例如ADC0809的EOC端,因此可以用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送。 (3)中断方式
把转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时OE信号即有效,把转换数据送上数据总线,供单片机接受。不管使用
上述那种方式,只要一旦确认转换结束,便可通过指令进行数据传送。所用的指令为
17
五邑大学本科毕业设计
MOVX读指令,则有:
MOV DPTR , #FE00H MOVX A , @DPTR
该指令在送出有效口地址的同时,发出有效信号,使ADC0809的输出允许信号OE有效,从而打开三态门输出,是转换后的数据通过数据总线送入A累加器中。
这里需要说明的示,ADC0809的三个地址端A、B、C即可如前所述与地址线相连,也可与数据线相连,例如与D0~D2相连。这是启动A/D转换的指令与上述类似,只不过A的内容不能为任意数,而必须和所选输入通道号IN0~IN7相一致。例如当A、B、C分别与D0、D1、D2相连时,启动IN7的A/D转换指令如下:
MOV DPTR, #FE00H ;送入0809的口地址
OV A ,#07H ; 2D1D0=111选择IN7通道 MOVX @DPTR, A ; 启动A/D转换
A/D转换接口控制电路由二输入四非门74HC02、六非门74HC74等组成。它为A/D转换器提供必要的时序信号,如A/D转换启动信号START、多路模拟信号的通道地址锁存信号ALE、A/D转换结束信号EOC、三态输出锁存缓冲器输出允许信号OE等等,并在转换结束后向单片机发出控制信号,以便单片机能够及时读取转换结果,同时驱动LED显示电路更新显示数据。
外围电路:
MCS—51 单片机 A/D转换接口控制电路 LED显示 电路 A/D转换 电路
图2-20外围电路
利用ADC0809的多通道结构来提高A/D转换分辨率,相比之下提高到10分辨率增加元件少,转换速度快,性能价格比高。
18
五邑大学本科毕业设计
2.6 MCS—51单片机
2.6.1 MCS—51单片机芯片概述
单片微型计算机SCM(Single Chip MICroeomputer),也称作微控制器MicroController,是把微型计算机主要部分都集成在一个芯片上的单芯片微型计算机。主要包括微处理器(CUP)、存储器(RMA、ORM)、输入/输出接口(I/0)、定时/计数器等功能部件。单片机自70年代问世以来,作为微型计算机一个很重要的分之,应用广泛、发展迅速,己经对人类社会产生了巨大影响。尤其是美国Intel公司生产的MCS—51系列单片机,由于其具有集成度高、处理能力强、可靠性高、系统结构简单、价格低廉等优点,在我国己经取得了广泛的应用,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成就。
2.6.2 MCS—51单片机内部结构与工作原理
8051是MCS—51系列单片机的最初产品,也是MCS—51系列器件的核心。 8051芯片的主要特征包括[8]:
①64K程序存储地址空间和6K4数据存储地址空间;
②K4字节的片上程序存储器和128字节的片上数据ARM;
③8—bti最优化的用于控制应用程序的CUP;
④广泛的布尔处理能力(Single—bitlogie)(相当于一个1—bitCPU); ⑤两个16—bit的定时/计数器;
⑥全双工UART(通用异步接收发送器); ⑦具有两个优先级的5个中断源; ⑧32个双向I/O口; ⑨一个片内振荡器;
如果按照功能划分,MCS—51系列单片机由8个部件组成,即微处理器(CPU)、数据存储器(ARM)、程序存储器(ORM)(其中8031无片内程序存储器)、I/0口(P0、Pl、P2、P3)、定时\\计数器、串行口、中断系统以及特殊功能寄存器SFR(Special Function Register)。微处理器由运算器和控制器组成,主要包括累加器(ACC)、B寄存器、临时存储器(TEMPI、TEMPZ)、算术逻辑单元等。
MCS—51系列单片机中的内核,它由运算器、控制器、定时器/计数器、串行接口四个部分组成。因此也可以说是将MCS—51系列单片机的内核分成了运算器、控制器、定时器/计数器、串行接口四个部分。虽然存储器不是本次设计的内容,但是它本身与设计是密不可分的。因此,下面就对应上述分法,看看MCS—51系列单片机的上述四个部分以及存储器各自的结构和功能。
19
五邑大学本科毕业设计
(1)运算器。 运算器包括算术逻辑部件AUL、位处理器、累加器A、寄存器B、暂存器、以及程序状态字寄存器PwS等。该模块的功能是实现数据的算术运算、逻辑运算、位变量处理和数据传送等操作。ALU的功能十分强大,它不仅可以对8位变量进行逻辑“与”、“或”、“非”、“异或”、移位和清零等基本操作,还可以进行加、减、乘、除和十进制调整等基本运算。AUL还具有一般微机的AUL所不具备的功能,即位处理操作,它可以对位(bi)t变量进行处理,如置位、清零、测试转移以及逻辑“与”、“或”、“非”等操作。由此可见,AUL在算术运算以及控制处理方面的能力是很强的。累加器A是一个8位的累加器。从功能上看它于一般微机的累加器相比没有什么特别之处,但需要说明的是A的进位标志Cy是特殊的,因为它同时又是位处理器的一位累加器。寄存器B是为执行乘法和除法操作设置的,在不执行乘、除法操作的一般情况下,可以把它当一个普通的寄存器使用。程序状态字寄存器PSW,是一个8位的可读写寄存器,它的不同位包含了程序状态的不同信息。其中进位标志位Cy(PwS.7)、辅助进位标志位AC(PSW.6)和Ov(PSw.2)在执行算术和逻辑指令时,可以由硬件或者软件(Cy可以有软件置位或清零)改变,因此运算器应该有上述三位状态改变的输出信息。本课题设计的运算器将完全以组合逻辑电路的形式出现,其内部将不包括累加器A、寄存器B、以及程序状态字寄存器PwS。它只是根据所接收的指令,将来自累加器、程序或者数据存储器的数据进行相应的算术或者逻辑运算,然后将运算结果以及程序状态字寄存器PSW的相关位以结果的形式输出。
(2)控制器。 控制部件是单片机的中枢神经,以主振频率为基准,控制器控制CUP的时序,对指令进行译码,然后发出各种控制信号,将各个硬件环节组织在一起。MCS—51系列单片机的CPU时序如下图所示。每个机器周期由6个状态周期组成,即51、52、53、54、55、56,而每个状态周期又由两个时相Pl、PZ(即2个主振荡周期)。所以一个机器周期依次可以表示为SIPI、SIPZ、ZSPI、SZP.2?S6PI、S6PZ。一般情况下,算术逻辑操作发生在时相Pl期间,而内部寄存器之间的传送发生在时相PZ期间,这些内部时钟信号无法从外部观测,故用XTALZ振荡信号作参考,而AEL可以用作外部工作状态指示信号用。MCS—51系列单片机的指令周期一般只有1—2个机器周期,只有乘、除两条指令占4个机器周期,当用12MHz晶体作主频率时,执行一条指令的时间,也就是一个指令周期为1ps(这样的指令约占全部指令的一半)、2ps以及4ps。主振频率越高,指令执行速度越快。
下图是CPU的时序图:
图2-21 CPU的时序图
20
五邑大学本科毕业设计
由此可见,MCS—51系列单片机的时序似乎比较简单。其实不然,要分析各条指令的取指、执行时序仍然是相当复杂的。本设计为简便起见,并不打算采用MCS—51系列单片机原有的CUP时序中机器周期的概念,而是将各条指令均设计在1到4个时钟周期内完成,因此所形成的PI核内,一个时钟周期内所要完成的任务基本上和原有MCS—51系列单片机中一个机器周期所要完成的任务基本一致(少部分指令有差别)。
(3)存储器。 MCS—51系列单片机存储器可划分为五类[9]: 程序存储器。一个微机系统之所以能够按照一定的次序进行工作,主要在于内部存在着程序,程序实际上是由用户程序形成的一串二进制码,该二进制码存放在程序存储器之中,8031无内部RMO,所以只能外扩EPORM来存放程序,MCS—51最多可以外扩6K4字节程序存储器,6K4程序存储器有5个单元具有特殊的用途。5个特殊单元分别对应于5种中断源的中断服务程序的入口地址。其分别是:“外部中断0”对应地址“0003H”;“定时器0中断”对应入口地址是“000B”;“外部中断1”对应入口地址是“0013H”;“定时器1中断”对应入口地址是“001BH”;“串行口中断”对应入口地址是“0003H”。
内部数据存储器。MCS—51系列单片机内部有128个字节的随机存储器(RAM),字节地址为00H—7FH。MCS—51对其内部的RAM很有丰富的操作指令,从而使得用户设计程序时非常便。作为用户的数据存储器,它能满足大多数控制型应用场合的需要,用作处理问题的数据缓冲器。地址为00H—1FH的32个单元是4个通用工作寄存器区,每个区含有8个8位寄存器,编号为R0—R7。用户可以通过指令改变PSW中的RS1、RS0这两位来切换寄存器区,这种功能给用户程序保护寄存器内用户内容提供了极大的方便。地址为20H—2FH的16个单元可以进行共128位的位寻址,这些单元构成了1位处理器的存储器空间。单元中的每一位都有自己的位地址,同时者16个单元也可以进行字节(8位)寻址。
特殊功能寄存器。特殊功能寄存器SFR是用对片内各功能单元进行管理、控制、监视的控制寄存器和状态寄存器。MCS—51中的特殊功能寄存器SFR非常重要的。实质上一些具有特殊功能的RAM单元,其地址范围为80H—FFH。特殊功能寄存器的总数为21个,离散的分布在该区域中,其中有些SFR还可以进行位寻址。凡是可以进行位寻址的SFR的字节,其十六进制的末位,只能是OH或者8H。另外要注意的是,128个字节的SRF块中仅有21个字节是有定义的。对于尚未定义的字节地址单元,用户不能做寄存器使用,若访问没有定义的单元,则得到一个不确定的随机数。
21