您好,欢迎访问三七文档
第一章微型计算机的基本概念第一节概述蒸汽机——给人类带来了渗透到各个领域的动力微型机——给人类带来了渗透到各个领域的智能微型机从71年问世以来,有两个发展趋势高档:高速、高性能,典型代表:Z80~Z8000、6800~68000;8080、8085、8086、80186、80286、80386、80486、80586(Penturm)PII、PIII、PIV80X86单片机:稳定、可靠、小而廉。50多个系列,几百个品种IntelMCS-48,Zilog、Rokwell、Motorola、PIC……IntelMCS-51系列简略介绍微型计算机的最基本的概念学习单片机计算机硬件技术基础,将要学习两个发展方向单片微机原理及应用一、微型计算机的组成1.计算机的基本结构五大部分数据数据输入命令数操存据作取命指命令令令输出命令CPU内存外围设备接口主机*所有操作都是在控制器发出的控制信号的控制下完成的。*控制器根据程序产生控制信号*程序由编程人员编制2.几个术语1)位(bit)计算机信息的最小单位。二进制数的一位(“0”或“1”)称为一个bit2)字(word)作为一个整体来进行处理的一组二进制代码计算机是以“字”为基本单位进行传送、存取、运算…..3)字长(wordlength)构成一个“字”的二进制代码的数位,称为字长。如:8位字长、16位字长、32位或64位字长字长是计算机性能的标志,字长越长,精度越高、速度越快、处理能力越强。MCS-51的字长是8位输入设备运算器存储器输出设备控制器3.微型机的结构典型结构:三总线结构:用三组总线把构成微型机的各个部分连成一个整体。Microcomputer(MC)=CPU+M+I/O+BusI/OInput/OutputInterface::::1)微处理器(CPU)计算机的心脏,其重要性不言而喻。Microprocessor(CPU)=ALU+CU+RegistersALUArithmeticLogicUnitCUControlUnit中央处理功能:CentralProcessingFunction微处理器是中央处理单元——CentralProcessingUnit从功能角度,微处理器又多了一个名称:CPU而不是放在ALU、CU…等部件上前者简单得多,正好是我们需要掌握的;后者非常非常复杂,正好是我们可以忽略的。CPU存储器I/O接口ABDBCB外设存储器I/O接口外设在学习CPU时,主要精力应放在:工作寄存器,累加器Acc,标志寄存器F,程序计数器PC……2)存储器存储并提供信息(程序、数据)的载体3)输入/输出接口(I/O接口)*Interface(接口,界面)由于种种原因(电压、数据形式、传送速度…等),CPU不能直接与外设打交道,交换信息。而必须通过各种接口电路来与CPU打交道。4)总线(Bus)CPU通常是一块芯片,M、I/O通常都是多块芯片,各个芯片之间的通信是通过三组总线来完成的。DBDataBus双向,不是同时在两个方向上传送。宽度与CPU的字长有关,8位,16位,32位ABAddressBus单向CPUCBControlBus总体双向,其中每一条是单向。采用总线后,各个芯片之间不独立布线,大大减少连线的数量,增强可靠性。可以很方便地构成微型计算机系统,具有更大的灵活性,更好的可扩展性和可维修性。问题:在计算机系统中,常常是多个数据源“挂”在同一DB上,CPU在某一瞬间只能读某一数据源的数据,而其它“源”都不允许向DB提供数据。这就要求所有未被访问的数据源必须与DB“脱钩”,用术语来说,叫“隔离”或“准连接状态”。如何解决?采用三态门CPUI/O接口外设DB控制…控制控制……C=0B高阻ABC=1B=AC4.微型计算机系统MicrocomputerSystem(MCS)=MC+I/ODevice+Software5.单片机——本课程将要介绍的内容SingleChipMicrocomputer把CPU、M、并行口、串行口、定时器/计数器以及A/D、D/A……等电路集成在一块芯片上,构成单片机。(也称为Microcontroller,微控制器)数据源1数据源N三态缓冲器三态缓冲器锁存器输出设备二、计算机中的数和编码(P11)1.三种进位计数制问题的引出:十进制数十进制数*由此引出十二之间的转换*二进制的缺点:书写冗长、易错。由此引出十六进制数,作为二进制数的简化书写符号。于是,需要介绍三种计数系统的特点以及它们之间的相互转换。1)十进制数*0、1、2….9,十个数字符号*逢十进位*按权展开式999.99D=9X102+9X101+9X100+9X10-1+9X10-2“权”——在按位计数制度中,为了表示某位的实际值所必须乘上的一个因子。在十进制中:……102、101、100、10-1、10-2…..各位的“权”同样一个“9”,在不同的数位上就有不同的“价值”,不同的“权”。2)二进制数*0、1,两个数字符号*逢二进位*按权展开式1101.001B=1x23+1x22+0x21+1x20+0x2-1+0x2-2+1x2-3计算机系统计算机采用二进制:只能认识和处理二进制数即:“0”、“1”以及由“0”“1”组成的信息为方便教学,交换标题“二”“三”。=8+4+0+1+0+0+0.125=13.125D3)十六进制数*符号:0、1、2……9,A、B、C、D、E、F十六个数字符号借用十进制的十个符号借用六个英文字母*逢十六进位*按权展开式327H=3x162+2x161+7x160=768+32+7=807D2.三种进位计数制之间的转换1)二十六“一比四的”对应关系:每一位十六进制数对应四位二进制数十六二00000100012001030011401005010160110701118100091001A1010B1011C1100D1101E1110F1111构成十六进制的16个数字符号例:十六二F8H=11111000B2F0.4AH=001011110000.01001010B例:二十六1001111001010.01011B=?H以“.”为准,以四位二进制数为一组,向左右分段。不足四位添00001001111001010.01011000B13CA.58H2)二十六方法:按权展开求和3)十方法:整数除以J,取余小数乘以J,取整例十二(J=2)十二十六整数、小数分而治之二进制数冗长书写容易出错十六进制数紧凑,简洁,书写不易出错11.6875D=?B211余数25122121001MSB(最高有效位)0.6875取整x2MSB11.3750x200.7500x211.5000x211.000011.6875D=1011.1011B例十十六1192.9032D=?H161192余数1674816410(A)040.9032取整x16E14.4512x1677.2192x1633.50721192.9032D=4A8.E73H(如果精度不够,可以再x16,取整)3.带符号数的表示(1)无符号数本课程将介绍8位字长的单片机*字节:1byte=8bitMSBLSB(MostSignificantBit)(LeastSignificantBit)*对于无符号数而言,8位数符都表示数值。000000000000000011000000102::11111111255D8位(一个字节)二进制数所能表达的数的范围是0~255D7D6D5D4D3D2D1D0(2)带符号数*怎么表示带符号数?即:计算机怎么表示“+”、“-”?规定:MSBLSB符号位数值位MSB=0表示+;MSB=1表示-这样,从原则上解决了在计算机中,符号的表达问题。对于8位二进制数码,只有七位用于表示数值。(3)机器数和真值*符号数量化从原则上解决了在机器中,正、负数的表示问题,但引出了新的问题:由于符号的数量化,就必然使得一个数的真实值和它在机器中的表达形式之间出现差别,为此引入“机器数”和“真值”这两个术语*机器数:在计算机中使用的、连同符号位一起数字化了的数*真值:机器数所表示的真实值(4)带符号数的机器数表示方法由于表示数值的规律不同,带符号数有三种表达方式:原码、反码和补码要求:会写出某一数的原码、反码和补码;会找出真值。D7D6D5D4D3D2D1D0首先把十进制数转换成为二进制形式,这是数据在计算机中唯一能够存储、处理和识别的形式。1)原码的求法:符号位数值位(45)10=(00101101)2[+45]原=00101101B=2DH(32)10=(00100000)2[-32]原=10100000B=A0H二进制表达方式十六制表达方式2)反码的求法:正数的反码与原码相同负数的反码:将其原码除符号位外各位取反符号位数值位(4)10=(00000100)2[+4]原码=[+4]反=00000100B=04H(31)10=(00011111)2[-31]原码=10011111B=9FH[-31]反码=11100000B=E0H*已知反码求真值符号位=0:数值位即为真值,前面加+符号位=1;数值位取反即为真值的绝对值,前面加-[X]反码=00000100B则X=+0000100B=+4D[X]反码=11100000B则X=-0011111B=-31D3)补码的求法:正数的补码与原码相同负数的补码:将其原码除符号位外,各位取反加1(2)10=(00000010)2[+2]原码=[+2]补码=00000010B=02H法则[-2]原码=10000010B=82H[-2]反码=11111101B=FDH[-2]补码=11111110B=FEH(126)10=(01111110)2[+126]原码=[+126]补码=01111110B=7EH[-126]原码=11111110B=FEH[-126]反码=10000001B=81H[-126]补码=10000010B=82H*已知补码求真值符号位=0:数值位即为真值,前面加+符号位=1;数值位取补即为真值的绝对值,前面加-[X]补码=00001000BX=+0001000B=+8D[X]补码=10000010B[0000010]补码=1111101+1=1111110X=-1111110B=-126D4)原、反、补码小结:见表1-4P18*最高位总是符号位0:+;1:-*正数原、反、补“三位一体”;*只有负数才真正有原、反、补三种表达式。*8位二进制的原、反、补码所能表达的数的范围:原码:-127~+127;反码:-127~+127;补码:-128~+127法则4.补码运算三种码制,何以补码受到“青睐”?——采用补码后,加、减法可用一套加法装置来完成(1)补码的加减法运算规则补码运算流程示意,其中X、Y可以为+或-⊕YN例1X=33Y=45求X-Y=33-45=?X-Y=X+[-Y](减法运算变为加法运算)[33]补=00100001[45]补=00101101[-45]补=1101001100100001+110100111111010033-45=-[1110100]补=-0001100B=-12D[33-45]补=11110100XY[X]补[Y]补Z=D7D6D5D4D3D2D1D0D7=0?X+Y=+D6D5D4D3D2D1D0X+Y=-[D6D5D4D3D2D1D0]补33-45=-[1110100]补=-0001100B=-12D而33-45=-12可见,采用补码后,减法运算可以通过加法运算来实现,即:加、减法可以用一套加法电路来实现。(2)溢出与溢出判断两个8位二进制数的加法,注意是8位:求(-93)-59可以用加法实现(-93)+(-59)[-93]补=10100011[-59]补=1100010110100011+11000101进位101101000(8位寄存器中保留8位数据)很明显,这是一个错误的结果,两个负数相加,结果为正。问题出在哪里?8位二进制补码所能表达的数的范围是-128~+127。而-93-59,结果是-152,超过了8位二进制补码
本文标题:单片机第一章1
链接地址:https://www.777doc.com/doc-2606616 .html