单片机原理及应用 (2).ppt
单单片片机机原原理理及及应应用用光光电电工工程程学学院院1课程简介v课程性质:限选课(考查)课程性质:限选课(考查)v总学时:总学时:3232学时(其中实验学时(其中实验1212学时)学时)v成绩评定方法:平时成绩评定方法:平时10%10%(主要考察作业和到(主要考察作业和到课情况),实验课情况),实验30%30%(主要考察实验完成情况(主要考察实验完成情况和实验报告),考试和实验报告),考试60%60%。2本课程主要内容第一章第一章 单片机概述单片机概述第二章第二章 MCS-51 MCS-51单片机硬件结构单片机硬件结构第三章第三章 MCS-51 MCS-51单片机指令系统单片机指令系统第四章第四章 MCS-51 MCS-51汇编程序设计汇编程序设计第五章第五章 MCS-51 MCS-51单片机的中断系统单片机的中断系统第六章第六章 MCS-51 MCS-51单片机内部定时器单片机内部定时器/计数器计数器第七章第七章 单片机串行口及应用单片机串行口及应用第八章第八章 单片机的系统扩展单片机的系统扩展第九章第九章 单片机系统的接口(单片机系统的接口(*)3第一章第一章 单片机概述单片机概述一、微型计算机基础知识一、微型计算机基础知识二、单片机概述二、单片机概述 4一、微型计算机基础知识微型计算机基础知识主要介绍:主要介绍:1.电子计算机基本组成电子计算机基本组成 2.微机硬件系统结构微机硬件系统结构3.微型计算机工作过程微型计算机工作过程4.计算机中的数制(运算及转换)计算机中的数制(运算及转换)5.计算机中的编码计算机中的编码及转换及转换6.运算方法运算方法7.计算机语言计算机语言51.电子计算机基本组成电子计算机基本组成 计算机由计算机由硬件硬件和和软件软件两大部分组成。两大部分组成。硬件:系指构成计算机系统的硬件:系指构成计算机系统的物理实体或物理装物理实体或物理装置置,它由运算器、控制器、存储器、输入设备和,它由运算器、控制器、存储器、输入设备和输出设备等五大部分构成输出设备等五大部分构成 存贮器存贮器运算器运算器控制器控制器接接口口接接口口输输入入设设备备输输出出设设备备62.微机硬件系统结构微机硬件系统结构在微型计算机中,将运算器和控制器集成在微型计算机中,将运算器和控制器集成在一块在一块IC上,合称这为上,合称这为CPU CPU存贮器I/O接口I/O外设地址总线地址总线控制总线控制总线数据总线数据总线73.微型计算机工作过程微型计算机工作过程 根根据据冯冯诺诺依依曼曼原原理理构构成成的的现现代代计计算算机机的的工工作作原原理理可概括为:可概括为:存储程序和程序控制存储程序和程序控制。存存储储程程序序是是指指人人们们必必须须事事先先把把计计算算机机的的执执行行步步骤骤序序列列(即即程程序序)及及运运行行中中所所需需的的数数据据,通通过过一一定定的的方方式式输入并存储在计算机的存储器中。输入并存储在计算机的存储器中。程程序序控控制制是是指指计计算算机机自自动动地地逐逐一一取取出出程程序序中中的的一一条条条指令,加以分析并执行规定的操作。条指令,加以分析并执行规定的操作。8在计算机运行的过程中有两种信息在流动。在计算机运行的过程中有两种信息在流动。一一是是数数据据流流,这这包包括括原原始始数数据据和和指指令令,它它们们在在程程序序运运行行前前已已经经预预先先送送至至主主存存中中。在在运运行行程程序序时时数数据据送送至至运运算算器器参参与与运运算算,指指令令被被送送往往控控制器。制器。二二是是控控制制流流,它它是是由由控控制制器器根根据据指指令令的的内内容容发发出出的的,指指挥挥计计算算机机各各部部件件执执行行指指令令规规定定的的各各种操作或运算,并对执行流程进行控制。种操作或运算,并对执行流程进行控制。9计算机的基本工作过程计算机的基本工作过程 第三步:按序再取下一条指令,分析及执行依次周第三步:按序再取下一条指令,分析及执行依次周而复始执行指令序列的过程而复始执行指令序列的过程CPUCPU存贮器存贮器存贮器存贮器I/OI/O第一步:第一步:CPUCPU自动从存贮器中取指令自动从存贮器中取指令第二步:由第二步:由CPUCPU分析指令和执行指令分析指令和执行指令104.计算机中的数制(自学)计算机中的数制(自学)主要介绍:主要介绍:二进制数,十六进制数二进制数,十六进制数不同数制间的相互转换不同数制间的相互转换二进制数的算术二进制数的算术/逻辑运算逻辑运算十六进制数的算术十六进制数的算术/逻辑运算逻辑运算11 机器中,数的符号用机器中,数的符号用“0”“0”、“1”“1”表示。最高位作表示。最高位作符号位,符号位,“0”“0”表示表示“+”“+”,“1”“1”表示表示“-”“-”。机器数与真值机器数与真值 机器数:机器数:机器中数的表示形式,其位数通常为机器中数的表示形式,其位数通常为8 8的倍数的倍数 真值:真值:机器数所代表的实际数值。机器数所代表的实际数值。举例举例:一个一个8 8位机器数与它的真值对应关系如下:位机器数与它的真值对应关系如下:真值:真值:X1=+84=+1010100BX1=+84=+1010100B X2=-84=-1010100BX2=-84=-1010100B 机器数:机器数:X1X1机机=01010100B X2=01010100B X2机机=11010100B=11010100B5.计算机中的编码计算机中的编码12原码原码(True Form)最高位为符号位,最高位为符号位,0 0表示表示“+”“+”,1 1表示表示“”。数值。数值位与真值数值位相同。位与真值数值位相同。例例 8位原码机器数:位原码机器数:真值:真值:x1 =+1010100B x2 =1010100B 机器数:机器数:x1原原 =01010100 x2原原=11010100 原码表示简单直观原码表示简单直观,但但0 0的表示不唯一,加减运算复杂。的表示不唯一,加减运算复杂。反码反码(Ones Complement)正数的反码与原码相同,负数的反码是符号位不正数的反码与原码相同,负数的反码是符号位不变变(为为1),其余按位取反。,其余按位取反。13x=-4x=-4 xx原原 =10000100=10000100 x x反反 =11111011=11111011 x x补补=11111100 =11111100 补码表示的优点:补码表示的优点:0 0的表示唯一,加减运算方便的表示唯一,加减运算方便补码(补码(Twos Complement)正数的补码表示与原码相同。负数补码的符号位为正数的补码表示与原码相同。负数补码的符号位为1 1,数值位等于求反加数值位等于求反加1 1,即反码加,即反码加 例:求例:求 8位补码机器数:位补码机器数:x=+4x=+4 x x补补=00000100=00000100规定规定:0000 0000B 0000 0000B 为为0 0 1000 0000B 1000 0000B 不是不是0 0,而是,而是128128148 8位机器数表示的真值位机器数表示的真值15机器数与真值之间的转换机器数与真值之间的转换 1.1.真值真值 机器数机器数(1)X1=+1271)X1=+127,X2=-127X2=-127,求,求XX原原 、XX补补 X1 X1原原=X1=X1补补=01111111=7FH=01111111=7FH X2 X2原原=11111111=FFH=11111111=FFH X2 X2补补=10000001=81H=10000001=81H(2)X1=+255(2)X1=+255,X2=-255 X2=-255,求,求XX原原 、XX补补 X1 X1原原=X1=X1补补=0000000011111111=00FFH=0000000011111111=00FFH X2 X2原原 X2 X2补补16 1)1)X1X1原原=59H=59H,X2X2原原=D9H=D9H,求真值?,求真值?X1 X1原原=X2X2原原=2.机器数机器数 真值真值注意机器数表示(原码、补码)注意机器数表示(原码、补码)注意机器数符号位注意机器数符号位0101100101011001 1101100111011001 X1=+1011001 X1=+1011001B B=+89 X2=-1011001=+89 X2=-1011001B B=-89=-89 2)2)X1X1补补=59H=59H,X2X2补补=D9H=D9H,求真值,求真值 X1=+1011001 X1=+1011001B B=+89=+89 X2=-0100111 X2=-0100111B B=-39=-3917原码、反码、补码之间的关系小结原码、反码、补码之间的关系小结v正数:正数:X原原=X反反=X补补v负数:负数:X反反=X原原符号位不变,其它按位取符号位不变,其它按位取 反;反;X补补=X反反+118信息代码及转换(自学信息代码及转换(自学)(1)BCD码:将十进制数表示为二进制编码的形式码:将十进制数表示为二进制编码的形式 BCD码存贮形式码存贮形式:非压缩:非压缩BCD码和压缩码和压缩BCD码:码:(2)ASCII码:美国国家信息交换标准字符码码:美国国家信息交换标准字符码(3)ASCII码、码、BCD码及码及16进制数之间的转换进制数之间的转换 16进制数进制数 ASCII码码 ASCII码码 16进制数进制数 BCD码码 ASCII码码 16进制数进制数 BCD码码 19 1.补码加法运算:补码加法运算:X+YX+Y补补=X=X补补+Y+Y补补 (一)(一)补码加减运算补码加减运算符号作为数值直接参与运算符号作为数值直接参与运算,变减法为加法运算。变减法为加法运算。例:例:X1=+13X1=+13,Y1=+6Y1=+6,X2=-13X2=-13,Y2=-6Y2=-6,求,求X1+Y1X1+Y1、X2+Y2X2+Y2解:求解:求X1X1补、补、Y1Y1补、补、X2X2补、补、Y2Y2补补0000110100001101+13+13补补 11110011 -13 11110011 -13补补 +00000110 00000110 +6+6补补 +11111010+11111010 -6-6补补0001001100010011+19+19补补 1 11101101-19 1 11101101-19补补 进位为模,舍弃进位为模,舍弃6.6.运算方法运算方法20例:例:X1=+6X1=+6,Y1=+8Y1=+8,X2=-6X2=-6,Y2=-8Y2=-8,求,求X1-Y1X1-Y1、X2-Y2X2-Y2解:求解:求X1X1补、补、Y1Y1补、补、-Y1-Y1补、补、X2X2补、补、Y2Y2补、补、-Y2-Y2补补00000110 00000110+6+6补补 11111010 -6 11111010 -6补补 +11111000+11111000-(+8)-(+8)补补 +00001000 +00001000 -(-8)-(-8)补补1111111011111110-2-2补补 1 00000010 +21 00000010 +2补补 进位为模,舍弃进位为模,舍弃2.补码减法运算:补码减法运算:X-YX-Y补补=X=X补补-Y-Y补补=X=X补补+-Y+-Y补补211.加法运算:加法运算:直接相加。2.2.减法运算:减法运算:变补相加。例例:X=150=96HX=150=96H,Y=10=0AHY=10=0AH,计算,计算X+Y=X+Y=?X-Y=X-Y=?10010110 150 10010110 15010010110 15010010110 150+00001010+00001010 +10+10 +11110110+11110110 -10-10 10100000 160 10100000 160 1 1 10001100 14010001100 140 进位为模,舍弃进位为模,舍弃(二)无符号数加减运算(二)无符号数加减运算变补相加计算减法变补相加计算减法:当最高位产生进位,实际无借位;反之有借位当最高位产生进位,实际无借位;反之有借位。22 机器数机器数 无符号数无符号数 补码:补码:1001011010010110 150150 -106 -106 +00001010+00001010 +10+10 +10+10 10100000 10100000 160160 -96 -96 无符号数与补码运算的溢出判断方法却不同无符号数与补码运算的溢出判断方法却不同。计算机中补码的加减运算与无符号数相同。计算机中补码的加减运算与无符号数相同。23例:例:X=74=4AHX=74=4AH,Y=216=D8HY=216=D8H,求,求X+Y=X+Y=?和?和X-Y=X-Y=?01001010 01001010 74 74 01001010 74 01001010 74 +11011000+11011000 +216+216 +00101000+00101000 -216-216 1 10010001000100010 34 0 34 0 01110010 11401110010 114溢出使结果出错。加法有进位,结果应为溢出使结果出错。加法有进位,结果应为290290;减法无进位则有借位,结果负数补码。减法无进位则有借位,结果负数补码。(三三)溢出溢出运算过程中数据超出允许表示范围运算过程中数据超出允许表示范围1 1无符号数溢出判断无符号数溢出判断最高位是否产生进位或借位。最高位是否产生进位或借位。计算机设置进位标志位计算机设置进位标志位 Cy Cy 判断无符号数溢出:判断无符号数溢出:当数据加当数据加/减最高位产生进位减最高位产生进位/借位,借位,Cy=1Cy=1;否则;否则,Cy=0,Cy=0。24例例X1=+45X1=+45,Y1=+46Y1=+46,X2=+90X2=+90,Y2=+107Y2=+107,求,求X1+Y1X1+Y1、X2+Y2X2+Y2 2 2补码溢出判断补码溢出判断符号位和最高数值位进位是否相同。符号位和最高数值位进位是否相同。计算机设置溢出标志位计算机设置溢出标志位 OV V 判断补码溢出。判断补码溢出。逻辑关系:逻辑关系:OV=CyV=Cy6 6CyCy7 7 当补码加当补码加/减产生溢出减产生溢出 OV=1V=1,否则,否则OV=0V=0。例例X1=-5,Y1=-2X1=-5,Y1=-2,X2=-105,Y2=-91,X2=-105,Y2=-91,求求X1+Y1X1+Y1、X2+Y2X2+Y21111101111111011-5-5补补1001011110010111-105-105补补 +11111110+11111110 -2-2补补 +10100101+10100101 -91-91补补 1 1 1111100111111001-7-7补补 1 00111100 1 00111100+补补正确,无溢出正确,无溢出正数,有溢出。正数,有溢出。负数相加,同时有进位:负数相加,同时有进位:CyCy6 6=1=1、CyCy7 7=1=1,则无溢出;,则无溢出;不同时有进位不同时有进位,则有溢出,结果出错。,则有溢出,结果出错。257.计算机语言计算机语言(程序设计语言)(程序设计语言)指令:是能被计算机识别并执行的二进制代码。指令:是能被计算机识别并执行的二进制代码。程序:计算机一系列指令的程序:计算机一系列指令的有序集合。有序集合。计算机语言:人机交流的语言,程序表达方式计算机语言:人机交流的语言,程序表达方式 主要有机器语言、汇编语言和高级语言主要有机器语言、汇编语言和高级语言汇编语言汇编语言高级语言高级语言机器语言机器语言 机器机器(CPU)汇编汇编编译编译识别识别26二、单片机概述二、单片机概述主要介绍:主要介绍:1.单片机概念单片机概念 2.单片机的发展简史单片机的发展简史3.单片机发展趋势单片机发展趋势4.单片机应用单片机应用电子产品的控制器电子产品的控制器5.单片机主要生产厂家及产品单片机主要生产厂家及产品271.单片机概念单片机概念确切的称谓应是微控制器确切的称谓应是微控制器Microcontroller单单片片微微型型计计算算机机(Single Chip Microcomputer)简简称称单单片片机机,是是指指在在一一块块芯芯片片体体上上集集成成了了中中央央处处理理器器CPU、随随机机存存储储器器RAM、程程序序存存储储器器ROM或或EPROM、定定时时器器计计数数器器、中中断断控控制制器器以以及及串串行行和和并并行行IO接接口口等等功功能能部部件件,构构成成一一个完整的微型计算机。个完整的微型计算机。目目前前,新新型型单单片片机机内内还还有有AD及及DA转转换换器器、高高速速输输入入输出部件、输出部件、DMA通道、浮点运算等特殊功能部件。通道、浮点运算等特殊功能部件。IC芯片芯片CPURAMROMI/O接口定时/计数器中断控制电路A/DD/APWM282.单片机的发展简史单片机的发展简史大致可分为以下五个阶段。大致可分为以下五个阶段。4位单片机(位单片机(197l一一1974)1971年年11月,月,Intel公司设计公司设计 的的4位微处理器位微处理器Intel4004 低档低档8位单片机位单片机(19741978)不带串行接口,如不带串行接口,如Intel公司的公司的8048,Mostek公司的公司的3870高档高档8位单片机位单片机(19781982)Intel公司的公司的8051、NEC公司的公司的MPD7800等产品。等产品。16位单片机位单片机(19821990)Mostek公司公司68200,Intel公司于公司于1983年推出年推出16位位8096新一代单片机新一代单片机(90年代以来年代以来)采用双采用双CPU或内部流水线,或内部流水线,Intel公司的公司的8044、NEC公司的公司的MPD7800 293.单片机发展趋势单片机发展趋势(1)(1)微型化微型化(2)(2)低功耗低功耗 (3)(3)高速化高速化(4)(4)集成资源更多集成资源更多 (5)(5)性能更加优异性能更加优异 (6)(6)通信及网络功能加强通信及网络功能加强(7)(7)专用型单片机发展加快专用型单片机发展加快304.单片机应用单片机应用电子产品的控制器电子产品的控制器(1 1)测控系统:温室自动控制、车辆检测系统等测控系统:温室自动控制、车辆检测系统等(2)机电一体化产品:数控机床、电脑绣花机等)机电一体化产品:数控机床、电脑绣花机等(3)智能仪器仪表及传感器:智能电压测试仪)智能仪器仪表及传感器:智能电压测试仪(4)计算机外设及智能接口)计算机外设及智能接口:打印机、键盘、绘图仪等:打印机、键盘、绘图仪等(5)计算机网络与通信产品:交换机、)计算机网络与通信产品:交换机、HUB(6)办公自动化设备:传真机、复印机、考勤机等)办公自动化设备:传真机、复印机、考勤机等(7)家用电器:电冰箱、空调、影音设备、)家用电器:电冰箱、空调、影音设备、电子玩具电子玩具(8 8)其它方面:汽车电子、航空航天电子等)其它方面:汽车电子、航空航天电子等315.单片机主要生产厂家及产品单片机主要生产厂家及产品公司公司典型产品系列典型产品系列主要产品主要产品Intel公司公司MCS-48 MCS-51 MCS-96 8048 8051 8096Philips 与与MCS-51 兼容:兼容:P87 P8980C552 83C552MotoralaMC68系列系列MC68HC05ATMEL与与MCS-51 兼容兼容 AT89XX89C51 89C52MicroChipPIC165X系列系列PIC16C55/16C56ZilogZ8系列系列Z86C06/C21LGGMS97CXXGMS97C6532对单片机学习建议对单片机学习建议 1 1 对非计算机专业,学习本课程目的对非计算机专业,学习本课程目的在于在于 应用单片机应用单片机,学习原理主要是了解如何用,学习原理主要是了解如何用 2 2 单片机是一块需编程的电路单片机是一块需编程的电路ICIC芯片芯片 学习要硬件与软件兼顾,二者相结合学习要硬件与软件兼顾,二者相结合 3 3 单片机是实践性较强的课程单片机是实践性较强的课程 通过大量的编程和实验才能真正单片机的应用通过大量的编程和实验才能真正单片机的应用33作业作业1 数制转换数制转换 二、十六进制数转十进制:二、十六进制数转十进制:1111B、FFH 十进制转二、十六进制数:十进制转二、十六进制数:15、127 二、十六进制数之间转换:二、十六进制数之间转换:11111000B、2FH2 二二 进进 制制 数数 算算 术术 运运 算算:若若 X=11110000B,Y=11001100B 计算计算X+Y,X-Y,X Y3 十六进制数算术运算:若十六进制数算术运算:若X=78H,Y=66H 计算计算X+Y,X-Y,X Y4 二进制数逻辑运算二进制数逻辑运算 若若X=11110000B,Y=11001100B 计算计算X+Y,XY,X Y,非,非X345 十六进制数逻辑运算十六进制数逻辑运算 若若X=76H,Y=0FH 计算计算X+Y,XY,X Y,非,非X6 用用ASCII码表示下列字符串:码表示下列字符串:I come from 2001 toy class.7 代码转换代码转换 16进制数进制数-ASCII码:码:01H,06H,08H,0AH,0DH ASCII码码-16进制数:进制数:32H,45H,46H BCD码码 -ASCII码:码:24H,03H 16进制数进制数-BCD码:码:25H,10H35