微机课程总结.ppt.ppt

上传人:laozhun 文档编号:2282393 上传时间:2023-02-09 格式:PPT 页数:117 大小:1.02MB
返回 下载 相关 举报
微机课程总结.ppt.ppt_第1页
第1页 / 共117页
微机课程总结.ppt.ppt_第2页
第2页 / 共117页
微机课程总结.ppt.ppt_第3页
第3页 / 共117页
微机课程总结.ppt.ppt_第4页
第4页 / 共117页
微机课程总结.ppt.ppt_第5页
第5页 / 共117页
点击查看更多>>
资源描述

《微机课程总结.ppt.ppt》由会员分享,可在线阅读,更多相关《微机课程总结.ppt.ppt(117页珍藏版)》请在三一办公上搜索。

1、课程总结,考试范围 题型,考试范围,微型计算机的运算基础(1.4)引脚功能(2.2)与组成(2.3)指令系统与汇编语言程序设计(4.2.5散转与4.2.6子程序不考)输入/输出方式与中断定时器/计数器(T0/T1)+8253串行接口存储器扩展,题型,运算基础(20分,4分/小题)简答题(30分,6分/小题)程序设计(24分,12分/小题)存储器扩展(12分)接口应用(14分),第一部分 运算基础,不同进制数之间的转换 带符号数的原码、反码和补码 算术运算和逻辑运算 定时器/计数器初值 波特率,不同进制数之间的转换,不同进制数转换成十进制数按权展开法 表示不同进制数的尾部字母:二(B),十六(H

2、),八(Q),十(D)(可略)例:10101010B=127 125 123 121=128+32+8+2=170,十二 整数部分:除2取余,直到商为0 小数部分:乘2取整,直到积为0或达到精度要求为止 例:100=B=H=Q 例:0.625=B=H=Q,二进制、八进制与十六进制之间的转换 二八 三合一 八二 一分三 二十六 四合一 十六二 一分四 例:111 0110 B=76H 9BH=1001 1011B 0.1010 11 B=0.ACH 问:01110110B=?Q 0.1010110B=?Q,带符号数的原码、反码、补码,原码定义:在表示带符号数时,正数的符号位为“0”,负数的符号位

3、为“1”,数值位表示数的绝对值,这样就得到了数的原码。,对于字长为n位的机器数,当真值X 0时,X可表示为Xn-2Xn-3X0;当真值X 0时,X可表示为Xn-2Xn-3X0;则X的原码可定义为:,原码的缺点:l“0”的原码有两种形式,这在运算中非常不方便。0原 00000000B 0原 10000000Bl原码在进行两个异符号数相加或两个同符号数相减时,需做减法运算。由于微机中一般只有加法器而无减法器,所以,为了把减法运算转变为加法运算就引入了反码和补码。,原码的用途:原码做乘除法运算方便,两数的符号和数值分别处理:积的符号为两数符号位的异或运算结果 积的数值部分为两数绝对值相乘的结果,反码

4、 定义:正数的反码与原码相同;负数的反码可将负数原码的符号位保持不变、数值位按位取反得到,或者将负数看作正数求原码,再将所有位按位取反得到。,在n位机器数的计算机中,数X的反码定义为:,例如八位微机中:,缺点:“0”的反码也有两种表示法,即0和0。0反00000000B 0反11111111B,补码(难点)定义:正数的补码与原码相同;负数的补码等于它的反码末位加1,即X补X反1,优点:0的补码为00000000B,只有这一种形式。,128补10000000B,补码的含义:以时钟对时为例来说明,现由7点钟调到4点钟。,顺时针调:79 4(mod 12),逆时针调:73 4(mod 12),由于时

5、钟上超过12点时就会自动丢失一个数12(这个自动丢失的数叫做“模”)73=7+-3补=7+12+(-3)=7+9=12+4=4,已知补码求真值:已知正数的补码求真值与原码相同,只要将符号位的0变为(正号),即得到它的真值。已知负数的补码求真值方法1:将负数补码的数值位按位取反再加1,将符号位的1变为(负号),即得到它的真值。方法2:用公式:X=-(2n-X补),已知 补码为 01111111B,其真值为+1111111B=+7FH已知 补码为 11111111B,其真值为:10000000B+1=10000001B,其真值为01H或:X=(28 11111111B)=(256255)=1,小结

