华南理工大学计算机学院俞鹤伟单片机原理与接口技术华南理工大学网络教育学院华南理工大学计算机学院俞鹤伟【课程简介】《单片机原理与接口技术》是计算机类、电类、信息类等专业的一门专业课。该课程主要包括单片机的硬件结构、指令系统、程序设计、单片机应用系统的扩展及开发等内容。【教学目标】通过本课程的学习,学生应熟悉单片机在信息技术、自动化与工业控制等领域的应用;了解单片机的硬件结构及工作原理,学习单片机的指令系统和编程方法,掌握单片机应用系统的研制开发的基本技能,为将来从事电气自动化、电子技术应用与开发、计算机应用技术、自动控制等工作奠定坚实的基础。华南理工大学计算机学院俞鹤伟【主讲教师】俞鹤伟博士副教授hwyu@scut.edu.cn【课时安排】64学时【教材】《单片机原理与接口技术》吴晓苏,张中明.人民邮电出版社.2009.5【参考书】《单片机原理与接口技术》李全利.高等教育出版社.2009.1华南理工大学计算机学院俞鹤伟单片机的基础知识第一章华南理工大学计算机学院俞鹤伟【学习目标】1.理解单片机的特点、应用、发展趋势2.了解MCS-51系列单片机常用芯片3.理解单片机中的数制与码制【重点内容】1.单片机的概念2.80C51系列单片机的内部配置3.掌握二进制、十进制和十六进制数的转换4.掌握计算机中带符号数的表示方法华南理工大学计算机学院俞鹤伟1.1.1单片机的概念单片机SingleChipMicrocomputer微控制器MicroControllerUnit嵌入式微控制器EmbeddedMicrocontroller1.1概述华南理工大学计算机学院俞鹤伟1.单片机SingleChipMicrocomputer中央处理器、存储器、定时器/计数器、I/O接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计算机。2.微控制器MicroControllerUnit单片机应用于工业控制领域,在芯片内集成了许多面对测控对象的接口电路,如ADC、DAC、高速I/O口、PWM、WDT等。这些对外电路及外设接口已经突破了微型计算机传统的体系结构,因此也称之为微型控制器。华南理工大学计算机学院俞鹤伟3.嵌入式微控制器EmbeddedMicrocontroller单片机的芯片体积小,在现场环境下可高速可靠运行,在工业现场它完全作嵌入式应用,是一台以单芯片形态作为嵌入式应用的计算机,它有唯一的、专门为嵌入式应用而设计的体系结构和指令系统,因此单片机又称为嵌入式微控制器。华南理工大学计算机学院俞鹤伟1.1.2单片机的发展历史1971年,Intel公司生产出第一片4位单片机4004。1990年~,微控制器的全面发展阶段,各公司的产品在尽量兼容的同时,向高速、强运算能力、寻址范围大以及小型廉价方面发展。1976~1978年,低性能8位单片机阶段,单片机的探索阶段。以Intel公司的MCS-48为代表,采用了单片结构,主要用于工业领域。1978~1982年,高性能8位单片机阶段,单片机的完善阶段。以Intel公司的MCS-51为代表,这类单片机的应用范围较广,并在不断的改进和发展。1982~1990年,16位单片机阶段,例如Intel公司的MCS-96。实时处理能力更强,体现了微控制器的特征。华南理工大学计算机学院俞鹤伟1.1.3单片机的应用工业自动化控制智能仪器仪表智能化家用电器办公自动化华南理工大学计算机学院俞鹤伟1.2单片机的发展趋势功能更强功耗更低性能更高系统更简化华南理工大学计算机学院俞鹤伟1.380C51系列单片机1.3.1MCS-51系列单片机的常用芯片52子系列:属增强型产品,根据片内ROM的配置,对应的芯片为8032、8052、8752、80C32、80C52、87C52。51子系列:属基本型产品,根据片内ROM的配置,对应的芯片为8031、8051、8751、80C31、80C51、87C51。华南理工大学计算机学院俞鹤伟两大子系列单片机的主要硬件特性片内ROM型号ROM容量RAM容量寻址范围I/O特性中断源数量无ROMEPROM计数器并行口8031805187514KB128B64KB2*164*8580C3180C5187C514KB128B64KB2*164*858032805287528KB256B64KB3*164*8680C3280C5287C528KB256B64KB3*164*86华南理工大学计算机学院俞鹤伟1.3.280C51系列单片机以80C51为内核,通过内部资源的扩展和删减,具有优异性能的各具特色的单片机。特点:(1)普遍采用CMOS工艺,通常都能满足CMOS与TTL的兼容。(2)都和MCS-51系列有相同的指令系统。(3)所有扩展功能的控制,并行扩展总线和串行总线UART都保持不变。(4)系统的管理仍采用SFR模式,增加的SFR不会和原有的80C51的21个SFR产生地址冲突。(5)最大限度保持双列直插DIP40封装引脚不变。华南理工大学计算机学院俞鹤伟1.4单片机的数制与码制1.4.1数制及其转换二进制数:计算机能处理的数据十进制数:人们日常用的数十六进制数:用来缩写二进制数华南理工大学计算机学院俞鹤伟十进制二进制十六进制十进制二进制十六进制000000810008100011910019200102101010A300113111011B401004121100C501015131101D601106141110E701117151111F表1-2十进制、二进制、十六进制数对照表华南理工大学计算机学院俞鹤伟1.二进制数和十进制数之间的相互转换二进制转换成十进制:展开求和法,即将二进制数按权展开再相加。例如:(101100)B=1×25+0×24+1×23+1×22+0×21+0×20=32+0+8+4+0+0=44十进制转换成二进制:除2取余法,即用2不断地去除待转换的十进制数,直至商等于0为止,再将所得的各次余数依次倒序排列。243余数2211210125022121001即43D=101011B。例如:华南理工大学计算机学院俞鹤伟2.二进制数和十六进制数之间的相互转换二进制整数转换为十六进制数:则在其左边添加0,以凑成4位,每组按表1-2用1位十六进制数表示。例如:10011100100B→010011100100B=4E4H十六进制数转换为二进制数:按表1-2用4位二进制数表示1位十六进制数。例如:8DF3H=1000110111110011B华南理工大学计算机学院俞鹤伟1.4.2有符号数的表示有符号数在计算机中有原码、反码和补码三种表示方法。数值在计算机中表示形式为机器数,用“0”和“1”表示数值正负的“+”和“-”。一般在计算机中,对于正数,最高位规定为“0”;对于负数,最高位规定为“1”。例如:+100=01100100B-100=11100100BD7D6D5D4D3D2D1D0符号位数值位华南理工大学计算机学院俞鹤伟1.原码用最高位表示数的正负,其余各位表示数的绝对值。例如:[+5]原码=00000101B=05H[-5]原码=10000101B=85H如果计算机的数据宽度为8,即字长为1字节,则原码能表示数值的范围为FFH~7FH(-127~-0,+0~+127),共256个。在计算机进行数值运算时一般不采用原码运算。华南理工大学计算机学院俞鹤伟2.反码正数的反码与原码相同;负数的反码为其原码的符号位不变,数值部分按位取反。例如:[+5]反码=[+5]原码=00000101B=05H[-5]反码=11111010B=FAH如果计算机的数据宽度为8,即字长为1字节,则反码能表示数值的范围为80H~7FH(-127~-0,+0~+127),共256个。反码表示“0”时,可以有两种数值,即00000000B(+0)和11111111B(-0)两种数值。华南理工大学计算机学院俞鹤伟3.补码正数的补码与原码相同;负数的补码为其反码加1,但符号位不变。例如:[+5]补码=[+5]反码=[+5]原码=00000101B=05H[-5]补码=[-5]反码+1=11111010B+1=11111011B=FBH[+0]补码=[+0]原码=[+0]反码=00000000B=00H[-0]补码=[-0]反码+1=11111111+1=[1]00000000B=00H如果计算机的数据宽度为8,即字长为1字节,补码的表示范围为80H~7FH(-128~+127),共256个。80H(10000000B)在计算机中表示最小的负整数,即-128,10000001~11111111依次表示-127~-1。在计算机进行数值运算时一般采用补码运算。华南理工大学计算机学院俞鹤伟原码、反码和补码对应关系表无符号二进制数无符号十进制数原码反码补码000000000+0+00000000011+1+1+1000000102+2+2+2……………01111101125+125+125+12501111110126+126+126+12601111111127+127+127+12710000000128-0-127-12810000001129-1-126-12710000010130-2-125-126……………11111101253-125-2-311111110254-126-1-211111111255-127-0-1华南理工大学计算机学院俞鹤伟(1)在计算机中带符号数都是以补码的形式储存的,学习原码和反码的目的是为了更好地理解补码。(2)补码表示法能使符号位与有效值部分一起参加运算,从而简化运算规则。(3)补码表示法能使减法运算转换为加法运算,简化计算机的硬件结构。补码的作用华南理工大学计算机学院俞鹤伟1.4.3十进制数的编码——BCD码定义:用二进制代码表示十进制数。特点:保留十进制的权,数字则用二进制表示。即仍然是逢十进一,但又是一组二进制代码。8421BCD码编码方法:每4位二进制数表示一个十进制字符,这4位中各位的权依次是:8、4、2、1。十进制数01234567898421BCD码0000000100100011010001010110011110001001华南理工大学计算机学院俞鹤伟BCD码的运算BCD码用4位二进制数表示,但4位二进制数最多可表示16种状态,余下6种状态,1010~1111在BCD编码中称为非法码或冗余码。在BCD码的运算中将会出现冗余码,需要作某些修正,才能得到正确的结果。BCD码修正方法若相加后的低4位(或高4位)二进制数大于9,或大于15(即低4位或高4位的最高位有进位),则应对低4位(或高4位)加6修正。在单片机中,由BCD码调整指令DA来完成BCD码的修正。华南理工大学计算机学院俞鹤伟1.4.4ASCII码美国信息交换标准代码(AmericanStandedCodeforInformationInterchange)。在计算机中,一些要处理的信息(如字母、标点符号、数字符号、文字符号等)也必须用二进制数表示,即在计算机中需将这些信息代码化,以便于计算机识别、存储及处理。华南理工大学计算机学院俞鹤伟ASCII编码表b7b6b5b4b3b2b10000010100111001011101110000NULDLESP0@P、p0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB‘7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,L\l|1101CRGS-=M]m}1110SORS.NΩn~1111SIUS/?O―oDEL