找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7341|回复: 4
打印 上一主题 下一主题
收起左侧

简单的单片机外部中断程序(给P3.2管脚低电平,led会显示取反状态)

[复制链接]
跳转到指定楼层
楼主
ID:331575 发表于 2018-5-30 21:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  • 很简单的外部中断程序,希望对正在学习的人有帮助
  • #include<reg52.h>
  • sbit k3=P3^2;  //定义按键K3
  • sbit led=P2^0;         //定义P20口是led
  • void delay(unsigned int i)  //延时函数,i=1时,大约延时10us
  • {
  • while(i--);
  • }
  • void Int0Init()  //设置外部中断1
  • {
  • //设置INT0   INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起
  • IT0=1;//跳变沿出发方式(下降沿)
  • EX0=1;//打开INT0的中断允许。
  • EA=1;//打开总中断
  • }
  • void main()
  • {
  • Int0Init();  //        设置外部中断0
  • while(1);
  • }
  • void Int0()        interrupt 0                //外部中断0的中断函数
  • {
  • delay(1000);         //延时消抖
  • if(k3==0)
  • {
  • led=~led; // led状态取反
  • }
  • }


程序效果就是给P3.2管脚低电平,led会取反状态。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:71421 发表于 2019-1-9 09:03 | 只看该作者
感谢分享!!!正好需要。
回复

使用道具 举报

板凳
ID:447549 发表于 2019-11-3 22:01 | 只看该作者
请问程序中while(1)有什么作用???为什么会在Int0Init()后面???
回复

使用道具 举报

地板
ID:99612 发表于 2019-11-6 17:57 | 只看该作者
尘世繁华 发表于 2019-11-3 22:01
请问程序中while(1)有什么作用???为什么会在Int0Init()后面???

Int0Init();  // 初始化设置,while(1);//无限循环;只要有外部中断发生,就会停止循环,然后去执行中断函数。执行完中断函数后又返回循环。
回复

使用道具 举报

5#
ID:634666 发表于 2019-11-7 00:14 来自手机 | 只看该作者
多谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表