6、:已知带符号数的机器数求真值,已知正数的原码、反码、补码求真值,只需将符号位的“0”改为正号“+”即可。已知负数的原码求真值,只需将原码的符号位的“1”改为负号“-”即可。已知负数的反码求真值,数值位取反,符号为改为“-”;或用公式计算:X=-(2n-1-X反)已知负数的补码求真值,数值位取反加1,符号为改为“-”;或用公式计算:X=-(2n-X补),例:已知带符号数的机器数为 0D6H,求其真值。若0D6H是原码,则真值为:若0D6H是反码,则真值为:若0D6H是补码,则真值为:,11010110B,-1010110B,-56H,11010110B,-0101001B,-(0FFH-0D6H

7、),11010110B,-0101010B,-(00H-0D6H),例:已知带符号数的机器数为 56H,求其真值。真值=+56H,-29H,-2AH,当n=8时,几种码的表示范围,当n=16时,几种码的表示范围,带符号数定点补码运算及判OV,定点补码运算定律:当X,Y,X+Y,X-Y均在2n1(2n11)范围内时,则:补补补 补补补如果XY,X-Y的值不在2n1(2n11)范围内(n=8时-128,127),则机器就产生了溢出错误,上式不成立,运算结果无意义。,溢出判别(overflow),若XY 2n11,为正溢出;若XY 2n1,为负溢出。判溢出的方法:1、双进位位法(本书主要用此法判溢出

8、)OV=C8 C7 C8、C7相同不溢出,不同溢出。2、双符号位法-变形码 0V=Sf Sf Sf、Sf相同不溢出,不同溢出。,(1)定点补码加法 步骤:、将、(或)转换为补码。、进行加法运算,符号位参与运算。,编写出程序片段:MOV A,#76;(A)=4CH=01001100BADD A,#23;(A)=4CH+17H=63H 或:MOV A,#4CH;(A)=4CH=01001100BADD A,#17H;(A)=63H,补码,真值,两个正数的和为负数,两个负数的和为正数,(2)定点补码减法运算 XY补X(Y)补X补Y补 步骤:、将、(或)转换为补码。、进行减法运算,符号位参与运算。判溢

9、出的方法与加法相同,例1-9 已知X76,Y23,求XY,编写出程序片段:MOV A,#76;(A)=4CH=01001100BMOV B,#-23;(B)=0E9HCLR CSUBB A,B;(A)=4CH-0E9H=63H,4CH,0E9H,(1)逻辑与运算 逻辑与的运算符为“”,其运算规则为:000 01l00 111,逻辑运算计算机由专门的逻辑电路完成一些逻辑运算。逻辑运算都是位对位运算,即运算中位与位之间互不相关,不存在进位或借位,比算术运算简单。,逻辑与运算的真值表,逻辑“与”的作用:1、将一个字的一部分析取出来,与1 2、将一个字的一部分清0,又称屏蔽 与03、可用于“拆字”4、

10、自身相与,不变,析取,清零,例:将56H拆成05H和 06H MOV A,#56H;(A)=01010110B=56H ANL A,#0FH;(A)=00000110B=06H MOV 30H,A;(30H)=06H MOV A,#56H;(A)=56H ANL A,#0F0H;(A)=01010000B=50H SWAP A;(A)=00000101B=05H,析取低四位屏蔽高四位,逻辑或运算的真值表,逻辑“或”的用途 1、某位置1 2、自身相或,不变 3、拼字,或0,不变,或1,置1,例:求9的ASCII码 MOV A,#30H;(A)=00110000B ORL A,#09H;(A)=0

11、0111001B=39H,(2)逻辑或运算逻辑或的运算符为“”,其运算规则为:00001101111,例:求-5的补码 MOV A,#5;(A)=00000101B CPL A;(A)=11111010B INC A;(A)=11111011B=0FBH,-5的补码,微型机中通常有“求反”(CPL)指令。在机器中求一个数的补码,就是先求该数的“反”,再在末位加1得到的。,例:将68H的低四位求反MOV A,#68H;(A)=01101000BXRL A,#0FH;(A)=01100111B,高四位不变低四位变反,计数器初值的计算 T/C在计数模式下,计数之前必须给它的计数器TH0、TL0或TH

