51单片机的外部中断的学习(一)
来源:互联网 发布:form表单提交到数据库 编辑:程序博客网 时间:2024/05/16 09:32
/********************************************************************************** 外部中断实验* 实验现象: 下载程序后,按K3按键可以对LED进行取反,按一下K4按键可以对LED1进行取反。* 注意事项: 无* * 注意事项:* interrupt0:外部中断0* interrupt1:定时器中断0* interrupt2:外部中断1* interrupt3:定时器中断1* interrupt4:串口 *********************************************************************************/#include<reg52.h>typedef unsigned int uint16;typedef unsigned char uchar8;sbit k3 = P3^2; // 定义按键 K3 sbit k4 = P3^3; // 定义按键 K4 sbit led = P2^0;// 定义P2口为LEDsbit led1= P2^1; /********************************************************************************* 函数名: delay * 功能 :延时函数,i=1时,大约延时10us*********************************************************************************/void delay(uint16 i){ while(i--);}/********************************************************************************** 函数名: Int0Init()* 函数功能: 设置外部中断0* 输入: 无* 输出: 无**********************************************************************************/void Int0Int(){ // 设置INT0IT0 = 1; // 跳变沿触发方式(下降沿触发)EX0 = 1; // 打开INT0的中断允许EA = 1; // 开总中断}/********************************************************************************** 函数名: Int0Init()* 函数功能: 设置外部中断1* 输入: 无* 输出: 无**********************************************************************************/void Int1Int(){ // 设置INT1IT1 = 1; // 跳变沿触发方式(下降沿触发)EX1 = 1; // 打开INT0的中断允许EA = 1; // 开总中断}/********************************************************************************** 函数名: main()* 函数功能: 主函数* 输入: 无* 输出: 无**********************************************************************************/void main(){ Int0Int(); Int1Int(); while(1);}/********************************************************************************** 函数名: Int0() interrupt 0* 函数功能: 外部中断0的服务函数* 输入: 无* 输出: 无**********************************************************************************/void waibu0() interrupt 0 { delay(1000);if(k3==0) // 延时去抖{ delay(1000); if(k3==0) { led=~led; }}}/********************************************************************************** 函数名: waibu1() interrupt 2* 函数功能: 外部中断1的服务函数* 输入: 无* 输出: 无**********************************************************************************/void waibu1() interrupt 2{ delay(1000);if(k4==0) // 延时去抖{ delay(1000); if(k4==0) { led1=~led1; }}}编程中要注意的事项:1、外部中断0 编好以后 Int0() interrupt 0 编写外部中断1的时候要用 interrupt 2 用 interrupt 1 ,会出现问题的。2、外部中断1的编写也要打开,进行初始化操作3、中断服务函数,不要进行声明,它是可以直接调用的4、编写代码的时候要注意规范,养成良好的习惯
阅读全文
0 0
- 51单片机的外部中断的学习(一)
- 51单片机的外部中断
- (学习笔记)单片机外部中断的两种模式
- 03 AVR单片机中断的学习探究(外部中断与内部中断)
- 51单片机外部中断的C51编程
- 51单片机的中断系统(一)
- 【51单片机学习过程记录】11 中断之外部中断的应用
- 【51单片机学习过程记录】12中断 之外部中断的应用2
- 单片机的定时器中断的学习(一)
- 单片机中断的学习
- Linux下的51单片机简单的外部中断实验
- 51单片机外部中断
- 关于51单片机“外部中断触发方式”的经验总结
- 关于51单片机“外部中断触发方式”的经验总结
- 基于51单片机的外部中断实例1
- 关于51单片机外部中断的触发方式
- 51单片机2个外部中断的应用
- 【51单片机学习过程记录】16 中断之 串口中断的应用2(中断方式)
- splay_tree
- JAVA-1009. 说反话 (20)
- CentOS 镜像文件下载中各文件的区别
- fgm实例练习笔记-3.3点击累加数字,自加1
- OpenCV3 Python语言实现 笔记4
- 51单片机的外部中断的学习(一)
- 微信小程序页面内转发 按钮 转发
- linux应用编程--pipe无名管道
- java中什么是上下文
- 如何在Elasticsearch中安装中文分词器(IK+pinyin)
- jquery流上传获取文件以及请求参数
- CMakeLists.txt----一点儿自己的经验教训
- docker——发布一个应用程序
- 【异常】--spring context:property-placeholder location= 找不到环境配置文件 maven(257)