51单片机基础知识总结(最新)_第1页
51单片机基础知识总结(最新)_第2页
51单片机基础知识总结(最新)_第3页
51单片机基础知识总结(最新)_第4页
51单片机基础知识总结(最新)_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第0章 计算机的基础知识,单片机原理、接口及应用,内 容 提 要,微型计算机的基本结构和工作原理 计算机中的数制与码制 小结,0.1.1 微机的系统结构,微机系统,软件,硬件,主机,外围设备,微处理器 (cpu),运算器 控制器 寄存器,存储器 (内存),ram rom,输入/输出接口 (i/o接口),并行、串行接口 定时器、a/d、d/a,总线,系统软件 应用软件 程序设计语言,外部设备,辅助设备,输入设备 输出设备 辅助存储器,电源电路 时钟电路,cpu是计算机的控制核心,它的功能是执行指令,完成算术运算、逻辑运算,并对整机进行控制。 存储器用于存储程序和数据。 输入/输出接口(又称i/o

2、接口)是cpu和外设之间相连的逻辑电路,外设必须通过接口才能和cpu相连。不同的外设所用接口不同。每个i/o接口也有一个地址,cpu通过对不同的i/o接口进行操作来完成对外设的操作。 存储器、i/o接口和cpu之间通过总线相连。 用于传送程序或数据的总线称为数据总线;地址总线用于传送地址,以识别不同的存储单元或i/o接口;控制总线用于控制数据总线上数据流送的方向、对象等。,0.1.2 微机的基本工作原理,存储程序、执行程序是微机的工作原理,取指令,译码,执行是微机的基本工作过程。 单片机是微型计算机的一种,是将计算机主机(cpu、存储器和i/o接口)集成在一小块硅片上的微机,又称微控制器。它专

3、为工业测量与设计而设计,具有三高优势(集成度高、可靠性高、性价比高),他的特点是小而全(体积小,功能全),主要应用于工业检测与控制、计算机外设、智能仪器、仪表、通信设备、家用电器等,特别适合于嵌入式微型机应用系统。,0.1.3 微机的主要技术指标,微型计算机主要有如下一些技术指标: 字长:cpu并行处理数据位,由此定为8位机、16位机、32位机等。 存储容量:存储器单元数,例如256b、8kb、1mb等(1b即一个字节,也就是一个8位二进制数,是计算机数据的基本单位)。 运算速度:cpu处理速度,它和内部的工艺结构以及外接的时钟频率有关。 时钟频率:在cpu极限频率以下,时钟频率越高,执行指令

4、速度越快,对单片机而言,有6mhz、12mhz、24mhz等。,0.2.1 计算机中的数,一、进制计数及其特点 数制:进位计数制和非进位计数制 1、非进位计数制(non-carring) 特点:数码所代表的数值同它在数中的位置无关。 eg:罗马数字 2、进位计数制(carring) 特点:每个数码表示的数制,不仅取决于数码本身,而且还取决于该数码在数中的位置。 eg:十进制数,1、十进位(decimal natation),特点:a、有十个数码 0、1、2、3、4、5、6、7、8、9 b、逢十进一 ex: 5453.25=,2、二进位(binary natation),特点:a、有两个数码 0

5、、1 b、逢二进一、借一当二 ex: (11 1011.101)2=59.625,3、八进位(octal natation),特点:a、有八个数码 0、1、2、3、4、5、6、7 b、逢八进一,借一当八,4、十六进位(hexadecimal natation),特点:a、有十六个数码 0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f b、逢十六进一、借一当十六,表0-1 不同进位记数制对照表,二、不同进位制之间的转换,1、二-十进制数的转换 a、二-十进制 方法:按权展开,然后相加 ex: 1 0110.01b=22.25 b、二-十进制 a.整数部分 方法:除2取余法 ex:

6、215.1875=1101 0111.0011b b.小数部分 方法:乘2取整法,2、十六-十进制数的转换 a、十六-十进制 方法:按权展开,然后相加 ex: 7f0.ch = 2023.75 b、十六-十进制 (1)整数部分 方法:除16取余法 ex: 3901.015625 = f3dh.004h b.小数部分 方法:乘16取整法,3、二-十六进制数的转换 a、二-十六进制 法则:从小数点开始,或左或右,四位一组,不足四位以0补足,然后分别把每组用十六进制数表示 1 1011 1110 0011.1001 0100b=1be3.94h b、二-十六进制 法则:把十六进制中每位用二进制表示,