12、1、TL1选送计数初值。T/C的计数器是在计数初值的基础上加1计数的,当计数器回“0”时自动产生溢出,置位TFx中断标志,向CPU 提出中断请求。设需要计数器计数的个数为 X,计数初值为C,由此可得出如下计算计数初值的通式:计数初值:C M-X(6-1)式中,M为计数器的模值,该值和计数器的工作方式有关。当方式0时 M 当方式1时(6-2)当方式2、3时,定时器初值计算 在定时模式下,计数器对单片机振荡频率fosc经12分频后的机器周期进行加1计数,用X表示计数个数,M表示模,C表示定时初值,Tcy表示机器周期,则 1 Tcy 12/fosc,因此,定时时间T的计算公式为:T XTcy(M-C

13、)Tcy 定时初值公式为:C M-T/Tcy 定时器的溢出率 1/T fosc/(12X)fosc/(12(M-C),例:设单片机晶振频率fosc=12MHz,利用T/C0产生10ms的定时,试计算定时初值。,波特率表示每秒钟传送二进制数码的位数(亦称比特数),单位是bps。比如1秒钟传送1位,就是1波特,即1波特1bps。波特率是串行通信的重要指标,用于表征数据传送的速率。波特率越高,数据传送速度越快。,波特率(BAUD RATE),假若数据传送速率为120字符/秒,而每一个字符帧已规定为10个数据位,则传输速率为120101200位/秒,即波特率为1200。,【例】已知单片机串行口工作在方

14、式3,采用奇校验,若要求每分钟传送52363个字符,则波特率是多少?B=5236311/60=9600波特,第二部分 基本概念,单片机内部结构和功能(CPU、存储器)单片机的引脚功能寻址方式 输入/输出接口的作用和常用的输入输出方式中断的基本概念定时器/计数器的基本概念串行通信的基本概念,2.3 AT89C52单片机的主要组成部分,CPU是单片机内部的核心部件,由运算器和控制器两大部分组成。1.运算器运算器是计算机的运算部件,用于实现算术逻辑运算、位变量处理、移位和数据传送等操作。它以算术逻辑单元(ALU)为核心,加上累加器ACC、寄存器B、暂存器TMP1和TMP2、程序状态字(PSW)以及十

15、进制调整电路和布尔处理器组成。,2.3.1 CPU,程序状态字PSW,PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0,Cy(PSW.7)进位标志位 AC(PSW.6)辅助进位(或称半进位)标志F0(PSW.5)用户标志位 RS1和RS0(PSW.4,PSW.3)工作寄存器组选择位 OV(PSW.2)溢出标志位 PSW.1 未定义位P(PSW.0)奇偶标志位,Cy是PSW中最常用的标志位。由硬件或软件置位和清零。,Cy,字节运算中(ALU):它表示运算结果是否有进位(或借位)。Cy=SUBC8 加法时(SUB=0):有进位 Cy由硬件置“1”即Cy

16、=1;无进位 Cy被硬件清“0”即Cy=0。减法时(SUB=1):有借位 Cy由硬件置“1”即Cy=1;无借位 Cy被硬件清“0”即Cy=0。,位操作(布尔操作)时,Cy作为累加器使用,其作用相当于字节操作的累加器ACC。,在指令中可作为转移的条件 JC rel;cy=1转移 JNC rel;cy=0 转移 位操作指令中做累加器 ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit SETB C CLR C CPL C MOV C,bit MOV bit,C,Cy,C,AC(PSW.6)辅助进位(或称半进位)标志。当执行加减运算时,其运算结果产生低四位向高四位进位

17、或借位时,AC由硬件置“1”;否则AC位被自动清“0”。AC=SUB C4 一般在BCD码运算时,系统用于进行十进制调整。,Ac,OV,OV(PSW.2)溢出标志位 它反映运算结果是否溢出,溢出时则由硬件将OV 位置“1”;否则置“0”。只有在补码运算时起作用。双进位位法判溢出:OV=C8 C7,溢出和进位是两种不同性质的概念。溢出是指有正负号的两个数运算时,运算结果超出了累加器以补码所能表示一个有符号数的范围。补码运算是闭运算。而进位则表示两数运算最高位(D7)相加(或相减)有无进位(或借位)。无符号运算是开运算。因此使用时应加以注意。,OV 与 Cy,F0(PSW.5)用户标志位。用户可根

18、据自己的需要对F0位赋予一定的含义,由用户置位或复位,作为软件标志。SETB F0;置位 CLR F0;复位 相当于高级语言中的逻辑变量,F0,P(PSW.0)奇偶标志位 P标志表明累加器ACC中1的个数的奇偶性。在每条指令执行完后,单片机根据ACC的内容对P自动置位或复位。若累加器ACC中有奇数个“1”,则P=1;若累加器ACC中有偶数个“1”,则P=0。,P,专门用来存放指令代码的专用寄存器,对指令进行译码,即把指令转变成所需的电平信号。CPU 根据ID输出的电平信号使定时控制电路定时地产生执行该指令所需的各种控制信号,以使计算机能正确执行程序所要求的各种操作。,控制器是计算机的指挥控制部

19、件,对来自存储器中的指令进行译码,并通过定时和控制电路在规定的时刻发出各种操作所需要的控制信号。包括程序计数器PC、指令寄存器IR、指令译码器ID、数据指针DPTR、堆栈指针SP以及定时控制与条件转移逻辑电路等。,2.控制器,PC是程序的字节地址计数器,其内容是将要执行的下一条指令的地址,寻址范围达64KB。PC 有自动加1功能,从而实现程序的顺序执行。可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。,程序计数器(PC)16位,数据指针DPTR为16位寄存器。它的功能是存放16位的地址,作为访问外部程序存储器和外部数据存储器时的地址。编程时,DPTR既可按16位寄存器使用,也可以按

20、两个8位寄存器分开使用。即:DPHDPTR的高8位 DPLDPTR的低8位,数据指针DPTR,堆栈是一种数据结构,是内部RAM的一段区域。堆栈存取数据的原则是“后进先出”。堆栈指针SP是一个8位寄存器,用于指示堆栈的栈顶,它决定了堆栈在内部RAM中的物理位置。AT89C52单片机的堆栈地址向大的方向变化(与微机堆栈地址向小的方向变化相反)。系统复位后,SP初值为07H,实际应用中通常根据需要在主程序开始处对堆栈指针SP进行初始化,一般设置SP为307FH。设立堆栈的目的是用于数据的暂存,中断、子程序调用时断点和现场的保护与恢复。,堆栈指针SP 8位,2.3.2 AT89C52单片机的存储器,单

21、片机在系统结构上采用了哈佛型,其存储器在物理结构上分程序存储器(ROM)和数据存储器(RAM)。有四个物理上相互独立的存储空间,其配置如图2-6所示:,片内ROM,片外ROM,片内RAM,片外RAM/I/O口,8KB,用户使用的角度上看,存储空间分为三类:片内外统一编址的64K字节的ROM;256字节片内RAM;64K字节片外RAM或I/O口地址空间 四个空间地址的重叠 ROM中片内外低8K字节:控制信号/EA RAM中片内外低256个字节:MOV与MOVX RAM与ROM64K地址:控制信号/PSEN SFR和高128B的RAM:直接寻址和间接寻址,说明,0000H-0002H(开机复位单元

22、)3个0003H-000AH(INT0中断地址区)8个000BH-0012H(T/C0中断地址区)8个0013H-001AH(INT1中断地址区)8个001BH-0022H(T/C1中断地址区)8个0023H-002AH(串行口中断地址区)8个002BH-0032H(T/C2中断地址区)8个,2.2.2.1 程序存储器,特殊单元,当CPU的引脚/EA接高电平时,PC在0000H1FFFH范围内,CPU从片内ROM取指令;而当PC1FFFH后,则自动转向片外ROM去取指令。当引脚/EA接低电平时,89C52片内ROM不起作用,CPU只能从片外ROM取指令,地址可以从0000H开始编址 89C52

23、从片内ROM和片外ROM取指时执行速度相同。,数据存储器用来存放运算的中间结果、标志位及数据的暂存和缓冲等。分为片内RAM和片外RAM。89C52单片机片内数据存储器最大可寻址256个单元,片外可寻址16位(64kB)的地址空间。片内数据存储器和片外数据存储器是单独编址的。,数据存储器,片内数据存储器(RAM),与T2相关的6个SFR没有列出,00H,FFH,R0R7,4个,(1)工作寄存器(00H1FH),这16个单元(共计128位)的每一位都有一个8位表示的位地址,位寻址范围为00H7FH。,(2)可位寻址区(20H2FH),28H 字节地址,MOV 28H,#56H,SETB 43H,C

24、LR 42H,1,0,字节操作,位操作,30HFFH是供用户使用的一般RAM区,也是数据缓冲区,共208个单元。对用户RAM区的使用没有任何规定或限制,一般用于存放用户数据及作堆栈区使用。,(3)用户RAM区(30HFFH),当一条指令访问7FH以上的内部地址单元时,寻址方式决定是访问高128B的RAM单元还是访问特殊功能寄存器。,80H-FFH单元高128个字节与特殊功能器地址是重叠的,但物理上分开。,直接寻址方式,访问SFR MOV 0A0H,#data;P2口字节地址为0A0H间接寻址方式,访问高128B的RAM单元 MOV R0,#0A0H MOV R0,#data,89C52片内有2

25、7个特殊功能寄存器,又称为专用寄存器。它们离散地分布在80H0FFH RAM空间中。在27个特殊功能寄存器中,有12个寄存器可位寻址。它们的字节地址正好能被8整除,而且字节地址与该字节最低位的位地址相同。,特殊功能寄存器SFR的名称及地址(与T2相关的6个SFR没有列出),特殊功能寄存器地址分布图,1、电源引脚GND和Vcc Vcc为+5V电源端,2、时钟电路引脚XTAL1和XTAL2 XTAL1和XTAL2是外接晶体引线端。当芯片使用内部时钟时,用于外接石英晶体和电容;当用外部时钟时,用于接外部时钟脉冲信号。,2.2.1 单片机引脚功能介绍,4、端口线 P0P3,P0口(P0.0P0.7)可

26、作为外部扩展时的数据总线/低8位地址总线的分时复用口,又可作为通用I/O口。每个引脚可驱动8个TTL负载。对Flash进行编程和校验时,P0口用于输入/输出数据。P1口(P1.0P1.7)可作为通用I/O口。每个引脚可驱动4个TTL负载。对Flash进行编程和校验时,用来接收低8位地址。此外,P1.0和P1.1还可分别作为外部计数输入和输入。,P2口(P2.0P2.7)可作为外部扩展时的高8位地址总线,又可作为通用I/O口。每个引脚可驱动4个TTL负载。对Flash进行编程和校验时,用来接收高位地址。P3口(P3.0P3.7)是双功能复用口,作为通用I/O口时,功能与P1口相同,常用第二功能。

27、每个引脚可驱动4个TTL负载。,3 输入/输出接口的作用,接口电路的作用 锁存作用防止由于CPU速度快,外设慢而产生的丢数现象 隔离作用防止DB上的信息重叠 变换作用在CPU与外设之间进行信息类型、电平、传送接收方式变换 联络作用在CPU与外设之间进行联络,Ready,Busy,无条件传送方式(又称同步传送)查询式传送方式(又称条件传送异步传送)中断传送方式DMA传送方式,4 输入/输出数据的传送方式,AT89C52中断响应的基本条件,CPU 中断受阻的条件:CPU 正在处理相同或更高级中断 现行的机器周期不是所执行指令的最后一个机器周期 正在执行的指令是访问IE、IP或RETI指令。在执行上

28、述指令 后至少再执行一条指令,才可能响应中断。,中断响应的基本条件:首先要有中断源发出中断申请;中断总允许位EA=1,即CPU允许所有中断源申请中断;在中断源寄存器TCON和SCON中,申请中断的中断允许位为1,即此中断源可以向CPU申请中断。,A CPU自动完成:CPU先在每个机器周期的S5P2期间,对各中断源重复进行查询,并设置相应的中断标志位。然后在下一个机器周期S6期间按照IP和自然优先级顺序查询各中断 如果中断响应条件满足,且不存在中断阻断的情况,则CPU就响应中断。硬件生成长调用指令自动地把断点地址压入堆栈保护,并随之将对应的中断入口装入程序计数器PC,使程序转向该入口地址,以执行

29、中断服务程序。A 用户必须完成:在这些入口地址存放一条无条件跳转指令,使程序跳转到用户安排的中断服务程序起始地址上去。,中断响应过程,低级中断源的中断服务程序,CLR EA,SETB EA,共同点:都是通过计数器计脉冲的个数来实现的,定时方式与计数方式,1、定时方式 T/C计数8051内部机器周期的个数,由计数个数可以计算出定时时间。每个机器周期使T/C的计数器增加1,直至计满回零后自动产生溢出中断请求,表示定时时间到。fosc=12MHz时,Tcy=1us,2、计数方式 T/C计数来自引脚T0(P3.4)和T1(P3.5)的外部脉冲信号的个数。输入脉冲由1变0的下降沿时,计数器的值增加1直到

30、回零产生溢出中断,表示计数已达预期个数。最高计数频率为振荡频率的1/24。即计数周期=2机器周期。,不同点:,并行通信与串行通信串行通信的制式异步通信与同步通信,7.1 串行通信概述,并行通信与串行通信,传送速度快,但有多少数据位就需多少根数据线,因此传送成本高。在集成电路芯片的内部、同一插件板上各部件之间、同一机箱内各插件板之间的数据传送都是并行的距离通常小于30m,并行通信数据的各位同时传送,最少只需一根数据线即可完成,成本低但速度慢,且数据的传送控制比并行通信复杂。计算机与远程终端或终端与终端之间的数据传送通常都是串行的距离可以从几米到几千公里,串行通信数据一位一位顺序传送,单工方式信号

31、(不包括联络信号)在信道中只能沿一个方向传送,而不能沿相反方向传送的工作方式称为单工方式。半双工方式通信的双方均具有发送和接收信息的能力,信道也具有双向传输性能,但是,通信的任何一方都不能同时既发送信息又接收信息,即在指定的时刻,只能沿某一个方向传送信息。这样的传送方式称为半双工方式。全双工方式若信号在通信双方之间沿两个方向同时传送,任何一方在同一时刻既能发送又能接收信息,这样的方式称为全双工方式。,串行通信的制式,异步通信和同步通信,在数据通信中,要保证发送的信号在接收端能被正确地接收,必须采用同步技术。常用的同步技术有两种方式,一种称为异步通信也称起止同步方式,另一种称为同步通信也称同步字

32、符同步方式。异步通信异步通信以字符为单位进行数据传输,每个字符都用起始位、停止位包装起来,在字符间允许有长短不一的间隙。在单片机中使用的串行通信都是异步方式。同步通信同步通信用来对数据块进行传输,一个数据块中包含着许多连续的字符,在字符之间没有空闲。同步通信可以方便地实现某一通信协议要求的帧格式。,数据位可取5位、6位、7位或8位,有三种选择:奇、偶或无校验,可以是1、1.5或2位,波特率表示每秒钟传送二进制数码的位数(亦称比特数),单位是bps。比如1秒钟传送1位,就是1波特,即1波特1bps。波特率是串行通信的重要指标,用于表征数据传送的速率。波特率越高,数据传送速度越快。串行通信常用的标

33、准波特率在RS-232C标准中已有规定,如波特率为600、1200、2400、4800、9600、19200等等。假若数据传送速率为120字符/秒,而每一个字符帧已规定为10个数据位,则传输速率为120101200位/秒,即波特率为1200,每一位数据传送的时间为波特率的倒数:T112000.833ms,波特率(BAUD RATE),第三部分 程序设计,数码转换程序设计 数据块传送多字节的加减法,第四部分 存储器扩展,单片机对外扩展三总线地址锁存器EPROM扩展RAM扩展程序存储器和数据存储器的同时扩展,单片机对外扩展三总线,地址锁存器,单片机的P0口是分时复用的地址/数据总线,因此在进行存储

34、器扩展时,必须利用地址锁存器将地址信号锁存起来。,外部程序存储器的扩展原理,硬件电路如图7-1所示。单片机访问外部程序存储器所使用的控制信号有:ALE:低8位地址锁存控制信号/PSEN:外部程序存储器“读取”控制信号,EPROM扩展电路,1常用EPROM芯片介绍(名称/8),2扩展电路实例,P2.7=0 0000H7FFFHP2.7=1 8000HFFFFH,线选,27648KB,地址空间地址段不唯一,外部数据存储器的扩展方法,静态RAM扩展,线选法,译码法,线选,62648KB,地址空间地址段不唯一,片外剩2根线,每片有4段地址段,全译码,片内13根片外3根,3-8译码器的其它输出端代表的地

35、址是什么?,程序存储器和数据存储器的同时扩展方法,EPROM 与SRAM扩展,全译码,第五部分 接口应用,AT89C52单片机的定时器/计数器 定时/计数器芯片8253,6.1 定时器/计数器的结构 6.2 定时器/计数器T0和T1的控制 6.3 定时器/计数器的工作方式及应用,第6章 AT89C52单片机的定时器/计数器,6.2 定时器/计数器的控制,定时器/计数器的工作由TCON和TMOD控制。由软件把控制字写入TCON和TMOD,用来设置T/C0和T/C1的工作方式和控制功能。当8051系统复位时,TCON和TMOD所有位都被清0。,一、工作模式寄存器TMOD(89H)TMOD用于控制T

36、/C0和T/C1的工作模式,其各位的定义格式如下:,3GATE 门控位(控制启动方式)GATE0时,T/C的启动只要用软件使TR0(或TR1)置1即可,而不管/INT0(或/INT1)的电平是高还是低。GATE1时,只有/INT0(或/INT1)引脚为高电平且由软件使TR0(或TR1)置1时,才启动T/C工作。也就是T/C的启动受双重控制。注意:TMOD不能位寻址,只能由字节设置T/C的工作方式,低半字节设定T/C0,高半字节设定T/C1。,二、控制寄存器 TCON(88H)控制寄存器 TCON除可字节寻址外,各位还可位寻址。各位定义及格式如下:,1)TF1(TCON.7)T/C1的溢出标志位

