毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

MCS51单片机反向解剖以及正向设计的研究 第9页

更新时间:2009-5-22:  来源:毕业论文
MCS51单片机反向解剖以及正向设计的研究 第9页
MCS一51单片机具有片上振荡器,可以用作CPU的时钟源。使用片上振荡
器时,在芯片的引脚XTALI和XTALZ之间连接一个晶体或者陶瓷谐振器,并
且XTALI和XTALZ到地之间各连接一个小电容(例如:选用石英晶振、30PF
电容)。如果使用外部时钟驱动,应该将时钟信号加在XTALI引脚上。图3一12、
3一13分别给出了McS一51单片机CMOS型芯片的片上振荡器电路和由时钟信
号产生2组内部时钟信号的电路。
XTA口
图3一12片上振荡器电路
分析图3一12可以得到:
①对于CMOS电路来说,其抗静电干扰能力、抗高压能力较差,甚至人体
所带静电都可能击穿管子、损坏芯片。而XTALI、XTALZ均为CMOS型芯片
的外引脚,因此在XTALI、XTALZ端均加上保护电路如虚线框内电路1、电路
2所示,相当于分别连接了2个二极管。如果芯片外部突然加上一个正向较高电
压时,正向高压可以通过二极管Dl泄放;如果芯片外部突然加上一个反向较高
电压时,反向高压将通过二极管DZ泄放,这样保证了芯片的抗静电、抗高压能
力。实际电路中Pl、Nl管子较大。
②MOS管PZ、NZ的栅极分别接到低电平和高电平上,使PZ、NZ处于恒
导通状态,相当于Pl、Nl的栅极分别通过一个电阻后接到高电平和低电平上,
而不是直接将Pl、Nl的栅极接到芯片电源的高、低电平上。电路的这种设计方
法可以保护管子Pl、NI在误操作芯片电源时不被击穿。
③当L端信号为低时,K端信号与其相反,为高。此时P3、N3、NS管导
通,P3、NS构成了一个传输门而P4、N4、N3构成了一个倒相器,如虚线框
电路3所示。传输门相当于一个较大电阻(IM左右),与倒相器一起做为外部晶
第三章MCS一51单片机的反向解剖
振、电容的反馈回路,产生芯片内所需要的时钟信号。当L端信号为高时,K为
低,此时N3、P3、NS截止,芯片处于掉电方式下,振荡器被冻结起来,时钟
信号发生器不再工作。
图3一13产生2组内部时钟信号电路
分析图3一13可以得到:
①CLK端为时钟信号,与XTALI端时钟信号频率相同。当E=1时,芯片
处在正常工作状态下,分析电路可知:Cl端信号与CLK端信号相反,CZ端信
号与CLK端信号相同;C3与CLK相反,C4与CLK相同。从而得到2组时
钟Cl=瓦又、CZ=eLK和C3=己厄又、C4=CLK。当E=0时,Cl恒为低而CZ
恒为高,此时不提供Cl、CZ时钟信号,芯片不正常工作,处于低功耗状态。
②每组时钟信号产生电路中,同组信号CI、CZ或C3、C4互相影响,并
分别与原来的时钟信号己〔又、CLK相或,然后输出C么Cl或C4、C3。由反
馈回的时钟信号共同作用的设计方法可以保证同组时钟完全同步。
第三章MCS一51单片机的反向解剖
③芯片内部电路中,许多功能单元(例如DFF)需要在2组时钟的同步下执行
功能,另外,硬件电路中构成时钟网络来控制指令执行可以减少管子数目、减小
芯片面积,因此需要由CLK信号产生2组时钟信号电路。
3.3.2算术运算单元ALU
算术运算单元ALU是CPU核心中十分重要的部件,主要用于对数据和逻
辑进行操作。MCS一51系列单片机中由累加器ACC、B寄存器以及两个临时存
储器TMPI、TMPZ来实现ALU的功能。ALU可以进行加、减、乘、除算术运
算,分别以bs*89=60(高位)dd(低位)H和as一04=OZH(商)29H(余数
为例说明ALU如何进行乘法以及除法运算。
算术运算单元ALU的乘法运算过程如表3一1所示,其中TMPZ、B分别表
示8位暂存器TMPZ以及B寄存器里乘法运算过程中值的变化。ALU做乘法运
算bSH*89H时,bs、89分别为乘数、被乘数。乘法运算前要先进行取数操作,
取数后将乘数bs放在累加器ACC中,另一个乘数89放在B寄存器中。乘法
运算的整个过程之中,累加器保持bs值不变化。B寄存器中的数先送到临时存
储器TMPZ内,同时将累加器ACC中数也要送到B寄存器。然后,TMPZ与B
寄存器里的值共同右移,如果移动后B寄存器最后一位是“1”,则TMPZ中的
值加上最初放入TMPZ中的乘数值(部分积),而B寄存器中的值保持不变。例
如表3一1中从“0010001001101101”到“1010101101101101”。TMPZ
与B寄存器的内容需要共同右移8次,才得到最后的运算结果。运算完成后将
B寄存器中的内容送到累加器,并且将TMPZ的内容送到B寄存器中。最终乘
法运算结果的低8位就放入累加器,而高8位放入B寄存器。
表3一1乘法运算过程
TTTMPZ(Bin)))B(Bin)……TMPZ(Hex)))B(Hex)))
111000100111一0110101!!!8999B555
00010001000011011010004444daaa
000010001000011011011122226ddd
11101010111101101101111Abbb6ddd
00010101011110110110005555B666
00001010100011011011112aaadb
第三章MCS一51单片机的反向解剖
1110110011111101101111b333dbbb
00010110011111101101115999eddd
11111000100011101101}}}e222eddd
lllllllllll
000111000111011101100071117666
00001110000010111011113888bbbb
1111000001111011101111C111bbbb
00011000000011011101116OOOdddd
事实上,本芯片中乘法运算的算法原理与普通的竖式乘法运算所采用的左移
相加是完全一致的。我们做竖式乘法时,从第二个乘数的最低位开始相乘,以其
为参照是左移相加。这里的乘法运算相当于从第二个乘数的最高位开始相乘,以
其为参照就是右移相加。
ALU的除法运算过程如表3一2所示,其中TMPZ、B仍然分别表示8位暂
存器TMPZ以及B寄存器内除法运算过程中值的变化。ALU做除法运算a5H
于O4H,as为被除数,04为除数。运算前要进行取数操作,取数后先将被除数
as放在累加器ACC中,除数04放在B寄存器中。整个除法运算过程中,累加
器的值保持as不变化。除法运算开始,将TMPZ置为“00000000”,并将累
加器中的值送到B寄存器。
TMPZ与B寄存器的内容需要共同右移8次,才得到最后的运算结果。运
算完成后将B寄存器中的内容送到累加器,并且将TMPZ的内容送到B寄存器
中。最终乘法运算结果的低8位就放入累加器,而高8位放入B寄存器。然后,
TMPZ与B寄存器中的数共同左移,如果移动到TMPZ中的值大于除数,也就
是大于“00000100,,,则TMPZ中的值减去除数(“00000100,,),而B寄存
器中的值保持不变。例如表3一2中从“0000010100一01000”变化到
“0000000100101000,,。每次完成如上调整,下一次TMPZ与B寄存器中
的值共同左移后将B寄存器中的最后一位置为“1”。整个运算过程TMPZ与B
寄存器的内容需要共同左移9次。运算完成之后,将TMPZ中的值送入累加器。
最终除法的运算结果商就存放在累加器里,而余数放入B寄存器。
表3一2除法运算过程
1TMPZ(Bin)IB(Bin)1TMPZ(Hex)IB
00000000}10100101

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

MCS51单片机反向解剖以及正向设计的研究 第9页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。