版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一节 定时/计数器 1.1 定时/计数器的结构和工作原理 1定时/计数器组成框图 MCS-51单片机结构框图如图所示。定时/计数器由定时器方式寄存器TMOD、定时器控制寄存器TCON、定时器T0和定时器T1组成。 2定时/计数器工作原理 当定时/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计满溢出。定时器的定时时间与系统的振荡频率紧密相关,因MCS-51单片机的一个机器周期由12个振荡脉冲组成,所以,计数频率 。如果单片机系统采用12M晶振,则计数周期为: 二、定时/计数器的控制 1方式寄存器TMOD 1)M1和M0方式选择位。 M1 M0工 作
2、方 式功 能 说 明0 0方 式 013位定时/计数器0 1方 式 116位定时/计数器 1 0方 式 28位自动重装定时/计数器1 1方 式 3定时器0分成两个独立的8位定时/计数器;定时器1在此方式停止计数 2) 功能选择位。 时设置为定时器工作模式 时设置为计数器工作模式; 3)GATE门控位。 当GATE=0时,定时器的启停只由软件控制位TR0或TR1来控制,为1启动定时器工作,为0停止定时器工作;当GATE=1时,软件控制位TR0或TR1须置1,同时还须 (P3.2)或 (P3.3)为高电平才能启动定时器,即允许外中断 、 启动定时器。 1)TCON.7 TF1 定时器1溢出标志位。
3、 2)TCON.6 TR1定时器1启动控制位。 2控制寄存器TCON TCON的作用:控制定时器的启动、停止和定时器的溢出标志位,外部中断请求位和触发方式。定时器控制字TCON的格式如下: 3)TCON.5 TF0定时器0溢出标志位。 4)TCON.4 TR0定时器0启动控制位。 5)TCON.3 IE1外部中断1( )的中断请求标志位。 6)TCON.2 IT1外部中断1触发方式选择位。 7)TCON.1 IE0 8)TCON.0 IT0外部中断0触发方式选择位。外部中断0( )的中断请求标志位。 3定时/计数器的初始化编程1)确定工作模式、工作方式、启动控制位对TMOD赋值。 2)预置定时
4、或计数的初值直接将初值写入TH0、TL0或TH1、TL1中。 3)根据需要开启定时/计数器中断直接对IE寄存器赋值。 4)启动定时/计数器工作将TR0或TR1置“1”。 1.3 定时/计数器的工作方式 1方式0 当TMOD的M1M0为00时,定时/计数器工作于方式0,为13位的定时/计数器。 T1(或T0)方式0时的逻辑电路结构图 由图可知:16位加法计数器(TH1和TL1)只用了13位。其中,TH1占高8位,TL1占低5位(只用低5位,高3位未用)。当TL1低5位溢出时自动向TH1进位,而TH1溢出时向中断位TF1进位(硬件自动置位),并申请中断。 当 = 0时,控制开关连接12分频器输出,
5、T1对机器周期计数,此时,T1为定时器。设定时器1初值为X,其定时时间为: 当 = 1时,控制开关与T1(P3.5)相连,外部计数脉冲由T1脚输入,当外部信号电平发生由0到1的跳变时,计数器加1,这时T1成为外部事件的计数器。 当GATE = 0时,反相为1,使或门输出为1,与门输出是否为1(即定时器1的启动)直接由TR1控制。 当GATE = 1时,若TR1= 1,外部信号电平通过 引脚直接开启或关断定时器T1。例3.1 设f=12MHZ,用定时器0方式0实现1s的延时DELAY:MOV R3,#200 ;置5ms计数循环初值 MOV TMOD,#00H;设定时器0为方式0 MOV TH0,
6、#63H;置定时器初值 MOV TL0,#18H SETB TR0;启动T0LP1: JBCTF0,LP2 ;查询计数溢出SJMP LP1 ;未到5ms继续计数LP2: MOV TH0,#63H ;重新置定时器初值 MOV TL0,#18H DJNZ R3,LP1;未到1s继续循环 RET ;返回主程序例3.2 设f=12MHZ,用定时器0方式0实现70ms的延时。void delay 70ms()unsigned char i; TMOD=0X00; /设置T0为定时器,工作方式0for(i=0;i10;i+); /设置10次循环次数 TH0=0 x25; /设置定时器初值为2508HTL0
7、=0 x08;TR0=1; /启动T1While(!TF0); /查询计数是否溢出,即定时7ms时间到,TF0=1TF0=0; /7ms定时时间到,将T0溢出标志位TF0清零 2方式1 当TMOD的M1M0为01时,定时器工作于方式1,其逻辑结构图如图所示。 T1(或T0)方式1时的逻辑电路结构图例3.2 设f=12MHZ,用定时器0方式0实现70ms的延时。void delay 70ms()unsigned char i; TMOD=0X00; /设置T0为定时器,工作方式0for(i=0;i10;i+); /设置10次循环次数 TH0=0 x25; /设置定时器初值为2508HTL0=0
8、x08;TR0=1; /启动T1While(!TF0); /查询计数是否溢出,即定时7ms时间到,TF0=1TF0=0; /7ms定时时间到,将T0溢出标志位TF0清零例3.3设f=12MHZ,用定时器1方式1实现200us的延时void delay 200us()TMOD=0X10; /设置T1为定时器,工作方式1TH1=0 xFF; /设置定时器初值为FF38HTL1=0 x38;TR1=1; /启动T1While(!TF1); /查询计数是否溢出,即定时200us时间到,TF1=1TF1=0; /200us定时时间到,将T1溢出标志位TF1清零 3方式2 当TMOD的M1M0为10时,定
9、时/计数器工作于方式2,其逻辑结构图如图所示。 T1(或T0)方式2时的逻辑电路结构图例3.4 设f=12MHZ,用定时器0方式0实现1s的延时DELAY:MOV R3,#200 ;置5ms计数循环初值 MOV TMOD,#00H;设定时器0为方式0 MOV TH0,#63H;置定时器初值 MOV TL0,#18H SETB TR0;启动T0LP1: JBCTF0,LP2 ;查询计数溢出SJMP LP1 ;未到5ms继续计数LP2: MOV TH0,#63H ;重新置定时器初值 MOV TL0,#18H DJNZ R3,LP1;未到1s继续循环 RET ;返回主程序例3.5 设f=6MHZ,用
10、定时器1方式2实现1ms的延时。解:(1)可选择定时时间为500us,再循环2次。计数值=500us/2us=250;计数初值=256-250=6=110B=6H。(2)C语言编程实现1ms延时函数void delay 1ms()unsigned char i; TMOD=0X20;TH0=0 x06; /设置定时器初值为06HTL0=0 x06;for(i=0;i2;i+); /设置2次循环次数 TR1=1; /启动T1While(!TF1); /查询计数是否溢出,即定时500us时间到,TF1=1TF1=0; /500us定时时间到,将T1溢出标志位TF1清零 3方式3 方式3只适应于定时
11、/计数器T0,当TMOD的M1M0为11时,定时/计数器工作于方式3时,其逻辑结构图如图所示。T0方式3时的逻辑结构 例3.6 用定时器T0方式3实现P1.0端口指示灯间隔1s的闪烁。解:根据题意分析,定时器T0中的TH0只能为定时器,定时时间设为250s;TL0设置为计数器,计数值设为200。TH0计满溢出后,用软件复位的方法使T0(P3.4)引脚产生负跳变,TH0每溢出一次,T0引脚便产生一个负跳变,TL0便计数一次。TL0计满溢出时,延时时间应为50ms,循环20次则可得到1s的延时。由上可知,TH0计数初值为:X =(256 250)= 6 = 06HTL0计数初值为:X =(256
12、200)= 56 = 38H TMOD = 00000111B = 07H 1s延时子程序如下:DELAY: MOV R3,#14H ;置100ms计数循环初值MOV TMOD,#07H;置定时器0为方式3计数MOV TH0,#06H ;置TH0初值MOV TL0,#38H ;置TL0初值SETB TR0 ;启动TL0SETB TR1 ;启动TH0LP1: JBC TF1,LP2;查询TH0计数溢出SJMPLP1 ;未到500s继续计数LP2: MOVTH0,#06H;重置TH0初值CLR P3.4;T0引脚产生负跳变NOP; 负跳变持续NOPSETBP3.4; T0引脚恢复高电平JBC TF
13、0,LP3;查询TH0计数溢出SJMP LP1; 100ms未到继续计数 LP3:MOVTL0,#38H;重置TL0初值DJNZ R3,LP1;未到1s继续循环CPL P1.0 ;指示灯状态翻转RET第二节 中断系统1. 中断的概念当CPU正在按顺序处理某件事情(执行程序)的时候,如果这时外界突然发生紧急事件,且请求CPU暂时停止当前正在执行的程序而马上处理紧急事件(即执行中断服务程序),待中断服务程序执行完后再回到原来的程序继续执行。单片机中这种暂时停止原来执行程序的过程就称为中断。原来正常运行的程序称为主程序。主程序被断开的位置或地址称为“断点”。引起CPU中断的根源,或能发出中断申请的来
14、源,称为“中断源”。中断源向CPU提出的处理要求称为“中断请求”或中断申请。“中断”之后所执行的相应的处理程序称之为中断服务或中断处理子程序。处理完毕后,再回到原来被中断的位置称为中断返回。21 MCS-51的中断系统2中断的特点1)分时操作。CPU可以分时为多个外设服务,大大地提高了CPU的效率。2)实时响应。CPU能随时响应外界变量根据要求向CPU发出的中断申请,并进行相应处理,从而实现实时处理。3)稳定性高。CPU能通过相应的故障处理程序,处理难以预料的突发事件或故障。MCS-51中断系统的结构框图如图所示。有4个与中断有关的寄存器,分别为中断源寄存器TCON和SCON、中断允许控制寄存
15、器IE和中断优先级控制寄存器IP。有中断源5个,分别为外部中断请求 、外部中断1请求 、定时器T0溢出中断请求TF0、定时器T1溢出中断请求TF1和串行中断请求RI或TI。5个中断源的排列顺序由中断优先级控制寄存器IP和顺序查询逻辑电路共同决定,5个中断源分别对应5个固定的中断入口地址。22 中断源和中断标志(一)中断源MCS-51的5个中断源如下:(1)(P3.2):外部中断0请求信号输入脚。由IT0脚(TCON.0)来决定是低电平有效还是下降沿有效。当CPU检测到有效的中断信号时,则向CPU申请中断,并使IE0(TCON.1)标志置1。(2)(P3.3):外部中断1请求信号输入脚。通过IT
16、1脚(TCON.2)来决定是低电平有效还是下降沿有效。当CPU检测到有效的中断信号时,则向CPU申请中断,并使IE0(TCON.1)标志置1。(3)TF0(TCON.5):定时/计数器T0溢出中断请求标志。当定时/计数器T0产生溢出时,中断请求标志位TF0置位(由硬件自动执行),并向CPU申请中断。(4)TF1(TCON.7):定时/计数器T1溢出中断请求标志。当定时/计数器T1产生溢出时,中断请求标志位TF1置位(由硬件自动执行),并向CPU申请中断。(5)RI(SCON.0)或TI(SCON.1):串行中断请求标志。当串行接口接收或发送完一帧串行数据时,中断请求标志位RI或TI置位(由硬件
17、自动执行),并向CPU申请中断。TCOND7D6D5D4D3D2D1D0(88H)TF1TR1TF0TR0IE1IT1IE0IT0(二)中断标志1. TCON寄存器中的中断标志TCON为定时/计数器T0和T1的控制寄存器,同时也锁存T0和T1的溢出中断标志及外部中断 和 的中断标志等。与中断有关的各位定义如下:(1)TCON.7 TF1:T1的溢出中断标志位。T1被启动计数后从初值做加1计数,计满溢出后由硬件置位TF1,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清0。(2)TCON.5 TF0:T0溢出中断标志位。其操作功能与TF1相同。(3)TCON.3 IE1:
18、外部中断 中断请求标志位。IE1 = 1时,外部中断1向CPU申请中断。(4)TCON.2 IT1:外部中断中断触发方式控制位。当IT1 = 0,外部中断1控制为电平触发方式。在这种方式下,CPU在每个机器周期的S5P2期间对(P3.3)引脚采样,若为低电平,则置位IE1标志位;若为高电平,则认为无中断申请,或中断申请已撤除,则IE1复位标志位。在电平触发方式中,CPU响应中断后不能由硬件自动清除IE1标志,也不能由软件清除IE1标志,所以,在中断返回之前必须撤消引脚上的低电平,否则将再次中断导致出错。当IT1 = 1,外部中断1控制为边沿触发方式。CPU响应中断时,由硬件自动清除IE1标志。
19、(1)TCON.7 TF1:T1的溢出中断标志位。T1被启动计数后从初值做加1计数,计满溢出后由硬件置位TF1,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清0。(2)TCON.5 TF0:T0溢出中断标志位。其操作功能与TF1相同。(3)TCON.3 IE1:外部中断 中断请求标志位。IE1 = 1时,外部中断1向CPU申请中断。(4)TCON.2 IT1:外部中断中断触发方式控制位。当IT1 = 0,外部中断1控制为电平触发方式。在这种方式下,CPU在每个机器周期的S5P2期间对(P3.3)引脚采样,若为低电平,则置位IE1标志位;若为高电平,则认为无中断申请,或
20、中断申请已撤除,则IE1复位标志位。在电平触发方式中,CPU响应中断后不能由硬件自动清除IE1标志,也不能由软件清除IE1标志,所以,在中断返回之前必须撤消引脚上的低电平,否则将再次中断导致出错。当IT1 = 1,外部中断1控制为边沿触发方式。CPU响应中断时,由硬件自动清除IE1标志。(5)TCON.1 IE0:外部中断中断标志位。其操作功能与IE1相同。(6)TCON.0 IT0:中断触发方式控制位。其操作功能与IT1相同。SCOND7D6D5D4D3D2D1D0(98H)TIRI2SCON寄存器中的中断标志SCON是串行口控制寄存器,其低2位TI和RI锁存串行口的接收中断标志和发送中断标
21、志。各位定义如下:(1)SCON.1 TI:串行接口发送中断标志位。CPU将数据写入发送缓冲器SBUF时,就启动发送,每发送完一个串行帧,硬件置位TI。CPU响应中断时不能自动清除TI,必须由软件清除。(2)SCON.0 RI:串行接口接收中断标志位。在串行口允许接收时,每接收完一个串行帧,硬件置位RI。CPU在响应中断时不能自动清除RI,必须由软件清除。IED7D6D5D4D3D2D1D0(A8H)EA/ESET1EX1ET0EX0位地址AFHAEHADHACHABHAAHA9HA8H3IE寄存器中断的开放和屏蔽标志MCS-51系列单片机的5个中断源都是可屏蔽中断,其中断系统内部设有一个专用
22、寄存器IE用来对各中断源进行开放或屏蔽的控制。IE寄存器各位定义如下:(1)IE.7 EA:中断总允许控制位。EA = 1,开放所有中断,而每个中断源的开放和屏蔽可通过相应的中断允许位单独加以控制;EA = 0,禁止所有中断。(2)IE.4 ES:串行口中断允许位。ES = 1,允许串行口的接收和发送中断;ES = 0禁止串行口的接收和发送中断。(3)IE.3 ET1:定时/计数器T1中断允许位。ET1 = 1,允许T1中断;ET1 = 0,禁止T1中断。(4)IE.2 EX1:外部中断1()中断允许位。EX1 = 1,允许外部中断1中断;EX1 = 0,禁止外部中断1中断。(5)IE.1 E
23、T0:定时/计数器T0中断允许位。ET0 = 1,允许T0中断;ET0 = 0,禁止T0中断。(6)IE.0 EX0: 外部中断0()中断允许位。EX0 = 1,允许外部中断0中断;EX0 = 0,禁止外部中断0中断。IPD7D6D5D4D3D2D1D0(B8H)-PT2PSPT1PX1PT0PX0位地址BFBEBDBCBBBAB9B84IE寄存器中断优先级标志MCS-51单片机有2个中断优先级,每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的。其各位定义如下:(1)IP.3 PT1:定时器T2中断优先控制位(仅适应于52子系列单片机)。PT2 = 1,设定定时器T2中
24、断为高优先级中断;相反为低优先级中断。(2)IP.4 PS:串行口中断优先控制位。PS = 1,设定串行口为高优先级中断;相反为低优先级中断。(3)IP.3 PT1:定时器T1中断优先控制位。PT1 = 1,设定定时器T1中断为高优先级中断;相反为低优先级中断。(4)IP.2 PX1:外部中断1中断优先控制位。PX1 = 1,设定外部中断1为高优先级中断;相反为低优先级中断。(5)IP.1 PT0:定时器T0中断优先控制位。PT0 = 1,设定定时器T0中断为高优先级中断;相反为低优先级中断。(6)IP.0 PX0:外部中断0中断优先控制位。PX0 = 1,设定外部中断0为高优先级中断;相反为
25、低优先级中断。当系统复位后,IP低5位全部清0,所有中断源均设定为低优先级中断。MCS-51单片机有5个中断源,但只有两个优先级,必然会有几个中断请求源处于同样的优先级。当CPU同时收到几个同优先级中断请求时,MCS-51单片机内部采用一个硬件查询逻辑电路的查询顺序来判别这些同级中断源的优先级,其自然优先级由硬件形成,排列如下:中断源 同级自然优先级外部中断0 最高级定时器T0中断外部中断1定时器T1中断串行口中断 最低级23 中断处理过程(一) 中断处理过程中断处理过程可分为中断响应、中断处理和中断返回三个阶段。不同的计算机因其中断系统的硬件结构不同,中断响应的方式也有所不同。在此以MCS-
26、51单片机为例进行说明。1. 中断响应条件CPU响应中断的条件有: 有中断源发出中断请求。 中断总允许位EA = 1。 申请中断的中断源允许。满足以上基本条件,CPU一般会响应中断,但若有下列任何一种情况存在,则中断响应会受到阻断。 同级或高优先级的中断正在响应。 当前指令未执行完。 正在执行RETI中断返回指令或访问专用寄存器IE和IP的指令。若存在上述任何一种情况,中断查询结果即被取消,CPU不响应中断请求而在下一机器周期继续查询,否则CPU在下一机器周期响应中断。 2. 中断响应过程CPU响应中断的过程如下: 先置位相应的“优先级状态”触发器(该触发器指出CPU当前处理的中断优先级别),
27、以阻断同级或低级中断申请; 自动清除相应的中断标志(T1或RI除外); 自动保护断点,将现行程序计数器PC内容压入堆栈,并根据中断源把相应的矢量单元地址装入PC中。3. 中断处理中断处理就是执行中断服务程序。中断服务程序从中断入口地址开始执行,到返回指令“RETI”为止,一般包括两部分内容,一是保护现场,二是完成中断源请求的服务。通常,主程序和中断服务程序都会用到累加器A、状态寄存器PSW及其它一些寄存器,当CPU进入中断服务程序用到上述寄存器时,会破坏原来存储在寄存器中的内容,一旦中断返回,将会导致主程序的混乱,因此,在进入中断服务程序后,一般要先保护现场,然后,执行中断处理程序,在中断返回
28、之前再恢复现场。(二)中断返回中断返回是指中断服务完后,计算机返回原来断开的位置(即断点),继续执行原来的程序。中断返回由中断返回指令RETI来实现,其具体功能如下: 将断点地址从堆栈中弹出,送回到程序计数器PC; 将相应中断优先级状态触发器清0,告诉中断系统中断服务程序已执行完毕。(三)中断标志的清除CPU响应中断请求后即进入中断服务程序,在中断返回前,应撤除该中断请求,否则,会重复引起中断而导致错误。MCS-51各中断源中断请求撤消的方法各不相同,分别为:1. 串行口中断请求的撤除串行口的中断,CPU在响应中断后,硬件不能自动清除中断请求标志位TI、RI,必须在中断服务程序中用软件来清除相
29、应的中断标志位,以撤消中断请求。2. 定时器中断请求的撤除定时器0或1的溢出中断,CPU在响应中断后即由硬件自动清除中断标志位TF0或TF1,不必采取其它措施。3. 外部中断请求的撤除外部中断可分为边沿触发型和电平触发型。在下降沿触发方式下,CPU响应中断后,也是由硬件自动将IE0或IE1标志位清除,不必采取其它措施。对于电平触发的外部中断,因为对于电平触发外中断,CPU在响应中断后,硬件不会自动清除其中断请求标志位IE0或IE1,同时,也不能用软件将其清除。所以,在CPU响应中断后,应立即撤除 或 引脚上的低电平。否则,就会引起重复中断而导致错误。而CPU又不能控制或引脚的信号,因此如图所示
30、,只有通过硬件再配合相应软件才能解决这个问题。外部中断请求信号加在D触发器的CLK端。由于D端接地,当外部中断请求的正脉冲信号出现在CLK端时,Q端输出为0,或为低,外部中断向单片机发出中断请求。利用P1口的P1.0作为应答线,当CPU响应中断后,可在中断服务程序中采用两条指令来撤除外部中断请求: ANL P1,#0FEH ORL P1,#01H 第一条指令使P1.0为0,因P1.0与D触发器的异步置1端SD相连,Q端输出为1,从而撤除中断请求。第二条指令是必不可少的,使P1.0变为1, = 1,Q继续受CLK控制,即新的外部中断请求信号又能向单片机申请中断。否则将无法再次形成新的外部中断。2
31、4 外部中断源的扩展在实际应用中,若外部中断源超过两个外部中断请求输入端 和 ,则需扩充外部中断源,这里介绍两种简单可行的方法。1用定时器作外部中断源MCS-51单片机有两个定时器,具有两个内部中断标志和外计数引脚,如在某些应用中不被使用,则它们的中断可作为外部中断请求使用。例3.8 将定时器T1扩展为外部中断源。解:将T1设定为方式2(自动恢复计数初值),TH1和TF1的初值均设置为FFH,允许T1中断,CPU开放中断,程序如下:MOVTMOD,#60HMOVTH1,#0FFHMOVTL1,#0FFHSETBTR1SETBET1SETBEA当连接在T1(P3.5)引脚的外部中断请求输入线发生
32、负跳变时,TL1加1溢出使TF1置1,向CPU发出中断申请; TH1的内容同时自动送至TL1使TL1恢复初值。这样T1引脚每输入一个负跳变,TF1都会置1,向CPU请求中断。T0脚相当于边沿触发的外部中断源输入线。也可将T0扩展为外部中断源。2中断和查询相结合利用两根外部中断输入线( 和 脚),每一中断输入线可以通过线或的关系连接多个外部中断源,同时利用并行输入端口线作为多个中断源的识别线,电路原理图如图3-8所示图3-8 一个外中断扩展成多个外中断的原理图图中4个外部扩展中断源通过4个OC门电路组成线或后再与(P3.3)相连,4个外部扩展中断源EINT0 EINT3中有一个或几个出现高电平则
33、输出为0,使脚为低电平,从而发出中断请求,因此,这些扩充的外部中断源都是高电平触发方式。CPU执行中断服务程序时,先依次查询P1口的中断源输入状态转入到相应的中断服务程序,4个扩展中断源的优先级顺序由软件查询顺序决定,即最先查询的优先级最高,最后查询的优先级最低。中断服务程序如下:ORG 0013H ;外部中断1入口AJMP INT1 ;转向中断服务程序入口INT1:PUSH PSW ;保护现场PUSH ACCJNB P1.0,EIT0 ;中断源查询并转相应中断服务程序JNB P1.1,EIT1JNB P1.2,EIT2JNB P1.3,EIT3EXIT:POP ACC;恢复现场POP PSW
34、RETIEIT0:;EINT0中断服务程序AJMP EXITEIT1:;EINT1中断服务程序AJMP EXITEIT2:;EINT2中断服务程序AJMP EXITEIT3:;EINT3中断服务程序AJMP EXIT25 中断系统应用举例中断控制实质上是对4个与中断有关的特殊功能寄存器TCON、SCON、IE和IP进行管理和控制,具体控制如下:(1)CPU的开中断与关中断。(2)某个中断源中断请求的允许和屏蔽。 (3)各中断源优先级别的设定。 (4)外部中断请求触发方式的设定。中断管理和控制程序一般都包含在主程序中,根据需要通过几条指令来完成。中断服务程序是一种具有特定功能的独立程序段,可根据
35、中断源的具体要求进行服务。下面通过实例来说明其具体应用。1. 定时/计数器中断应用举例例3.9 如图3-9所示,用T0监视一汽车配件生产流水线,每生产100个工件,发出一包装命令,包装成一箱,并记录其箱数。图中D1为红外发光二极管,D2为红外光敏二极管,当D2接收到D1发出的红外光照射时导通,T0输入端产生一个负脉冲作为计数脉冲。图3-9 用T0作计数器硬件电路解:根据题意,用T0作计数器,每计数100次T0计数器溢出,由P1.0控制包装机打包。定时/计数器T0的4种工作方式均可满足计数要求,而方式2具有自动重装功能,因此本题选用定时方式2。定时/计数器工作方式控制字TMOD=06H(T0方式
36、2且为计数方式)计数初值=28100=9CH若用31H、30H单元保存箱数计数值,打包控制信号(正脉冲)由P1.0输出,程序为:ORG0000H LJMPMAINORG000BH;T0中断入口地址LJMPDD1ORG0030HMAIN:MOVP1,#00H;P1.0无信号输出MOV30H,#00H;MOV31H,#00H;箱数计数器清“0”MOVTMOD,#06H;置T0工作方式MOVTH0,#9CHMOVTL0,#9CH;计数初值送计数器MOVIE,#82H;T0允许中断SETBTR0;启动T0AJMP$;程序循环执行DD1:MOVA,30HADDA,#01H;计数器加“1”MOV30H,A
37、;保存MOVA,#00HADDCA,31H;若有进位,加进位MOV 31H,A;SETBP1.0;启动外设包装;包装延时CLRP1.0;包装结束RETIEND2. 外部中断应用举例例3.11 如图为一汽车简单防盗报警系统控制电路,K1为安装在车门内的开关,门关闭时接高电平,门打开时接低电平;K2为报警/不报警选择开关,当P1.7为高电平时报警,否则不报警。报警声音采用语音芯片播放,当P1.1为低电平时,喇叭发声,否则不发声。工作时只要K2选择报警状态,当外人打开车门时,K1接低电平触发中断,P1.1输出低电平报警,程序编写为:图3 汽车简单防盗报警电路ORG0000HLJMPMAINORG00
38、03HLJMPLLORG0030HMAIN:MOVP1,#0FFH;P1设为输入MOVA,P1;读P1状态SETBP1.1;关闭扬声器JBACC.7,TT;P1.7=1允许报警CLREA;P1.7=0不允许报警CLREX0LJMPKKTT:SETBEX0; 中断允许SETBEACLRIT0;电平触发方式KK:AJMP$; 中断服务程序LL:CLREA;关闭中断CLRP1.1;使语音芯片工作AJMP$;无外界干预,一直报警RETIEND 项目实施 汽车转向灯单片机控制设计与仿真(汇编语言)1.项目设备与电路 (1)项目设备:单片机仿真器、编程器和单片机应用系统。 (2)项目电路:如图 图 项目3
39、电路图2.流程图本实验主程序流程图如图所示。3.项目步骤及要求(1)步骤1:定时器查询方式要求:用定时器方式1编制1秒的延时程序,实现信号灯循环显示的控制。系统采用12M晶振,采用定时器T0方式1定时50ms,用R3做50ms计数单元,得到1s,可设计源程序如下:ORG 0000HMOV A,#11111110B ;开始时,欲令最右边的LED亮LOOP: MOV P1,A ;把A的内容送至P1 ACALL DELAY ;延时1s RL A ;把A的内容向左移1位AJMP LOOPDELAY:MOV R3,#20 ;欲延时50ms 20 = 1000ms = 1s MOV TMOD,#00000001B ;设定时器0工作在模式1(即16位定时器) TIMER:MOV TH0,#3CH ;设定计数值,以便定时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店菜单谋划方案
- 2015年5月15日上午广东省乡镇类公务员面试真题
- 路遥-《人生》-刘巧珍-人物形象-分析
- 2009年7月11日省直机关公务员面试真题
- 他哭了鬼屋作文
- 构建“146”作业管理模式切实提升学生核心素养
- 2013年6月16日上午福建省公务员面试真题
- 北京行政职业能力模拟5
- 长春版小学心理健康教育四年级教案设计
- 一年级品德与生活下册教案
- 《教育的第三只眼》读书笔记思维导图
- 加氢裂化催化剂分类及选择
- 政府采购项目验收报告
- 医用耗材配送服务方案
- 《整式的乘法与因式分解》说课稿
- 提高手术患者术前准备完善率医院护理品管圈QCC成果汇报
- 2022年温州市公共资源交易服务中心事业单位工作人员招聘笔试试题及答案解析
- GB/T 324-2008焊缝符号表示法
- GB/T 17669.3-1999建筑石膏力学性能的测定
- 建设工程企业资质改革措施表2020
- GCP-试题含答案及答案2020版
评论
0/150
提交评论