37、。当T/C1被允许计数后,T/C1从初值开始加1计数,回零时由高位产生溢出,由硬件自动置TF1为“1”,并向CPU请求中断,当CPU响应并进入中断服务程序后,TF1又被硬件自动清0。TF1也可以由程序查询和清0。2)TF0(TCON.5)T/C0溢出标志位。其功能同TF1。,3)TR1(TCON.6)T/C1运行控制位。由软件置位或复位。当GATE(TMOD.7)为0时,TR1 为1时,启动T/C1计数;TR1为0 时,停止T/C1计数。4)TR0(TCON.4)T/C0运行控制位。其功能同TR1,只是GATE 为TMOD.3。5)IE1、IT1、IE0、IT0(TCON.3TCON.0)外部

38、中断INT1、INT0的中断标志位和申请信号的触发方式控制位。,1.初始化的步骤 AT89C52内部的T/C是可编程的,其工作方式和模式通过程序进行设定和控制,称为对T/C的初始化。初始化的步骤是:确定工作方式,即根据要求先给TMOD送一个方式控制字;计算计数初值/定时初值,并写入TH0、TL0或 TH1、TL1中;根据需要,置位EA使CPU开放中断,同时置位ETx允许T/C中断。IP设定中断优先级;给TCON送命令控制字,即置位TRx启动T/C计数。,T/C的初始化,2计数器初值的计算 T/C在计数模式下,计数之前必须给它的计数器TH0、TL0或TH1、TL1选送计数初值。T/C的计数器是在

