预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

//---------------------------------------------------- //名称:INT0中断 //网站:HYPERLINK"http://tugou.sukaren.com/"http://tugou.sukaren.com/ //---------------------------------------------------- //===================================================== //声明区 //======================================================== #include<reg51.h> //定义8051寄存器的头文件 //宏定义 #defineucharunsignedchar //定义无符号字符型,8位数,范围:0——255 #defineuintunsignedint //定义无符号整型,16位数,范围:0——65535 //声明七段LED数码管驱动信号数组(共阳) ucharcodeDIS_CODE[10]={ 0XC0,0XF9,0XA4,0XB0,0X99, //数字0——4 0X92,0X82,0XF8,0X80,0X90}; //数字5——9 uintcount=0; //计算INT0中断次数 //============================================================== //函数:延时函数,延时timer毫秒 //参数:timer要延时的毫秒数 //返回值:无 //============================================================== voiddelay_ms(uinttimer) //延迟函数开始 { ucharj=0;//如果能用char类型的变量就不要用int类型, //我们要尽量提高程序执行的效率,减小程序所占空间 while(timer--) //先判断timer的值是否为真(是否非),再对timer的值减1 { //在while语句中将判断条件放在语句之前,称为前条件循环 for(j=124;j>0;j--) //说明:循环执行124次 { //for语句是一个很实用的计数循环 ; //空语句 } //for循环语句结束 } //while循环语句结束 } //延时函数结束 //========================================================================= //主程序 //========================================================================= voidmain() //主程序开始 { P0=0xff; //设置输入口 //打开reg51.h可以找到该寄存器 IE=0X81; //IE中断使能寄存器(interruptenableregister //相当于EA=1,EX=1 IT0=1; //外部中断0触发方式选择位 while(1) //无穷循环 { if(count==10) //判断count是等于10 { count=0; //当前面的if语句括号的值等于10时,就执行count=0 } else { P0=DIS_CODE[count]; //输出显示信号 // P2=0X40; //第一个LED数码管亮(01000000) // delay_ms(6); //延时 // P2=0X80; //第二个LED数码管亮 (10000000) delay_ms(6);//延时 P2=0xc0; //使P2.6和P2.7同时为高电位(11000000) } //结束if语句(中断10次) } //while循环结束 } //主程序结束 //======================================================================= //中断子程序 //======================================================================= voidEX_INT0(