片机的基础知识.ppt
第一章 单片机的基础知识,本章总体要求:,了解单片机的概念、发展及应用范围,1,掌握常用的进位计数制及各种数制的转换方法,2,掌握原码、补码、反码的表示方法及其相互转换,3,4,掌握8421BCD码的编码规律及与十进制数的对应关系,本章重点:,单片机的定义、特点,1,常用的进位计数制及各种数制之间的转换,2,原码、补码和反码的表示方法及相互转换,3,8421BCD码和ASCII码的表示,4,本章难点:,不同进位计数制之间的转换,1,原码、补码和反码的表示方法及相互转换,2,微型计算机发展的两个方向,通用型计算机系统-用于科学计算,信息处理 个人计算机-PC 工作站-WS 嵌入式计算机系统-用于系统内的控制 Embedded Computer System,知识资料,以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。基本特征:“嵌入”、“专用”、“计算机系统”理解:嵌入到应用系统的专用计算机。应用面为特定用户群系统 微型计算机 系统中的系统,嵌入式系统与单片机是什么关系?,嵌入式系统定义,知识资料,嵌入式系统的基本组成,嵌入式系统与单片机是什么关系?,嵌入式系统的核心是为微处理器,嵌入式系统既需要硬件又需要软件支持,嵌入式系统的软件需要固化,知识资料,嵌入式微处理器的分类,嵌入式系统与单片机是什么关系?,又叫单片机,嵌入式系统工业的主流以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要功能和外设,知识资料,单片机发展概况,1.单片机的发展历史 第1阶段(19741976):初级单片机阶段第2阶段(19761978):低性能单片机阶段第3阶段(19781983):高性能单片机阶段第4阶段(1983今):单片机全面发展阶段,2.单片机的发展方向单片机的发展趋势将是向着大容量、高性能化和小容量、低 价格化及外围电路内装化等几个方面发展。,知识资料,单片机的发展历史,知识资料,单片机发展的最新动态,嵌入式应用系统无处不在,嵌入式系统的应用与发展,知识资料,嵌入式应用步入数字时代,嵌入式系统的应用与发展,知识资料,嵌入式产品拥有璀璨的明天,嵌入式系统的应用与发展,Source:Semico Research Corp 2002,“后PC时代”,知识资料,1.2典型单片机的介绍,MCS-51,MCS-96系列-INTEL,ATMEL,PHILIPS68HC05/08系列-FREESCALE(MOTOROLA)PIC16/18系列-MICROCHIPAVR系列-ATMEL其它还有日本的Renesas,Toshiba,Fujitsu,台湾Sunplus(凌阳),HOLTEK(盛群/盛扬)等公司产品,国内常用八位单片机系列,知识资料,MCS-51单片机系列共有十几种芯片:,知识资料,MCS51系列单片机,HMOS工艺,即高速度、高密度、短沟道MOS工艺,CHMOS工艺,即互补金属氧化物的HMOS工艺,具有CMOS低功耗的特点。,一次性写入,紫外线擦除重复写入,片内带闪速可编程电可擦除只读存储器,MCS-51 单片机结构框图,知识资料,8051单片机的基本组成,单片机核心,完成运算和控制功能,存放程序、原始数据或表格,使用低128单元存放数据,5个中断源,全双工的串行口,实现单片机和外设的串行数据传送,实现数据或地址的并行输入/输出,时钟电路引脚,知识资料,8051单片机的基本组成,1.3计算机中数的表示方法,计算机中的数制及其转换,基数为R,逢R进1。位权为Ri,个位、十位、百位上面的位权分别为R0、R1和R2。,其中:m、n为正整数,n代表整数部分的位数;m代表小数部分的位数;代表R进制中的任一个数码,0R-1。,常用的数制表示有十进制计数,二进制计数,八进制和十六进制计数方法。(1)十进制数数值部分用0,1,2,3,45,6,7,8,9这十个不同的数码来表示;十进制数中的“l0”称为基数,采用“逢十进一”的原则。,例1.1:,(2)二进制数二进制数中R2,取0或1,进位规律为“逢2进1”。任一个二进制数N可表示为:,例1.2:,(3)八进制数八进制R8,可取07共8个数码中的任意1个,进位规律为“逢8进1”。任意一个八进制数N可以表示为:,例1.3:,(4)十六进制数十六进制16,可取015共16个数码中的任一个,1015分别用A、B、C、D、E、F表示,进位规律为“逢16进1”。任意一个十六进制数可表示为:,例1.4:,为避免混淆,除用的方法区分不同进制数外,还常用数字后加字母作为标注。其中字母B(Binary)表示二进制数;字母Q(Octal的缩写为字母O,为区别数字0故写成Q)表示八进制数;字母D(Decimal)或不加字母表示十进制数;字母H(Hexadecimal)表示十六进制数。下面给出了以上3种进制数与十进制数的对应关系。,表12二、八、十、十六进制数码对应表,3不同数制间的转换(1)各种进制数转换成十进制数各种进制数转换成十进制数的方法是:将各进制数先按权展成多项式,再利用十进制运算法则求和,即可得到该数对应的十进制数。【例1.5】:将数1001.101B,246.12Q,2D07.AH转换为十进制数。解:,(2)十进制数转换为二、八、十六进制数任一十进制数N转换成q进制数,先将整数部分与小数部分分为两部分,并分别进行转换,然后再用小数点将这两部分连接起来。1)整数部分转换第1步:用去除N的整数部分,得到商和余数,记余数为进制整数的最低位数码K0;第2步:再用去除得到的商,求出新的商和余数,余数又作为q进制整数的次低位数码K1;第3步:再用q去除得到的新商,再求出相应的商和余数,余数作为q进制整数的下一位数码;第4步:重复第3步,直至商为零,整数转换结束。此时,余数作为转换后q进制整数的最高位数码。,例1.6:求十进制数168所对应的二、八、十六进制数。,2)小数部分转换小数部分转换步骤为:第1步:用q去乘N的纯小数部分,记下乘积的整数部分,作为q进制小数的第1个数码;第2步:再用q去乘上次积的纯小数部分,得到新乘积的整数部分,记为q进制小数的次位数码2;第3步:重复第2步,直至乘积的小数部分为零,或者达到所需要的精度位数为止。此时,乘积的整数位作为q进制小数位的数码。,例1.7:将0.686转换成二、八、十六进制数(用小数点后5位表示)。,例1.8:将168.686转换为二、八、十六进制数。由上例可得,解:168.68610101000.10101B168.686250.53716Q168.686A8.AF9DBH,从以上例子可以看出,二进制表示的数愈精确,所需的数位就愈多,这样,不利于书写和记忆,而且容易出错。另外,若用同样数位表示数,则八、十六进制数所表示数的精度较高。所以在汇编语言编程中常用八进制或十六进制数作为二进制数的缩码来书写和记忆二进制数,便于人机信息交换。在MCS-51系列单片机编程中,通常采用十六进制数。,(3)二进制数与八进制数之间的相互转换由于238,故可采用“合3为1”的原则,即从小数点开始分别向左、右两边各以3位为1组进行二八换算;若不足3位的以0补足,便可将二进制数转换为八进制数。反之,采用“1分为3”的原则将位八进制数转换为位二进制数;转换后二进制数首尾处的可舍去。例1.9将1111011.0101B转换为八进制数。解:根据“合3为1”和不足3位以0补足的原则,将此二进制数书写为:001 111 011 小数点 010 100 1 7 3 小数点 2 4 因此,其结果为1111011.0101B173.24Q。例1.10将1357.246Q转换成二进制数。解:根据“1分为3”的原则,可将该十进制数书写为:1 3 5 7 小数点 2 6 001 011 101 111 小数点 010 100 110其结果为1357.246Q1011101111.01010011B。,(4)二进制数与十六进制数之间的相互转换 由于24=16,故可采用“合4为1”的原则,从小数点开始分别向左、右两边各以4位为1组进行二十六换算;若不足4位以0补足,便可将二进制数转换为十六进制数。例1.11:将转换成十六进制数。解:根据“合4为1”的原则,可将该二进制数书写为:0001 1010 0010 1011 小数点 0011 1100 1 A 2 B 小数点 3 C其结果为。反之,采用“1分为4”的原则,每位十六进制数用4位二进制数表示,便可将十六进制数转换为二进制数。例1.12:将4D5E.6FH转换成二进制数。解:根据“1分为4”的原则,可将该十六进制数书写为:4 D 5 E 小数点 6 F 0100 1101 0101 1110 小数点 0110 1111其结果为4D5E.6FH。,计算机中数的表示方法,1机器数与真值 在前面小节中讨论的二进制数运算均为无符号数运算,但实际的数值是带有符号的。既可能是正数,用“”号表示;也可能是负数,用“”号表示。运算的结果也可能是正数,也可能是负数。于是在计算机中就存在着如何表示正、负数的问题。由于计算机只能识别0和1,因此,在计算机中通常把一个二进制数的最高位作为符号位,以表示数值的正与负(若用8位表示一个数,则D7位为符号位;若用16位表示一个数,则D15位为符号位),并用0表示“”;用1表示“”。例如:N11011,N21011在计算机中用8位二进制数的表示如下:,2原码、补码与反码(1)原码 正数的符号位用0表示,负数的符号位用1表示,数值部分用真值的绝对值来表示的二进制机器数称之为原码,用X原表示。例如:115和115在计算机中(设机器字长为8位),其原码可分别表示为:115原01110011B;115原11110011B。,若真值为零,则零的原码有两种表示:0原00000000;0原10000000。8位二进制数的原码能表示的范围为-127127。(2)反码 正数的反码与原码表示形式相同,负数的反码的符号位为1,数值位按位取反。零的反码有两种表示形式:0反00000000;0反11111111。8位二进制数的反码能表示的范围为127127。例1.13:真值X1=+1000101,X2=-1010101,求两数的反码。解:X1反01000101;X2反=10101010,(3)补码,定义:正数的补码等于原码,负数的补码其最高位为“1”,数值等于反码数值位低位加“1”。例如:求x=+01010000B和y=-0101000B的补码。X原=X反X补y原10101000B;y反11010111B;y补11011000B,