39、计数初值的基础上加1计数的,当计数器回“0”时自动产生溢出,置位TFx中断标志,向CPU 提出中断请求。设需要计数器计数的个数为 X,计数初值为C,由此可得出如下计算计数初值的通式:计数初值:C M-X(6-1)式中M为计数器的模值,该值和计数器的工作方式有关。213 方式0 M 216 方式1(6-2)28 方式2、3,3定时器初值计算 在定时模式下,计数器对单片机振荡频率fosc经12分频后的机器周期进行加1计数,用X表示计数个数,M表示模,C表示定时初值,Tcy表示机器周期,则 1 Tcy 12/fosc,因此,定时时间T的计算公式为:T XTcy(M-C)Tcy 定时初值公式 C M-

40、T/Tcy 定时器的溢出率 1/T fosc/(12X)fosc/(12(M-C),解:(1)确定T/C0的工作方式 要在P1.0输出周期为2ms的方波,只要使P1.0每隔1ms取反一次即可。(2)送T/C0的方式控制字(TMOD)00H,即T/C0定时,方式0,只由TR0启动,因为T/C1不用,高4位取0。即:,T/C1不用,高4位取0,只由TR0启动,定时,方式,例1 利用T/C0方式0产生1ms的定时,在P1.0引脚上输出周期为2ms的方波。设单片机晶振频率fosc 12MHz。,应用举例,(3)计算定时初值 Tcy12/fosc12/(12106)S1us 计数个数:X1ms/1us1

41、000 定时初值:C(213X)81921000 7192D 1C18H 11100000 11000B 高8位0E0H 低5 位18H TH0初值为0E0H,TL0初值为18H。若采用方式1,16位,则 定时初值:C 65536-1000 64536 FC18H TH0初值为0FCH,TL0初值为18H,(4)编程可以采用中断或查询两种方式编写程序。1)中断方式 当T/C0定时溢出时,TF0被置1,申请中断。编程使CPU以响应中断方式输出方波,效率比较高。,ORG 0000H AJMP MAIN;转到主程序MAIN ORG 000BH AJMP TC0S;转到T/C0的中断服务程序TC0S主

