资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,*,第1章 单片机基础知识,本章主要介绍单片机的基础知识,包括单片机的发展、应用以及种类,并对计算机中的数制编码和转换做了详细的阐述。通过本章的学习,可以使学生了解单片机的发展历程、趋势及种类,并掌握计算机的数制,为后续各章的学习打下基础。,1.1 单片机的发展历史及发展趋势,单片机是单片微型计算机(Single Chip Microcomputer,SCM)的简称,它是将微型计算机的中央处理器CPU、数据存储器RAM、程序内存ROM、定时/计数器Timer/Counter以及I/O接口等基本功能部件制作在一块集成电路芯片上的微型计算机。单片机具有极其适合于在智慧化方面和工业控制方面使用的特点,一次又称其为微控制器(MicroController)。,1.1.1 单片机的发展历史,1970年微型计算机研制成功后,随后就出现了单片机。单片机的诞生是计算机发展史上一个重要的里程碑,标志着计算机在控制领域形成了一个独立的分支嵌入式系统(Embedded Systems),从诞生至今,单片机的发展大致可分为四个阶段。,第一阶段(1976年-1978年):初级单片机阶段。以Inter公司MCS-48为代表。这个系列的单片机内集成有8位CPU、I/O接口、8位定时器/计数器,寻址范围不大于4K字节,简单的中断功能,无串行接口。,第二阶段(1978年-1982年):单片机完善阶段。在这一阶段推出的单片机其功能有较大的加强,能够应用于更多的场合。这个阶段的单片机普遍带有串行I/O口、有多级中断处理系统、16位定时器/计数器,片内集成的RAM、ROM容量加大,寻址范围可达64K字节。一些单片机片内还集成了A/D转换接口。这类单片机的典型代表有Inter公司的MCS-51、Motorola公司的6801和Zilog公司的Z8等。,第三阶段(1982年-1992年):8位单片机巩固发展及16位高级单片机发展阶段。在此阶段,尽管8位单片机的应用已广泛普及,但为了更好满足测控系统的嵌入式应用的要求,单片机集成的外围接口电路有了更大的扩充。这个阶段单片机的代表为8051系列。许多半导体公司和生产厂以MCS-51的8051为内核,推出了满足各种嵌入式应用的多种类型和型号的单片机。其主要技术发展有:,(1)外围功能集成。满足模拟量直接输入的ADC接口;满足伺服驱动输出的PWM;保证程序可靠运行的程序监控定时器WDT(俗称看门狗电路)。,(2)出现了为满足串行外围扩展要求的串行扩展总线和接口,如SPI、I2C Bus、单总线(1-Wire)等。,(3)出现了为满足分布式系统,突出控制功能的现场总线接口,如CAN Bus等。,(4),在程序内存方面广泛使用了片内程序内存技术,出现了片内集成,EPROM,、,EEPROM,、,FlashROM,以及,MaskROM,、,OTPROM,等各种类型的单片机,以满足不同产品的开发和生产的需要,也为最终取消外部程序内存扩展奠定了良好的基础。与此同时,一些公司面向更高层次的应用,发展推出了,16,位的单片机,典型代表有,Inter,公司的,MCS-96,系列的单片机。,第四阶段(,1993,年,-,现在):百花齐放阶段。现阶段单片机发展的显著特点是百花齐放、技术创新,以满足日益增长的广泛需求。其主要方面有:,(1),单片嵌入式系统的应用是面对最底层的电子技术应用,从简单的玩具、小家电;到复杂的工业控制系统、智能仪表、电器控制;以及发展到机器人、个人通信信息终端、机顶盒等。因此,面对不同的应用对象,不断推出适合不同领域要求的,从简易性能到多全功能的单片机系列。,(2),大力发展专用型单片机。早期的单片机是以通用型为主的。由于单片机设计生产技术的提高、周期缩短、成本下降,以及许多特定类型电子产品,如家电类产品的巨大的市场需求能力,推动了专用单片机的发展。在这类产品中采用专用单片机,具有低成本、资源有效利用、系统外围电路少、可靠性高的优点。因此专用单片机也是单片机发展的一个主要方向。,(3),致力于提高单片机的综合质量。采用更先进的技术来提高单片机的综合质量,如提高,I/O,口的驱动能力;增加抗静电和抗干扰措施;宽(低)电压低功耗等。,1.1.2,单片机的发展趋势,随着生活水平的提高和工业生产的发展,单片机的发展趋势势必向大容量、高性能化、外围电路内装化等方面发展。,1.,制造工艺的进步,现在单片机在制造工艺上早已跨越了,PMOS,和,NMOS,时代而进入了,CMOS,时代,大多数单片机的生产企业都已经采用了,0.6,m,以上的光刻工艺。同时,随着贴片工艺的出现,单片机在其封装工艺中也大量采用了各种符合贴片工艺的封装方式,从而大大地减少了其自身的体积。随着制造工艺技术的进步,单片机必将向着高内部密度、高可靠性以及小体积等方面发展。,2.CPU,的改进,随着,CPU,技术的发展,单片机中的,CPU,也得到了很大的改进,加快了指令运算的速度,提高了系统控制的可靠性,并加强了位处理功能以及中断和定时控制功能;采用流水线结构,指令以队列的形式出现在,CPU,中,从而有很高的运算速度,尤其适合用于数字信号的处理。,CPU,性能的改进必将大大提升单片机的功能。,3.,存储容量的扩大,早期的单片机其片内,RAM,为,64128B,、,ROM,为,12KB,,寻址范围为,4KB,。新型单片机的片内,RAM,为,256B,,,ROM,多达,64KB,。现在单片机的片内,ROM,已经普遍采用,E,2,PROM,,该内存能够在,+5V,下进行读,/,写操作,即具有,SRAM,的读,/,写操作方便,又有在掉电时数据不会丢失的优点。使用片内,E,2,PROM,,单片机可以不用片外扩展程序内存,大大简化了其应用系统的结构。同时,为了使片内,E,2,PROM,中的内容不被复制,一些厂家对片内,E,2,PROM,采用了加锁技术。,单片机的内存随着实际需要的发展必将会想着大容量、方便快捷以及高保密的方向发展。,4.,片内输入,/,输出接口功能的提高,早期的单片机内部仅含有并行的输入,/,输出接口和定时,/,计数器,它们的功能较差,实际应用中往往需要通过特殊的接口扩展其功能,增加了应用系统结构的复杂性。,近年来,新型单片机内部的接口,无聊从类型和数量上都有了很大的发展。目前,在单片机中已经出现的各类型新型接口有数十种,虽然一个单片机中只含有若干种接口,但是其功能却比早期的强得多,用它们可以作为高速主机的通用外设接口。,目前,单片机种类繁多,功能多样,增加并行口的驱动能力,以减少外部驱动芯片;设置一些特殊的串行,I/O,功能,为构成分布式、网络化系统提供方便条件等都将成为发展的趋势。,5.,低功耗化,随着单片机产品的,CMOS,化,采用,CMOS,芯片的单片机都具有功耗小的优点,而且为了充分发挥低功耗的特点,这类单片机普遍配置有等待状态、睡眠状态、关闭状态等多种工作方式。在这些状态下低电压工作的单片机,其消耗的电流仅在,A,或,nA,量级,非常适合于电池供电的便携式、掌上型的仪器仪表以及其它消费类电子产品。,6.,外围电路集成化,随着集成电路技术及工艺的不断发展,把所需的众多外围电路全部装入单片机内,即系统的单片化是目前单片机发展趋势之一。例如,美国,Cygnal,公司的,C8051F020 8,位单片机,内部采用流水线结构,大部分指令的完成时间为,1,或,2,个时钟周期,峰值处理能力为,25MIPS,。片上集成有,8,通道,A/D,、两路,D/A,、两路电压比较器,内置温度传感器、定时器、可编程数位交叉开关和,64,个通用,I/O,口、电源监测、看门狗、多种类型的串行接口(两个,UART,、,SPI,)等。一片芯片就是一个,“,测控”系统。,7.,片内固化应用软件和系统软件,将一些应用软件和系统软件固化于片内,ROM,中,以便简化使用者对应用程序的编写工作,为用户的开发和使用提供方便,这是单片机一个重要的发展趋势。如英特尔公司就在部分,MCS-51,单片机内部固化了,PL/M-51,语言,在,8052BH,中固化了,BASIC,解释程序,用户不仅可以使用汇编语言,还可以使用,BASIC,语言编程,增加了很多适合控制用的语句、命令以及运算符等。又如,RCA,公司在其生产的,68HCO5D2,的片内固化了键盘管理程序,在,CDP1804P,内固化了,PASCAL,语言。,事实证明,片内固化软件既能满足速度方面的要求,又能大大地简化用户对程序的编写工作,受到越来越多用户的喜爱,成为单片机发展的一个必然趋势。,1.2,单片机的应用,目前,单片机已经渗透到我们生活的各个领域,导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能,IC,卡以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智慧机械了。,单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智慧化管理及程控等领域,大致可分如下几个范畴:,1.,在智能仪器仪表上的应用。单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。,2.,在工业控制中的应用。用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理芯片、电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。,3.,在家用电器中的应用。可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其它音响视频器材、再到电子秤量设备,五花八门,无所不在。,4.,在计算机网络和通信领域中的应用。现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。,5.,单片机在医用设备领域中的应用。单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。,6.,在各种大型电器中的模块化应用。某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于内存中(类似于,ROM,),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。,7.,单片机在汽车设备领域中的应用。单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于,CAN,总线的汽车发动机智能电子控制器,,GPS,导航系统,,abs,防抱死系统,制动系统等等。,此外,单片机在工商、金融、科研、教育、国防航空航天等领域都有着十分广泛的用途。,1.3 MCS-51,系列与,AT89C5x,系列单片机,MCS-51,系列单片机和,AT89C5x,系列单片机是当前最常用的单片机。,AT89C51,是,ATMEL,公司生产的,MCS-51,兼容单片机,采用,CMOS,工艺生产,有,4K,的,FLASH ROM,空间,写户可以很方便地进行程序的擦写操作。,MCS-51,是,INTEL,公司开发的,8,位元单片机系列,典型的产品有,8031,和,8051,。,1.3.1 MCS-51,系列单片机,MCS51,是指由美国,INTEL,公司(对了,就是大名鼎鼎的,INTEL,)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如,8031,,,8051,,,8751,,,8032,,,8052,,,8752,等,其中,8051,是最早最典型的产品,该系列其它单片机都是在,8051,的基础上进行功能的增、减、改变而来的,所以人们习惯于用,8051,来称呼,MCS51,系列单片机,而,8031,是前些年在我国最流行的单片机,所以很多场合会看到,8031,的名称。市面上,所有兼容,MCS-51,的单片机都叫,51,兼容芯片,都可以用,C51,语言编程。,其中,AT89S51,单片机是一种新型的在线可编程的单片机,内部有:,4K,字节、,Flash,内存,它使得单片机产品的软件可在线升级,也使得单片机的学习开发、程序的下载较过去方便许多。,1.3.2 AT89C5x,系列单片机,AT89C51,提供以下标准功能:,4k,字节,Flash,闪速内存,,128,字节内部,RAM,,,32,个,I/O,口线,两个,16,位定时,/,计数器,一个,5,向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,,AT89C51,可降至,0Hz,的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止,CPU,的工作,但允许,RAM,,定时,/,计数器,串行通信口及中断系统继续工作。掉电方式保存,RAM,中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。,AT89C51,外形及引脚排列如图,1-1,所示。,图,1-1 AT89,系列示意图,1.4,计算机运算基础,冯诺依曼提出了“程序存储”和“二进制运算”的思想,并构建了计算机的经典结构。冯诺依曼体制的要点之一就是在计算机中所有的数据和指令都用二进制代码表示,这是因为二进制数具有运算简单、便于物理实现、节省设备等优点。而人们最常用、最熟悉的是十进制数,所以不同进制数之间相互转换就成为必须熟练掌握的问题。,数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。按进位的原则进行计数的方法,称为进位计数制。比如,在十进制计数制中,是按照“逢十进一”的原则进行计数的。,常用的进位制有二进制、八进制、十进制和十六进制。,数制三要素:数位、基数、位权,基数概念:一个记数制包含的数字符号的个数称为该数制的基数。例如:十进制的基数是,10,。,权(位值)概念:某进制中由位置决定的值叫位值或权。,位权展开概念:某进制数的值都可以表示为各位数码本身的值与其权的乘积之和。,1.,二进制,按“逢二进一”的原则进行计数,称为二进制数,即每位上计满,2,时 向高位进一。,基数:,2,数码:,0,、,1,位权:设,n,为整数位元的个数,,m,为小数位的个数,则从左至右的各位的位权分别是:,2,n-1,、,2,n-2,、,2,1,、,2,0,、,2,-1,、,2,-2,、,2,-m,表示方法,(11001100),2,或者,11001100B,。,在计算机内部无论是指令还是数据,存储、运算、处理和传输采用的都是二进制。,2.,八进制,按“逢八进一”的原则进行计数,称为八进制数,即每位上计满,8,时向高位进一。,基数:,8,数码:,0,、,1,、,2,、,3,、,4,、,5,、,6,、,7,位权:设,n,为整数位元的个数,,m,为小数位的个数,则从左至右的各位的位权分别是:,8,n-1,、,8,n-2,、,8,1,、,8,0,、,8,-1,、,8,-2,、,8,-m,表示方法,(1357),8,或者,1357O,。,3.,十进制,按“逢十进一”的原则进行计数,称为八进制数,即每位上计满,8,时向高位进一。,基数:,10,数码:,0,、,1,、,2,、,3,、,4,、,5,、,6,、,7,、,8,、,9,位权:设,n,为整数位元的个数,,m,为小数位的个数,则从左至右的各位的位权分别是:,10,n-1,、,10,n-2,、,10,1,、,10,0,、,10,-1,、,10,-2,、,10,-m,表示方法,(1357),10,或者,1357D,。,4.,十六进制,按“逢十六进一”的原则进行计数,称为八进制数,即每位上计满,8,时向高位进一。,基数:,16,数码:,0,、,1,、,2,、,3,、,4,、,5,、,6,、,7,、,8,、,9,、,A,、,B,、,C,、,D,、,E,、,F,位权:设,n,为整数位元的个数,,m,为小数位的个数,则从左至右的各位的位权分别是:,16,n-1,、,16,n-2,、,16,1,、,16,0,、,16,-1,、,16,-2,、,16,-m,表示方法,(396B),10,或者,396BH,。,在计算机内部,数都是用二进制表示的,二进制与八进制、十六进制之间很容易转换,因此需要掌握十进制元与二进制、八进制及十六进制之间的转换。,1.4.2,数制间的转换,将数由一种数制转换成另一种数制称为数制间的转换。,1.,十进制数转换成非十进制数,(1),整数转换,十进制整数化为非十进制整数采用“余数法”,即除基数取余数。把十进制整数逐次用任意十制数的基数去除,一直到商是,0,为止,然后将所得到的余数由下而上排列即可。,【,例,1.1】,将十进制数,135,转换为二进制、八进制和十六进制。,解:,1),十进制数,135,转换为二进制:,即(,135,),10,=,(),2,2),十进制数,135,转换为八进制:,即(,135,),10,=,(,87,),16,(2),小数转换,十进制小数转换成非十进制小数采用“进位法”,即乘基数取整数。把十进制小数不断的用其它进制的基数去乘,直到小数的当前值等于,0,或满足所要求的精度为止,最后所得到的积的整数部分由上而下排列即为所求。,【例,1.2,】将十进制数,0.25,转换为二进制、八进制和十六进制。,解:,1),十进制数,0,25,转换为二进制数:,即(,0,25,),10=,(,0,01,),2,2),十进制数,0,25,转换为八进制数:,即(,0,25,),10=,(,0,2,),8,2.,非十进制数转换成十进制数,非十进制数转换成十制数采用“位权法”,即把各非十进制数按位权展开,然后求和。,【例,1.3,】,1),将二进制数转换为十进制数。,解:,(11010011),2,=1,2,7,+1,2,6,+0,2,5,+1,2,4,+0,2,3,+0,2,2,+1,2,1,+1,2,0,=211,2),将八进制数,716,转换为十进制数。,解:,(716),8,=7,8,2,+1,8,1,+6,8,0,=462,3),将十六进制数,D4,转换为十进制数。,解:,(D4),16,=13,16,1,+4,16,0,=212,3.,二、八、十进制数之间转换,(1),二进制数与八进制数之间的转换转换方法,把二进制数转换为八进制数时,按“三位并一位”的方法进行。以小数点为界,将整数部分从右向左每三位一组,最高位不足三位时,添,0,补足三位;小数部分从左向右,每三位一组,最低有效位不足三位时,添,0,补足三位。然后,将各组的三位二进制数按权展开后相加,得到一位八进制数。,【例,1.4,】将二进制数转换为八进制数。,解:把,(10110101),2,写成下面的形式:,010,110,101,2 6 5,即,(10110101),2,=(265),8,将八进制数转换成二进数时,采用“一位拆三位”的方法进行。即把八进制数每位上的数用相应的三位二进制数表示。,【例,1.5,】将八进制数,652,转换为二进制数。,解:把,(652),8,写成下面的形式:,6,5,2,110 101 010,即,(652),8,=(110101010),2,(2),二进制数与十六进制数之间的转换转换方法,把二进制数转换为十六进制数时,按“四位并一位”的方法进行。,以小数点为界,将整数部分从右向左每四位一组,最高位不足四位时,添,0,补足四位;小数部分从左向右,每四位一组最低有效位不足四位时,添,0,补足四位。然后,将各组的四位二进制数按权展开后相加,得到一位十六进制数。,【例,1.6,】将二进制数转换为十六进制数。,解:把,(10110101),2,写成下面的形式:,1011,0101,B 5,即,(10110101),2,=(B5),16,将十六进制数转换成二进数时,采用“一位拆四位”的方法进行。即把十六进制数每位上的数用相应的四位二进制数表示。,【例,1.7,】将十六进制数,9C,转换为二进制数。,解:把,(9C),16,写成下面的形式:,9,C,1001 1100,即,(9C),16,=(10011100),2,1.4.3,二进制数的计算,1.,算术运算,二进制四则运算和十进制四则运算原理相同,所不同的是十进制有十个数码,,“,满十进一”,二进制只有两个数码,0,和,1,,“满二进一”。二进制运算口诀则更为简单。,(1),加法,二进制加法,在同一数字上只有四种情况:,0,0,0,,,0,1,1,,,1,0,1,,,1,1,10,。,只要按从低位元到高位依次运算,“满二进一”,就能很容易地完成加法运算。,【例,1.8,】二进制加法,(,1,),10110,1101,;,(,2,),1110,101011,。,解 加法算式和十进制加法一样,把右边第一位对齐,依次相应数位对齐,每个数位满二向上一位进一。,10110,1101,100011 1110,101011,111001,通过计算不难验证,二进制加法也满足“交换律”,如,101,1101,1101,101,10010,。,多个数相加,先把前两个数相加,再把所得结果依次与下 一个加数相加。,【例,1.9,】二进制加法,(,1,),101,1101,1110,;,(,2,),101,(,1101,1110,)。,解,(,1,),101,1101,1110,(,2,),101,(,1101,1110,),10010,1110,101,11011,100000,;,100000,从例,2,的计算结果可以看出二进制加法也满足“结合律”。,(2),减法,二进制减法也和十进制减法类似,先把数位对齐,同一数位不够减时,从高一位借位,“借一当二”。,【例,1.10,】二进制减法,(,1,),11010,11110,;,(,2,),10001,1011,。,解,(,1,),110101,11110,10111,;,(,2,),10001,1011,110,。,【例,1.11,】二进制加减混合运算,(,1,),110101,1101,11111,;,(,2,),101101,11011,11011,。,解,(,1,),110101,1101,11111,11111,100011,(,2,),101101,11011,11011,10011,11011,101101,。,(3),乘法,二进制只有两个数码,0,和,1,,乘法口诀只有以下几条:,0,0,0,,,0,1,0,,,1,0,0,,,1,1,1,概括成口诀:零零得零,一零得零,一一得一。,二进制乘法算式和十进制写法也一样。,【例,1.12,】二进制乘法,(,1,),1001,101,;,(,2,),11001,1010,。,解,:,(,1,),1011,101,110111,;(,2,),11001,1010,。,(4),除法,除法是乘法的逆运算,二进制除法和十进制除法也一样,而且更简单,每一位商数不是,0,,就是,1,。,【例,1.13,】二进制除法,(,1,),1001,;,(,2,),111,。,解(,1,),(,2,),1001,10010,;,10010011,111,10101,。,2.,逻辑运算,逻辑变量之间的运算称为逻辑运算。二进制数,1,和,0,在逻辑上可以代表“真”与“假”、“是”与“否”、“有”与“无”。这种具有逻辑属性的变量就称为逻辑变量。,计算机的逻辑运算的算术运算的主要区别是:逻辑运算是按位进行的,位与位之间不像加减运算那样有进位或借位的联系。,逻辑运算主要包括三种基本运算:逻辑加法(又称“或”运算)、逻辑乘法(又称“与”运算)和逻辑否定(又称“非”运算)。此外,“异或”运算也很有用。,(1),逻辑加法(“或”运算),逻辑加法通常用符号“,+,”或“”来表示。逻辑加法运算规则如下:,0+0=0,,,0,0=0,0+1=1,,,0,1=1,1+0=1,,,1,0=1,1+1=1,,,1,1=1,从上式可见,逻辑加法有“或”的意义。也就是说,在给定的逻辑变量中,,A,或,B,只要有一个为,1,,其逻辑加的结果为,1,;两者都为,1,则逻辑加为,1,。,(2),逻辑乘法(“与”运算),逻辑乘法通常用符号“”或“”或“”来表示。逻辑乘法运算规则如下:,0,0=0,,,0,0=0,,,0,0=0,0,1=0,,,0,1=0,,,0,1=0,1,0=0,,,1,0=0,,,1,0=0,1,1=1,,,1,1=1,,,1,1=1,不难看出,逻辑乘法有“与”的意义。它表示只当参与运算的逻辑变量都同时取值为,1,时,其逻辑乘积才等于,1,。,(3),逻辑否定(非运算),逻辑非运算又称逻辑否运算。其运算规则为:,0=1,非,0,等于,1,1=0,非,1,等于,0,(4),异或逻辑运算(半加运算),异或运算通常用符号,表示,其运算规则为:,0,0=0 0,同,0,异或,结果为,0,0,1=1 0,同,1,异或,结果为,1,1,0=1 1,同,0,异或,结果为,1,1,1=0 1,同,1,异或,结果为,0,即两个逻辑变量相异,输出才为,1,1.4.4,单片机中数的表示,一个数在计算机中的表示称为机器数,这个数学上的数的本身称为机器数的真值。机器数受,CPU,字长的限制,是有一定范围的,超出了此范围就会产生“溢出”。,1.,无符号数与有符号数,计算机中的数通常有两种:无符号数和有符号数。两种数在计算机中的表示是不一样的。无符号数由于不带符号,表示时比较简单,可以直接用它对应的二进制形式表示。如,假设机器字长为,8,位,则,216,表示为,11011000B,。,有符号数带有正负号。由于计算机只能识别二进制数,不能识别正负号,因此计算机中只能将正负号用二进制数表示。通常,在计算机中表示有符号数时,会在数的前面加一位,作为符号位。正数表示为,0,,负数表示为,1,,其余的位用来表示数的大小。这种连同一个符号位在一起作为一个数,称为机器数,它的数值称为机器数的真值。机器数的表示如图,1-2,所示。,图,1-2,机器数的表示,为了运算方便,机器数在计算机中有三种表示法:原码、反码和补码。,(1),原码,一个二进制数的原码包含符号和数值两部分,它的最高位元是符号位,符号位按“正,0,负,1,”判别,其余位表示它的绝对值。这种表示有符号数的方法即为原码表示法。对于一个,n,位的二进制数,其原码表示范围为,-(2,n-1,-1),+(2,n-1,-1),。,用原码表示时,对于,-0,和,+0,的编码不一样。假设机器字长为,8,位,,-0,的原码为,10000000B,,,+0,的原码为,00000000B,。,【例,1.14,】写出,+68,和,-68,的原码。,解:,+68,原,=01000100B,-68,原,=11000100B,(2),反码,一个二进制数反码的求法如下:,正数的反码与原码相同;,负数的反码为其原码保持符号位不变,数值位各位取反的结果。,对于,0,,假设机器字长为,8,位,,-0,的反码为,11111111B,,,+0,的反码为,00000000B,。,【例,1.15,】写出,+68,和,-68,的反码。,解:,+68,反,=01000100B,-68,反,=10111011B,(3),补码,一个二进制数补码的求法如下:,正数的补码与原码相同;,负数的补码为其原码保持符号位不变,数值位各位取反后加,1,即其反码加,1,的结果。,【例,1.16,】写出,+68,和,-68,的补码。,解:,+68,补,=01000100B,-68,补,=10111100B,(4),溢出问题,两个带符号数进行加减运算时,若运算结果超出了机器所允许表示的范围,得出错误的结果,这种情况成为溢出。如,8,位字长的计算机所能表示的有符号数的范围为,-128,+127,,若运算结果超出此范围,就会发生溢出。,判断的方法:如果两正数相加结果为负,或者,两负数相加结果为正,就是产生了溢出。,具体的运算过程就是:两个符号位为,0,的数相加,,结果的符号位是,1,;或者,两个符号位为,1,的数相加,结果的符号位是,0,,就可判断产生溢出了。,【例,1.17,】判断下列运算的溢出情况。,(1)93+78,解:,+93,补,=01011101B +78,补,=01001110B,有溢出发生。,(2)-52+19,解:,-52,补,=10110100B +19,补,=00010011B,无溢出发生。,2.BCD,码,计算机内部对信息是按二进制元方式进行处理的,而人们生活中最习惯的是十进制数,为了处理方便,在计算机中,对于十进制数也提供了相应的编码方式。,BCD,码(,Binary-Coded Decimal,)亦称为二进制代码十进数或二,-,十进制代码。它是用,4,位二进制数来表示,1,位十进制数中的,09,这,10,个数码。,BCD,码可分为有权码和无权码两类:有权,BCD,码有,8421,码、,2421,码、,5421,码,其中,8421,码是最常用的;无权,BCD,码有余,3,码、格雷码等。,8421 BCD,码是最基本和最常用的,BCD,码,它和四位自然二进制代码相似,各位的权值为,8,、,4,、,2,、,1,,故称为有权,BCD,码。和四位自然二进制代码不同的是,它只选用了四位二进制代码中前,10,组代码,即用,00001001,分别代表它所对应的十进制数,余下的六组代码不用。,3.ASCII,码,在计算机信息处理中,除数值数据外,还涉及大量的字符数据,如字母、符号等,它们也必须按照特定的规则用二进制来编码。由美国国家标准局,(ANSI),制定的,ASCII,码(,American Standard Code for Information Interchange,,美国标准信息交换码)是目前计算机中用得最广泛的字符集及其编码,它已被国际标准化组织(,ISO,)定为国际标准,称为,ISO 646,标准。,在计算机的存储单元中,一个,ASC,码值占一个字节(,8,个二进制位),其最高位(,b7,)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中,1,的个数必须是奇数,若非奇数,则在最高位,b7,添,1,;偶校验规定:正确的代码一个字节中,1,的个数必须是偶数,若非偶数,则在最高位,b7,添,1,。一个,ASCll,码由,8,位二进制数码组成的。其中,用于表达字符的二进制代码有,7,个,最后一个用于检测错误,或空闲不用。,1.5,计算机主要技术指标术语,1.,位,(bit),位是计算机中所能表示和处理数据的最小、最基本单位。计算机中的数据都是以,0,和,1,来表示的二进制数,其中一个,0,或者一个,1,称之为一位。,2.,字节,(Byte),字节是计算机信息技术用于计量存储容量和传输容量的一种计量单位,一个字节等于,8,位二进制数,即,1Byte=8bit,。一个英文字母的编码可以用一个字节存储,而一个汉字的编码至少需要两个字节来存储。,3.,字,(Word),在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称字。字是计算机内部进行数据处理的基本单位。字通常分为若干个字节,(,每个字节一般是,8,位,),。在内存中,通常每个单元存储一个字,因此每个字都是可以寻址的。字的长度用位数来表示。,4.,字长,在同一时间中,CPU,并行处理二进制数的位数称为字长。字长通常等于数据总线的位数和通用寄存器的位数。字长与计算机的功能和用途有很大的关系,是计算机的一个重要技术指标。字长直接反映了一台计算机的计算精度,计算机的字长越长,计算机的精度就越高,处理能力也就越强。,随着计算机技术的发展,计算机处理的信息容量越来越大,于是人们采用了更大的单位,如:,KB(1KB=1024B=2,10,B),、,MB(1MB=1024KB=2,20,B),、,GB(1GB=1024MB=2,30,B),以及,TB(1TB=1024GB=2,40,B),等。,5.,运算速度,运算速度是衡量计算机性能的一项重要指针。通常所说的计算机运算速度(平均运算速度),是指每秒钟所能执行的指令条数,一般用“百万条指令,/,秒”来描述。微机一般采用主频来描述运算速度,主频越高,运算速度就越快。,6.,指令,指令是规定计算机进行某种操作的命令。它是计算机自动执行的依据。计算机只能直接识别,0,和,1,数字组合的编码,这就是指令的机器码。,7.,指令系统,指令系统是计算机硬件的语言系统,也叫机器语言,它是软件和硬件的主要接口,从系统结构的角度看,它是系统程序员看到的计算机的主要属性。因此指令系统表征了计算机的基本功能,也决定了指令的格式和机器的结构。,8.,程序,程序(,program,)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为实现预期目的而进行操作的一系列语句和指令。一般分为系统程序和应用程序两大类。,9.,时钟频率,(,主频,),时钟频率是指,CPU,在单位时间,(,秒,),内发出的脉冲数。它在很大程度上决定了计算机的运算速度。时钟频率越快,计算机的运算速度也越快。主频的单位是兆赫兹,(MHz),。,本章小结,将运算器、控制器及各种寄存器集成在一年集成电路芯片上,组成中央处理器,(CPU),或微处理器。微处理器配上内存、输入,/,输出接口便构成了微型计算机。单片机是把微处理器、内存,(RAM,和,ROM),、输入,/,输出接口电路及定时,/,计数器等集成在一起的集成电路芯片。,单片机的主要特点,:,集成度高、控制功能强、可靠性高、低功耗、外部总线丰富、功能扩展性强、体积小、性价比高,极适合于智能仪器仪表和工业测控系统的前端装置。,在计算机中常用的数制有二进制、八进制和十六进制。不同数制之间的转换都有一定的规则,应熟练掌握十进制与这些进制之间的转换方法。,有符号二进制数有,3,种表示方法,原码、反码和补码。在计算机中,有符号数一般用补码表示,无论是加法还是减法都可以采用加法运算,而且是连同符号位一起进行的,运算的结果仍为补码。,计算机中常用的二进制编码有,BCD,码和,ASCII,码。,BCD,码的加、减法运算与十进制运算规则相同,但是必须对运算结果进行修正,ASCII,码是国际通用的标准编码,采用,7,位二进制编码,分为图形字符和控制字符两类,共,128,个字符。,思考题及习题,1,一、简答题,1.,什么叫单片机?,2.,单片机的发展主要经历了哪些阶段?,3.,单片机有哪些应用领域?,4.,什么是原码、反码和补码?,5.,什么是,BCD,码和,ASCII,码?,二、计算题,1.,将下列数转换为二进制和十六进制数。,(1)215D (2)5.625D,2.,将下列十六进制数转换为二进制和十进制数。,(1)A2H (2)19.DH,3.,写出下列各十进制数的原码、反码和补码。,(1)+38D (2)-69D,此课件下载可自行编辑修改,供参考!,感谢您的支持,我们努力做得更好!,
展开阅读全文