7、再把各位连成一体。 3ab.7a5h=11 1010 1011.0111 1010 0101b,十进制数,二进制数,十六进制数,除2取余/乘2取整,按权相加,除16取余/乘16取整,按权相加,四合一位法,一位分四位法,二进制数的运算,1、逻辑运算 (1)逻辑乘(与) 法则:00=0 10=01=0 11=1 ex: 1101 1010b0000 1111b= 用途:用于从某数中取出某几位,(2)逻辑加(或) 法则:00=0 01=10=1 11=1 ex:1010 1010 0000 1111b= 用途:使某数中某几位置1,(3)逻辑非 法则: (4)逻辑异或(半加,不考虑进位的加法,也称模2

8、加) 法则: 用途:令某数中某几位取反,2、算术运算 (1)加/减法运算 a.加法运算 法则:0+0=0 0+1=1+0=1 1+1=0(逢2进1) ex: bdh+aah=67h,a.减法运算 法则:0-0=1-1=0 1-0=1 0-1=1(有借位) ex: b5h-93h=22h,(2)乘/除法运算 a.乘法运算 法则:00=01=10=0 11=1 在计算机中,乘法采用部分积左移或部分积右移法实现。 b.除法运算 法则:二进制除法类似于十进制除法,0.2.2 计算机中数的几个概念,1.机器数与真值 机器数:机器中数的表示形式,它将数的正、负符号和数值部分一起进行二进制编码,其位数通常为

9、8的整数倍。 真值:机器数所代表的实际数值的正负和大小,是人们习惯表示的数。 2。数的单位 位(bit):一个二进制数中的1位,其值不是1便是0。 字节(byte):一个字节,就是一个8位的二进制数。 字(word):两个字节,就是一个16位的二进制数。 双字:两个字,即四个字节,一个32位二进制数。 只有8位、16位或32位机器数的最高位才是符号位。,0.2.3 计算机中的有符号数的表示,数的两种表示方式: (1)无符号数:只表示数的绝对值大小,不考虑正负 (2)有符号数:用0表示正数,用1表示负数。最高位为符号位。 机器数:符号也码化的二进制数 真值:原来带正号和负号的数值 机器数的三种常

10、用表示方法:原码表示法、反码表示法和补码表示法,1、原码(符号编码)表示法,定义:用“0”和“1”分别表示“+”和“-”,数值部分为真值的绝对值。 eg:x=(+5) 10= x=(-5 ) 10= x=(+0) 10= x=(-0 ) 10=,结论: (1)可见:原码有以下特点: (a)原码中0有两种形式: (+0) 原=00000000b, (-0) 原=10000000b, (b)8位带符号数的原码范围为:-127(11111111b) +127(01111111b); 16位带符号数的原码范围为:-32767(1111111111111111b) + 32767 (0111111111

11、111111b) (2)原码表示法简单易懂,而且与真值的转换方便,但不适宜用简单的加法来进行运算。 eg : 5+(-3)=,2、反码表示法,原则: (1)正数的反码表示与原码相同,即在原二进制数的前面加符号位0。 (2)负数的反码表示:规定为它对应的正数按位取反(连同符号位)。 eg:x=(+4) 10 x=(-4) 10 x=(+127) 10 x=(-127) 10 x=(+0 ) 10 x=(-0 ) 10,结论: (1)特点: (a)0有两种形式: (+0) 反=00000000b, (-0) 反=11111111b, (b)8位带符号数的原码范围为:-127(10000000b)

12、+127(01111111b); 16位带符号数的原码范围为:-32767(1000000000000000b) + 32767 (0111111111111111b) 问题:已知一个数的反码,怎么求它的真值呢? (2)同原码相似,反码表示也不适宜用简单的加法器来进行运算。 eg : 5+(-3)=,3、补码(twos complement)表示法,原则: (1)正数的反码表示与原码相同。 (2)负数的反码表示:规定为它对应的反码加1。 eg:x=(+4) 10 x=(-4) 10 x=(+127) 10 x=(-127) 10 x=(+0 ) 10 x=(-0 ) 10,结论: (1)特点:

13、 (a)0只有一种形式: (+0)补= (-0) 补= 00000000b。 (b)8位带符号数的原码范围为:-128(10000000b) +127(01111111b); 16位带符号数的原码范围为:-32768(1000000000000000b) + 32767 (0111111111111111b) 补:快速求补码法:将负数原码的最前面的1和最后一个1之间的每一位数求反。 问题:已知一个数的反码,怎么求它的真值呢? (2)当负数采用补码表示时,就可以把减法运算转换为加法运算。 eg : 5+(-3)=,快速求法:将负数原码的最前面的1和最后一个1之间的每一位取反。例如 x=-4: x

14、原 = 10000100 x补 = 11111100=fch取反 两数互补是针对一定的“模”而言,“模”即计数系统的过量程回零值,例如时钟以12为模(12点也称0点),4和8互补,一位十进制数3和7互补(因为3710,个位回零,模为10110),两位十进制数35和65互补(因为3567100,十进制数两位回零,模为102100),而对于8位二进制数,模为28100000000b=100h,同理16位二进制数,模为21610000h由此得出求补的通用方法:一个数的补数模该数,这里补数是对任意的数而言,包括正、负数。而补码是针对符号机器数而言。,设有原码机器数x, x0, x补=x原 当 x0,

