您的位置 首页 产品

中止操控led开关程序

//—————————————————#includereg51.h>//————————–

//—————————————————
#include
//—————————————————
//重界说I/0引脚称号
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit P13=P0^3;
//—————————————————
//全局变量及位标志界说
bit FINT0;
bit FINT1;
bit FT0;
bit FT1;
bit FT2;
unsigned char T0_10ms;
unsigned char T0_50ms;
unsigned char T0_100ms;
//—————————————————
//固定函数声明
void int_0(); //外部中止0
void int_1(); //外部中止1
void timer_0(); //守时器中止1
void timer_1(); //守时器中止2
void serial_1(); //串行中止1
void serial_2(); //串行中止2
//—————————————————
//用户函数声明
void initial(); //初始化
//—————————————————
void main(){
initial();
while(1){
P13=0; //为了使按撤销、确认键能够发生INT0及INT1中止
//led4=0; //上一句等价于此句
if(FINT0){ //中止0来到要做什么事情
FINT0=0;
led1=0; //INT0中止时点亮
led2=0;
led3=0;
led3=0; //能够在此设一个断点
}
if(FINT1){ //中止1来到要做什么事情
FINT1=0;
led1=1; //INT1中止时平息
led2=1;
led3=1;
}
if(FT0){
FT0=0;
if(++T0_10ms>30){
T0_10ms=0;
//守时多少做什么事,未初始化里守时器没有设置
}
}
}
}
//——————————————————————-
void initial(){
EA=1; // CPU一切中止开(IE最高位MSB)
EX0=1; // INT0中止开
IT0=0; // INT0低电平触发(为1则为下降沿触发)
EX1=1; // INT1中止开
IT1=0; // INT1低电平触发(为1则为下降沿触发)
return;
}
//——————————————————————-
//INT0中止 由P3.2引脚发生
void int_0() interrupt 0 using 0
{
FINT0=1;
}
//——————————————————————-
//INT1中止 由P3.3引脚发生
void int_1() interrupt 2 using 1
{
FINT1=1;
}
//——————————————————————-
//守时器0中止
void timer_0() interrupt 1 using 2
{
FT0=1;
}
//——————————————————————-
//守时器1中止
void timer_1() interrupt 3 using 3
{
FT1=1;
}
//——————————————————————-
//串行中止1
void serial_1() interrupt 4
{
}
//——————————————————————-
//守时器2中止
void timer_2() interrupt 5
{
FT2=1;
}
//——————————————————————-

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/chanpin/266677.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部