1、n教学要求:严禁旷课,每次上课前点教学要求:严禁旷课,每次上课前点名。实验前需要完成实验预习报告,名。实验前需要完成实验预习报告,无此报告者不能进行实验。无此报告者不能进行实验。n成绩构成:成绩构成:旷课旷课7次成绩为次成绩为0分。分。平时:平时:20%。理论课旷课一次扣。理论课旷课一次扣3分。分。实验:实验:50%。旷课一次扣。旷课一次扣6分。少分。少交一次实验报告扣交一次实验报告扣2分;其中,实验旷分;其中,实验旷课者不收实验报告,也不扣报告成绩课者不收实验报告,也不扣报告成绩分。分。考试:考试:30%。开卷。开卷。n答疑时间及地点:科研楼601,周五下午。n教材及参考书教材:单片机原理及
2、实践指导邓兴成 姜宝钧 等编著,机械工业出版社参考书:1MCS-51单片机应用教程,李叶紫,清华大学出版社,20042MCS-51系列单片微型计算机及其应用,孙育才,东南大学出版社,20043单片机原理及应用,张毅刚,高等教育出版社,20044单片机原理及其接口技术(第2版),胡汉才,清华大学出版社,20045MCS-51、96单片机原理及应用,孙涵芳,徐爱卿,北京航空航天大学出版社,1988.26单片微型计算机原理接口应用,徐惠民,安德宁,北京邮电学院出版社,1990年6月一、单片机的学习n为何要学好单片机原理n如何学习单片机原理n与单片机原理应用的相关知识n为何要学好微控制器微控制器的主要
3、应用领域:1、消费电子家用电器移动消费电子2、医疗设备家用便携式医疗设备诊断治疗成像分析3、汽车动力总成控制 车身电子 驾驶员信息系统 底盘 安全 车载网络4、工业工厂自动化 楼宇控制 计量5、数据链路控制器局域网(CAN)工业网络与现场总线协议 本地互连网(LIN)通用串行总线(USB)6、电机控制直流电机 步进电机 开关磁阻电机 交流感应电机 通用电机 永磁同步电机 7、节能光电能效 智能电网 高能效汽车 高能效照明 延长电池寿命 功率转换与电源 n如何学习单片机原理1、学习前的准备工作:(1)选定学习芯片型号。(2)实验板一块。(3)下载线或仿真器一个。2、学习方法:(1)阅读单片机某一
4、模块资料。(2)设计对模块知识的验证实验。(3)完成验证实验。n如何学习单片机原理3、初学者需要掌握的重点内容:(1)引脚功能。掌握引脚功能是设计单片机应用系统电路、充分利用单片机内部资源的前提。(2)汇编指令其程序设计。汇编指令包含了CPU执行程序的原理,对很好地掌握单片机原理具有其它语言不可取代的作用。(3)特殊功能寄存器。重点掌握那些各位具有特定功能的特殊功能寄存器。n与单片机应用的相关知识模拟电路数字电路基础通信原理数据通信移动通信原理传感器原理自动控制原理应用系统外围芯片几个简单概念n1、串行传输:二进制数据在一根线上分时一位一位地进行传输的通信方式。例如:10011010在一根线上
5、传输的波形如下图所示。简单地说:串行传输是发送端分时发送、接收端分时接收的通信方式。n2、并行传输:一个二进制数据按位同时在多根线上进行传输的通信方式。例如:二进制数据10011010 在8根线上并行传输的波形如右 图所示。并行传输通常有为8位、16位、32位和64位等,是计算机CPU与外设间进行数据传输的主要通信方式。n3、总线:具有相同或相似功能的多根线构成的一组线称为总线。在MCS-51单片机中,有数据总线、地址总线和控制总线。n4、ROM:只读存储器,又称为程序存储器。包括EPROM、EEPROM、FLASH等。n5、RAM:随机存取存储器,又称为数据存储器。包括RAM、FLASH、E
6、EPROM等。n6、字节:在计算机中,8位二进制数构成的数称为一个字节。n7、原码:原始二进制数称为原码。n8、反码:原码按位取反。n9、补码:正数的补码是其本身。负数的补码是其反码加1。第第1章章 MCS-51单片机的内部结构与时序单片机的内部结构与时序AT89S52的主要资源说明的主要资源说明n1、32条输入/输入引脚;n2、256B(字节)片内RAM;n3、8kB Flash程序存储器;n4、3个16位定时/计数器;n5、2个外部中断源;n6、1个全双功串行通信端口;n7、1个13位看门狗定时器;n8、在系统(ISP)编程。1.1 MCS-51引脚功能说明引脚功能说明1.1 MCS-51
7、引脚功能说明引脚功能说明P1口(口(18脚)脚):可作为通用输入/输出口。作为通用输出口使用时,P1口每个引脚可驱动4个LS型TTL门电路。作为通用输入口使用时,需要预先将P3口写为1,即引脚为高电平。P1口具有第二功能(即特定功能)的引脚有P1.0、P1.1、P1.5、P1.6和P1.7。各引脚功能如表1-1所示。1.1 MCS-51引脚功能说明引脚功能说明P3口(口(1017脚)脚):可作为通用输入/输出口。作为通用输出口使用时,P3口每个引脚可驱动4个LS型TTL门电路。作为通用输入口使用时,需要预先将P3口写为1,即引脚为高电平。在单片机应用系统中,P3口主要使用其第二功能。P3口的第
8、二功能如表1-2所示。1.1 MCS-51引脚功能说明引脚功能说明P2口(口(2128脚)脚):可作为通用输入/输出口。作为通用输出口使用时,P2口每个引脚可驱动4个LS型TTL门电路。作为通用输入口使用时,需要预先将P2口写为1,即引脚为高电平。当应用系统扩展外部存储器时,P2口可作为地址总线的高8位。1.1 MCS-51引脚功能说明引脚功能说明P0口(口(3239脚)脚):P0口可作为通用输入/输出口使用。作为通用I/O口使用时,P0口需要外接上拉电阻。作为输出口使用时,P0每个引脚最多能驱动8个LS型TTL门电路。在访问外部程序存储器和数据存储器时,P0口被用作地址总线(低8位地址)/数
9、据总线复用。1.1 MCS-51引脚功能说明引脚功能说明其它引脚:其它引脚:1.电源(40脚)和地(20脚)引脚2.RESET(第9脚):复位信号输入引脚。RESET引脚上至少持续出现2个机器周期(晶振的12个振荡周期为一个机器周期)的高电平就会使单片机复位。复位是使数字系统处于确定的初始状态的过程。3.XTAL1(18脚)和XTAL2(19脚):片内振荡器输入/输出引脚 。1.1 MCS-51引脚功能说明引脚功能说明其它引脚:其它引脚:4./PSEN(29脚)脚)片外程序存储器(ROM)读选通信号输出引脚。5.ALE(30脚)脚)地址锁存允许/编程引脚。在未访问外部数据存储器期间,该引脚输出
10、晶振频率的6分频信号,可作为某些外部器件的时钟信号。6./EA(31脚):脚):片外程序存储器访问允许/编程器电源引脚。该引脚接高电平时,CPU从片内程序存储器的0000H单元开始执行指令;该引脚接低电平时,CPU从片外程序存储器的0000H单元开始执行指令.1.1.1 MCS-51系列单片机的引脚功能及最系列单片机的引脚功能及最小应用系统小应用系统n1.电源引脚n2.输入/输出(I/O)口P0口(3239脚)作为输出口使用时,P0每个引脚能驱动8个TTL门电路。在访问外部程序存储器和数据存储器时,P0口被用作地址总线(低8位地址)/数据总线复用 对P0端口写“1”时,引脚用作高阻抗输入。当P
11、0口作为输出口使用时,必须外接上拉电阻。P1口(18脚)作为输出口使用时,P1口每个引脚可驱动4个LS型TTL门电路。n3.控制线控制线RESET(第(第9脚):复位信号输入引脚。脚):复位信号输入引脚。RESET引脚上至少持续出现2个机器周期(晶振的12个振荡周期为一个机器周期)的高电平就会使单片机复位。复位是使数字系统处于确定的初始状态的过程。XTAL1(18脚)和脚)和XTAL2(19脚):片内脚):片内振荡器输入振荡器输入/输出引脚输出引脚 。n/PSEN(29脚):外部程序存储器(ROM)选通引脚。nALE(30脚):地址锁存允许/编程引脚。n/EA(31脚):片外程序存储器访问允许
12、/编程器电源引脚。1.1.2 MCS-51的三总线结构 MCS-51单片机应用系统通常按照三总线结构进行设计。三总线是指数据总线(DB)、地址总线(AB)和控制总线(CB)。1.1.3 AT89S51单片机的最小应用系统单片机最小系统由振荡电路和复位电路构成。1.1.3 AT89S51单片机的最小应用系统1.2 MCS-51单片机内核结构1.2.1 中央处理器CPUn1算术逻辑单元算术逻辑单元ALU 算术逻辑单元ALU由加法器、两个8位暂存器(TMP1、TMP2)和一个布尔处理器组成。n2专用寄存器专用寄存器专用寄存器是用来存储当前要执行的指令的存储地址、操作数和指令执行后的状态等信息的寄存器
13、。其特点是存取速度快、方便。(l)累加器)累加器A(Accumulator)累加器A是专门用于存放操作数或运算结果的8位可位寻址的特殊功能寄存器,其物理地址为E0H,符号为ACC。例:MOV A,#50 ADD A,#100 MOV A,#32H ADD A,#64H 累加器A是可位寻址的特殊功能寄存器。即可以通过指令对A中的每一位进行清“0”或置“1”(通常称为置位)例:SETB ACC.0 SETB ACC.3 CLR ACC.7(2)B寄存器寄存器 B寄存器是一个8位可位寻址的特殊功能寄存器,一般用于乘、除法运算,也可以作为通用寄存器,用来存放临时数据。乘法运算中,B寄存器存储乘积的高8
14、位;除法运算中,B寄存器存储余数。例如:求两个操作数50与100之积。MOV A,#32H MOV B,#64H MUL AB 例如:求两个操作数101与50之商。MOV A,#64H MOV B,#32H DIV AB(3)程序计数器)程序计数器PC 程序计数器PC(Program Counter)是一个二进制16位特殊功能寄存器,专门用于存放CPU将要执行的下一条指令第一字节的存储地址。系统复位后,PC中的值为0000H,表示CPU将从程序存储器中的0000H单元开始执行程序。CPU每执行指令的一个字节,PC的值自动加1。单片机系统的程序存储器(ROM)最多为64kB,其地址范围是0000
15、HFFFFH。(4)程序状态字寄存器)程序状态字寄存器PSW程序状态字(PSW)寄存器是一个8位可位寻址特殊功能寄存器。其功能是存储当前指令执行后的某些状态,这些状态可作为执行下一条指令的条件。其结构及各位的定义如下:进位标志位进位标志位Cy(Carry)在加法或减法运算中,若累加器A中最高位ACC.7有进位或借位时,Cy=1;否则Cy=0。Cy在位操作中,又是布尔处理器的位累加器,常用C表示。辅助进位标志位辅助进位标志位AC 若AC=0,则表示加减运算过程中ACC.3没有向ACC.4进位或借位;若AC=1,则表示加减运算过程中ACC.3向AC.4有进位或借位。用户标志位用户标志位F0(Fla
16、g zero)工作寄存器组选择位工作寄存器组选择位RS1和和RS0程序状态字寄存器PSW中的RS1和RS0用来选择当前使用的工作寄存器组。例如,复位后默认的工作寄存器组是第0组,程序中主要使用第0组,但在某段程序中要使用第3组,执行完这段程序后需要继续使用第0组,则可使用下面的程序指令。SETB PSW.4 SETB PSW.3 MOV R0,#00H CLR PSW.3 CLR PSW.4 MOV R0,#0FFH 溢出标志位溢出标志位OV(OVerflow)溢出标志位PSW.2用于指示在带符号数的算术运算过程中是否发生溢出。当累加器A中的运算结果超过8位二进制数允许表示的范围,即-128+
17、127时,就产生溢出。PSW.1 保留位,无定义。奇偶校验标志位奇偶校验标志位P(Parity)当累加器A中的数有偶数个“1”时,P=0,若有奇数个“1”,则P=1。(5)堆栈及堆栈指针)堆栈及堆栈指针SP(Stack Pointor)堆栈是内部数据存储器(RAM)中的一个区域,用于顺序存储程序执行过程中某些寄存器内需要保护的数据。数据进入与退出堆栈遵循后进先出的原则。在系统复位后,堆栈指针SP的初始值为07H。堆栈操作指令:PUSH(压栈),POP(出栈)。压栈操作:压栈操作:堆栈指针SP先自动加1,然后数据才被压入堆栈。出栈操作:出栈操作:先将需要出栈的数据弹出堆栈,堆栈指针SP再自动减1
18、。例如,程序中要将累加器A、PSW中的值压入堆栈暂存起来,则指令如下:MOV SP,#60H PUSH ACC PUSH PSW POP PSW POP ACC 堆栈操作总是对栈顶进行的。堆栈操作示意图如下图所示。在系统复位后,堆栈指针SP的初始值为07H。压栈操作时,SP指向片内RAM的08H单元,而08H单元是工作寄存器组1的R0,因此,程序中通常需要对SP进行初始化赋值,将堆栈区放到片内RAM的高地址区。(6)双数据指针)双数据指针DPTR(Data Pointer)标准MCS-51单片机有一个数据指针DPTR,它是一个16位寄存器,由两个独立的8位寄存器DPH、DPL构成。AT89S5
19、1和AT89S52增加了一个16位数据指针DPTR。这两个数据指针分别用符号DP0和DP1表示,它们又分别由DP0L、DP0H和DP1L、DP1H构成。辅助寄存器AUXR1决定程序中使用DP0还是使用DP1。(7)辅助寄存器()辅助寄存器(AUXR)辅助寄存器(AUXR)位于特殊功能寄存器区的8EH单元,是一个8位寄存器。辅助寄存器(AUXR)不可位寻址,系统复位后各位的状态为:000B。各位定义如下:DISALE:ALE使能位。DISRTO:复位使能位。WDIDLE:空闲模式下WDT使能标位。(8)辅助寄存器)辅助寄存器1(AUXR1)辅助寄存器1(AUXR1)一个8位寄存器。辅助寄存器1(
20、AUXR1)不可位寻址,系统复位后各位的状态为:0B。各位的定义如下:DPS:数据指针选择位 1.2.2 存储器结构n1.存储器的地址分配存储器的地址分配地址分为三个部分,它们分别是:片内和片外程序存储器(ROM)地址;片内数据存储器(RAM)地址和片外数据存储器(RAM)地址。n2.程序存储器(程序存储器(ROM)MCS-51系列单片机对程序存储器的最大寻址空间为64kB,分为片内ROM和片外ROM。3.数据存储器(数据存储器(RAM)MCS-51系列单片机的片内数据存储器最多为256B,地址范围是00HFFH。片内RAM分为四个存储区,它们分别是:工作寄存器区、位寻址区、用户RAM区和特殊
21、功能寄存器(SFR)区。(1)工作寄存器区)工作寄存器区(2)位寻址区)位寻址区 片内RAM的位寻址区的字节地址范围是20H2FH,共16个字节,128位。2FH7F7E7D7C7B7A797823H1F1E1D1C1B1A191822H171615141312111021H0F0E0D0C0B0A090820H0706050403020100(3)特殊功能寄存器)特殊功能寄存器SFR(Special Function Register)区)区地址范围:80HFFH,SFR离散地分布在80HFFH地址范围中。(4)用户)用户RAM区区地址范围:30H7FH和80HFFH。对特殊功能寄存器的寻址
22、,采用直接寻址方式直接寻址方式。对80HFFH用户RAM单元寻址,采用寄存器间寄存器间接寻址方式接寻址方式。堆栈操作是寄存器间接寻址,因此,80HFFH可用为堆栈使用。例如,将立即数#01H传送到地址为80H的特殊功能寄存器和RAM单元中。指令如下:MOV 80H,#01H;操作P0口MOV R0,#80H;操作80H单元MOV R0,#01Hn1.2.3 定时定时/计数器(计数器(Timer)AT89S51有两个16位定时器/计数器,它们分别是T0和T1。T0和T1都可以分为高8位(TH0、TH1)和低8位(TL0、TL1)两个寄存器。T0、T1的工作模式:定时模式和计数模式。AT89S52
23、内部除了有T0和T1两个定时/计数器外,还增加了定时/计数器2。n1.2.4 看门狗定时器(看门狗定时器(WDT)看门狗是程序运行出现问题时,用软件恢看门狗是程序运行出现问题时,用软件恢复系统的一种方法。复系统的一种方法。看门狗定时器(WDT)由13位计数器和看门狗定时器复位寄存器(WDTRST)构成。系统复位后,看门狗定时器复位寄存器(WDTRST)的状态不定。为了激活看门狗,用户必须向看门狗定时器复位寄存器(WDTRST,地址:A6H)依次写入1EH和E1H。激活看门狗与“喂狗”子程序如下:WDT:MOV 0A6H,#01EHMOV 0A6H,#0E1H RET调用这个子程序使用如下语句:
24、ACALL WDT 或 LCALL WDTn1.2.5 中断系统中断系统中断是指CPU暂时停止执行当前的程序而去执行比较紧迫的中断服务程序,执行完中断服务程序后再返回原程序继续执行的过程。中断源是指能产生中断信号的内部或外部电路。MCS-51单片机的中断源:定时/计数器0定时/计数器1外部中断0外部中断1串行通信 定时/计数器2n1.2.6 I/O端口(端口(Input/Outpt Port)1.并行并行I/O端口端口P0、P1、P2和和P3口口。操作方式:写端口:把寄存器中的数据输出到端口锁存器中,然后由端口输出到引脚。读端口:把端口锁存器中的内容读到CPU的累加器A中。读引脚:将外部数据输
25、入到单片机内部,是从端口引脚上读入数据。2.串行串行I/O端口端口 1.3 MCS-51系列单片机的工作方式nl.3.1 复位(复位(RESET)工作方式有:复位方式、节电方式、程序执行。nl.3.2 节电工作方式节电工作方式电源及波特率控制寄存器PCON是一个8位特殊功能寄存器,不可位寻址。PCON各位的定义如下:n:保留位。nIDL:空闲控制位。IDL=1,进入空闲模式。nPD:掉电控制位。PD=1,进入掉电模式。nGF1、GF0:通用标志位。nSMOD:波特率加倍位。SMOD=1,串行通信波特率加倍。n当PD和IDL同时为1时,进入掉电模式。执行以下指令可使单片机进入掉电模式和空闲模式:
26、MOV PCON,#02H;使PD=1,进入掉电模式MOV PCON,#01H;使IDL=1,进入空闲模式1.4 MCS-8051系列单片机时序n1.4.1 机器周期与指令周期机器周期与指令周期1时钟周期时钟周期 晶体的振荡周期称为时钟周期。2机器周期机器周期 晶体的12个振荡周期称为一个机器周期。3.指令周期指令周期 指令执行的机器周期数称为指令周期。1.4.2 MCS-51单片机指令的取指/执行时序n取指令和执行指令 n1.单字节单周期指令单字节单周期指令当ALE第一次有效(S1P2)时,CPU从程序存储器(ROM)中读出指令码,然后送到指令寄存器(IR)后开始执行;CPU在ALE第二次有
27、效(S4P2)时封锁程序计数器(PC),指令在S6P2时完成执行。n2.双字节单周期指令双字节单周期指令在ALE第一次有效(S1P2)时从程序存储器(ROM)中读出指令操作码。CPU对其译码后知道是双字节指令,使程序计数器(PC)加“1”,并在第二次有效(S4P2)时读取指令的第2字节,在S6P2时完成指令执行。n3.单字节双周期指令单字节双周期指令CPU在ALE第一次有效(S1P2)时从程序存储器(RAM)中读出指令操作码。CPU对其译码后知道是单字节双周期指令指令,故在执行的时候CPU连续封锁程序计数器(PC)三次并在第二个机器周期的S6P2时完成指令执行。n4单字节四周期指令单字节四周期
28、指令n5.单字节四周期指令单字节四周期指令1.4.3 MCS-8051访问片外存储器的指令时序 n1.读片外程序存储器读片外程序存储器ROM的指令时序的指令时序n2.片外数据存储器(片外数据存储器(RAM)的读时序)的读时序n3.片外数据存储器(片外数据存储器(RAM)的写时序)的写时序1.5 “流水灯”设计实验nISP程序下载线电路原理图程序下载线电路原理图 n“流水灯流水灯”实验电路原理图一实验电路原理图一 1.6 看门狗定时器实验nORG 0000HnSJMP MAIN;跳转到MAIN执行nORG 0030HnMAIN:ACALL WDT;调用喂狗子程序,激活看门狗定时器n MOV P0,#0FFH;P0口置高电平,LED发光nACALL DELAY;调用延时子程序nLOOP:MOV P0,#00H;P0口清“0”,LED不发光n ACALL DELAYn SJMP LOOP;跳转到LOOP继续执行nDELAY:MOV R2,#05H;延时子程序nDEL1:MOV R3,#0FFHnDEL2:MOV R4,#0FFHn DJNZ R4,$n ACALL WDT;喂狗n DJNZ R3,DEL2n DJNZ R2,DEL1n RET nWDT:MOV 0A6H,#01EH;喂狗子程序n MOV 0A6H,#0E1Hn RET