外部中断和定时器中断在一起的程序怎么写

外部中断和定时器中断在一起的程序怎么写,第1张

#include "reg51h"

sbit a1=P3^2;

int Xn,SUM;

void time0_initial() //定时

{

TMOD=0x01;

TH0=(65535-5000)/256; //定时器0定时5ms

TL0=(65535-5000)%256;

EA=1;

}

void interrupt_0_initial()

{

IT0=0;

EX0=1;

EA=1;

}

void main(void)

{

interrupt_0_initial();

time0_initial() ;

while(1);

}

void time0() interrupt 1

{

TH0=(65535-5000)/256; //定时器0定时5ms

TL0=(65535-5000)%256;

Xn++;

}

void interrupt_0() interrupt 0

{

do

{

ET0=1;

TR0=1;

}while(a1==0)

ET0=0;

TR0=0;

SUM=Xn;

Xn=0;

}

51单片机有5个中断源,其中两个定时器均为中断源,一个是T0,一个是T1

定时器中断是当定时或计数满时向CPU提出中断请求,T0的中断服务子程序入口地址是000BHT0中断就是定时器中断,也就是Timer0,分内部外部,内部用单片机本身的晶振频率,外部给单片机P34一个脉冲信号作为T0的定时器的工作频率,单片机内部有两个定时器中断T0和T1

5个中断源,分别是T0,T1,外部中断INT0,和INT1,还有一个就是串口中断

定时器中断工作原理是分别给TH0,TL0(或者TH1,TL1)一个值,然后取决于你在选择定时器中断方式上是16位还是8位,还是自动从新赋值的工作方式,然后每经过一个机器周期,定时器在你所给定的值得基础上加1,一直加到0xFFFF,然后产生溢出,去执行你所编写的程序,如果你设定的不是自动重装初值的工作方式在定时器子程序最后或者开始,手动附上初值

定时器工作方式的优点我感觉是提高CPU的工作效率,不像外部中断一直扫描终端程序,判断你是否给中断信号,定时器就相反不会扫描,只等待加到满为止采取执行

设置中进行更改。定时器是嵌入式系统的心脏,一点也不为过。定时器,不仅使用在rtos领域,在任务的运行、等待、延时、资源的获取方面都有广泛的影响。

1、首先打开设置。

2、然后点击更改时间。

3、、最后点击更改即可。

下列程序,已经经过实验,可以满足题目要求

ORG 0000H

SJMP MAIN

ORG 000BH

SJMP T0_INT

MAIN:

MOV TMOD, #01H ;T0定时方式1

MOV TH0, #(65536-50000) / 256 ;定时50ms@12MHz

MOV TL0, #(65536-50000) MOD 256 ;

SETB TR0 ;启动T0

MOV IE, #82H ;开中断

;第一秒钟L0,L2亮,第二秒钟L1,L3亮,第三秒L4,L6亮,第四秒钟L5,L7亮,

;第五秒L0,L2,L4,L6亮,第六秒钟,L1,L3,L5,L7亮,第七秒钟八个二极管全亮,第八秒钟全灭

MOV 30H, #11111010B

MOV 31H, #11110101B

MOV 32H, #10101111B

MOV 33H, #01011111B

MOV 34H, #10101010B

MOV 35H, #01010101B

MOV 36H, #00000000B

MOV 37H, #11111111B

MOV R0, #30H

MOV R7, #20

M_LOOP:

SJMP M_LOOP ;无限循环

T0_INT:

MOV TL0, #(65536-50000) MOD 256 ;

MOV TH0, #(65536-50000) / 256 ;定时50ms@12MHz

DJNZ R7, T0_END

MOV R7, #20

MOV P1, @R0

INC R0

CJNE R0, #38H, T0_END

MOV R0, #30H

T0_END:

RETI

END ;完

以上就是关于外部中断和定时器中断在一起的程序怎么写全部的内容,包括:外部中断和定时器中断在一起的程序怎么写、单片机的T0中断是什么、嵌入式系统定时器中断程序时间怎么改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9321645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存