计算符号编码电路产生对应计算符号的编码,输送给计算符号按键电路。用计算符号按键输入计算符号+-×÷,cos,sin,ln,log,等,计算符号按键的输出端接上或门,或门两两相接,最后输出一个或门,当有任何计算符号按键按下时,或门输出高电平,或门后面接上计数器,计数器记录按键按下的次数,当有按键按下时,计数器将对应的次数输入到加法器,加法器将对应计算符号接入数值电路,进行计算。每个计算符号按键的后面接上一个或非门,再加上一个与门,最后它们两两之间接上或门,最后一级是一个或门。这个或门输出刚刚按下的计算符号的编码到计算电路,当按下一次计算符号按键时,进行一次计算,输入到存储器,存储器在将数值和上面最近一次按下的计算符号编码输入到计算电路进行计算,
每一个计算符号按键对应一个计算电路,分别有开方电路,开立方电路,sinx计算电路,ln计算电路等等。当按下一个计算符号按键时,数据进行对应的计算电路进行计算,例如,按下lncosx计算按键时,从键盘输入的数字进入lncosx计算电路进行计算,并输出到数码管显示。开方计算电路通过对应的牛顿迭代法公式对数据进行开方计算,sinx,cosx,tanx,cotx等计算电路通过泰勒展开公式进行计算,lnx,立方n次方计算通过泰勒展开公式进行计算。lncosx通过《古今算学丛书假数测圆》里面的公式进行计算。上面各种计算公式通过数字电路加法器,减法器,乘法器,除法器按公式连接起来进行计算。
([{)]}等按键通过非门,与门判断电路,将使电路先计算其里面的数值,在计算其外面的数值。最后电路通过=按键输出高电平控制输出计算结果到数码管编码器,驱动数码管输出计算结果。电路中的加法器,减法器,乘法器,除法器都采用串行加法器,减法器,除法器,乘法器等。
按键扫描电路
当有按键按下时RS触发器Q输出1,Q输出0,按下清零键以后,RS触发器Q端输出0,Q端输出0。
当RS触发器的输入端R,S都是1时,触发器保持输出端没有变化。利用这个特点,当按键输入高电平1时,电路输出高电平1给存储器,当按键断开输入低电平0时,RS触发器仍然给存储器输入1,当清零键按下时,RS触发器的S端输入0,触发器给存储器输入0,存储器清零。
计算码生成电路
当数字键1,按下时,这个与门输出0000001给后面计算电路,所有按键存储器后面两两之间接上或门,或门后面再接上或门,最后接上计数器。当按键按下时,计数器变为1,对应的存储器输出对应键值。当按键按下第二次时,计数器输出2,输出两位数字,当按键按下第三次时,计数器输出3,输出三位数字。
当有符号按键按下时,按键计数器清零,记录按键次数为零,只有当字符按键按下时,异或门输出0,与门输出0,计数器清零。当没有按键按下时,有数字键按下时,异或门输出1,与门输出1。
计算器的总电路图如下:
第一部分计算整数次方根
下面的电路可参见《数字工程》[美]G.K.科斯托普洛斯著,王玉龙,蔡勇译,张其善校,人民邮电出版社1981年出版。
附录A,计算整数次方根的一般方法的详细推导。
不论是哪一种数制中的数,其n次方根都可以通过每次只计算出一位当根的方法来确定。设R是数K的n次方根,其中n为整数,R可表示为:
R=rr......rrr......r(A*1)
imim-1i1f1f2fj
式中,R的整数部分分为m位,小数部分分为j位,等式(A1)也可表示为:
m-1
R=(rr......rrr......r)Q(A2)
式中,Q是数制的基数,r为非零数。取R的n次幂,则由式(A2)可得:
im
nn(m-1)n
R=(rr......rrr......r)*Q(A3)
n
用字母h表示R整数部分的位数,当括号里的数为最小时,k为最小。
这就是r等于1,其余各r位都等于0时的情况,如下式所示:
(rr......rrr......r)=(1.0.......0)=1(1位最小)(A4)
因此,k的最小值为式(A3)中基数Q的指数加1,即:
(m-1)*n+1≤k(A5)
同样,当式(A3)括号里的数为最大时,k为最大。这就所有r位都等于Q-1时的情况,其中Q-1是Q数制中的最大数值。
nnn
(rr......rrr......r)=(Q-1.Q-1Q-1......Q-1)=(10-0.00......1)(十进制)
imim-1i1f1f2fjmax(A6)
如果括号里的数仅是10,则取幂结果将为n+1位数:
nnnnn
10=(1.0*Q)=(1.0)Q=Q(n+1位整数)
nn
因为括号里的数是10的最邻近的偏低近似值,而10是n+1位*整数的最小数,所以n应等于式(A6)中蒸熟的位数。*注:原文为n,疑错改为n+1,译者.
因此,k的最大值为式(A3)中基数Q的指数(m-1)*n加n,即:
k≤(m-1)n+n或k≤mn(A7)
由式(A5)和(A7)则得:
(m-1)n+1≤k≤mn(A8)
由式(A8)可知,当m增加1时,k的范围就增加n,也就是说,m的每一个单位对应于k的n个单位。
这表明R的每一位整数对应于K的n位数,即K=R。换句话说,数K的每n位对应其n次方根中的一位,即
K=R
设K为一个要算n次方根的数,并没有得之方根为:
R=rr......rr(A9)
mm-121
也就是说一个数的方根等于这个数的的里面的一段数的方根的和,为了简化计算方根的一般方法的推导过程,先只考虑方根的整数部分。
n-1m-1
式(A9)中,r位的权为Q,其所表示的一个完整数为rQ,
mm
其中Q表示r位和小数点之间有m-1个零。
m
根位r必须是一个使下列差值为最小的正值:
m-1n
K=(rrQ)(A10)
mm-1
同样,根位r必须是一个使下列差值为最小的正值:
1
K=(rr.......Q)(A11)
mm-11
以此类推,根位r必须是一个使下列差值为最小值的正值:
K=(rr.......r)(A12)
式(A11)可写为:
m-1nm-1nm-2n
K-(rQ)+(rQ)-(rrQ)
mmmm-1
m-1nm-2nm-1n
=[K-(rQ)]-[(rrQ)-(rQ)]
mmm-1m
m-1nm-1m-2nm-1n
=[K-(rQ)]-[rQ+rQ)-(rQ)]
即为:[前面运算之差]-[(部分根+新位)-(部分根)],一个数的整数根等于这个数的部分根的和,其中每一个新位必须使差值进一步减小。若用M表示上述减法中的被减数,用S表示减数,则S表示式为:
S(对r)=(rQ)(M=K)
mmmm
m-2nm-1n
S(对r)=(rrQ)-(rQ)(M=M-S)
m-1m-1mm-1mm-1mm
S(对r)=(rr......r)-[(rr......r)Q](M=M-S)
11mm-11mm-12122
S和M的一般表示式为:
m-(t+2)nm-(t+1)n
S=[(rr......rrQ]-[(rr......r)Q]
m-(t+1)mm-1m-1m-(t+1)mm-1m-i
(M=M-S)
m-(t+1)m-tm-t
计算方根的一般方法的流程图如图A1所示。
图A1计算方根的一般方法的流程图。(注:r是使M-S的差为最小的非负数。)使正被计算的根有效位规格化,S表示式变为:
S=[(rr......r)Q+r]-[(rr......r)Q]
m-(t+1)mm-1m-Im-(t+1)mm-1m-i
设已算得的部分根rr......r=R,并设r为新的根位,则得:
mm-1m-i
S=[QR+r]-[QR](A14)
因为每次迭代中只有n个附加数位参加计算,所以上述算法可表示为如图A2所示。
若要计算平方根,则S表示式中的n应分别取2和3,如下所示:
22
S(求平方根)=(QR+r)-(QR)
222
=(QR)+2QRr+r-(QR)
2
=2QRr+r
=(2QR+r)r(A15)
33
S(求立方根)=(QR+r)-(QR)
32233
=(QR)+3(QR)r+3QRr+r-(QR)
323
=3(QR)r+3QRr+r
3
=3QRr(QR+r)+r
=[3QR(QR+r)+r]r(A16)
若要计算十进制数的方根,则S表示式中的Q应取10.因此,计算十进制数平方根S表示式为:
S=(20R+r)r(A17)
图A3表示了计算十进制数平方根的流程图,若要计算立方根,则S表示式为:
S=[30R(10R+r)+r]r
图A4表示了计算十进制数立方根的流程图。同样,若要计算二进制数的方根,则S表示式中的Q应取2,因此,计算二进制数平方根的S表示式为:
S=(AR+r)r
用A5表示了计算二进制数平方根的流程图。若要计算立方根,则S表示式为:
S=[6R(2R+r)+r]r
图A6表示了计算二进制数立方根的流程图。
例如:计算√1426,
1.先计算√14,得到14的开方是3.74165738677,
2.所以最高位是3,
3.14减去3*3等于5,把它写在第二段数26的右边得到526,
4.用3*20得到60,再用60除526,所得的最大整数8,
5.用3*20得到60,用60加上8等于68,再用68*8得到544,(20*3+8)*8=544,
6.因为544>526,所以将8变为7,(20*3+7)*7=469,
7.1426开方得到37,√1426=37.762415177
求一个数的立方根的运算方法,叫做开立方。最早在我国的《九章算术》少广篇里有对开立方的记载。
1.将被开立方数的整数部分从个位起向左每三位分为一组。
2.根据最左边一组,求得立方根的最高位数。
3.用第一组减去立方根最高位数的立方,在其右边写上第二组数。
4.用求得的最高位数的平方的300倍试除上述余数,得出试商;并把求得的最高位数的平方的300倍与试商的积、求得的最高位数的30倍与试商的平方的积和试商的立方写在竖式左边,
5.用同样方法继续进行下去。
一、开根号方法
1.数m开n次方,n位一节为一根,前根均作a,a后需求的根均作b;前根a的位数不断增长,后根b永远做一位根视,直至开尽或开至所需要的位数。
2.首位a根用1~9n方块直接确定(随后就无a根系列的事了;或用双根或多位根作a;即将约小于被开数的乘方数的幂底整数值作为a根,再求b=x),b根用“标准固律方程式”或“简易求b方程式”求。
二、快速开根
从个位起向左每隔两位为一节,若带有小数从小数点起向右每隔两位一节,用逗号分开求不大于左边第一节数的完全平方数为商,再从左边第一节数里减去求得的商,在它们的差的右边写上第二节作为第一个余数再把商乘以20,试除第一个余数,所得的最大整数作试商用商乘以20加上试商在乘以试商。如果所得的积小于或等于余数,就把这个试商写在商后面,作为新商;如果所得的积大于余数,就把试商就、逐次减小再试,直到积小于或等于余数为止;用同样的方法,继续求。
求立方根的步骤
1.从个位向左每3位数分一节。最左一节可能是3位、2位也可能是1位数。分出几节说明立方根就有几位数。
2.求出最高(左边第一)节位立方根(整数),余数连接下一节3位数作为下一组的被除数,
3.用求出的立方根的2次方*300后试除被除数,能商几就用前面立方根的平方*300*商+前面立方根-30-商的平方+商的立方。(注:一般实际商会比试商少1,因为在试商的情况下还要+新商的立方),这个商就是所求立方根的第2位数。
4.同上:将第二次的余数连接下一节3位数作为新的被除数。
5.将前面已有两位数组成的立方根的平方*300后试除新的被除数,能商几就用前两位立方根的平方*300*商+前两位立方根-30-商的平方+商的立方。
这个商就是所求立方根的第3位数。
6.反复采用上述计算方法,直到余数是0为止。通过试商,如果发现商大于或商小于就减小或增大数字就行了。
总之求出的立方根必须与题目相符。
例1:求17576的立方根
解:分节:17`576,说明立方根有2位数,17的立方根(整数部分)是2,
2*2*2=8,17-8=9,9000+576=9576,
2的平方*300=1200,9576/1200最多商7,7-1=6(试商),
2*2*300*6+2*30*6*6+6*6*6=9576,9576-9576=0,20+6=26,
17576的立方根是26
例2:求13144256的立方根
解:分节:13`144`256
说明立方根有3位数,13的立方根(整数部分)是2,
2*2*2=8,13-8=5,5000+144=5144,
2的平方*300-1200,5144/1200最多商4,4-1=3(试商),
2*2*300*3+2*30*3*3+3*3*3=4167,5144-4167=977,977000+256=977256,23*23*300=158700,
13144256的立方根是236,
使用牛顿迭代法计算立方,开方
设A=X^3,求X,称为开立方。开立方有一个标准的公式:
X(n+1)=Xn+(A/X^2-Xn)/3(n,n+1是下角标)
例如,A=5,k=3,即求5介于1的3次方至2的3次方之间(1的3次方=1,2的3次方=8),
初始值X0可以取1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,都可以。例如我们取X0=1.9按照公式:
第一步:X1=1.9+(5/1.9^2-1.9)/3=1.7,
即5/19*1.9=1.3850416,1.3850416-1.9=-0.5149584,-0.5149584*1/3=-0.1716528,1.9+(-0.1716528)=1.7。即取2位数值,即1.7.
第二步:X2=1.7+(5/1.7^2-1.7)/3=1.71,
即5/17*1.7=1.73010,1.73-1.7=0.03,0.03*1/3=0.01,1.7+0.01=1.71.取3位数,比前面多取一位数。
第三步:X3=1.71+(5/1.71^2-1.71)/3=1.709,
第四步:X4=1.709+(5/1.709^2-1.709)/3=1.7099,
这种方法可以自动调节,第一步与第三步取值偏大,但是计算出来以后输出值自动转小;
第二步,第四步输入值偏小,输出值自动转大。即5=1.7099^3。当然初始值X0也可以取1.1,1.2,1.3,.....1.8,1.9中的任何一个,都是X1=1.7>.当然,我们在实际中初始值最好采用中间值,即1.5.1.5+(5/1.5^2-1.5)1/3=1.7。
如果用这个公式开平方,只需将3改成2,2改成1.即
X(n+1)=Xn+(A/X-Xn)/2(n,n+1是下角标)
例如,A=5;5介于2的平方至3的平方之间。我们取初始值2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9都可以,我们最好取中间值2.5.
第一步:2.5+(5/2.5-2.5)/2=2.2;
即5/2.5=2,2-2.5=-0.5,-0.5*1/2=-0.25,2.5+(-0.25)=2.25,取2位数2.2。
第二步:2.2+(5/2.2-2.2)/2=2.23;
即5/2.2=2.272,2.272-2.2=-0.072,-0.072*1/2=-0.036,2.2+0.036=2.23.取3位数。
第三步:2.23+(5/2.23-2.23)/2=2.236。
即5/2.23=2.242,2.242-2.23=0.012,0.012*1/2=0.006,2.23+0.006=2.236,
下面的电路通过上面的公式实现计算开立方的功能
牛顿法:在实数域和复数域上近似求解方程的方法
也就是:△y/△x近似于y`,举个例子:利用牛顿进行数字的开方处理,
定义需要的方程:y=x,
xy△y=a-yy`=2x△x=△y/y`
11120.5
1.52.25-0.253-0.083
1.4167202.82670
随着迭代更新x值的次数增多,所得达到的x值也就越接近答案。按照上述的推导过程,我们可以推导出牛顿法的表达式:
(a-x)
△x=
2x
到此牛顿法的主要公式就推导出来了,使用程序目的就是对x的值进行迭代更新。实现的代码为:
defsqrt(a);
x=1
for_inrange(5);
x=(a*x*x)/(2*x)
returnx
获取1-10的每个数字的平方根为:
sqrt(1)=1.0
sqrt(2)=1.414213562373095
sqrt(3)=1.7320508075688772
sqrt(4)=2.0000000000002
例如,计算√17
已知2.5=15.625,2.6=17.576
所以设:√17=n,15.625 已知:2.5=15.625,2.58=17.1735 设:n=√17 n=(15.625+a)=15.625+3*15.625*a 32 17.1735=2.5+3*2.5*a=15.625+3*6.25*a 17.1735=15.625+18.75a,a=1.5485/18.75=0.08259, 因此,n≈2.5+0.08259=2.58259,验算:√17=2.5712816,绝对误差=0.01131, 可以将2.5变为2.6,代入重新计算 17.1735=2.5+3*2.6*a=15.625+3*6.76*a 17.1735=15.625+20.28a,a=1.5485/20.28=0.076356,因此,n≈2.5+0.076356=2.576356。 牛顿迭代公式 f(x) X=X- n+1nf`(x) 先来一段代码,求9平方根java实现, doublet=9; whil(Match.abs(t-9.0/t t=(9.0/t+t)/2. System.out.println(t);} 运行结果3.00009155413138,牛顿法最初由艾萨克*牛顿在《流数法》(MethodofFluxions,1671年完成,在牛顿去世后于1736年公开发表)中提出。约瑟夫*鲍易也曾于1690年在AnalysisAequationum中提出此方法。 求导 首先,我们知道要对那个数开方,比如现在我们要求出√9, 那么可以写出x-9=0,这一步我想应该没有人看不懂。 f(x)=x-9 切线,然后画出它的二维图形,并作出点(9,f(9))处的切线,切线方程可以表示为, y-f(9)=f`(9)*(x-9),切线方程, y-f(9) x=+9 f`(9) 当y=0时,我们求到了x=6, 我们的目标√9的解为3,切线与x轴的交点为5,显然不是答案,我们还得继续做点(5,f(5))的切线,再切, y-f(5)=f`(5)*(x-5),切线方程, y-f(5) x=+5 f`(5) 16 10 同样,当y=0时,x=3.....还得继续,继续切,已经很接近了,就不继续切线了 x=x=+5 21f`(x) 回顾一下,f(x)=x-a,f`(x)=2x, y-f(x) x=+x n+1f`(x)n 当y=0时, 化简一下 x-a n+12xn 最后得到 a x=(+x)/2 n+1xn 以上就是牛顿迭代法求平方根的过程了,写成java代码就是上面的样子,总结一下: 1.f(x)求导 2.作k=f`(x)切线, 3.求出y=0时的x的值,赋值x 4.作k=f`(x)切线 5.求出y=0时的x的值,赋值x 12 6.作k=f`(x)切线 7.重复上面的计算过程 牛顿迭代法(Newton`smethod)又称牛顿-拉夫逊(拉佛森)方法(Newton-Raphsonmethod),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。 示例1:求解平方根 先来看如何用牛顿迭代法求解5的平方根。在计算器上的结果是2.236067..., 问题可以看作解方程x=5,下面尝试用牛顿迭代法求解。 首先令f(x)=x-5=0,这是标准步骤,取得一个新函数,令该函数为0.这是一个抛物线: 抛物线与x轴的交点x就是方程的解,它比2稍大一点。现在在x=2处对f(x)作切线。 f(x)的切线与x轴的交点,x=2,y=x-5=-1,设k是切线的斜率, 002 在x处做f(x)的切线,重复上面步骤, 这就是牛顿迭代法的公式。通过作图可以看出,每一次迭代,x都将更靠近最终解。f`(x)=2x,将公式代入目标方程f(x)=x-5.已经相当接近计算器的结果。 示例2:2cosx=3x 解方程2cos=3x,由图像可知,方程存在唯一解。 f(x)=2cosx-3x=0,f`(x)=-2sinx-3,x=π/6≈0.52 0 n2cos(π/6)-3*π/62*0.866-π/2 x=+x=+π/6=+π/6 n+1f`(x)n-2sin(π/6)-1 =π/3-2*0.866=0.1804≈0 注意事项: 牛顿迭代法几乎可以求解所以方程,但它仍然有一些限制。通过前两个例子可以看到,在使用牛顿迭代法时,需要选取一个较为解接近真实解的x0作为迭代基数,x0如何选取呢,一句参考是:“f”不能太小,f不能太大,x0要在x附近,这似乎要凭经验和感觉了,没有什么太好的办法。实际上,如果x0和x的差距过大,可能会得到一个没谱的解。设第n次迭代的误差是En=│x-xn│,那么需要满足En+1 代码示例:牛顿迭代法开平方,设x2=a,则f(x)=x2-a,根据牛顿迭代法公式: constfloatEPS=0.00001; doublesqrt(doublex){ if(x==0) return0; doubleresult=x; doublelastValue; do{ lastValue=result; result=result/2.0f+x/2.0f/result; }while(abs(result-lastValue)>EPS); return(double)result:} 例如,求√5 1.当x=2时,切线方程为 5 (+2)/2=2.25 2.当x=2.25时,切线方程为 (+2.25)/2=2.23611 2.25 3.当x=2.23611时,切线方程为 (+2.23611)/2=2.2360 2.23611 4.这样就得到√5=2.2360 因为, f(x)=x-a f`(x)=3x n+12n 3x 1.当x=1时,切线方程为 5-1 +1=1.333 2.当x=1.333时,切线方程为 5-1.3333 +1.333=1.82636 3*1.3333 3.当x=1.82636时,切线方程为 5-1.82636 +1.82636=1.7172349 3*1.82636 4.当x=1.7172349时,切线方程为 5-1.7172349 +1.7172349=1.7100 3*1.7172349 5.当x=1.7100时,切线方程为 5-1.7100 +1.7100=1.709 3*1.7100 4.这样就得到√5=1.709 同理可证: n-1 f`(x)=nx n+1n-1n nx 11 +1=1.3636 2.当x=1.3636时,切线方程为 5-1.363625.3079 +1.3636=-+1.3636=1.260087 10244.4908502 11*1.3636 3.当x=1.260087时,切线方程为 5-1.2600877.717619933 +1.4671=-+1.3636=1.19057 10111.0191751 11*1.260087 4.当x=1.190579时,切线方程为 5-1.190571.81246 +1.190579=-+1.190579=1.16177 1062.94221 11*1.19057 5.当x=1.16177时,切线方程为 5-1.161770.203813627 +1.16177=-+1.16177=1.1576 1049.27132729 11*1.16177 6.这样就得到√5=1.1576 第二部分泰勒展开数字计算电路 可参见高等教育出版社菲赫金哥尔茨著1953年版《微积分教程》第一卷第一分册, 3572m aaam-1a2m sina=a-+--...+(-1)+o(a)(a→0) 3!5!7!(2m)! 2462m aaama2m+1 cosa=1-+--...+(-1)+o(a)(a→0) 2!4!6!(2m)! 3572m-1 arctga=a-+--...+(-1)+o(a)(a→0) 详细推导见初等函数的展开 3572k-1 xxxx shx=x++++…+ 3!5!7!(2k-1)! 2462k chx=1++++…+ 2!4!6!(2k)! 推导过程参见399.根式的计算 mm(m-1)2m(m-1)...(m-n+1)n2n (1+x)=1+mx+x+…+x+o(x) 1*21*2...n xx(x-1)2x(x-1)...(x-n+1)n2n (1+a)=1+ax+a+…+a+o(x) √2的近似值1.4可以通过下面的方法得到 1/2(1/2)*(1/2-1)m(m-1)...(m-n+1)n (1+1)=1+1/2++…+x+..≈1.5-0.08333≈1.4166 推导过程参见398..对数的计算 n+121111 ln=ln(n+1)-lnn=[1+*2+*4+…] n2n+13(2n+1)5(2n+1) 当n=1时,得到ln2的展开式: 211111111 ln2=(1+*+*2+*3+*4 339597999 11111111 +*5+*6+*7+*8+…) 119139159179 我们还知道 234n xxxxn ln(1+x)=x-+++…+(-1)+o(x) 12133 lncosx=ln[1+(cosx-1)]=(cosx-1)-(cosx-1)+(cosx-1)+o((cosx-1)) 23 12136 lncosx=ln[1+(cosx-1)]=(cosx-1)-(cosx-1)+(cosx-1)o(x) xxxmx7 cosx=1-+--...+(-1)+o(x) 所以, 246486 xxx1xx1x6 lncosx=(-+-)-(-)+(-)+o(x) 224720242438 或在化简后 246 xxx7 lncosx=---+o(x) 21245 352m-1 2!!x4!!xm-1(2m-2)!!x2m arcsinx=x-+-......+(-1)+o(x) 3!!5!!(2m-1)!! 注;5!!=1*3*5,6!!=2*4*6 2n e=1++++o(x) 1!2!n! sinx12163 e=1+sinx+sinx+sinx+o(sinx) 26 e=1+sinx+sinx+sinx+o(x) 详细内容参见《大学丛书微积分学》,根据泰勒展开 3572n-1 xxxn-1a2n arctgx=x-+--...+(-1)+o(a)(a→0) 特别情形,例如在n=2及m=-1,1/2,-1/2时,就有 122 =1-x+x+o(x) 1+x 1122 1+x=1+x-x+o(x) 28 11322 1+x28 23n xxn-1xn ln(1+x)=x-+-...+(-1)+o(x) 根据戴劳公式(120a) x4 tgx=x++o(x)或or 2x4x6xm(2m)xn tgx=x+-+-...+(-1)+o(x)(-π/2 例如: tgπ/4=1, 0.785339 tg0.785339=0.785339+=1.0928 357 2*0.7853394*0.7853396*0.785339 tg0.785339=0.785339+-+ 根据泰勒展开, cosa=1-+--...+(-1)+o(a) f(x)=-lncosa+C=-ln[1-+--...+(-1)+o(a)]+C 可参见高等教育出版社菲赫金哥尔茨著1953年版《微积分教程》第一卷第一分册, 6 9)写出函数lncosx的展开式至x的项。根据5) 上式中 2345 (1-N)(1-N)2(1-N)23(1-N)234 lnN=[(1-N)++++ 2232342345 (1-N)234n-1 +..+…] 2345n 上式中,N<1 当N>1时, lgN=m-[(1-N/10)+ m2m3m4m5 (1-N/10)(1-N/10)2(1-N/10)23(1-N/10)234 +++ mn (1-N/10)234n-1 上式中,N/10<1,根据泰勒展开, lnsexx=ln[1+(sexx-1)]=(secx-1)-(secx-1)+(secx-1)+o((secx-1)) lnsecx=ln[1+(secx-1)]=(secx-1)-(secx-1)+(secx-1)+o(x) f(x)=lnseca+C=(seca-1)-(secx-1)+(secx-1)+o((secx-1)) f(x)=lnseca+C=(seca-1)-(secx-1)+(secx-1)+o(x) 推导过程可参见1934年商务印书馆出版《大学丛书高等算学分析》,熊庆来著, 推导过程参见《微积概要》国立中山大学学院院长何衍睿,李铭槃,苗文绥,合编,1935年版,商务印书馆出版,因为, 所以,当x=-x,m=-1/2时,有 1121*341*3*......(2n-1)2n2n+2 =1+x+x+…+x+o(x) 222*42*4*......2n 1-x 两边积分得 352n+1 1x1*3x1*3*......(2n-1)x2n+2 arcsinx=x+++…++o(x) 232*452*4*......2n2n+1 当x=1时,由上式可得 π111n1 =1-+--...+(-1)+… 43572n+1 logaxxloga 因为a=e,a=e 21nn xxlogax(loga)x(loga)n+1 e=1++-+o(x) 2352n+1 1-xπxxx2n+2 arctan=-x+-+…+(-1)+o(x)在区间(-π/2,+π/2) 1+x4352n+1 推导过程可参见《古今算学丛书,割圆密率捷法》,清光绪戊戌六月算学书局印成,1898年刘铎整理. 当N<1时 lgN=0.434294482[(1-N)++++ (1-N)254n-1 +…+…] 当N>1时,且N/10<1, m2m3mn (1-N/10)(1-N/10)2(1-N/10)234n-1 lgN=0.434294482[m-[++..+…]] 2232345n lgsinθ=-lgcscθ,lgcosθ=-lgsecθ,lnsinθ=-lncscθ,lncosθ=-lnsecθ, 因为,可参见高等教育出版社菲赫金哥尔茨著1953年版《微积分教程》第二卷第二分册, 398.对数的计算, lgn lnn= lge lgsecθ lnsecθ= e=2.71828182846,lge=0.4342944819, lgN lnN= 0.4342944819 lnn logn= alna ln92.197224577 log9===1.365212389 5ln51.609437912 lnN=(1-N)++++ lnN=m-[++..+…] 可参见高等教育出版社菲赫金哥尔茨著1953年版《微积分教程》第二卷第二分册, lnsecθ=,e=2.71828182846,lge=0.4342944819, lnsecθ=, 第一乘法二2S=2 2*4*5 第二乘法一六-2*2=16S=16 1*22 20 16*6*720*6*7 第三乘法二七二-+2*3=272S=272 1*23*43 33670 272*8*9336*8*970*8*9 第四乘法七九三六-+-2*4=7936S=272 1*23*45*64 97922016168 7936*10*119792*10*112016*10*11168*10*11 第五乘法三五三七九二-+-+2*5=353792 1*23*45*67*8 43648089760739233010 S=353792 第六乘法三五三七九二 353792*12*13436480*12*1389760*12*137392*12*13330*12*13 -+-+-2*6=22368256 1*23*45*67*89*10 2759577656742404667522059257212 S=22368256 第七乘法一九零三七五七三零零 第八乘法二零九八六五三零零零零零 第九乘法二九零八八八九零零零零零零零 第十乘法四九五一五零零零零零零零零零零零 第十一乘法一零一五四二零零零零零零零零零零零零零 第十二乘法一零一五四二零零零零零零零零零零零零零 第十三乘法七零二五二零零零零零零零零零零零零零零零零零零 第十四乘法二三一二零零零零零零零零零零零零零零零零零零零零零零 把上面的计算过程,用数学归纳法,得到下面的公式 S*(2n-2)(2n-1)S*(2n-4)(2n-3) n-2n-3 S*2n(2n+1)*2n(2n+1)*2n(2n+1) n-11*21*2 S=-+…-2 n1*23*45*6 当45°≥θ>0°时 0.434294481903θ0.434294481903θθ2 lgsecθ=++ 2213*4 2222S 0.434294481903θθ2θ160.434294481903θn +...+ 213*415*62(n+1)(n+2)...*2n 2468 θθ2θ216θ216272 lgsecθ=0.434294481903(+++ 223*423*45*623*45*67*8 102nS θ2162727936θn ++…+) 23*45*67*89*102(n+1)(n+2)...*2n 上式中, S*(2n-2)(2n-1)S*(2n-2)(2n-1) n-11*2 lgsec45°=lgsec0.78539816340=0.13394733531+0.01377090844+0.00226522364+0.0004218153+0.00008482454=0.15049010723, 当67.5°≥θ>45°时 lgsecθ=lgsec(2θ-90°)-lgsec(90°-θ)+lg2, 当78.75°>θ≥67.5°时 lgsecθ=lgsec[2(2θ-90°)-90°]-lgsec2(90°-θ)-lgsec(90°-θ)+2lg2, 当84.375°>θ≥78.75°时 lgsecθ=lgsec[2[2(2θ-90°)-90°]-90°]-lgsec4(90°-θ)-lgsec2(90°-θ)-lgsec(90°-θ)+3lg2, 当85.375°>θ≥84.375°时 lgsecθ=lgsec[2[2[2(2θ-90°)-90°]-90°]-90°]-lgsec6(90°-θ)-lgsec4(90°-θ)-lgsec2(90°-θ)-lgsec(90°-θ)+4lg2, 当86.375°>θ≥85.375°时, lgsecθ=lgsec[2[2[2[2(2θ-90°)-90°]-90°]-90°]-90°]-lgsec8(90°-θ)-lgsec6(90°-θ)-lgsec4(90°-θ)-lgsec2(90°-θ)-lgsec(90°-θ)+5lg2, 当87.375°>θ≥86.375°时, lgsecθ=lgsec[2[2[2[2[2(2θ-90°)-90°]-90°]-90°]-90°]-90°]-lgsec8(90°-θ)-lgsec8(90°-θ)-lgsec6(90°-θ)-lgsec4(90°-θ)-lgsec2(90°-θ)-lgsec(90°-θ)+6lg2, 当88.375°>θ≥87.375°时, lgsecθ=lgsec[2[2[2[2[2[2(2θ-90°)-90°]-90°]-90°]-90°]-90°]-90°]-lgsec12(90°-θ)-lgsec10(90°-θ)-lgsec8(90°-θ)-lgsec6(90°-θ)-lgsec4(90°-θ)-lgsec2(90°-θ)-lgsec(90°-θ)+7lg2, lgsecθ=(+++ lnsecθ=lnsec(2θ-90°)-lnsec(90°-θ)+lg2, lnsecθ=lnsec[2(2θ-90°)-90°]-lnsec2(90°-θ)-lnsec(90°-θ)+2ln2, lnsecθ=lnsec[2[2(2θ-90°)-90°]-90°]-lnsec4(90°-θ)-lnsec2(90°-θ)-lnsec(90°-θ)+3ln2, lnsecθ=lnsec[2[2[2(2θ-90°)-90°]-90°]-90°]-lnsec6(90°-θ)-lnsec4(90°-θ)-lnsec2(90°-θ)-lnsec(90°-θ)+4ln2, lnsecθ=lnsec[2[2[2[2(2θ-90°)-90°]-90°]-90°]-90°]-lnsec8(90°-θ)-lnsec6(90°-θ)-lnsec4(90°-θ)-lnsec2(90°-θ)-lnsec(90°-θ)+5ln2, lnsecθ=lnsec[2[2[2[2[2(2θ-90°)-90°]-90°]-90°]-90°]-90°]-lnsec8(90°-θ)-lnsec8(90°-θ)-lnsec6(90°-θ)-lnsec4(90°-θ)-lnsec2(90°-θ)-lnsec(90°-θ)+6ln2, lnsecθ=lnsec[2[2[2[2[2[2(2θ-90°)-90°]-90°]-90°]-90°]-90°]-90°]-lnsec12(90°-θ)-lnsec10(90°-θ)-lnsec8(90°-θ)-lnsec6(90°-θ)-lnsec4(90°-θ)-lnsec2(90°-θ)-lnsec(90°-θ)+7ln2, 所以so sinad(cosa) ∫ f`(x)=tanada=da=-=-lncosa+C=lnseca+Ccosacosa cosad(sina) f`(x)=cotada=da=-=lnsina+Csinacsina 推导过程可参见《对数表新编》冯度编开明书店出版1935年版 logcosα计算公式,当88°<α<90°时, 如果88°≤α<90°,根据《对数表新编》中的S,T公式,判断余弦对数值, logcosα=log(90°-α)``+S, logcotα=log(90°-α)``+T, 90°-α=MN°WS`T``, (90°-α)``=3600*MN+60*WS+T, log(90°-α``)/1000=lgA.BC, 如果0≤(90°-α``)<7267, 那么,logcosα=log(90°-α``)/1000+3+4.68553, =lgA.BC+3+4.68553, 计算logcosα时,首先计算log(90°-α``)/1000,再加上3,最后加上4.68553,这样得到的数后面附加-10,给这个数减去10,就是logsinα的值, logcos88°26`41.2``=log5598.8+4.68553≈3.74809+4.68553-10≈8.43362-10≈-1.56639, logcos88°26`41.2``=log5591.87+4.68553≈3.7462+4.68553-10≈8.43173-10≈-1.56827, 0.027145*10000=271.45*20.6=5591.87, 90°-88°26`41.2``=1°33`18.8``=0.027145, 下面的数字电路按照下面的公式进行计算, 下面的电路通过数字电路二进制加法器,加法器,乘法器,除法器按照上面的公式进行连接,最终计算出二进制结果. 下面的数字电路按照下面的公式进行计算 99(9-1)29(9-1)(9-2)3 (1+x)=1+9x+x+x+… 1*21*2*3 详细内容可参见《中学数学用表》, 1``=0.0000048,1`=0.000291,1°=0.017453,10°=0.174533, 45°23`54``=45*0.017453+23*0.000291+54*0.0000048=0.0785385+0.06693+0.00002592=0.1457277, 从前面键盘输入的二进制数值.下面的电路将角度化为弧度 , 将输入的角度值化为弧度值输入到计算机中进行计算,数值45°=0.785399, 数值大小比较电路,当输入的数小于0.785399,非门输出1,与门输出1,输入的数值进入后级电路进行运算, 第三部分古今算学丛书假数测圆 推导过程可参见《古今算学丛书,割圆密率捷法》,清光绪戊戌六月算学书局印成,1898年刘铎整理, 圆周率π=3.141592653589793238462643186367472279514(小于71519), 推导过程参见《古今算学丛书,假数测圆》清光绪戊戌六月算学书局印成,清咸丰壬子年,湖北人戴煦识,夏鸾翔编写,1898年刘铎整理, 以本弧弧分径,求四十五度以内正割对数。 术曰:先求各率分子,为递次乘法,以二为数根,即为第一乘法,置前数根,加二得四,为数根,置前乘法,四五递乘之,一二递除之,得二十,为初减数,以数根减初减数,得十六,为第二乘法,置前数根,加二,得六,为数根,置前初减数,六七递乘之,三四递除之,得七十,为初减数,置前乘法六七,递乘之,一二递除之,得三百三十六,为次减数,以数根减初减数,得六十四,再减次减数,得二百七十二为第三乘法,置前数根加二,得八,为数根,置前初减八九递乘之,五六递除之,得一百六十八,为初减数,置前次减八九递乘之,三四递除之,得二千零十六,为次减数,置前乘法八九递乘之,一二递除之,得九千七百九十二,为三减数,以数根减初减,得一百六十,再减次减,得一千八百五十六,再减三,减得七千九百三十六,为第四乘法,凡数根均起各偶数,其求各减数,则用偶奇二数,乘而逐次,乘法递加,如第二乘法,用四五乘,第三乘法用六七乘,再用奇偶二数,除而,挨次减数递降,如第三乘法,初减用三四除,次减用一二除,乘法将一位,则多一减,如是递求得各率分子,即为递次乘法。 根据以上描述,推导出 对数的计算,lg0.98=(1-0.98)*0.434294482, a对数根0.434294482a=0.434294482 b第一数(1-0.98)*0.434294482=0.00868588964b=(1-N)*a c第二数0.00868588964*0.02/2=0.00008685890c=b(1-N)/2 d第三数0.00008685890*0.02*2/3=0.00000115812d=c*(1-N)*2/3 e第四数0.00000115812*0.02*3/4=0.00000001737e=d*.(1-N)*3/4 f九率0.000000017378*0.02*4/5=0.00000000028f=e*(1-N)*4/5 lg0.98=-0.00868588964-0.00008685890-0.00000115812-0.00000001737-0.00000000028=-0.00877392431, lg98=2-lg0.98=2-0.00877392431=1.99122607569, 正割对数的计算公式 余切对数求法 lgsec44°+10=10.1430659099, lgsec44°+20=20.1430659099, lgcsc44°+10=10.1582287268, lgtg44°=lgsec44°+20-lgcsc44°-10-10=20.1430659099-10.1582287268-10=9.9848371831-10=-0.015162817, lgctg44°=lgcsc44°+20-lgsec44°-10-10=20.1582287268-10.1430659099-10=0.01516282, lgctgθ=lgcscθ-lgsecθ, lgctg44°=lgcsc44°-lgsec44°=-0.1431+0.1582=0.0151, lgtgθ=lgsecθ-lgcscθ, lntgθ=lnsecθ-lncscθ, lnctgθ=lncscθ-lnsecθ, 正弦对数求法 lgcsc44°+10=10.1582287269, lgsin44°=20-lgcsc44°-10-10=9.8417712731-10=-0.158287269, lgsinθ=-lgcscθ, lgcosθ=-lgsecθ, lnsinθ=-lncscθ, lncosθ=-lnsecθ, 正矢对数求法 44°/2=22°, 45°-22°=23°, lg2+3=3.03010299956, 2*[(lgcsc22°)/10+1]=2*1.04264245830=2.08528491660, lgversin44°=[lg2+3-2*[(lgcsc22°)/10+1]-1]*10=(3.03010299956-2.08528491660-1)*10=(0.94481808296-1)*10=-0.5518190172, lgversin44°=lg(1-cos44°)=lg0.28066=-0.551819479, lgversinθ=[lg2+3-2*[lgcsc(θ/2)]/10+1]-1]*10, 2*[(lgcsc23°)/2+1]=1.04081219884*2=2.08162439768, lgvercos44°=2*[(lgcsc23°)/2+1]-[lg2+3-2*[(lgcsc22°)/10+1]]*10-10=2.08162439768-9.4481808296-10=9.4847860188-10=-0.515213982, lgvercosθ=2*[(lgcsc(90°-θ))/2+1]-[lg2+3-2*[(lgcscθ/2)/10+1]]*10-10, 正大矢对数求法 2*[(lgcsc22°)/10+1]=2*1.00328341395=2.00656682790, lgvercos23°=10*[lg2+3-2*[(lgcsc22°)/10+1]-10]-1=[3.03010299956-2.00656662790-10]*10-1=1.02353617166*10-1=0.2353617166 lgvercosθ=10*[lg2+3-2*[(lgcsc(45°-θ)/10)+1]-10]-1 2*[(lgsec23°)/10+1]=1.00359739173*2=2.00719478346, lgvercos22°=lg2+3-2*[(lgcsc23°)/10+1]-10=3.03010299956-2.00719478346-10=1.02290821610 正割对数计算公式 对数根0.434294481903, a二率θ=0.78539816340a=θ b三率θ=0.78539816340*0.78539816340=0.616850275072b=θ c第一数正0.616850275072*0.434294481903/2=0.13394733531c=0.434294481903*b/2 d七率0.13394733531*0.616850275072/3*4=0.00688545421926d=c*b/3*4 e第二数正0.00688545421926*2=0.01377090844e=2d f九率0.00688545421926*0.616850275072/5*6=0.00014157648f=bd/5*6 g第三数正0.00014157648*16=0.00226522364g=f*16 h第十一率0.00014157648*0.616850275072/7*8=0.00000155949h=bf/7*8 i第四数正0.00000155949*272=0.0004218153i=272h j第十三率0.00000155949*0.616850275072/9*10=0.00000001069j=bh/9*10 k第五数正0.00000001069*7936=0.00008482454k=7936*j m第十五率0.00000001069*0.616850275072/11*12=0.0000000000499488995m=bj/11812 n第六数正0.0000000000499488995*353792=0.00001767152n=353792m o第十七率0.0000000000499488995*0.616850275072/13*14=169291167E13o=bm/13*14 p第七数正169291167E13*22368256=378674816E6p=22368256o q第十九率169291167E13*0.616850275072/15*16=43511377E15q=bo/15*16 s第八数正43511377E15*1903757300=8283E5s=1903757300q t第二十一率43511377E15*0.616850275072/17*18=877124343196E18t=bq/17*18 u第九数正877124343196E18*209865300000=184077963212E6u=209865300000t 所以,当45°≥θ>0°时 lnsecθ=+++ ++…+ lnsecθ=lnsec(2θ-90°)-lnsec(90°-θ)+ln2, 例如: lgsec2°+10=10.0002646411, lgsec2°+20=20.0002646411, lgsec44°+10=10.1430659099, lg2=0.301029995, lgsec44°+10-lg2=10.1430659099-0.301029995=9.842035904, lgsec46°=lgsec2°+10+10-lgsec44°-10-lg2-10=20.0002646411-9.842035904-10=10.15822874-10=0.15822874, lnsecθ=lnsec(2θ-90°)-lnsec(90°-θ)+lg2, lgsec4°+10=10.00010592102, lgsec4°+20=20.00010592102, lgsec43°+10=10.1358725362, lgsec43°+10-lg2=10.1358725362-0.301029995=9.8348425406, lgsec47°=lgsec4°+10+10-lgsec43°-10+lg2-10=20.00010592102-9.8348425406-10=10.1662166696-10=0.1662166696, lnsecθ=lnsec(2θ-90°)-lnsec(90°-θ)+lg2 0.00011-0.1359+0.301029995 lnsec67°=lnsec(2*67°-90°)-lnsec(90°-67°)-lg2 =lnsec44°-lnsec23°+lg2 因为, lnsinθ=-lncscθ, lncosθ=-lnsecθ, lnsec67°=-lncos44°+lncos23°+lg2 =0.1431-0.036+0.301029995=-0.408129995 lgsec68°=lgsec(2*68°-90°)-lg(90°-68°)+lg2 =lgsec46°-lgsec22°+lg2 lgsec68°=lgsec(2*46°-90°)-lgsec(90°-46°)+lg2-lgsec22°+lg2 =lgsec2°-lgsec44°+lg2-lgsec22°+lg2 =0.30003-0.1431-0.0328+0.301029995 =0.42519995 lgsec79°=lgsec(2*79°-90°)-lg(90°-79°)+lg2 =lgsec68°-lgsec11°+lg2 =0.42519995-0.00081+0.301029995 .=0.725419495 lgsec85°=lgsec(2*85°-90°)-lg(90°-85°)+lg2 =lgsec80°-lgsec5°+lg2 lgsec80°=lgsec(2*80°-90°)-lg(90°-80°)+lg2 =lgsec70°-lgsec10°+lg2 lgsec70°=lgsec(2*70°-90°)-lg(90°-70°)+lg2 =lgsec50°-lgsec20°+lg2 lgsec50°=lgsec(2*50°-90°)-lg(90°-50°)+lg2 =lgsec10°-lgsec40°+lg2 第四部分计数器电路 下面的资料参见《石英电子手表原理及维修》刘令祥,谷宜德编著,江苏科学技术出版社1982年出版 2.秒钟信号的产生, CMOS石英振荡电路中产生的基准频率信号是32KHZ或4.2MHZ,要使这样高的频率信号变成秒钟信号就必须用一种分频电路的电路来降低这个频率,直到得到秒钟信号及某些二针的薄型表中低于1HZ的频率信号。图2-11(a)为石英电子表用CMOS集成电路中经常采用的二分频电路。它是由CMOS倒相器、传输门组成的D型触发器。传输门(1),(2),倒相器F1,F2组成主触发器,传输门(3)、(4),倒相器F3,F4组成从触发器。从波形图[图2-11(b)]可见,每输入二个脉冲信号该电路输出一个脉冲信号,实现了二分频作用。二分频电路的种类甚多,但基本原理大同小异。指针式石英电子表用的CMOS电路一般采用16级相互级联的二分频电路,二针薄型表中的CMOS电路采用的级数更多。数字式石英表用的CMOS电路一般采用16级。如果是4.2MHZ的高频石英表其级数需22级或更多。一旦某一级二分频电路出故障,石英电子表就会出现成倍的快或成倍的慢这一故障。 4.计数电路 5.译码电路 根据表2-1及“反译码”的原则可以得到如下的逻辑表达式: a=DCBA+ABC b=CBA+CBA c=CBA d=BCDA+ABC+ABC e=A+CB f=ABC+CDB+CDA g=CDB+CBA 数字式石英表在调校过程中除调校项外,其余各项均不显示,所以,液晶数码管熄灭状态应用较多。为了能使液晶数码管通过一个简单的控制就能熄灭,在译码电路中采用加入一个控制参量x来实现。当x=1,则译码电路输出的七个控制字段的输出端均为“0”,各字段都熄灭。因此,实际逻辑表达式中还应加上x。如图2-16所示为实际译码电路的逻辑图。 11.图5-7-3所示是1248码十进制计数电路,试分析其工作原理,并列出该计数电路的逻辑图,以及各级双稳电路翻转的波形图。 10。试对表5-7-6所列出的1224码表设计一个十进制计数逻辑图,并画出各级双稳电路翻转的波形图 下面的电路可参见《数字电路》上册,上海师范大学物理系,编,上海人民出版社1975年出版。 上面介绍的氖泡及数码管显示器件,它们都是采用辉光放电原理,因此其工作电压较高(一般需达200V)。这样,与晶体管或集成电路这些低压器件配合使用时,不仅增加了仪器电源的种类(需绕制高压电源),而且工作极不安全。一旦由于工作不慎或者某些电子器件的损坏,就有可能使几百伏的高压直接加在晶体管或集成电路上,从而造成了这些器件的击穿损坏。因此,就提出了低压显示器件的要求。随着生产的需要,近来陆续出现了一些低压显示器件,如液晶显示器、碳化硅晶体数字管、荧光数字管等,这里我们仅以在台式电子计算机中广泛使用的荧光数字管为例,作一些简单介绍。荧光数字管外形如图5-4-30所示,它由网状的栅极、八个片段的阳极以及灯丝几部分所组成。在表5-4-9列出了荧光数字管的典型特性。由表可见,荧光数字管的特点是工作电压极低,可以与晶体管、集成电路相配合,此外驱动电流小、寿命小、显示清晰,因此是一种比较理想的低压显示器件。 由于它是由八段线段排列组合以显示数字,有时也称之为八段显示。当灯丝加有电压,栅极接有20V正电压时,若阳极也接有20V正电压,则该阳极线段发亮,反之若阳极接零电平,则相应阳极熄灭。从上图可清楚地看出,要某一个数字如“5”亮,就必须使P1、P2、P3、P5、P6这几段阳极亮,而P4、P7、P8熄灭。这就要求,不仅在栅极商加有恒定20V直流电压,而且在P1、P2、P3、P5、P6这几段阳极上也加有20V直流电压,但在其余各段阳极上均接零电平。为了译码方便起见,可列出八段显示状态表(以“1”表示该段阳极接高电平20V,“0”表示接低电平0V)。如表5-4-10所示。表5-4-10八段显示状态表 根据表5-4-10可以画出八段显示荧光数字管的译码电路(1248码),如图5-4-32(a)所示。而图5-4-32(b)则表示P1阳极段的电路,其中T2为一个简单“非”电路,T1是一个射极跟随器,当“或非”门1输出低电平时,T2管截止、T1管通导,从而其射极输出高电平P1阳极,使P1段发亮;而当“或非”门1输出高电平时,T2管通导、T1管截止,其加至P1阳极将是零电平,从而使P1段熄灭。 以上就是荧光数字管的译码显示原理及电路图,运用卡诺图方法,可使电路大为简化。例如,对于P1段,由图5-4-31(a)可见,对应0、2、3、5、6、7、8、9的各个数字,都要求P1段必须点亮,这就相应要求“或非”门输出低电平,亦即在这些数字状态时要求“或非”门至少有一个输出端为高电平,因此,可以画出使P1段点亮的“或非”门1输入段卡诺图,从而简化“或非”门的输入端逻辑,如图5-4-33所示。 同样的方法可得到: P2=AB+BC+AC+D P3=AB+BC+BC+D P4=AC+AB P5=AC+ABC+BC+AB+D P6=A+B+C P7=ABC P8=AB+AB+C 这样,各个“或非”门输入端可直接由1248码十进制计数电路输出端A、A、B、B、C、C、D、D按简化的逻辑式来组合。当然,其译码方式有两种:一种是控制相应阳极段点亮;另一种是控制相应段熄灭。上面所讨论的是点亮式,作为一个练习,读者可试用熄灭式来进行译码,并比较两种方式,看哪一种节省元件。 第五部分加法器电路 下面的电路可参见《电子数字计算机》南京大学,西北电讯工程学院,南京有线电厂合编,江苏科技出版社1973年出版。 下面的电路可参见《计算机电子线路与数字逻辑》(修订版),李新荃,王魁臣主编,东北大学1997年出版。 下面电路可参见《数字电路实用基础》,[日]石坂阳之助著,冯重熙译,高等教育出版社1982年出版。 下面的电路可参见《逻辑设计的问题和解答》[加]D.齐索斯著,刘永才,左孝凌译,何国森校,上海科学技术文献出版社1982年出版。本书根据1979年D.齐索斯著的《PROBLEMSANDSOLUTIONSINLOGICDESIGN》一书(第二版)翻译而成。 下面的电路可参见《数字电子电路》薛瑞福,马国琳编,高等教育出版社1983年出版。 下面的电路可参见《数字电路与逻辑设计》张毅编,汪雍,刘元于审,人民邮电出版社1982年出版。 下面的电路可参见《数字电路与微处理机》[美]H.陶布编,印丕勤,陆嘉宝,刘舒译,印丕勤校,中国建筑工业出版社1987年出版。 下面的电路可参见《微计算机原理》严家万,张石民,何永明编,电子工业出版社1986年出版。 下面的电路可参见《数字电路与逻辑设计》张端编,高等教育出版社1985年出版。 下面的电路可参见《电子数字计算机》南京大学,西北电讯工程学院,南京有线电厂合编,江苏科技出版社1973年出版 图5-1是用非门F、与非门YF、与或非门YHF(每个与或非门由1个与非门及1个与或扩展器构成)集成电路所组成的两个单元线路全加器方案。现在通过这两种方案的比较来具体说明应如何选择设计方案。图5-1(a)的逻辑关系式为: 半加和: S=A*A*B+B*A*B kkkkkkk =A(A+B)+B(A+B) kkkkkk =A*B+B*A kkkk 全加和: ∑=S*π+S*π kkk-1kk-1 =S*π*S*π kk-1kk-1 =(S+π)(S+π) =S*π+S*π 进位: π=A*B*S+A*B*π kkkkkkk-1 =A*B(S+π) kkkk-1 =A*B*Sπ =A*B+S*π 用同样方法亦可得到图5-1(b)的逻辑关系式为: S=A*B+B*A kkkkk π=A*B+(A+B)*π kkkkkk-1 由于数码是串行传递的,因此关键问题在于进位的处理,这是与并行运算不同的。 当进行第k-1位的运算,即进行x+y+π的运算时, k-1k-1k-1 从加法器输出的有全加器和∑及进位π。 k-1k-1 当进行第k位运算,即x+y+π时, kkk-1 k-1 图5-1采用带有维持阻塞的可控触发器C来保存π,如π=1为高电位, 经反相器F后,变为低电位,加于触发器的电位输入端,下一工作脉冲一来就将触发器C置为“1”状态;反之,若π=0经反相器F后。低电位变为高电位加于触发器的电位输 入端,下一工作脉冲一来就将触发器C置为“0”状态。 起始时,由专门的脉冲使C2处于“0”状态,即“0”端输出为高电平,打开门YF1,而YF2被关闭,数x沿着原码通道传送,当出现第一个1时,此1信号通过YF1的同时,也通过反相器F1,将C1置为“1”状态。当“1”信号通过YF1后,此信号经延迟元件YC1将C1置“0”,于是YF2被打开,YF1被关闭,数码就通过反码通道传送。这样就在HF的输出端上得到了x的补码。 下面的电路可参见《计算机电子线路与数字逻辑》(修订版),李新荃,王魁臣主编,东北大学1997年出版. 表4-24全加器真值表 S=ABC iiii C=AB+BC+AC=AB+C(AB) iiiiiiiiiiii 下面的电路图可参见《实用逻辑电路分析与设计》,程林福,王雁汀编,上海科学技术文献出版社1981年出版。 根据题意Ai为被加/被减数,Bi为加/减数,Ci-1为来自低位的进位/错位。相加(减)产生的“和”(“差”)及进位(借位)分别为Si/Di及Ci+/Ci-另外,为了控制作“加”或“减”运算,还必须有一个加减控制端OP。当OP=1时作全加,OP=0时作全减。根据二进制加减运算法则,可以列出真值表(表3.1)。 (2)列逻辑函数式 根据上面的真值表对两个输出逻辑函数式Si/Di和Ci+/Ci-分别列出“与或”逻辑函数式。为了书写简便起见,对真值表中的每一行编以十进序号,并以该行序号代替函数标准式中的每一个“与”项。(例如序号“0”代替“与”项OPCi-1BiAi,"1"代替“与”项OPCi-1BiAi)。因此 Si/Di=∑(1、2、4、7、9、10、12、15), Ci+/Ci-=∑(2、4、6、7、11、13、14、15), (3)简化逻辑函数式 分别将上述两个函数式中的每一项逐项读入卡诺图(图3.1、图3.2)。读入的小方格记“1”,其余均为“0”。 分别对上面两个卡诺图中的小方格进行复合,并读出逻辑函数式如下: Si/Di=Ci-1(AiBi)+Ci-1(AiBi) =Ci-1BiAi Ci+/Ci-=Ci-1Bi+Ci-1*BiOPAi+Ci-1Bi*OP*Ai+Ci-1*BiOPAi+Ci-1Bi*OPAi =CB+CB(OPA+OPA)+CB(OPA+OPA) i-1Ii-1iiii+iii =CB+(CB+CB)(OPA+OPA) i-1ii-1ii-1iii =CB+(CB)(OPA) i-1Ii-1Ii =CB*(CB)*(OPA) i-1ii-1ii (4)画逻辑图 根据上述求得的逻辑函数式可画出逻辑图(图3.3) 第六部分存储器电路 二、可编程的只读存储器PROM 在固定ROM中所存储的内容是由制造厂家在生产过程中事先确定的,在使用过程中用户不能作任何变动,这种ROM适用于同用的固定程序,而对于一些特殊的需要就不适合了。为此制造厂家设计了一种可编程的ROM,用户在使用前可以根据需要自行编制ROM中的内容。PROM的存储单元电路如图6.16所示。晶体管T的集电极连至电源,它的基极和字线相连,发射极通过熔丝和位线相连,串联在发射极上的熔丝可以是多晶硅材料,也可以是镍铬合金,出厂时熔丝全部接通,即管子的输出全部和位线相连。在使用前若利用编程写入器对选中的单元通以足够大的电流(一般在20~50毫安之间)将熔丝烧断,则晶体管输出不和位线相连。若设熔丝接通的单元输出逻辑0,则熔丝断开的单元一定输出逻辑1.由于熔丝烧断后不能再恢复,所以PROM中存储的内容一经使用者写好不能再改变,换句话说,PROM的存储内容可以由使用者编写,但只能编写一次。 三、可檫去可再编程的只读存储器(EPROM) (一)基本存储单元电路 在制造ROM的过程中,若采用一个新型的器件——浮置雪崩结MOS电荷器件,这样制作的ROM在写入程序以后可以用紫外线擦去,擦去以后还可重新存储新的内容,具有这种功能的ROM称之为可擦去可再编程的ROM(EPROM)。为了说明EPROM的工作原理,首先介绍浮置栅雪崩结MOS电荷器件。浮置栅雪崩器件可以采用P沟道MOS管制作,也可以采用N沟道MOS管制作(如INTEL2706和2716等)。采用N沟道MOS管制作的电路如图6.17所示,由多晶硅材料制作的栅极与基底相隔1000埃,由于栅极被SiO2所包围,通常称为浮置栅,控制栅(又称选择栅),则直接连接到字线上。 T1~T4构成基本RS触发器。用它记忆一位二值代码。T5,T6为门控管。当字线Xi=1时,T5,T6导通,使基本RS触发器的输出端Q和Q与位线D和D接通。这说明第i行的存储单元被选中。而在Xi=0时,T5,T6截止,基本RS触发器与位线之间的联系被切断。就是说这一行的存储单元没被选中。T7,T8是同一列存储单元共用的两个门控管。当Yi=1,T7,T8到庭,第i列的存储单元被选中。而Yi=0时,T7,T8截止,说明这一列的存储单元没被选中。R/W为读/写控制端。(I/O)为输入/输出端。在该存储单元被选中的前提下,R/W=1时三态门A2,A3处于高阻态,A1处于工作状态。这时触发器输出端Q通过T5,T7与(I/O),端接通,将存储单元存放的数据读出。在R/W=0时,三态门A1处在高阻态,而A2,A3处于工作状态。这时,将(I/O)的数据通过A2,A3得到两个互补数据。再经过门控管加到触发器的Q和出Q端,达到了写入数据的要求。图8-6示出了用这种存储单元组成存储矩阵的连接方式。4096个存储单元排成64行乘64列矩阵,为4096*1位RAM。当行地址译码器输出X0=1,列地址译码器输出Y0=1时,第0行第0列的0-0存储单元被选中。每输入一个地址,就会选中一个存储单元。 2.动态存储单元 图8-7示出了三管动态MOS存储单元电路。T2为存储管。信号以电荷的形式存在T1管的栅极电容C上。电容C上的电压控制T1管的开关状态。T1为写门控管。T3为读门控管。T4为同一列存储单元共用的预充电管。这种存储单元的写字线和读字线是分开的。写字线控制写门控管T1,读字线控制读门控管T1.进行读操作时,首先在T4的栅极加预充脉冲,使T4导通,对C0充电。其结果读位线上的电平为高电平。然后令读字线的电平为高电平,使T3导通。若电容C上存有电荷,且vc大于T2的开启电压,则T2导通,C0经T3,T2放电,使读位线的电平变为低电平。如果电容C上没有电荷,那么T2截止,Cd没有放电通路,读位线的电平仍然为预充的高电平,读位线的电平与电容C上的电压的相位相反,即与写位线上的电平相反。 8.3.2RAM的结构 图8-8示出了RAM的结构框图。它由地址译码器、存储矩阵、读/写控制电路组成。存储矩阵由若干个存储单元组成,用来存储二值代码。地址译码器将输入的地址码译成某一条字线信号,使这条字线上的存储单元被选中,然后才能进行读或写操作,读/写控制电路用来控制电路的工作状态。R/W=0时,进行写操作,R/W=1时,进行读操作。由于RAM芯片的集成度有限,所以一片RAM不可能满足大量数据存储的要求。为了用多片RAM组成一个容量更大的存储器,一般的RAM的读/写控制电路上都加片选输入端CS(或CS)。