42、程序:ORG 1000H MAIN:MOV SP,#6FH MOV TMOD,#00H;置T/C0为方式0,定时 MOV TH0,#0E0H;送计数初值 MOV TL0,#18H SETB ET0;T/C0允许中断 SETB EA;CPU开中断 SETB TR0;启动T/C0定时 HERE:SJMP HERE;等待中断中断服务程序:ORG 1200H TC0S:MOV TH0,#0E0H;重新装入计数初值 MOV TL0,#18H CPL P1.0;输出方波 RETI;中断返回 END,ORG 0000H MOV TMOD,#00H MOV TH0,#0E0H MOV TL0,#18H SET

43、B TR0 LOOP:JBC TF0,DO1 SJMP LOOP DO1:MOV TH0,#0E0H MOV TL0,#18H CPL P1.0 SJMP LOOP END,2)查询方式 还可以采用查询TF0的方式处理T/C0定时溢出,编程简单,但效率较低。程序中查询采用JBC TF0,DO1 指令,目的是当判到TF01后,必须用软件复位TF0,为下次计数器回零溢出做好准备,这条指令具有判TF0为1后清零的双重功能。,方式 最小定时 最大定时 0 11/fosc12 8192 1/fosc12 1 11/fosc12 655361/fosc122、3 11/fosc12 2561/fosc12

