资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机原理及应用,(第,2,版),前言,一、为什么要开这门课,?,二、为什么选择,MCS-51,单片机,?,三、单片机和其他课程的关系,四、课程内容,共分,9,章内容:,第,1,章 概述 第,2,章 单片机硬件结构,第,3,章 指令系统 第,4,章 程序设计,第,5,章 中断、定时器及串行口应用,第,6,章 系统扩展技术,第,7,章,I/O,接口技术,第,8,章 系统设计概述,第,9,章 单片机的,C,语言设计概述,第,1,章 概述,共分两大部分:,1,1,微型计算机(,MC,)的,基础知识概述,1,2,单片机概述,1,1,MC,基础知识概述,一、,MC,结构,二、计算机中的数制,三、计算机中常用的编码,四、存储器,五、,I/O,口,一、,MC,结构,由,硬件,和,软件,两大部分组成。,硬件,是指那些为组成计算机而有机联系的电子、电磁、机械、光学的元件、部件或装置的总和,它是有型的物理实体。,软件,是相对于硬件而言的,包括计算机运行所需要的各种程序,还包括手册、说明书和有关资料。,1,、硬件结构,运算器,+,控制器,+,存储器,=,主机,;,输入,+,输出设备则称为计算机的外围设备(简称“,外设,”);,运算器,+,控制器,=,中央处理单元,CPU,(,Central,Process Unit,)。,(,1,),CPU,(,2,)微型计算机(,MC,),(,3,)微型计算机系统,2,、软件,软件,是指使用和管理计算机的各种程序(,Program),,而程序是由一条条指令(,Instruction),组成的。,(,1,)指令,(,2,)程序,(,3,)机器语言、汇编语言和高级语言,汇编语言与机器语言的对照:,MOV A,,,#63,0111 0100,0011 1111,ADD A,,,#56,0010 0100,0011 1000,ADD A,,,#36,0010 0100,0010 0100,ADD A,,,#14,0010 0100,0000 1110,3,、硬件与软件的关系,有机结合的整体,硬件是基础,软件是灵魂,4,、位,字节、半字节,字、双字,二、计算机中的数制,进位计数制与转换:,二进制(,B,),十六进制(,H,),十进制(,D,),带符号数的表示:,原码、反码、补码、溢出,三、常用的编码,1,、,ASCII,码:,美国信息交换标准代码,2,、,BCD,码,二进制编码的十进制数,强调:,计算机只认二进制数,并不认什么十六、十、,ASCII,、,BCD,码等,其他数的大小和性质需要人来分析,1111 1111B,多大?什么性质的数?,无符号:,255,带符号:负数,-1,BCD,码:无效,ASCII,码: “,DEL”,键的,ASCII,码,四、存储器,1,、作用、分类、容量、结构,2,、典型芯片介绍,3,、编址,4,、堆栈,五、,I/O,口,1,、,概述,2,、串行通信,3,、中断,4,、定时器,/,计数器,1,2,单片机概述,一、单片机定义,二、单片机特点及应用,三、单片机技术现状及发展趁势,四、常用的单片机产品,五、单片机应用系统开发概述,一、单片机定义,采用一定的,工艺手段,将,CPU,、存储器、,I/O,口集成,在一个芯片上。,二、特点及应用,单片机的特点:,抗干扰性强,工作温度范围宽,;,可靠性高;,控制功能很强,数值计算能力较差;,指令系统比通用微机系统简单;,更新换代速度比通用微机处理器慢多。,应用:,智能仪表中的应用,机电一体化中的应用,实时控制中的应用,军工领域的应用,分布式多机系统中的应用,民用电子产品中的应用,三、,发展趁势,CPU,的改进,存储器的发展,片内,I/O,的改进,外围电路内装化,低功耗与工作电压范围加宽,低噪声与高可靠性技术,ISP,及,IAP,四、常用的单片机产品,MCS,单片机,AVR,单片机,PIC,单片机,MSP,单片机,ARM,处理器,DSP,处理器,五、单片机应用系统开发概述,开发环境的软硬件构成,有关的软件平台:,PROTEL,:,PROTEUS,:,WAVE,:,KEIL C51,:,单片机的在线编程,ISP-,在线系统编程,IAP-,在线应用编程,第,2,章,MCS-51,系列单片机硬件结构,2.1,总体结构,2.2 CPU,2.3,存储器,2.4,辅助电路及时序,2.1,总体结构,包括三个问题:,一、系列问题,二、内部结构,三、外部引脚,四、总线图,一、系列问题,讲到单片机都有个系列问题,MCS-51,:,基本型,51,子系列,(803180518751),增强型,52,子系列,(803280528752),特殊型,所有的基础都是,基本型。,二、内部结构,8,位的,CPU,;,128,个字节的片内,RAM,;,4,K,字节的片内,ROM,程序存储器,(8031,无,),外部的,RAM,和,ROM,的寻址范围为,64,K,21,个字节的专用寄存器,4,个,8,位并行,I/O,口,1,个全双工的串行口,2,个,16,位的定时器,/,计数器,5,个中断源、,2,个中断优先级,111,条指令。,内部结构框图:,三、外部引脚及说明,四、总线图,2.2 CPU,微处理器又称为,CPU,,,是单片机内部的核心部件,它决定了单片机的重要功能特性。它由,运算器,和,控制器,两大部分组成。,对,CPU,的使用就是对,CPU,中的寄存器的使用。,有关的寄存器,累加器,ACC,寄存器,B,程序状态字,PSW,(,P34,),布尔处理器,C,程序计数器,PC,数据指针,DPTR,堆栈指针,SP,2.3,存储器,从物理结构上可分为,2,部分:,一、程序存储器,1,、,编址与访问,2,、程序的,7,个特殊入口地址,二、数据存储器,1,、,编址与访问,2,、,片内数据存储器,3,、特殊功能寄存器块,一、程序存储器,程序存储器通常存放程序指令、常数及表格等,系统在运行过程中不能修改其中的数据 。,1编址与访问,2程序的几个特殊地址,:,复位 0000,H,外部中断0 0003,H,定时器/计数器0溢出 000,BH,外部中断1 0013,H,定时器/计数器0溢出 001,BH,串行口中断 0023,H,(定时器/计数器2溢出 002,BH,),二、数据存储器,数据存储器则存放缓冲数据,系统在运行过程中可修改其中的数据。,包括,:,1,、,编址与访问,2,、,片内数据存储器,3,、特殊功能寄存器块,1编址与访问,2,、片内数据存储器,00H,1FH,20H,2FH,30H,7FH,堆栈:,片内,RAM,、,初始化时,SP=07H,向上生长的,一般程序的开始:,MOV SP,,,#60H,3,、特殊功能寄存器块,特殊功能寄存器又称为,专用寄存器,专用于控制、管理片内算术逻辑部件、并行,I/O,口、串行,I/O,口、定时器/计数器、中断系统等功能模块的工作。,2.4,辅助电路及时序,一、时钟电路,二、复位电路,三、时序,一、时钟电路,二、复位电路,三、时序,(,1,)振荡周期,(,2,)状态周期,(,3,)机器周期,(,4,)指令周期,外部晶振的,2,分频是,MCS-51,单片机的内部,时钟周期,,,6,个时钟周期,构成了单片机的,1,个机器周期,。,第,3,章,MCS-51,单片机指令系统,3.1,概述,3.2,寻址方式,3.3,指令系统,3.4,伪指令,3.1,概述,一、概述,二、指令格式,三、操作数类型,四、指令描述约定,四、指令描述约定,Rn、direct,、,Ri,#,data、,#,data16,addr16、addr11、rel,bit、,/,bit,DPTR、,A、,B、C,(,X)、,(,X),3.2,寻址方式,1,、概述,寻址,就是寻找指令中操作数或操作数所在的地址。,所谓,寻址方式,就是如何找到存放操作数的地址,把操作数提取出来的方法 。它是计算机的重要性能指标之一,也是汇编语言程序设计中最基本的内容之一。,2,、寻址方式说明,立即寻址,寄存器器寻址,直接寻址,寄存器间接寻址,基寄存器加变址寄存器间接寻址,相对寻址,位寻址,3.3,指令系统,111条指令,,42,种操作助记符,描述,33,种操作功能,。,从功能,:数据传送(,29,)、算术运算(,24,)、逻辑操作(,24,)、控制转移(,17,)、位操作(,17,);,从空间,:单字节(49)、双字节(4,5,条)、三字节(1,7,条);,从时间,:单机器周期(64条)、双机器周期(45条)、四机器周期(,2,),一、数据传送类,共,29,条。,按其操作方式,又可把它们分为三种:数据传送、数据交换和栈操作。,助记符:,MOV,、,MOVX,、,MOVC,、,XCH,、,XCHD,、,SWAP,、,PUSH,、,POP,。,应用举例:,1,、把片内,RAM6AH,单元内容传送到片外,RAM300H,单元。,2,、把片外,I/O,口,2000H,数据读入片内,RAM40H,单元。,3,、把片外,I/O,口,2000H,数据读入片外,RAM4000H,单元。,4,、把外部数据存储器,2040H,单元内容和片外,RAM2230H,单元互换。,5,、已知片内,RAM50H,单元中存放数据为,0AAH,,设堆栈指针为,30H,,把此数据值压入堆栈,然后再弹回到,40H,单元中。,二、算术运算类(,24,条),加、减、乘、除基本四则运算和增量(加,1,)、减量(减,1,)运算。,助记符,:,ADD,、,ADDC,、,INC,、DA,SUBB,、,DEC,、,MUL,、,DIV,共,8,种操作助记符。,应用举例:,1,、将片内,RAM40H,和,41H,单元内容相加,结果放,42H,。,2,、将片外,RAM2000H,和,2001H,单元两,BCD,码内容相加,结果放,2002H,。,3,、试编写计算,1234H+0FE7H,的程序,将和的高,8,位存入片内,RAM41H,,低,8,位存入,40H,。,4,、把上例中的加法运算改为减法,其他要求相同 。,5,、设被加数存入片内,RAM30H,32H,单元中,加数存入片内,RAM40H,42H,,低位在前,高位在后,各单元中均为压缩的,BCD,码。将结果之和分别存入,50H,52H,单元中。,6,、把,R1R0,和,R3R2,中的两个,4,位,BCD,码数相加,结果送,R5R4,中,如有进位存入进位位,C,中。,三、逻辑运算类(,24,条),包括清除、求反、移位及与、或、异或等操作。,这类指令有:,CLR、CPL、RL、RLC、RR、RRC、ANL、ORL、XRL,,共9种操作助记符。,应用举例:,1,、把累加器,A,中低,4,位(高,4,位清,0,)送入外部数据存储器的,3000H,单元。,2,、将累加器,A,的低,4,位的状态通过,P1,口的高,4,位输出。,3,、编程将片内,RAM21H,单元的低,3,位和,20H,单元的低,5,位合并为一个字节送片内,RAM30H,,要求,21H,的低,3,位放在高位上。,四、控制转移类(,17,条),计算机在运行过程中,有时因为操作的需要或程序较复杂,程序指令往往不能按顺序逐条执行,需要改变程序运行的方向。,MCS-51,的控制转移类指令包括无条件转移、条件转移、调用和返回指令等。,指令有,AJMP、LJMP、SJMP、JMP、JZ、JNZ、CJNZ、DJNZ、ACALL、LCALL、RET、RETI、NOP,,共13种操作助记符。,应用举例:,1,、将累加器,A,的低,4,位取反,4,次,高,4,位不变,每变换一次从,P1,口输出。,2,、如果累加器,A,中存放待处理命令编号(,07,),程序存储器中存放着标号为,PMTB,的转移表首地址,则执行下面的程序,将根据,A,中命令编号转向相应的处理程序。,五、位操作类(,17,条),以进位标志,C,作为累加器,C,在使用位操作类指令时要和字节操作类指令区别开来,因为它们的助记符是相同的。这类指令的助记符有:,MOV,、,CLR,、,CPL,、,SETB,、,ANL,、,ORL,、,JC,、,JNC,、,JB,、,JNB,、,JBC,,,共,11,种操作助记符。,应用举例:,1,、将累加器的,ACC.5,与,00H,位相与后,通过,P1.4,输出。,2,、比较片内,RAM40H,、,50H,中两个无符号数的大小,若,40H,中的数小则把片内,RAM,中的位地址,40H,置,1,;若,50H,中数小,则把片内,RAM,中的位地址,50H,置,1,;若相等则把片内,RAM,中的位地址,20H,置,1,。,3.4,伪指令,汇编程序对用汇编语言写的源程序进行汇编时,还要提供一些汇编用的指令,例如要指定程序或数据存放的起始地址;要给一些连续存放的数据确定单元等等。但是,这些指令在汇编时并不产生目标代码,不影响程序的执行,所以称为伪指令,ORG,定位伪指令,DB,定义字节伪指令,DW,定义字伪指令,EQU,赋值伪指令,END,汇编结束伪指令,第,4,章,MCS-51,单片机汇编语言程序设计,4,1,程序设计概述,4,2,顺序结构的程序设计,4,3,分支结构的程序设计,4,4,循环结构的程序设计,4,5,查表程序设计,4,6,子程序设计,4,1 程序设计概述,4,2 顺序结构的程序,顺序结构程序是一种最简单、最基本的程序,按照程序编写的顺序逐条依次执行,直到程序结束。这是程序的最基本的形式,任何程序都离不开这种形式。,例,4-1,:,将片内,RAM 20H,单元中,的数拆成两段,每段,4,位,,并将其分别存入,21H,、,22H,单元中。低,4,位存,在,21H,单元,高,4,位存,在,22H,单元,4,3 分支结构的程序,分支结构程序是利用条件转移指令,使程序执行到某一指令时,根据条件是否满足,来改变程序执行的顺序。,编写分支结构的程序主要在于正确使用转移指令。,编写分支结构的程序的关键是确定好分支条件。,例,4-2,:,编制程序使,y,按下式赋值:,例,4-3,:,设外部存储器单元,ST1,和,ST2,存放两个,不带符号的二进制,数,找出其中的大,数存入,ST3,单元。,4,4 循环结构的程序,循环程序是强制,CPU,重复执行某一指令序列的一种程序结构形式。,凡是遇到需要重复操作的程序,这时可用循环程序结构。,循环结构程序简化了程序书写,减少了内存占用空间。,循环结构的程序一般由,5,部分组成:初始化,循环体、循环修改、循环控制和结束部分。,例:,4-4,、工作单元清,0,。,4-5,、多个单字节数据求和。,4-6,、设在,DAT,开始的片内,RAM,中存放,8,个无符号字节数,找出最大值,并暂存在,A,中。,4-7,、,10,个数,去掉一个最大值、一个最小值,求剩余,8,个数的平均值。,4,5 查表程序,查表法是对一些复杂的函数运算如,sinx,等,事先把其全部可能范围的函数值按一定的规律编成表格存放在计算机的程序存储器中。当用户程序中需要用到这些函数时,直接按编排好的索引值(或程序号)寻找答案。,在控制应用场合或智能仪器仪表中,经常使用查表法。,这种方法的不足是要占用较多的存储单元。,例:,4-8,、已知数据,0,9,的平方,设变量,x,的值在累加器,A,中,查表后求,x2,的值放回累加器,试编制程序。,4-9,、设计一个将十六进制数转换成,ASCII,码的子程序。设十六进制数存放在,R0,的低,4,位,要求转换后的,ASCII,码送回,R0,中。,4,6,子程序设计,在实际问题中,常常会遇到在一个程序中有许多相同的运算或操作,例如多字节的加、减、字符处理等。如果每遇到这些运算和操作,都从头做起,则使程序非常繁琐且浪费内存。,因此在实际应用中,通常把这些多次使用的程序段,按一定结构编好,存放在内存中,当需要时,程序可以去调用这些独立的程序段。,通常将这种可以被调用的程序段称为子程序。,调用子程序的程序称为主程序。,使用子程序的过程称为调用子程序;,子程序执行完毕后返回主程序的过程称为子程序返回。,例:,4-10,、用程序实现,c=a2+b2,。设,a,、,b,均小于,10,,,a,存在片内,RAM31H,单元中,,b,存在,32H,单元中,把,c,存入,33H,单元中。,4-11,、求两个无符号数据块中的最大值。数据块的首地址分别为片内,RAM60H,和,70H,,每个数据块的第,1,个字节都存放数据块的长度,结果存入,5FH,单元。,第,5,章,MCS-51,单片机硬件资源的应用,本章从应用的角度介绍以下内容,:,5,1,MCS-51,的并行口及其应用,5,2,MCS-51,的中断系统,5,3,MCS-51,的定时器/计数器,5,4,MCS-51,单片机的串行接口,5,1 并行口及其应用,在,MCS-51,单片机内部包含有四个并行的,I/O,口,P0,口、,P1,口、,P2,口和,P3,口,一、结构与操作,二、应用举例,一、结构与操作,1,、,P1,口,P1,口作为通用的,I/O,口使用,具有,输出、读引脚、读锁存器,三种工作方式。,注意:是读引脚还是读锁存器,其过程,CPU,内部会自动处理,读者不必在意。但应注意,当作为读引脚方式使用时,应先对该口写“,1”,。,P1,口作为一般的,I/O,口使用时记作,P1,7,P1,0,。,2,、,P3,口,:,P3,口为多功能口。作为第二功能口使用时是提供一个全双工的串行口、,2,个外部中断源的中断输入、,2,个计数器的计数脉冲输入、两个对外部,RAM,及,I/O,的读,/,写控制信号。,在应用中,,P3,口的各位如不设置为第二功能,则自动处于第一功能。,P3,口作为一般的,I/O,口使用时记作,P3,7,P3,0,3,、,P0,口:,PO,口既可以作为通用的,I/O,口进行数据的输入,/,输出,也可以作为单片机系统的地址,/,数据线使用 。,作为一般的,I/O,口使用时记作,P0,7,P0,0,;作为数据口使用时记作,D7,D0,;作为地址线使用时要增加一个锁存器,锁存器的输出是地址线的低,8,位,记作,A7,A0,。,4,P2,口,P2,口既可以作为通用的,I/O,口使用也可以作为地址总线使用 。,P2,口作为一般的,I/O,口使用时记作,P2,7,P2,0,;作为地址口使用时是地址的高,8,位,记作,A15,A8,。,二、应用举例,1,、,电路如图,所示,编程将,开关,K0,K3,的,状态通过指示,灯,L0,L3,表示,出来,开关闭,合时灯亮。,2,、,电路如所示。编制一个灯光循环闪烁程序,通过,P3,口连接,8,个发光二极管。其中一个,发光二极管闪,烁,3,次后,转移,到下一个发光,二极管闪烁,3,次,,如此循环不止。,3,、,设计一电路,监视某按键,S,,用发光二极管,LED,显示按键状态。如果按键闭合,则,LED,亮,,并发出声音报,警信号;如果,按键,S,断开,,则,LED,熄灭,,无声音报警信号。,5,2,MCS-51,的中断系统,一、中断系统结构与控制,二、中断优先级结构,三、中断响应,四、中断请求的撤除,五、中断系统应用举例,一、中断系统结构与控制,1中断源,外部中断:,外部中断0,/INT0,外部中断1,/INT1,定时器/计数器溢出中断:,定时器/计数器0,TF0,定时器/计数器1,TF1,串行口中断:,串行口,RI,、,TI,2中断控制,设置了4个专用寄存器用于中断控制,用户通过设置其状态来管理中断系统。,(,1,)定时器控制寄存器(,TCON),(2),串行口控制寄存器(,SCON),(3),中断允许控制寄存器(,IE),(4),中断优先级控制寄存器(,IP),二、中断优先级结构,优先级排列如下(,从高到低,):,外部中断0,定时器/计数器0溢出,外部中断1,定时器/计数器1溢出,串行口中断,三、中断响应,中断服务程序入口地址:,外部中断,0 0003H,定时器,/,计数器,0,溢出,000BH,外部中断,1 0013H,定时器,/,计数器,1,溢出,001BH,串行口,0023H,四、中断请求的撤除,MCS-51,单片机的,51,子系列有,5,个中断源,但实际上只分属于三种中断类型。这三种类型是:,外部中断、定时器,/,计数器溢出中断和串行口中断,。对于这三种中断类型的中断请求,其撤除方法是不同的。,1定时器溢出中断请求的撤除,TF0,和,TF1,是定时器,/,计数器溢出中断标志位,它们因定时器,/,计数器溢出中断请求的输入而置位,因定时器,/,计数器溢出中断得到响应而自动复位成,0,状态。因此,定时器,/,计数器溢出中断源的中断请求是自动撤除的,用户根本不必专门为它们撤除。,2串行口中断请求的撤除,TI,和,RI,是串行口中断的标志位,中断系统不能自动将它们撤除。为了防止,CPU,再次响应这类中断,用户应在中断服务程序的适当位置处,通过指令将它们撤除:,CLRTI,;撤除发送中断,CLRRI,;撤除接收中断,3外部中断的撤除,外部中断请求有两种触发方式:电平触发和脉冲触发。对于这两种不同的中断触发方式,,MCS-51,单片机撤除它们的中断请求的方法是不相同的。,(,1,)脉冲触发:,自动复位,(,2,)电平触发:,五、中断系统的应用举例,对中断系统的使用,实际是对,4,个与中断有关的寄存器,IE,、,TCON,、,SCON,、,IP,进行控制与管理。在中断程序的编制中应注意:,IE,寄存器:,开中断总开关,EA,,置位各中断源的中断允许位。, 对于外部中断应通过,TCON,寄存器的,IT,位,选择中断触发方式,-,电平或脉冲。, 如果有多个中断源,要通过,IP,寄存器,指定其中断优先级。,例,1,:外部中断,在本实例中,首先,通过,P1.7,口点亮发,光二极管,然后外,部输入一脉冲串,,则发光二极管亮、,暗交替。,电路如图所示。,例,利用定时器,/,计数器扩展外部中断,(放在下一节讲),。,例,利用外部中断和查询相结合的方法扩展外部中断,例,利用优先编码器扩展外部中断,5,3,MCS-51,的定时器/计数器,一、结构,二、控制寄存器,三、工作方式,四、应用举例,一、结构,计数功能,是指对外部事件进行计数,:,计数信号来自,T0,、,T1,引脚。,定时功能,也是通过计数器的计数功能来完成的,不过此时的计数脉冲来自单片机内部:机器周期。,二、控制寄存器,与定时器,/,计数器应用有关的控制寄存器有三个,分别为,TCON,、,TMOD,、,IE,。,(,1,)定时控制寄存器(,TCON),(,2,)工作方式控制寄存器(,TMOD),3中断允许控制寄存器(,IE),三、工作方式,1方式0,定时和计数范围:,计数器的计数值范围是:,1,8192,(,2,13,),当为计数器工作方式时:,计数器的初值范围为:,0,2,13,-1,;,定时时间的计算公式为:,定时时间,=,(,2,13,-,计数初值),定时周期,若晶振频率为,6MHz,,其定时周期,2s,:,则最短定时时间为:,Tmin,=2,13,-(2,13,-1) 2s =2(s),最长定时时间为:,Tmax,=(2,13,-0) 2s =16384(s),2方式1:,定时与计数范围:,计数器的计数值范围是:,1,65536,(,2,16,)。,当为计数器工作方式时:,计数器的初值范围为:,0,2,16,-1,;,当为定时工作方式时:,定时时间,=,(,2,16,-,计数初值),定时周期,若晶振频率为,12MHz,,其定时周期,1s,:,则最短定时时间为:,Tmin,=2,16,-(2,16,-1) 1s =1(s),最长定时时间为:,Tmax,=(2,16,-0) 1s =65536(s),3方式2:,计数与定时范围:,计数器的计数值范围是:,1,256,(,2,8,),当为计数器工作方式时:,计数器的初值范围为:,0,2,8,-1,;,当为定时工作方式时:,定时时间,=,(,2,8,-,计数初值),定时周期,若晶振频率为,12MHz,,其定时周期,1s,:,则最短定时时间为:,Tmin,=,28-,(2,8,-1) 2s =2(s),最长定时时间为:,Tmax,=(2,8,-0) 2s =512(s),4方式3:,四、应用举例,使用时应重点考虑下面的问题:,结构、有关的寄存器、 工作方式,(重点是方式,1,、方式,2,)、,初始化,(工作方式、计数初值、中断管理、启动定时器,/,计数器),计数初值的计算:,方式,1,:,16,位计数器的最大计数值为,2,16,=65536,;,方式,2,:,8,位计数器的最大计数值为,2,8,=256,。,例,1,设系统时钟频率为,12MHz,,用定时器,/,计数器,T0,编程实现从,P1.0,输出周期为,500s,的方波。,(中断、查询),(,10ms,可以采用方式,1,),(更长呢?),例,2,设系统时钟频率为,12MHz,,编程实现:,P1.1,引脚上输出周期为,1s,,占空比为,20,的脉冲信号。,(取,10ms,基础,,100,个,分别占,20,个、,80,个),例,3,利用定时器的门控位,GATE,测量正脉冲宽度,脉冲从(,P3.3,)引脚输入。门控位,GATE=1,,定时器,/,计数器,T1,的启动受到外部中断,1,引脚的控制,当,GATE=1,,,TR1=1,时,只有引脚为高电平时,,T1,才被允许计数,利用,GATE,的这个功能,可以测量引脚(,P3.3,)上正脉冲的宽度(机器周期数),其方法如下所示。,例,4,用定时器,/,计数器,T0,监视一生产线,每生产,100,个工件,发出一包装命令,包装成一箱,并记录其箱数。,5,4,MCS-51,的串行接口,MCS-51,单片机内部的串行接口是全双工的,即它能同时发送和接收数据。这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。在串行口中可供用户使用的是它的寄存器。,一、结构,二、控制寄存器,三、工作方式,四、波特率的设定,五、串行口的应用,六、,RS-232C,串行口标准及应用,一、串行口寄存器的结构,串行口中寄存器的基本结构如图4-11所示。,图中共有两个串行口的缓冲寄存器(,SBUF)。,一个是发送寄存器,一个是接收寄存器。,串行发送时,从片内总线向发送,SBUF,写入数据;串行接收时,从接收,SBUF,向片内总线读出数据。它们都是可寻址的寄存器,但因为发送和接收不能同时进行,所以给这两个寄存器赋以同一地址(99,H)。,二、串行口控制寄存器,(1)串行控制寄存器,SCON,(2)电源控制寄存器,PCON,(3)中断允许寄存器,IE,三、串行口的工作方式,1串行口工作方式0,串行口工作方式0为同步移位寄存器输入/输出模式,可外接移位寄存器,以扩展,I/O,口。,2串行口工作方式1,串行口工作于方式1时,为波特率可变的8位异步通信接口。,3方式2和方式3,串行口工作于方式2和方式3时,被定义为9位异步通信接口。,四、波特率的设定,串行口每秒钟发送或接收数据位数称为波特率。假设发送一位数据所需时间位,T,,则波特率为1/,T。,方式0的波特率是固定的,等于单片机晶振频率的1/12,即每个机器周期接收或发送一位数据。,方式2的波特率与电源控制器,PCON,的最高位,SMOD,的值有关:,方式2的波特率=晶振频率2,SMOD,/64,方式1和方式3的波特率除了与,SMOD,位有关外,还与定时器,T1,的溢出率有关。定时器,T1,作为波特率发生器,常选用电视方式2(8位重装载初值方式),并且禁止,T1,中断。此时,TH1,从初值计数到产生溢出,它每秒钟溢出的次数称为溢出率。于是,方式1或3的波特率=,T1,的溢出率2,SMOD,/32=2,SMOD,/32fosc/(12(256-TH1),五、串行口的应用, 按选定串行口的操作方式设定,SCON,的,SM0、SM1,两位二进制编码。, 对于方式2或3,应根据需要在,TB8,中写入待发送的第9位数据。, 若选定的操作方式不是方式0,还需设定发送的波特率:,设定,SMOD,的状态,以控制波特率是否加倍。,若选定操作方式1或3,则应对定时器,T1,进行初始化以设定其溢出率。,六、,RS-232C,串行口标准及应用,RS-232C,是美国电子工业协会,EIA(Electronic Industry Association),于1962年指定的一种串行通信接口标准。,第,6,章 系统扩展技术,6,1,系统扩展基础,6,2,存储器扩展技术,6,3,并行,I/O,口的扩展技术,6,1,系统扩展基础,一、系统扩展总线结构图,二、典型的存储器芯片,三、典型的,I/O,接口芯片,四、系统扩展的寻址方法,一、三总线的产生,二、典型的存储器芯片,三、典型的,I/O,接口芯片,四、系统扩展的寻址方法,1,、片外,RAM,及,I/O,口,2,、低位地址线 、剩余的高位地址线,3,、线译码方式、译码器译码方式,1,线译码,2,、译码器译码,6,2 存储器扩展技术,一、存储器扩展时有关信号的连接,控制、数据、地址,二、存储器扩展举例,1,程序存储器的扩展举例,2,数据存储器扩展举例,3,存储器综合扩展举例,27128,的地址空间范围是:,0000H,3FFFH,。,62128,的地址空间范围是:,8000H,0BFFFH,。,6,3 并行,I/O,口扩展技术,一、单片机的口线直接作,I/O,口,二、简单,I/O,接口的扩展,三、利用8255,A,扩展并行,I/O,口,一、单片机的口线直接作,I/O,口,二、简单,I/O,接口的扩展,不可编程的并行口扩展一般包括使用,锁存器,扩展、使用,三态门,扩展、使用,总线驱动器,扩展等。,1,使用锁存器扩展并行口,2,使用三态门扩展并行口,例,电路如图所示,用,74LS373,扩展一个输出口,分别接,8,个,LED,显示器,L0,L7,,用,74LS244,扩展一个输入口,分别接,8,个开关,K0,K7,,编程实现将开关,K0,K7,的状态通过,LED,显示出来。,三、利用8255,A,可编程芯片扩展并行,I/O,口,第,7,章,MCS-51,系列单片机接口技术,7,1,键盘接口技术,7,2 显示器接口技术,7,3,D/A,转换器接口技术,7,4 A/D,转换器接口技术,7,1,键盘接口技术,一、概述,二、独立式按键接口技术,三、行列式键盘接口技术,一、概述,1,、键盘有全编码键盘和非编码键盘两种 ;,2,、按键只是简单的电平输入。当某键被按下时,该键输入到计算机的状态将发生变化 ;,3,、键盘接口电路包括硬件和软件两大部分,(,1,)硬件部分应保证键开关状态的可靠输入,(,2,)软件部分是对按键进行编码以给出键值,二、独立式按键接口技术,二、行列式键盘,软件管理(三步):,(,1,)判断整个键盘是否有键按下,采用粗扫描的办法。让所有的行为,0,,读列的数值。,(,2,)判断被按键的具体位置,采用细扫描的办法。逐行输出,0,,读列的数值。,(,3,)计算被按键的键值,以确定要完成的功能,。,采用某种算法,将行和列的信息合并为一个信息,该信息称为该键的键值,并按一定的顺序形成一个键值表。在计算键值时应注意所有按键的键值应采用同一种算法并且计算出来的键值应该各不相同。,7,2,显示接口技术,在单片机应用系统中,常用的显示设备有单个发光二极管、八段,LED,显示器、液晶显示器(,LCD,)、屏幕显示器(,CRT,)等。本节讨论八段数码显示器与单片机的接口问题。包括:,一、概述,二、,LED,静态显示,三、,LED,动态显示,四、键盘综合应用举例,一、概述:,1,、结构与原理:,2,显示器的驱动问题,段驱动与位驱动,3,显示内容与显示代码的转换问题,查表法,二、,LED,静态显示,三、,LED,动态显示,四、键盘,/,显示综合举例,7,3 D/A,转换器接口技术,将数字量转变为模拟量的器件。,一、概述,二、8位并行,D/A,转换器,DAC0832,一、概述,1,、输出形式:,两种输出形式,一种是电压输出形式,即输入的是数字量,输出为电压;另一种是电流输出形式,即输出为电流。,2,主要指标,(,1,)分辨率,(,2,)建立时间,(,3,)转换精度,二、,D/A,转换器,DAC0832,1,主要特性,输出电流线性度可在满量程下调节;,转换时间为,1s,;,数据输入可采用双缓冲、单缓冲或直通形式;,每次输入数字量为,8,位二进制数;,逻辑电平输入与,TTL,兼容;,供电电源为单一电源,可在,5V,15V,内。,2,内部结构及外部引脚,3,和,8051,单片机的连接,7,4 A/D,转换器接口技术,将模拟量转变为数字量的器件。,一、 概述,二、,ADC0809,三、,AD574,四、 串行,A/D,转换器,TLC2543,五、,V/F,式,A/D,转换电路的应用,一、,A/D,转换器概述,1,逐次,逼近式,A/D,转换器,2,双斜率积分式,A/D,转换器,3,V/F,变换式,A/D,转换器,4,A/D,器件的主要性能指标,转换时间,分辨率,转换精度。,二、,ADC0809,1,主要功能特点,分辨率为,8,位;,总的不可调误差在,(,1/2,),LSB,和,1LSB,之间;,典型转换时间为,100s,;,具有锁存控制的,8,路多路开关;,具有三态缓冲输出控制;,单一,+5V,供电,此时输入范围为,0,5V,;,输出与,TTL,兼容;,2,结构与外部引脚,3,、时序,4,与单片机的接口设计实例,三、并行,A/D,转换器,AD574,接口实例:,四、串行,A/D,转换器,TLC2543,工作时序:,应用举例:,五、,V/F,式,A/D,转换电路的应用,第,8,章 单片机应用系统的设计,单片机应用系统设计将涉及到许多复杂的内容和问题,本章主要对单片机应用系统的设计进行基本的阐述,包括:,8,1 单片机应用系统结构与设计内容,8,2 单片机应用系统的一般设计方法,8,3 单片机应用系统的调试,8,4 单片机应用系统的设计实例,8,1 单片机应用系统结构与设计内容,从系统的角度来看,单片机应用系统是由,硬件系统和软件系统,两部分组成的。,硬件系统是指单片机扩展的存储器、外围设备及其接口电路等,软件系统包括监控程序和各种应用程序。,一、单片机应用系统的一般硬件组成,二、,单片机应用系统的设计内容,单片机应用系统的设计包含硬件设计与软件设计两部分,具体涉及的内容主要有单片机系统、通道与接口、系统的抗干扰、应用软件的设计等。,72 单片机应用系统的一般设计方法,一、,确定系统的功能与性能,二、,确定系统基本结构,三、,单片机应用系统硬件、软件的设计原则,四、资源分配,8,3 单片机应用系统的调试,单片机应用系统的调试是系统开发的重要环节。,系统调试包括软件调试、硬件调试及软硬件联调。,包括:,一、,单片机应用系统调试工具,二、,单片机应用系统的一般调试方法,8,4 单片机应用系统的设计实例,第,9,章,单片机的,C,语言概述,本章主要对单片机的,C,语言的基本问题进行概括的说明,包括:,9.1,C,语言与,MCS-51,单片机,9.2,Keil,C51,开发工具,9.3,C51,的程序结构与编程实例,9,1 C,语言与,MCS-51,单片机,单片机的,C,语言是以标准,C,语言为基础的,所以本节主要对,C51,语言、标准,C,语言、单片机汇编语言进行比较。,9,1,1,标准,C,语言的程序结构及特点,1,标准,C,语言的程序结构,标准,C,语言程序采用函数结构,每个,C,语言程序由一个或多个函数组成。在这些函数中应包含一个主函数,main( ).,9.1.2,单片机的,C,语言与汇编语言的优势对比,编程调试灵活方便,生成的代码编译效率高,模块化开发,可移植性好,便于项目的维护,9.1.3,单片机的,C,语言和标准,C,语言的比较,C51,中定义的库函数和标准的,C,语言定义的库函数不同,.,C51,中的数据类型和标准,C,的数据类型也有一定的区别,.,C51,变量的存储模式与标准,C,中变量的存储模式不一样,.,C51,与标准,C,的输入,/,输出处理不一样,.,C51,与标准,C,语言在函数使用方面有一定的区别,.,9,1,4,单片机的,C,语言的特点,无需了解机器硬件及其指令系统,只需初步了解,MCS-51,的存储器结构;,C51,能方便的管理内部寄存器的分配、不同存储器的寻址和数据类型等细节问题,但对硬件控制有限;而汇编语言可以完全控制硬件资源;,C51,在小应用程序中,产生的代码量大,执行速度慢;但在较大的程序中代码效率高;,C51,程序由若干函数组成,具有良好的模块化结构,便于改进和扩充;,C51,程序具有良好的可读性和可维护性;而汇编语言在大应用程序开发中,开发难度增加,可读性差;,C51,有丰富的库函数,可大大减少用户的编程量,显著缩短编程与调试时间,大大提高软件开发效率;,使用汇编语言编制的程序,当机型改变时,无法直接移植使用,而,C,语言程序是面向用户的程序设计语言,能在不同机型的机器上运行,可移植性好。,9,2,Keil,C51,开发工具,Keil,Software,公司推出的,51,系列兼容单片机,C,语言软件开发系统,即,8051,开发工具套件,具有编辑、编译、链接、定位、库管理、,HEX,文件创建、仿真调试等多种功能,并支持汇编、,PL/M,等多种编程语言。,9,2,1,Keil,8051,开发工具套件,1,Keil,8051,开发工具套件主要包含以下开发部件,Windows,应用程序,Vision2,美国标准优化,C,交叉编译器,C51,宏汇编器,A51,链接,/,重定位器,BL51,库管理器,LIB51,目标文件到,HEX,格式的转换器,OH51,实时操作系统,RTX-51,2,Keil,8051,开发工具套件,PK51,专业开发套件,DK51,开发套件,CA51,编译套件,A51,汇编套件,RTX51,实时操作系统,FR51,9.2.2,使用,Keil,开发工具开发软件的流程,创建一个项目,从器件库中选择目标器件并配置工具软件的设置;,用,C,语言或汇编语言创建源程序;,用项目管理器生成用户的应用;,修改源程序中的错误;,调试链接后的应用。,9,3 C51,的程序结构与编程实例,例,9-4,8051,单片机的,P1,口接有,8,个开关,W1,W8,,,P3.1,接一报警指示灯,电路如图,1-2,所示。,例,9-5,使用定时器,/,计数器以工作方式,2,产生,100,s,定时,在,P1.0,口输出周期为,200,s,的连续方波,已知晶振为,6MHz,。,例,9-6,P1.3,每隔,0.3S,闪烁一次。,
展开阅读全文