导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→回复

* 96474: [求教]一段中断程序

   wangxueyou 
wangxueyou发表的帖子 

 回复
下面是我改了的程序  不知道行不行 你自己试试    我只是凭感觉改的  不知道能不能达到你的目的 
#include      <reg51.h>    

sbit  P1_0=P1^0;      //并行输入口
sbit  P1_1=P1^1;      //并行输入口
sbit  P1_2=P1^2;     //并行输入口
sbit  P1_3=P1^3;    //并行输入口
sbit  P1_4=P1^4;   //并行输入口
sbit  P1_5=P1^5;   //并行输入口
sbit  P2_6=P2^6;   //并行输入口
sbit  P2_7=P2^7;   //并行输入口

unsigned int   t=30;

void timer0(void) interrupt 1 using 1     //定时器0中断服务程序
{  
   TR0=0;  
   P2_7=1;
   TR1=1;   
}

void timer1(void) interrupt 3 using 2     //定时器1中断服务程序
{        
 TR1=0;
 P2_7=0;
 TR0=1; 
}

void service_int1(void) interrupt 0 using 3  //外部中断服务程序
{     
     EA=1;       //实现中断嵌套
     t=0;
     if(P2_6)  t=64;    //接收数据
     if(P1_5)  t=t+32;
     if(P1_4)  t=t+16;
     if(P1_3)  t=t+8;
     if(P1_2)  t=t+4;
     if(P1_1)  t=t+2;
     if(P1_0)  t=t+1;
     t=t/2;                   //送入t的范围是2=    <t    <=80
     TMOD=0x22;         //工作方式二
     TH1=256-t;          //装载初值
     TL1=TH1;
     TH0=256-(41-t);
     TL0=TH0;
      TR0=1;

}     

void main(void)                            
{                      
        IP=0x01;          //优先级设定,定时器低,外部中断高, 只有通过外部设置好     
                                    了占空比后才可能产生定时中断
        IT0=1;           //下降沿触发
        IE=0x8b;    //开中断
       //TR0=1;           //开定时器
        while(1);
}




发表时间:2006年8月8日11:20:16

  
回复该帖

本主题共有 9 帖,分页:>>>>>该主题的所有内容[9]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  96610.[详细]谢谢大虾,改了n次终于完全好使了,谢谢!
摘要:谢谢大虾,改了n次终于完全好使了,谢谢!......(39字)
- [qingyu][888次] 2006年8月11日

[上一篇帖子]:请问PIC在仿真情况下,能测试IO口的中断吗?请问PIC单片机12F629 在仿真情况下,
[下一篇帖子]:huifu你这个程序是越改越乱  在主程序中你写 TR0=1;