44、,最大计数值,一、8253的控制字和工作方式三、8253的初始化与应用编程,计数通道和控制字寄存器地址分配及操作,二、8253的控制字与工作方式,8253控制字的格式,1.控制字,2.工作方式,6种方式中只有方式2、3是连续计数,其他4种方式都是一次计数,要继续工作需要重新启动,方式0、4由写入计数值(软件)启动,方式1、5要由外部信号(硬件)启动。,8253的控制字寄存器和3个计数器分别具有独立的编程地址,由控制字的内容确定使用的是哪个寄存器以及执行什么操作。,三、8253的初始化与应用编程,1初始化(三个通道单独初始化),定时/计数器的初值计算:定时时间=时钟脉冲周期预置的计数初值定时频率

45、=时钟脉冲频率预置的计数初值,编程时,必须遵守两条原则:在对某个计数器设置初始值之前,必须先写入控制字。在设计初始值时,要符合在控制字中规定的格式。,写入控制字:用来选择计数器,设置工作方式和计数格式D7D6位(SC1,SC0):用于选择计数器,根据这2位的编码来确定使用的是哪一个计数器。D5D4(RW1,RW0):用于确定读写的格式。D3D1位(M2,M1,M0):这三位用来指定计数器的工作方式,8253的计数器共有6种工作方式。D0位(BCD):用来选择计数的类型,确定计数器是采用二进制计数还是采用二十进制计数。写入计数初值若规定只写入低8位,则写入的为计数值的低8位,高8位自动置0;若规

