您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第一章 单片机概述及基础知识
1单片机原理及应用任课教师:李念强教授办公室:电子信息教研中心12J302Tel:13864076928E-mail:linianqiang@sina.comise_linq@ujn.edu.cnUniversityOfJiNan2课程说明学习方法:理论与实践相结合注重学习书本知识的同时加强实际练习。考试方法:总成绩=期末考试成绩*70%+平时成绩*10%+20%*实验成绩平时成绩=考勤成绩*50%+作业成绩*50%UniversityOfJiNan3第1章单片机概述及基础知识§1.1单片机概述§1.2数制与编码§1.3单片机C语言程序设计基础UniversityOfJiNan图1-1单片机常见的几种封装图41.1单片机概述单片微型计算机(SingleChipMicrocomputer)简称单片机。它是把组成微型计算机的各功能部件,如中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、I/O接口电路、定时器/计数器以及串行通信接口等部件制作在一块集成芯片中,构成一个完整的微型计算机。图1-1是单片机常见的几种封装图。a)DIPb)PQFP/TQFPc)PLCC封装UniversityOfJiNan5•第一阶段(1971~1974年):4位单片机阶段。•第二阶段(1974~1978年):初级单片机阶段。•第三阶段(1978~1983年):高性能单片机阶段。•第四阶段(1983~N):20世纪90年代以后,单片机获得了飞速的发展。单片机的产生与发展和微处理器的产生与发展大体上同步,也经历4个阶段:1971年11月,美国Intel公司生产出集成度为2000只晶体管/片的4位微处理器Intel40041972年Intel推出雏形8位微处理器Intel8008,研制单片机的序幕由此拉开1973年Intel推出8位微处理器Intel80801974年,TI公司推出TMS1000单片机,并成功用于TI公司的高速反雷达导航器。1976年,Intel公司的MCS-48系列8位单片机研制成功,获得了广泛的应用,成为单片机发展进程中的一座里程碑。20世纪80年代初,Intel公司在MCS-48系列单片机的基础上,推出了MCS-51系列8位高档单片机。1986年以后16位单片机MCS-96系列问世(Intel公司的MCS-96系列),其比8位性能更高,适用于更复杂的控制系统。Atmel公司的AT89、AT90系列;宏晶科技的STC系列单片机;Microchip公司的PIC单片机;TI公司的TMS370、MSP430系列;凌阳的16位单片机等,进入了百花齐放,百家争鸣的时期。1.1.1单片机发展概述UniversityOfJiNan61.1.2单片机的应用及趋势1.单片机的应用领域:制作智能仪器仪表工业控制e-Home计算机网络和通信领域利用单片机制作精密医用设备2.今后的发展趋势多功能高性能低电压、低功耗低价格UniversityOfJiNan71.2数制与编码1.2.1进位计数制及各计数制间I.了解进制数二进制数有运算简单、便于物理实现、节省设备等优点,所以目前在计算机中数都是采用二进制数表示。但是二进制数书写起来太长,且不便阅读和记忆。目前大部分微型机是8位、16位或32位的,都是4的整数倍,而4位二进制数即是1位十六进制数,所以微型机广泛采用十六进制数来缩写二进制数。十六进制数用0~9、A~F共16个数码表示十进制数0~15。1个8位的二进制数用2位十六进制数表示,1个16位的二进制数用4位十六进制数表示等。这样书写方便,且便于阅读和记忆。进制数代表符号:B(Binary)—二进制;O(Octal)—八进制;D(Decimal)或不加—十进制;H(Hexadecimal)十六进制。UniversityOfJiNan8II.各种进制数转换成十进制数各种进制数转换成十进制数的方法是:将各进制数先按权展多项式,再利用十进制运算法则求和,即可得到该数对应的十进制数。【例1-1】将二进制数1001.101转换为十进制数。解:1001.101B=1×23+0×22+0×21+1×20+1×2-1+0×2-2+1×2-3=8+1+0.5+0.125=9.625III..十进制数转换为二、八、十六进制数1)整数部分转换。十进制整数转换成M进制数可用除M取余法,即用M不断地除待转换的十进制数,直到商等于0为止。将所得的各次余数依倒序排列,即可得到所转换的M进制整数。2)小数部分转换。十进制小数转换成M进制数可用乘M取整法,即用M不断地乘待转换的十进制数,直到积等于0为止。将所得的各次整数依顺序排列,即可得到所转换的M进制小数。UniversityOfJiNan9•【例1-2】将十进制数168.686转换为十六进制数。解:分析:十进制数168.686既有整数又有小数,所以要分为两步转换。整数部分168采用除16取余法:161681610余数8,K0=80余数10,K1=A168=A8H小数部分0.686采用乘16取整法:0.686×16=10.976K-1=A0.976×16=15.616K-2=F0.616×16=9.856K-3=90.856×16=13.696K-4=D0.696×16=11.136K-5=B0.686≈0.AF9DBH把整数和小数部分结合起来即为最后结果168.686≈A8.AF9DBHUniversityOfJiNan101.2.2二进制数的算术运算二进制数不仅物理上容易实现,而且算术运算也比较简单,其加、减法遵循“逢2进1”、“借1当2”的原则。1.二进制加法1位二进制数的加法规则如下:0+0=00+1=11+0=11+1=10(有进位)2.二进制减法1位二进制数减法规则如下:1-0=11-1=00-0=00-1=1(有借位)3.二进制乘法1位二进制乘法规则如下:0×0=00×1=01×0=01×1=14.二进制除法二进制除法的运算过程类似于十进制除法的运算过程。UniversityOfJiNan111.2.3二进制数的逻辑运算1.“与”运算(AND)“与”运算又称逻辑乘,运算符为·或∧。“与”运算的规则如下:0·0=00·1=1·0=01·1=12.“或”运算(OR)“或”运算又称逻辑加,运算符为+或∨。“或”运算的规则如下:0+0=00+1=1+0=11+1=13.“非”运算(NOT)“非”运算又称逻辑非,如变量A的“非”运算记作。“非”运算的规则如下:4.“异或”运算(XOR)“异或”运算的运算符为,其运算规则如下:00=001=10=111=0UniversityOfJiNan121.2.4带符号数的表示方法——原码、反码、补码•在前面讨论的二进制数运算均为无符号数运算,但实际的数值是带有符号的,既可能是正数,也可能是负数,前者符号用“+”号表示,后者符号用“-”号表示,运算的结果也可能是正数,也可能是负数。•由于计算机只能识别0和1,因此,在计算机中通常把一个二进制数的最高位作为符号位,以表示数值的正与负(若用8位表示一个数,则D7位为符号位;若用16位表示一个数,则D15位为符号位),并用0表示“+”;用1表示“-”。UniversityOfJiNan13•1.原码正数的符号位用0表示,负数的符号位用1表示,数值部分用真值的绝对值来表示的二进制数称之为原码。•2.反码一个正数的反码,等于该数的原码;一个负数的反码,等于该负数的原码符号位不变(即为1),数值位按位求反(即0变1,1变0)。•3.补码正数的补码与原码相同;负数的补码为该负数的原码符号位不变,数值位逐位求反并在末位加1。UniversityOfJiNan14归纳如下:正数的原码、反码、补码就是该数本身。负数的原码其符号位为1,数值位不变。负数的反码其符号位为1,数值位逐位求反。负数的补码其符号位为1,数值位逐位求反并在末位加1。【例1-3】假设X1=+83,X2=-76,当用8位二进制数表示一个数时,求X1、X2的原码、反码及补码。解:[X1]原=[X1]反=[X1]补=01010011B[X2]原=11001100B[X2]反=10110011B[X2]补=[X]反+1=10110100BUniversityOfJiNan151.2.5定点数与浮点数定点数和浮点数的概念计算机处理的数值数据多数带有小数,小数点在计算机中通常有两种表示方法,一种是约定所有数值数据的小数点隐含在某一个固定位置上,称为定点表示法,简称定点数;另一种是小数点位置可以浮动,称为浮点表示法,简称浮点数。UniversityOfJiNan161.定点表示法•所谓定点表示法,即约定机器中所有数据的小数点位置是固定不变的。在计算机中通常采用两种简单的约定:将小数点的位置固定在数据的最高位之前,或者是固定在最低位之后。一般常称前者为定点小数,后者为定点整数。•定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。若数据x的形式为x=x0.x1x2…xn(其中x0为符号位,x1~xn是数值的有效部分,也称为尾数,x1为最高有效位),则在计算机中的表示形式为UniversityOfJiNan17•一般说来,如果最末位xn=1,前面各位都为0,则数的绝对值最小,即|x|min=2-n。如果各位均为1,则数的绝对值最大,即|x|max=1-2-n。所以定点小数的表示范围为2-n≤|x|≤1-2-n•定点整数是纯整数,约定的小数点位置在有效数值部分最低位之后。若数据x的形式为x=x0x1x2…xn(其中x0为符号位,x1~xn是尾数,xn为最低有效位),则在计算机中的表示形式为UniversityOfJiNan定点整数的表示范围为1≤|x|≤2n-1当数据小于定点数能表示的最小值时,计算机将它们作0处理,称为下溢;大于定点数能表示的最大值时,计算机将无法表示,称为上溢。上溢和下溢统称为溢出。计算机采用定点数表示时,对于既有整数又有小数的原始数据,需要设定一个比例因子,数据按其缩小成定点小数或扩大成定点整数再参加运算。运算结果根据比例因子还原成实际数值。若比例因子选择不当,往往会使运算结果产生溢出或降低数据的有效精度。用定点数进行运算处理的计算机被称为定点机。18UniversityOfJiNan192.浮点表示法与科学计数法相似,任意一个J进制数N,总可以写成N=JE×M式中,M称为数N的尾数(Mantissa),是一个纯小数;E为数N的阶码(Exponent),是一个整数;J称为比例因子JE的底数。这种表示方法相当于数的小数点位置随比例因子的不同而在一定范围内可以自由浮动,所以称为浮点表示法。底数是事先约定好的(常取2),在计算机中不出现。在机器中表示一个浮点数时,一是要给出尾数,用定点小数形式表示。尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。UniversityOfJiNan20二是要给出阶码,用整数形式表示,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。浮点数也要有符号位。因此一个机器浮点数应当由阶码和尾数及其符号位组成:其中ES表示阶码的符号,占一位;E1~En为阶码值,占n位;尾符是数N的符号,也要占一位。当底数取2时,二进制数N的小数点每右移一位,阶码减小1,相应尾数右移一位;反之,小数点每左移一位,阶码加1,相应尾数左移一位。若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是唯一的。例如11.01也可以表示成0.01101×2-3,0.1101×2-2等。为了提高数据的表示精度,当尾数的值不为0时,其绝对值应大于等于0.5,即尾数域的最高有效位应为1,否则要以修改阶码同时左右移小数点的方法,使其变成这一要求的表示形式,这称为浮点数的规格化表示。UniversityOfJiNan21当一个浮点数的尾数为0时,不论其阶码为何值,或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成0值,称为机器零。浮点数所表示的范围比定点数大。假设机器中的数由8位二进制数表示(
本文标题:第一章 单片机概述及基础知识
链接地址:https://www.777doc.com/doc-4042457 .html