新手,老师们!利用外部脉冲,能在外部中断中
新手,利用外部脉冲,能在外部中断中实现计数吗?如果能,请教如何实现
//盛杰瑞办公设备实验室 #include <AT89X52.h> //调用51单片机的头文件 void INIT0(void) interrupt 0 { P3_2 =!P3_2; P3_0=1; //接到p3.4脚 } void INIT1(void)interrupt 3 { P3_2=!P3_2; } //--------------------------------------- void main(void) //主函数,单片机开机后就是从这个函数开始运行 { //***定时器Timer0初始化*** TMOD=0x22; //设置定时器0为方式1 TL0=256-20 ; //设置定时器0初值低8位 TH0=256-20 ; //设置定时器0初值高8位 TR0=1; //启动定时器0 ET0=1; //Timer0中断允许 TL1=256-5 ; //设置定时器0初值低8位 TH1=256-5 ; //设置定时器0初值高8位 TR1=1; //启动定时器0 ET1=1; //********************** //***外部中断INT0初始化*** IT0=1; //下降沿触发方式 EX0=1; //外部INT0中断允许 //********************** //***开全局中断设置**** //外部中断INT0设置了中断允许,此处要开全局中断 EA=1; //开全局中断 //********************* while(1) //死循环,单片机初始化后,将一直运行这个死循环 { } }
#include <AT89X52.h> unsigned char k; void INIT0(void) interrupt 0 { //***此处用户自行添加外部INT0中断处理程序*** P3_2=1; //p3.2输出高电平。用来点亮灯 for(k=0;k<1000;k++); //亮灯时长 ,调整k的值 P3_2=0; // for(k=0;k<10000;k++); //灭灯时长 //****************************************** } void main(void) { IT0=1; //下降沿触发方式 EX0=1; //********************** EA=1; while(1) { } }
[此贴子已经被作者于2017-2-16 17:00编辑过]