46、定只写入高8位,则写入的为计数值的高8位,低8位自动置0;若是16位计数值,则分两次写入,先写入低8位,再写入高8位。,8253的初始化编程步骤,例1:要求计数器0工作于方式3,输出方波的频率为2KHz,计数脉冲的频率为2.5MHz,采用BCD计数,试写出初始化程序段。,2.常数计算:TC=2.5MHz/2KHz=1250,MOV R0,#83HMOV A,#37HMOVX R0,AMOV R0,#80HMOV A,#50HMOVX R0,AMOV A,#12HMOVX R0,A,1.8253的端口地址为:80H,81H,82H,83H。,4.初始化程序段:,例2:已知8253三通道所用时钟脉冲频率为1MHz,用8253产生各种定时波形。要求:(1)通道0输出频率为2KHz的方波;(2)通道1产生宽度为1ms的负脉冲;(3)通道2以硬件方式触发,输出单脉冲,时常为26,分析:通道0工作于方式3,控制端GATE0接+5V,时间常数N0=1MHz/2KHz=500;通道1工作于方式1,由控制端GATE1的正跳变触发,OUT1的宽度为时常,单次触发,时间常数N1=1ms/0.001ms=1000;通道2工作于方式5,由控制端GATE2的正跳变触发,可连续触发,时间常数N2=26。,2应用,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号