您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 第一章 单片微型计算机基础知识
1第一章单片机基础知识1.1计算机中的数制及相互转换1.2有符号数的表示及运算1.3定点数和浮点数1.4常用编码--BCD码和ASCII码2计算机只识别和处理数字信息,数字是以二进制数的形式表示的。它易于物理实现,存储、传送和处理简单可靠;运算规则简单,使电路的设计、分析较方便。31.1计算机中的数制及相互转换一、数制按进位原则进行计数的方法,称为进位计数制。常用数制:十进制数,二进制数,十六进制数。十进制数有两个主要特点:(1)有10个不同的数字符号:0、1、2、…9;(2)低位向高位进位的规律是“逢十进一”。•因此,同一个数字符号在不同的数位所代表的数值是不同的。555.5=5×102+5×101+5×100+5×10-1•式中的“10”称为十进制的基数•102、101、100、10-1称为各数位的权。•扩展:R进制,计数原则是“逢R进一”。。4二进制数、十六进制数当R=2时,称为二进位计数制,简称二进制。在二进制数中,只有两个不同数码:0和1,进位规律为“逢二进一”。十六进制数当R=16时,称为十六进制。在十六进制中,有0、1、2、…、9、A、B、C、D、E、F共16个不同的数码,进位方法是“逢十六进一”。5各种进位制的对应关系十进制二进制八进制十六进制十进制二进制八进制十六进制000091001119111110101012A2102211101113B3113312110014C41004413110115D51015514111016E61106615111117F71117716100002010810001086问题二、不同进制间的相互转换1、二、八、十六进制转换成十进制:按权展开。(10.101)2=1×21+0×20+1×2-1+0×2-2+1×2-3=2.62572、十进制数转换成二、八、十六进制数•任意十进制数N转换成R进制数,需将整数部分和小数部分分开,采用不同方法分别进行转换,然后用小数点将这两部分连接起来。(1)整数部分:分别用基数R不断地去除N的整数,直到商为零为止,每次所得的余数依次排列即为相应进制的数码。最初得到的为最低有效数字,最后得到的为最高有效数字。•例:十进制数转换为二进制数.方法:整数部分除二取余,(小数部分乘二取整).845余数22111051211001222222即45=(101101)2例1、将十进制数45转换成二进制数。除二取余法9练习将(168)10转换成二、八、十六进制数。10(2)小数部分:乘基取整法。分别用基数R(R=2、8或16)不断地去乘N的小数,直到积的小数部分为零(或直到所要求的位数)为止,每次乘得的整数依次排列即为相应进制的数码。最初得到的为最高有效数字,最后得到的为最低有效数字。11例2:十进制小数部分的转换:乘二取整法0.6875×2最高位取11.37500.375×2取00.750×2取11.500.5×2最低位取11.0从上至下写成从左至右(0.6875)10=(0.1011)212练习故:(0.645)10=(0.10100)2=(0.51217)8=(0.A51EB)1613例3将(101011.01101)2转换为八进制数。101011.01101053.32即(101011.01101)2=(53.32)8采用“合三为一”的原则,即从小数点开始分别向左、右两边各以3位为一组进行二—八换算:若不足3位的以0补足14例4将(123.45)8转换成二进制数。123.45001010011.100101即(123.45)8=(1010011.100101)215例5将(110101.011)2转换为十六进制数。00110101.011035.6即(110101.011)2=(35.6)1616例6将(4A5B.6C)16转换为二进制数。4A5B.6C0100101001011011.01101100即(4A5B.6C)16=(100101001011011.011011)217问题?二进制数的运算二进制数的算术运算:加、减、乘、除运算;二进制数的逻辑运算:“与”、“或”、“非”、“异或”等运算。181.2有符号数的表示及运算一、机器数与真值机器只认识二进制数:0、1。这是因为,电路状态常常有两种情况,•如:电路的通、断;高电平、低电平;可用0、1表示。在机器中,这种用0、1表示的数称为机器数。一个机器数的数值称为它的真值。机器数分为无符号数、带符号数(有符号数)。191.2有符号数的表示及运算二、机器数分为无符号数、带符号数。无符号数如:00000001、10010011、01010010、……等等,范围:00H~FFH。机器数可以用符号位来表示数的正负,就是有符号数。最高位为0表示正数,最高位为1表示负数。有(带)符号数如:+1010110B、-1101001B等等01010110B11101001B201.2有符号数的表示及运算三、负数的3种表示:原码、反码、补码都通过符号位来表示数的正负,但是数的大小的表示方法是不同的。计算机内一般使用补码。(1)原码原数前“+”用0表示,原数前“-”用1表示,数值部分为该数本身,这样的机器数叫原码。以3为例[+3]原=00000011B[-3]原=10000011B0有两种表示方法:00000000:+010000000:-0211.2有符号数的表示及运算(2)反码一个正数的反码,等于该数的原码;一个负数的反码,由它的正数的原码按位取反形成。以正负3为例分析221.2有符号数的表示及运算(3)补码补码是由补数的概念引出来的。一个计量系统所能表示的最大量程被称为模。如果模用K表示,当满足Z=nK+Y时,称Z和Y互为补数,n为整数。两个互为补数的数,实际上是代表同一个事物。例如,一个圆周角是360°,在这个圆周系统中,270°和一90°互为补数,因为270°=360°十(一90°)从物理上讲,270°和一90°代表同一个角度。231.2有符号数的表示及运算(3)补码补码是由补数的概念引出来的。一个计量系统所能表示的最大量程被称为模。进一步分析,有模的计量器,均可化减法为加法运算。例如时钟的模为12,设当前时钟指向11点,而准确时间为7点,调整时间的方法有两种,一种是时钟倒拨4小时,即11-4=7;另一种是时钟正拨8小时,即11+8=12+7=7。由此可见,在以12为模的系统中,加8和减4的效果是一样的。241.2有符号数的表示及运算(3)补码正数的补码等于原码;负数的补码求法:反码+1。8位二进制补码能表示的范围为:-128~+127,若超过此范围,则为溢出。[0]补=[+0]补=[-0]补=00000000B可见,数0的补码表示是唯一的。运算:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补-[Y]补•当需要作减法时,只需将减数再次求补,然后再作加法就可以了。25有符号数的溢出问题由于计算机中表示数据的字长(位数)有一定限制,所以数据的表示应有一个范围。如字长8位时;补码范围-128~+127若运算结果超出这个范围,便溢出。可以通过增加字节数扩大机器数所能表示的数的范围。若两个正数补码和的符号位为1,或者两个负数补码和的符号位为0,都表明结果出现了溢出。溢出标志置1.无符号数超出了机器位数所能表示的范围如何表示。261.3定点数和浮点数1.定点法定点法中约定所有数据的小数点隐含在某个固定位置。对于纯小数,小数点固定在数符与数值之间;对于整数,则把小数点固定在数值部分的最后面2.浮点法浮点法中,数据的小数点位置不是固定不变的,而是可浮动的。因此,可将任意一个二进制数NN=±M·2±E其中,M为尾数,为纯二进制小数,E称为阶码。可见,一个浮点数有阶码和尾数两部分,且都带有表示正负的阶码符与数符。27补充:四字节浮点数格式2进制浮点数的形式一般用±M×2E表示。其中:M为尾数,是定点数(无符号数),±为数符,E为指数。•符号位,0为正,1为负;•24位二进制数表示尾数0.100……0~0.111……123位23位•8位二进制数表示指数,取-125~+128.因此:表示数的范围扩大到±(0.5×2-125~1.0×2128)。即:±(1.2×10-38~3.4×1038),精度为2-24即5.9×10-8。28IEEE标准的四字节浮点数格式IEEE标准的四字节浮点数格式如下:31位数符1阶码830……..23尾数2322……………………………0•数符:0为正,1为负;•23位尾数表示0.100……0~0.111……1:24位尾数23位23位•指数,取-125~+128.•阶码采用指数的移码,阶码=指数+$7E。1、阶码为0即浮点数为0(小于1.2×10-38);2、阶码为$78,指数为$78-$7E=-6;3、阶码为$88,指数为$88-$7E=10;4、阶码为$FF,指数为$ff-$7E=$81超出表示范围,为溢出(即绝对值大于3.4*1038)。29举例求12.75的浮点数31位数符1阶码830……..23尾数2322…………0•数符:0为正,1为负;•23位尾数表示0.1**……*23位•阶码=指数+$7E。解:•数符=0;为正将12.75转换为2进制数=1100.11=0.110011x24•23位尾数=100,1100,0000,0000,0000,0000B•阶码=指数+$7E=4+$7E=$82=1000,0010B浮点数=01000,0010100,1100,0000,0000,0000,0000B=0100,0001,0100,1100,0000,0000,0000,0000B=$414c0000301.4常用编码--BCD码和ASCII码一、十进制数的编码问题•对机器:二进制数方便。•对人:二进制数不直观,习惯于十进制数。•在编程过程中,有时需要采用十进制运算,但机器不认识十进制数。怎么办?可以将十进制的字符用二进制数进行编码:311.4常用编码--BCD码和ASCII码一、十进制数的编码问题•可以将十进制的字符用二进制数进行编码。•这叫做二进制数对十进制编码——BCD码。•上述每4位二进制数表示一个十进制字符,这4位中各位的权依次是:•8、4、2、1——8421BCD码。十进制数8421BCD码十进制数8421BCD码00000501011000160110200107011130011810004010091001321.4常用编码--BCD码和ASCII码二、十进制调整BCD数直接按二进制进行加法运算,必须对结果进行调整才能得到正确结果。原因:一位BCD数用四位二进制数编码,“逢十六进一”,而十进制数是“逢十进一”。调整方法(加法时)相加结果大于9(1001B,非法的BCD),加6修正;结果大于等于=16(有进位),加6修正。331.4常用编码--BCD码和ASCII码三、字符信息的表示计算机能识别0、1、0、1、……;这些0、1、0、1、……有的代表数值,有的仅代表要处理的信息(如字母、标点符号、数字符号等文字符号),所以,计算机不仅要认识各种数字,还要能识别各种文字符号。人们事先已对各种文字符号进行二进制数编码。如,美国信息交换标准码——ASCII码,用一个字节表示一个字符。低7位是字符的ASCII码值;最高位可以作通信时的校验位。包括有控制符,另外这种编码在数据传输中也有广泛的应用。34ASCII码35ASCII码36ASCII码37ASCII码38机器数总结•机器数机器数可以是只用正数,也就是无符号数。机器数所能表示的数的范围受机器字长的限制。机器数可以用符号位来表示数的正负。机器数可以用来表示带小数点的数。机器数所表示的数值称为机器数的真值。39补码运算补码加法将两个数先变成补码对两个补码进行加法运算,若最高位上有进位则舍弃不要判断结果是否溢出若结果溢出,则这次运算结果不正确。若没有溢出,对结果再次求补码,得到结果的真
本文标题:第一章 单片微型计算机基础知识
链接地址:https://www.777doc.com/doc-4042456 .html