15、x补= 模-x 例如对于八位二进制数: x1=+4: x1补= 00000100=04h; x2= - 4: x2补 = 100h-4=fch 对于16二进制位数: x2=+4: x2补= 0004h; x2= -4: x2补 = 10000h-4=fffch,几点说明: 根据两数互为补的原理,对补码求补码就可以得到其原码,将原码的符号位变为正、负号,即是它的真值 例如求补码数fah的真值 。因为fah为负数求补码 fah补86h=-6 例如求补码数78h的真值 。因为78h为正数求补码 78h补78h=+120 一个用补码表示的机器数,若最高位为0,则其余几位即为此数的绝对值;若最高位为1,

16、其余几位不是此数的绝对值,必须把该数求补(按位取反(包括符号位)加1),才得到它的绝对值。如:x=-15 -15补f1h11110001b 求补得00001110100001111b=15, 当数采用补码表示时,就可以把减法转换为加法。 例1:64-10=64+(-10)=54 64补=40h=0100 0000b 10补=0ah=0000 1010b -10补=1111 0110b 做减法运算过程: 用补码相加过程 结果相同,其真值为36h(=54)。由于数的八位限制,最高位的进位是自然丢失的(再计算机中。进位被存放在进位标志cy中的。)用补码表示后,减法均可以用补码相加完成。因此,在微机中

17、,凡是符号数一律是用补码表示的。用加法器完成加、减运算,用加法器和移位寄存器完成乘、除运算,简化计算机硬件结构。,例2: 34-68=34+(-68)-34 34=22h=0010 0010b 68=44h=0100 0100b -68补=1011 1100b 做减运算过程: 用补码相加过程: 结果相同。因为符号位为1,对其求补,得其真值:-00100010b,即为-34(-22h)。 由上面两个例子还可以看出, 1)用补码相加完成两数相减,相减若无借位,化为补码相加就会有进位;相减若有借位,化作补码相加就不会有进位。 2)补码运算后的结果为补码,需再次求补才能得到运算结果的真值。,0.2.4

18、 进位和溢出,例3 10550155 10569h 5032h 若把结果视为无符号数,为155,结果是正确的。若将此结果视为符号数,其符号位为1,结果为-101,这显然是错误的。其原因是和数155大于8位符号数所能表示的补码数的最大值127,使数值部分占据了符号位的位置,产生了溢出,从而导致结果错误。又如: -105-50=-155 cy=1 两个负数相加,和应为负数,而结果01100101b却为正数,这显然是错误的。其原因是和数-155小于8位符号数所能表示的补码数的最小值-128,也产生了溢出。 结论:当两个补码数相加结果超出补码表示范围,就会产生溢出,导致结果错误。 计算机中设立了溢出标

19、志位ov,通过最高位的进位(符号位的进位)cy和次高位进位(低位向符号位的进位)cy-1异或产生。,例4 74744ah+4ah 0 1 0 0 1 0 1 0 0 01 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 cy cy-1=0 1=1.有溢出 ov1 cy cy-1 无进位 cy=0 由上两例中,例3的 ov=1、cy=1,例4中ov=1、cy=0,可见溢出和进位并非有必然的联系,这是由于两者产生的原因是不同的,两者判断的方法也是是不同的。重述如下: 溢出ov:两个补码数相加结果超出补码表示范围而产生,ov= cy cy-1 进位cy: 当运算结果超出计算机位数的限制(

20、8位、16位),会产生进位,它是由最高位计算产生的,在加法中表现为进位,在减法中表现为借位。,0.2.5 bcd码,生活中人们习惯于十进制数,计算机只能识别二进制数,为了将十进制数变为二进制数,出现了bcd码,即二进制代码表示的十进制数。故名思意,它即是逢十进一,又是一组二进制代码。用4位二进制数编码表示1位十进制数称为压缩的bcd码,8位二进制数可以放2个十进制数位。也可以用8位二进制数表示1个十进制数位,这种bcd码称为非压缩的bcd码。十进制数和bcd码的对照表见表0-2,表0-2 bcd编码表,例:求十进制数876的bcd码 压缩的bcd码 : 876bcd = 1000 0111 0

21、110b=876h 非压缩的bcd码: 876bcd=00001000 00000111 00000110b080706h 又如,十进制数1994的压缩的bcd码1944h 1994的非压缩的bcd码01090404h,0.2.6 bcd码的运算,bcd码运算应该得到bcd码结果,由于计算机是按二进制运算,结果不为bcd码,因此要进行十进制调整。调整方法为:当计算结果有非bcd码或产生进位/借位时,加法进行 +6、减法进行 -6 调整运算。 例:计算bcd码 78+69=? 0111 1000 78h + 0110 1001 + 69h 1110 0001 e1h不调整,结果为二进制 + 0110 0110 + 66h调整, 高4位产生非bcd码+6,和低4位有半进位+6 1 0100 0111 147 调整结果:147 (带进位一起)为十进制结果,例:计算bcd码 38-29=? 0011 1000 38h - 0010 1001 - 29h 0000 1111 0fh - 0000 0110 - 06 低4位有半借位-6调整 高4位未产生非 bcd且无借位不调整 0000 1001 9 结果:9 在计算机中,有专门的调整指令完成调整操作。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论