INT0中断技术.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
INT0中断技术

//---------------------------------------------------- //名称:INT0中断计数 //网站: HYPERLINK / / //---------------------------------------------------- //===================================================== //声明区 //======================================================== #include reg51.h //定义8051寄存器的头文件 //宏定义 #define uchar unsigned char //定义无符号字符型,8位数,范围:0——255 #define uint unsigned int //定义无符号整型,16位数,范围:0——65535 //声明七段LED数码管驱动信号数组(共阳) uchar code DIS_CODE[10]={ 0XC0,0XF9,0XA4,0XB0,0X99, //数字0——4 0X92,0X82,0XF8,0X80,0X90}; //数字5——9 uint count=0; //计算INT0中断次数 //============================================================== //函 数: 延时函数,延时timer毫秒 //参 数:timer要延时的毫秒数 //返回值:无 //============================================================== void delay_ms(uint timer) //延迟函数开始 { uchar j=0; //如果能用char类型的变量就不要用int类型, //我们要尽量提高程序执行的效率,减小程序所占空间 while(timer--) //先判断timer的值是否为真(是否非),再对timer的值减1 { //在while语句中将判断条件放在语句之前,称为前条件循环 for(j=124;j0;j--) //说明:循环执行124次 { //for语句是一个很实用的计数循环 ; //空语句 } //for循环语句结束 } //while循环语句结束 } //延时函数结束 //========================================================================= // 主程序 //========================================================================= void main() //主程序开始 { P0=0xff; //设置输入口 //打开reg51.h可以找到该寄存器 IE=0X81; //IE中断使能寄存器(interrupt enable register //相当于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数码管亮 (0100 0000) // delay_ms(6); //延时 // P2=0X80; //第二个LED数码管亮 (1000 0000) delay_ms(6); //延时 P2=0xc0; //使P2.6和P2.7同时为高电位(1100 0000) } //结束if语句(中断10次) } //while循环结束 } //主程序结束 //======================================================================= //中断子程序 //==========================================

文档评论(0)

gk892289 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档