单片机技术及应用第1章单片机基础知识第1章单片机基础知识1.1单片微型计算机单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机。它包括中央处理器(CPU),用RAM构成的数据存储器,用ROM构成的程序存储器,定时/计数器,各种输入/输出(I/O)接口和时钟电路。1.1.1单片机最小系统•单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。•对一般的51系列单片机来说,由单片机、晶振电路和复位电路,便组成了一个最小系统.但是一般我们在设计中总是喜欢把按键输入、显示输出等加到上述电路中,成为最小系统。1.1.2单片机的基本知识1.单片机单片机是微型计算机中的一种,是把微型计算机中的微处理器、存储器、I/O接口、定时器/计数器、串行接口、中断系统等电路集成在一块集成电路芯片上形成的微型计算机。因而被称为单片微型计算机,简称为单片机。2.单片机和单片机系统单片机只是一个芯片,而单片机系统则是在单片机芯片的基础上扩展其他电路或芯片构成的具有一定应用功能的计算机系统。通常所说的单片机系统都是为实现某一控制应用需要由用户设计的,是一个围绕单片机芯片而组建的计算机应用系统。在单片机系统中,单片机处于核心地位,是构成单片机系统的硬件和软件基础。3.单片机应用系统和单片机开发系统单片机应用系统是为控制应用而设计的,该系统与控制对象结合在一起使用,是单片机开发应用的成果。但由于软硬件资源所限,单片机系统本身不能实现自我开发,要进行系统开发设计,必须使用专门的单片机开发系统。4.单片机的程序设计语言和软件单片机程序设计语言和软件,主要是指在开发系统中使用的语言和软件。在单片机开发系统中使用机器语言、汇编语言和高级语言,而在单片机应用系统中只使用机器语言。机器语言是用二进制代码表示的单片机指令,用机器语言构成的程序称之为目标程序。汇编语言是用符号表示的指令,汇编语言是对机器语言的改进,是单片机最常用的程序设计语言。虽然机器语言和汇编语言都是高效的计算机语言,但它们都是面向机器的低级语言,不便记忆和使用,且与单片机硬件关系密切,这就要求程序设计人员必须精通单片机的硬件系统和指令系统。单片机也开始尝试使用高级语言,其中编译型语言有Pl、M5l、C-5l、C、MBASIC-51等,解释型的有MBASIC和MBASIC-52等。1.1.3单片机的发展概况目前国际市场上8位、16位单片机系列已有很多,但是,在国内使用较多的系列是Intel公司的产品,其中又以MCS-51系列单片机应用尤为广泛,二十几年经久不衰,而且还在更进一步发展完善,价格越来越低,性能越来越好。单片机技术正以惊人的速度向前发展,就市场上已出现的单片机而言,其技术革新与进步主要表现在以下几个方面:1.CPU的发展2.片内存储器的发展(1)片内存储器的发展(2)片内EPROM开始E2PROM化(3)闪速存储器(4)串行存储器(5)片内程序的保密措施3.片内输入输出接口功能4.单片机在工艺上的提高5.片内固化应用软件和系统软件1.1.4单片机主要品种简介1.4位单片机高档8位单片机的巨大产量挤占了部分4位机的市场。为了保住自己的领地,4位机的结构和功能也发生了很大的改进。其一是增强片内I/O功能,把应用系统所需的LED、LCD、VFD(FIP)显示器驱动电路都集成在单片机芯片内,使其成为“单片”控制器。目前8位单片机和16位单片机还很少做到这点。其二是提高指令执行速度,新型的4位单片机采用1.5μmCOMS工艺,其指令执行速度小于1μs。其三是增大片内ROM、RAM,有的ROM已达到32KB,RAM已达到1K×4位。其四是低压低功耗,有的在2.2V下也能正常工作,有的甚至在μA级电流时也能正常工作。其实有的4位单片机性能已不低于8位单片机。•2.8位单片机•8位单片机年产量目前已达到十亿片,约占当年单片机产量的70%。主流机型是Intel公司的8051及其系列产品和派生产品。风靡全球的IC卡,大多采用此单片机构造。Motorola公司的6800(6502)派系也是很有名气的。其中MC68HC11是功能很强的8位单片机,具备16位机的I/O功能。而MC68HC05则具有4位单片机的价格,是4位单片机的强劲竞争者。Z80派系的单片机相对小一些,但NEC公司的μPD78K系列的单片机功能较强,被誉为新一代的8位单片机。•3.16位单片机•16位单片机目前产量只占整个单片机市场的5%。16位单片机的性能都较高,有乘除指令、快速I/O功能。有的还有DMA传送,可支持C或者FORTH语言等等。其主要机型是Intel•的8096。美国国家半导体公司的HPC单片机性能价格比较高,已占CMOS工艺16位单片机销售量的首位。日本Hitachi公司的H8/500单片机的性能目前最高,其指令执行速度为200ns,片内FPROM/ROM达62K字节,片内RAM为2K字节,A/D为10位,转换时间为13.8μs,还有DMA功能。•4.32位单片机•32位单片机更多地称作32位嵌入式控制器。它主要应用于机器人、光盘、激光打印机等的控制器。这些控制器的地址线为24~32位,寻址能力为16~400MB,并且都有很高的指令执行速度和快速运算能力。例如,Intel公司的80960KB在20MHz时钟下,其指令速度为7.5MIPS,在它内部还有IEEE-754标准的80位浮点运算部件,在25MHz时钟下,可以达到5.2Mwhetstones/s.这些控制器都能直接支持高级语言和实时多任务处理。1.1.5单片机的应用•单片机是在一块芯片上集成了一台微型计算机所需的CPU、存储器、输入/输出部件和时钟电路等。因此它具有体积小,使用灵活、成本低、易于产品化、抗干扰能力强,可在各种恶劣环境下可靠地工作等特点。特别是它应用面广,控制能力强,使它在工业控制、智能仪表、外设控制、家用电器、机器人、军事装置等方面得到了广泛的应用。单片机主要可用于以下几方面:1.测控系统中的应用控制系统特别是工业控制系统的工作环境恶劣,各种干扰也强,而且往往要求实时控制,故要求控制系统工作稳定、可靠、抗干扰能力强。单片机是最适宜用于控制领域。例如炉子恒温控制、电镀生产线自动控制等。2.智能仪表中的应用用单片机制作的测量、控制仪表,能使仪表向数字化、智能化、多功能化、柔性化发展,并使监测、处理、控制等功能一体化,使仪表重量大大减轻,便于携带和使用,同时降低了成本,提高了性能价格比。如数字式RLC测量仪、智能转速表、计时器等。3.智能产品单片机与传统的机械产品结合,使传统机械产品结构简化、控制智能化,构成新型的机、电、仪一体化产品。如数控车床、智能电动玩具、各种家用电器和通信设备等。4.在智能计算机外设中的应用在计算机应用系统中,除通用外部设备(键盘、显示器、打印机)外,还有许多用于外部通信、数据采集、多路分配管理、驱动控制等接口。如果这些外部设备和接口全部由主机管理,势必造成主机负担过重、运行速度降低,并且不能提高对各种接口的管理水平。如果采用单片机专门对接口进行控制和管理,则主机和单片机就能并行工作,这不仅大大提高系统的运算速度,而且单片机还可对接口信息进行预处理,以减少主机和接口间的通信密度、提高接口控制管理的水平。如绘图仪控制器,磁带机、打印机的控制器等等。计算机中数和字符的表示1.概述2.无符号数的表示3.有符号数的表示4.定点数和浮点数5.计算机中的二进制编码一、计算机中数和字符的存放•数据存放于存储器或寄存器中。•数据按字长一般分为:8位(字节BYTE,简写为B)16位(字WORD)32位(双字DWORD)64位、128位、256位概述二、数制及其转换1、数制十进制(Decimal)后缀加“D”例如:25D或25(后缀可略)二进制(Binary)后缀加“B”例如:11010001B八进制(Octonary)后缀加“O”或“Q”例如:76Q十六进制(Hexadecimal)后缀加“H”例如:0F6H(字符开头的数前需加“0”)2、数制之间的转换•任意进制转换为十进制例如:10101101B=27+25+23+22+20=1794F.8H=4*161+15*160+8*16-1=79.5•十进制转换为任意进制整数部分:连续除以基数取余倒计法小数部分:连续乘以基数取整顺计法•二进制与十六进制间的转换一个十六进制数对应四位二进制数例如:6E3.C2H=011011100011.11000010B1100111.111010B=67.E8H加法运算:11010011+10001100101011111进位减法运算:01110011-11010010110100001借位三、二进制数的运算1、二进制数的算术运算特点:按一定字长进行,运算结果超过字长则产生进位、借位或自动丢失。1)逻辑乘(与)AND11010001AND11100011110000012)逻辑加(或)OR11010001OR11100011111100112、二进制数的逻辑运算特点:按位进行,无进位或借位4)逻辑异或XOR11010001XOR11100101001101003)逻辑反(非)NOTNOT11010011=00101100四、关于模(MOD)的概念简单地说,模是能表示的最大数再加1。例如,8位寄存器能表示的最大数是11111111B=255其模为28=256(MOD28)计算机中的运算都是在一定模值下进行的,例:200+85=29(MOD28)9+4=1(MOD12)计算机中数和字符的表示1.概述2.无符号数的表示3.有符号数的表示4.定点数和浮点数5.计算机中的二进制编码当n=8时,可表示的无符号数的范围为0~255,当n=16时,可表示的无符号数的范围为0~65535。在计算机中最常用的无符号整数是表示地址的数无符号数的表示机器字长的所有位都参与表示数值。若计算机的字长为n位,则n位无符号数可表示的数X的范围是0≤X≤2-1n计算机中数和字符的表示1.概述2.无符号数的表示3.有符号数的表示4.定点数和浮点数5.计算机中的二进制编码1.机器数与真值计算机中的数是用二进制表示的,数的符号也是用二进制表示的。通常一个数的最高位为符号位,为0表示正数,为1表示负数。若字长为8位的计算机,则D7为符号位,D6~D0为数值位。D7D6D5D4D3D2D1D0符号位数值位有符号数的表示这种符号数码化的数称为机器数。机器数所代表的实际数值称为真值。若计算机的字长为n位,则n位有符号数可表示的数X的范围是-2n-1≤X≤+(2n-1–1)当n=8时,可表示的有符号数的范围为-128~127,当n=16时,可表示的有符号数的范围为-32768~32767。机器数可以用不同的码制来表示,常用的有原码和补码表示法。2.原码表示法最高位为符号位,0表示正数,1表示负数,其余各位为数值位,这种表示法称为原码表示法。例:若X=+97则[X]原=01100001B若X=-97则[X]原=11100001B原码表示数0有两种表示形式:[+0]原=00000000B[-0]原=10000000B注意:n位原码可表示的数X的范围是:-2n-1+1≤X≤+2n-1-13.反码表示法反码表示法中,正数的反码和原码相同;负数的反码可由其原码除符号位,保持不变外,其余各位按位取反,即0变1、1变0。例:若X=+45,[X]反=00101101BX=-45,[X]反=11010010B4.补码表示法补码表示法中,正数的补码和原码相同;负数的补码可由其原码除符号位,保持不变外,其余各位按位取反,再在最末位加1而形成。例:假设机器字长为8位,则[X]原=01100001B则[+97]补=01100001B[X]原=11100001B则[-97]补=10011111B10011110B+1补码具有以下特点:①[+0]补=[-0]补=00000000B②n位二进制补码所能表示的数值范围为:-2n-1≤X≤+2n-1-1若n=8,则8位二进制补码所能表示的数值范围为-128~+127。③对