中断函数的写法

    xiaoxiao2026-09-13  2

    1.定时/计数器

    初始化程序应完成如下工作:

     对TMOD赋值,以确定T0和T1的工作方式。  计算初值,并将其写入TH0、TL0或TH1、TL1。   中断方式时,则对IE赋值,开放中断。   使TR0或TR1置位,启动定时/计数器定时或计数。

    TMOD=0x01;              \\设定工作方式为16位定时器  TH0=(65536-50000)/256;    \\赋定时器T0高四的值为50MS(对256求模)   TL0=(65536-50000)%256;  \\赋定时器T0低四的值为50MS(对256求余)  EA=1;                    \\开总中断  ET0=1;                   \\开定时器T0中断   TR0=1;                   \\启动定时器T0

    定时器时间到产生中断就自动跳到以下中断函数,中断函数不需要做任何声明;

    void timer0( ) interrupt 1     \\ 5个中断源的排序:0代表外部中断0中断 ,1代表定时器/计数器0中断 ,

    2代表外部中断1中断, 3代表定时器/计数器1, 4代表串行中断的中断   {    TH0=(65536-50000)/256;   \\重装初值  

    TL0=(65536-50000)%256;   \\重装初值

     \\往下写CPU要处理的事情就OK了   

    }

    1.中断响应条件

      中断源有中断请求;    此中断源的中断允许位为1;   CPU开中断(即EA=1)。

    以上三条同时满足时,CPU才有可能响应中断。

    P3.2口的外部中断  EA=1;                   //开总中断   EX0=1;                 //开外部中断0  IT0=1;                 //当IT=0时为电平的外部中断触发方式,  当IT=1时位跳变沿外部中断触发方式  TCON=0x01;          当符合外部中断的条件时执行下面的中断函数  

    void exter0() interrupt 0     \\ 5个中断源的排序:0代表外部中断0中断 ,1代表定时器/计数器0中断 ,

    2代表外部中断1中断, 3代表定时器/计数器1, 4代表串行中断的中断      {  \\这里下写CPU要处理的事情就OK了 

     } 

    转载请注明原文地址: https://ju.6miu.com/read-1312041.html
    最新回复(0)