单片机原理及应用主讲:张学军TEL:85880665Email:zxj08@21cn.com光电工程学院2课程简介课程性质:限选课(考查)总学时:32学时(其中实验12学时)成绩评定方法:平时10%(主要考察作业和到课情况),实验30%(主要考察实验完成情况和实验报告),考试60%。3本课程主要内容第一章单片机概述第二章MCS-51单片机硬件结构第三章MCS-51单片机指令系统第四章MCS-51汇编程序设计第五章MCS-51单片机的中断系统第六章MCS-51单片机内部定时器/计数器第七章单片机串行口及应用第八章单片机的系统扩展第九章单片机系统的接口(*)4第一章单片机概述一、微型计算机基础知识二、单片机概述5一、微型计算机基础知识主要介绍:1.电子计算机基本组成2.微机硬件系统结构3.微型计算机工作过程4.计算机中的数制(运算及转换)5.计算机中的编码及转换6.运算方法7.计算机语言61.电子计算机基本组成计算机由硬件和软件两大部分组成。硬件:系指构成计算机系统的物理实体或物理装置,它由运算器、控制器、存储器、输入设备和输出设备等五大部分构成存贮器运算器控制器接口接口输入设备输出设备72.微机硬件系统结构在微型计算机中,将运算器和控制器集成在一块IC上,合称这为CPUCPU存贮器I/O接口I/O外设地址总线控制总线数据总线83.微型计算机工作过程根据冯·诺依曼原理构成的现代计算机的工作原理可概括为:存储程序和程序控制。存储程序是指人们必须事先把计算机的执行步骤序列(即程序)及运行中所需的数据,通过一定的方式输入并存储在计算机的存储器中。程序控制是指计算机自动地逐一取出程序中的一条条指令,加以分析并执行规定的操作。9在计算机运行的过程中有两种信息在流动。一是数据流,这包括原始数据和指令,它们在程序运行前已经预先送至主存中。在运行程序时数据送至运算器参与运算,指令被送往控制器。二是控制流,它是由控制器根据指令的内容发出的,指挥计算机各部件执行指令规定的各种操作或运算,并对执行流程进行控制。10计算机的基本工作过程第三步:按序再取下一条指令,分析及执行依次周而复始执行指令序列的过程①CPU存贮器I/O②③第一步:CPU自动从存贮器中取指令第二步:由CPU分析指令和执行指令114.计算机中的数制(自学)主要介绍:①二进制数,十六进制数②不同数制间的相互转换③二进制数的算术/逻辑运算④十六进制数的算术/逻辑运算12机器中,数的符号用“0”、“1”表示。最高位作符号位,“0”表示“+”,“1”表示“-”。①机器数与真值机器数:机器中数的表示形式,其位数通常为8的倍数真值:机器数所代表的实际数值。举例:一个8位机器数与它的真值对应关系如下:真值:X1=+84=+1010100BX2=-84=-1010100B机器数:[X1]机=01010100B[X2]机=11010100B5.计算机中的编码13②原码(TrueForm)最高位为符号位,0表示“+”,1表示“-”。数值位与真值数值位相同。例8位原码机器数:真值:x1=+1010100Bx2=-1010100B机器数:[x1]原=01010100[x2]原=11010100原码表示简单直观,但0的表示不唯一,加减运算复杂。③反码(One’sComplement)正数的反码与原码相同,负数的反码是符号位不变(为1),其余按位取反。14x=-4[x]原=10000100[x]反=11111011[x]补=11111100补码表示的优点:0的表示唯一,加减运算方便③补码(Two’sComplement)正数的补码表示与原码相同。负数补码的符号位为1,数值位等于求反加1,即反码加1例:求8位补码机器数:x=+4[x]补=00000100规定:00000000B为010000000B不是-0,而是-128158位机器数表示的真值8位机器数有符号数十六进制二进制无符号数原码补码0001…7F80…FEFF0000000000000001…0111111110000000…111111101111111101…127128…254255+0+1…+127-0…-126-127+0+1…+127-128…-2-116④机器数与真值之间的转换1.真值机器数(1)X1=+127,X2=-127,求[X]原、[X]补[X1]原=[X1]补=01111111=7FH[X2]原=11111111=FFH[X2]补=10000001=81H(2)X1=+255,X2=-255,求[X]原、[X]补[X1]原=[X1]补=0000000011111111=00FFH[X2]原=1000000011111111=80FFH[X2]补=1111111100000001=FF01H171)[X1]原=59H,[X2]原=D9H,求真值?[X1]原=[X2]原=2.机器数真值*注意机器数表示(原码、补码)*注意机器数符号位0101100111011001X1=+1011001B=+89X2=-1011001B=-892)[X1]补=59H,[X2]补=D9H,求真值X1=+1011001B=+89X2=-0100111B=-3918原码、反码、补码之间的关系小结正数:[X]原=[X]反=[X]补负数:[X]反=[X]原符号位不变,其它按位取反;[X]补=[X]反+119⑤信息代码及转换(自学)(1)BCD码:将十进制数表示为二进制编码的形式BCD码存贮形式:非压缩BCD码和压缩BCD码:(2)ASCII码:美国国家信息交换标准字符码(3)ASCII码、BCD码及16进制数之间的转换16进制数→ASCII码ASCII码→16进制数BCD码→ASCII码16进制数→BCD码201.补码加法运算:[X+Y]补=[X]补+[Y]补(一)补码加减运算符号作为数值直接参与运算,变减法为加法运算。例:X1=+13,Y1=+6,X2=-13,Y2=-6,求X1+Y1、X2+Y2解:求[X1]补、[Y1]补、[X2]补、[Y2]补00001101[+13]补11110011[-13]补+00000110[+6]补+11111010[-6]补00010011[+19]补111101101[-19]补进位为模,舍弃6.运算方法21例:X1=+6,Y1=+8,X2=-6,Y2=-8,求X1-Y1、X2-Y2解:求[X1]补、[Y1]补、[-Y1]补、[X2]补、[Y2]补、[-Y2]补00000110[+6]补11111010[-6]补+11111000[-(+8)]补+00001000[-(-8)]补11111110[-2]补100000010[+2]补进位为模,舍弃2.补码减法运算:[X-Y]补=[X]补-[Y]补=[X]补+[-Y]补221.加法运算:直接相加。2.减法运算:‘变补相加’。例:X=150=96H,Y=10=0AH,计算X+Y=?X-Y=?1001011015010010110150+00001010+10+11110110-1010100000160110001100140进位为模,舍弃(二)无符号数加减运算变补相加计算减法:当最高位产生进位,实际无借位;反之有借位。23机器数无符号数补码:10010110150-106+00001010+10++1010100000160-96无符号数与补码运算的溢出判断方法却不同。计算机中补码的加减运算与无符号数相同。24例:X=74=4AH,Y=216=D8H,求X+Y=?和X-Y=?01001010740100101074+11011000+216+00101000-21610010001034001110010114溢出使结果出错。加法有进位,结果应为290;减法无进位则有借位,结果负数补码。(三)溢出─运算过程中数据超出允许表示范围1.无符号数溢出判断─最高位是否产生进位或借位。计算机设置进位标志位Cy判断无符号数溢出:当数据加/减最高位产生进位/借位,Cy=1;否则,Cy=0。25例X1=+45,Y1=+46,X2=+90,Y2=+107,求X1+Y1、X2+Y22.补码溢出判断─符号位和最高数值位进位是否相同。计算机设置溢出标志位OV判断补码溢出。逻辑关系:OV=Cy6Cy7当补码加/减产生溢出OV=1,否则OV=0。例X1=-5,Y1=-2,X2=-105,Y2=-91,求X1+Y1、X2+Y211111011[-5]补10010111[-105]补+11111110[-2]补+10100101[-91]补111111001[-7]补100111100[+]补正确,无溢出正数,有溢出。负数相加,同时有进位:Cy6=1、Cy7=1,则无溢出;不同时有进位,则有溢出,结果出错。267.计算机语言(程序设计语言)指令:是能被计算机识别并执行的二进制代码。程序:计算机一系列指令的有序集合。计算机语言:人机交流的语言,程序表达方式主要有机器语言、汇编语言和高级语言汇编语言高级语言机器语言机器(CPU)汇编编译识别27二、单片机概述主要介绍:1.单片机概念2.单片机的发展简史3.单片机发展趋势4.单片机应用—电子产品的控制器5.单片机主要生产厂家及产品281.单片机概念确切的称谓应是微控制器Microcontroller单片微型计算机(SingleChipMicrocomputer)简称单片机,是指在一块芯片体上集成了中央处理器CPU、随机存储器RAM、程序存储器ROM或EPROM、定时器/计数器、中断控制器以及串行和并行I/O接口等功能部件,构成一个完整的微型计算机。目前,新型单片机内还有A/D及D/A转换器、高速输入/输出部件、DMA通道、浮点运算等特殊功能部件。IC芯片CPURAMROMI/O接口定时/计数器中断控制电路A/DD/APWM292.单片机的发展简史大致可分为以下五个阶段。4位单片机(197l一1974)1971年11月,Intel公司设计的4位微处理器Intel4004低档8位单片机(1974—1978)不带串行接口,如Intel公司的8048,Mostek公司的3870高档8位单片机(1978—1982)Intel公司的8051、NEC公司的MPD7800等产品。16位单片机(1982—1990)Mostek公司68200,Intel公司于1983年推出16位8096新一代单片机(90年代以来)采用双CPU或内部流水线,Intel公司的8044、NEC公司的MPD7800303.单片机发展趋势(1)微型化(2)低功耗(3)高速化(4)集成资源更多(5)性能更加优异(6)通信及网络功能加强(7)专用型单片机发展加快314.单片机应用—电子产品的控制器(1)测控系统:温室自动控制、车辆检测系统等(2)机电一体化产品:数控机床、电脑绣花机等(3)智能仪器仪表及传感器:智能电压测试仪(4)计算机外设及智能接口:打印机、键盘、绘图仪等(5)计算机网络与通信产品:交换机、HUB(6)办公自动化设备:传真机、复印机、考勤机等(7)家用电器:电冰箱、空调、影音设备、电子玩具(8)其它方面:汽车电子、航空航天电子等325.单片机主要生产厂家及产品公司典型产品系列主要产品Intel公司MCS-48MCS-51MCS-96804880518096Philips与MCS-51兼容:P87P8980C55283C552MotoralaMC68系列MC68HC05ATMEL与MCS-51兼容AT89XX89C5189C52MicroChipPIC165X系列PIC16C55/16C56ZilogZ8系列Z86C06/C21LGGMS97CXXGMS97C6533对单片机学习建议1对非计算机专业,学习本课程目的在于应用单片机,学习原理主要是了解如何用2单片机是一块需编程的电路IC芯片学习要硬件与软件兼顾,二者相结合3单片机是实践性较强的课程通过大量的编程和实验才能真正单片机的应用34作业1数制转换二、十六进制数转十进制:1111B、FFH十进制转二、十六进