




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、外部中断的应用,中断信号从外部引脚P3.2和P3.3 进入单片机,单片机中的中断与生活中的中断,生活中的那些事儿,51单片机中断源,51单片机的5个中断源,高,中断允许寄存器,1、中断允许控制寄存器IE,使能外部中断0(P3.2),使能外部中断1(P3.3),中断总使能,例如:想使用中断0(P3.2引脚输入的中断信号) MOV IE , #10000001B IE=0X81; 或SETB EX0 EX0=1; SETB EA EA=1;,TMOD的设置,2、TCON,0:P3.2引脚低电平就产生中断 1:P3.2引脚下降沿产生中断,P3.2引脚产生中断的标志 1:产生中断了;0:没有产生中断,
2、0:P3.3引脚低电平就产生中断 1:P3.3引脚下降沿产生中断,P3.2引脚产生中断的标志 1:产生中断了;0:没有产生中断,例如:想设置外部中断0为下降沿触 发产生中断: SETB IT0 或MOV TCON,#01H C语言的设置: TCON=0X01;,低电平触发中断控制LED闪烁,1、硬件电路图,程序流程图,程序清单,汇编语言程序,C语言程序,ORG 0000H SJMP START ORG 0003H AJMP INTERRUPT0 ORG 0030H ;-初始化- START:MOV SP, #60H MOV P0, #0FFH CLR IT0 SETB EX0 SETB EA
3、;-主程序- MAIN:SJMP MAIN ;-中断子程序- INTERRUPT0:CPL P0.7 RETI END,T0典型工作的三种方式设置,1、定时器T0工作在定时方式 MOV TMOD ,#00000001B ; 定时方式1 MOV TMOD ,#00000000B ; 定时方式0 那么定时器T0工作在定时方式2和方式3该如何设置呢?,2、定时器T0工作在计数方式(数P3.4引脚的脉冲数) MOV TMOD ,#00000101B ; 计数方式1 MOV TMOD ,#00000100B ; 计数方式0 那么定时器T0工作在计数方式2和方式3该如何设置呢?,2、定时器T0还要受P3.
4、2的控制? MOV TMOD ,#00001101B ; 计数方式1 MOV TMOD ,#00001100B ; 定时方式0 此时,常用于测量P3.2脚脉冲宽度,TCON的设置,3、TCON(用于决定定时器的启停和标识定时器溢出),3、TCON(用于决定定时器的启停和标识定时器溢出),3、TCON(用于决定定时器的启停和标识定时器溢出),定时器T1 溢出标志,定时器T0 溢出标志,定时器T1 启动位,定时器T0 启动位,0:T0停止工作 1:T0开始工作,0:TH0 TL0没有溢出 1:TH0 TL0溢出,0:TH1 TL1没有溢出 1:TH1 TL1溢出,0:T1停止工作 1:T1开始工作
5、,定时器T0 溢出标志,定时器T0 启动位,定时器T1 启动位,定时器T0 溢出标志,定时器T0 启动位,定时器T1 启动位,定时器T1 溢出标志,定时器T0 溢出标志,定时器T0 启动位,定时器T1 启动位,0:T0停止工作 1:T0开始工作,定时器T1 溢出标志,定时器T0 溢出标志,定时器T0 启动位,定时器T1 启动位,0:TH0 TL0没有溢出 1:TH0 TL0溢出,0:T0停止工作 1:T0开始工作,定时器T1 溢出标志,定时器T0 溢出标志,定时器T0 启动位,定时器T1 启动位,0:T1停止工作 1:T1开始工作,0:TH0 TL0没有溢出 1:TH0 TL0溢出,0:T0停
6、止工作 1:T0开始工作,定时器T1 溢出标志,定时器T0 溢出标志,定时器T0 启动位,定时器T1 启动位,中断允许寄存器IE的设置,4、IE(用于设置定时器是否工作在中断方式),0:总中断关闭 1:总中断使能,0:T0中断关闭 1:T0中断使能,0:T1中断关闭 1:T1中断使能,如使定时器T0中断打开:MOV IE,#10000010B 或者用 SETB ET0 SETB EA,用定时器设计一个50msLED闪烁实验,硬件电路图,查询法程序清单,#include void main() TMOD=0X1; TH0=0X4C; TL0=0X0; TR0=1; while(1) if(TF0=1) P0=P0; TF0=0; ,定时器1S取反P0口状态,#include unsigned char count=0; void timer0_isr(void) interrupt 1 using 0 count+; if(count=20) count=0; P0=P0; void main() TMOD=0X1; TH0=0X4C; TL0=0X0; TR0=1; ET0=1; EA=1; while(1) ; ,用定时器T0设计电子时钟CLOCK,#include void timer0_isr(void) interrupt 1 usin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论