首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

单片机中断程序模块应用

单片机中断程序模块应用

单片机中断程序模块应用
#Include<Reg52.H>  //单片机的头文件

#Define Uint Unsigned Int //宏定义无符号整型

#Define Uchar Unsigned Char//宏定义无符号字符型

#Include<Reg52.H>  //单片机的头文件

#Define Uint Unsigned Int //宏定义无符号整型

#Define Uchar Unsigned Char//宏定义无符号字符型

Char Code B[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,

               0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,

               0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//用十六进制定义单片机P2口八盏灯得工作状态

Uchar Code Temp[]={0x80,0xe3,0x44,0x41,0x23,0x11,0x10,0xc3,0x00,0x01};//用十六经

//用十六进制定义数码管0~9的数字显示

Uchar I;//全局定义

Void Delay(Uint Time) //延时函数

{

   Int K,L;

    For(K=0;K<=Time;K++)

      For(L=0;L<50;L++);

}

Void Main() //主函数

{

   Uchar A=0xf0;

   EA=1;//CPU总中断位,为0时,禁止所有中断;为1时,允许中断

   IT0=1;// 外部中断1触发式选择位,“IT1为外部1触发式选择位”

   EX0=1;//外部中断允许中断位,0时禁止中断,1时,允许中断

    While(1)//死循环:执行中断前的命令

     {

       For(I=0;I<16;I++)

        {

          P2=B[I]; //把定义的前16位的十六进制的灯状态赋给单片机的P2口

          Delay(400);//调用延时函数

        }

     }

}

Void Ext0() Interrupt 0 Using 0 //0触发中断请求

{

   Uchar J=1;

    While(1) //中断执行:执行中断后命令

     {

       For(I=17;I<38;I++)

         {

          P2=B[I];

          P1=Temp[J];

          Delay(400);

          J++;

          If(J==8)J=0;

         }

      }

}

编后感:(本程序仅供参考),中断就像一个函数的调用!
返回列表