




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
51单片机外部中断的C51编程相关知识:1、51单片机的5大中断源:串行口中断、定时中断1、外部中断1、定时中断0、外部中断0;2、中断源的编号: 串行口中断为4、定时中断1为3、外部中断1为2、定时中断0为1、外部中断0为0;3、中断源的优先级:按以上顺序排列,串行口中断最低、外部中断0最高;4、使用外部中断0和1,必须TCON寄存器设置其触发方式是低电平触发(0)还是下降沿触发(1);5、使用前必须通过IE寄存器打开总中断和自己的中断;/外部中断基本例程-1(未使用中断,键盘扫描为一般端口扫描)/这是特意安排的一个例程,以便和使用外部中断的例程2进行对比/用一个按键控制一个灯的亮灭,开始不亮,按一下则点亮,再按一下灭掉,再按又亮.#include sbit k1=P32;sbit led=P27;void delay_ms(unsigned int xms); /ms级延时子程序void key_scan(); /声明键盘扫描子函数/=void main()led=1; /上电初始化,led灯不亮while(1)key_scan();delay_ms(3000);/=void delay_ms(unsigned int xms) /ms级延时子程序 unsigned int x,y;for(x=xms;x0;x-)for(y=130;y0;y-);/-void key_scan() /键盘扫描子函数 if(k1=0) /有键按下吗?(k1=0 ?) delay_ms(10); /延时消抖if(k1=0) /确实是有键按下,则:led=!led; /翻转灯的状态while(!k1); /等待按键放开/-/外部中断基本例程-2 (单个键盘的外部中断0扫描处理)/用一个按键控制一个灯的亮灭/开始不亮,按一下则点亮,再按一下灭掉,再按又亮.#include sbit k1=P32;sbit led=P27;void delay_ms(unsigned int xms); /ms级延时子程序void key_scan() interrupt 0 /使用了外部中断0的键盘扫描子函数。也可放在主函数而不需要预先声明 if(k1=0) /有键按下吗?(k1=0 ?) delay_ms(10); /延时消抖if(k1=0) /确实是有键按下,则:led=!led; /翻转灯的状态while(!k1); /等待按键放开/=void main()led=1; /上电初始化,led灯不亮TCON=0x01; /打开外部中断0,并设置为下降沿触发IE=0x81; /开总中断while(1)delay_ms(3000); /注意主函数这里没有键盘扫描程序了/=void delay_ms(unsigned int xms) /ms级延时子程序 unsigned int x,y;for(x=xms;x0;x-)for(y=130;y0;y-);/-/外部中断基本例程-3 (单个键盘的外部中断1扫描处理)/功能跟上例一样,都是用一个按键控制一个灯的亮灭,但是使用的是外部中断1/注意与前例写法上的不同之处#include sbit k2=P33; /sbit led=P27;void delay_ms(unsigned int xms); /ms级延时子程序/=void main()led=1; /上电初始化,led灯不亮TCON=0x04; /打开外部中断1,并设置为下降沿触发IE=0x84; /开总中断和外部中断1while(1)delay_ms(3000);/=void delay_ms(unsigned int xms) /ms级延时子程序 unsigned int x,y;for(x=xms;x0;x-)for(y=130;y0;y-);/-void key_scan() interrupt 2 /使用了外部中断1的键盘扫描子函数 if(k2=0) /有键按下吗?(k1=0 ?) delay_ms(10); /延时消抖if(k2=0) /确实是有键按下,则:led=!led; /翻转灯的状态while(!k2); /等待按键放开/外部中断基本例程-4 (同时使用外部中断0和外部中断1)/用一个键控制接在P0口的八个灯的亮灭,另外一个按键控制一个灯的亮灭#include sbit k1=P32;sbit k2=P33; /sbit led=P27;void delay_ms(unsigned int xms); /ms级延时子程序/=void main()P0=0xff; /上电初始化,P0全灭led=1; /上电初始化,led灯不亮TCON=0x05; /打开外部中断1,并设置为下降沿触发IE=0x85; /开总中断和外部中断1while(1)delay_ms(3000);/=void delay_ms(unsigned int xms) /ms级延时子程序 unsigned int x,y;for(x=xms;x0;x-)for(y=130;y0;y-);/-void key_scan_1() interrupt 0 /使用了外部中断0的键盘扫描子函数 if(k1=0) /有键按下吗?(k1=0 ?) delay_ms(10); /延时消抖if(k1=0) /确实是有键按下,则:P0=P0; /翻转8个灯的状态while(!k1); /等待按键放开void key_scan_2() interrupt 2 /使用了外部中断1的键盘扫描子函数 if(k2=0) /有键按下吗?(k1=0 ?) delay_ms(10); /延时消抖if(k2=0) /确实是有键按下,则:led=!led; /翻转单个灯的状态while(!k2); /等待按键放开/外部中断扩展应用例程-5(8个按钮分别去控制8个灯的亮灭)/八个按钮通过8个二极管接到外部中断0脚进行中断扩展,/从而解决外部中断口不够用的问题#include sbit k0=P20; /八个按键分别接到P2口各个脚上,sbit k1=P21; /同时还通过二极管连接到外部中断0脚(P3.2)sbit k2=P22;sbit k3=P23;sbit k4=P24;sbit k5=P25;sbit k6=P26;sbit k7=P27;sbit led0=P00; /接在P0脚上的8个LED灯,分别受控于上述8个按键sbit led1=P01;sbit led2=P02;sbit led3=P03;sbit led4=P04;sbit led5=P05;sbit led6=P06;sbit led7=P07;void delay_ms(unsigned int xms); /ms级延时子程序/=void main()/上电初始化,led灯不亮TCON=0x01; /打开外部中断0,并设置为下降沿触发IE=0x81; /开总中断while(1)delay_ms(3000);/=void delay_ms(unsigned int xms) /ms级延时子程序 unsigned int x,y;for(x=xms;x0;x-)for(y=130;y0;y-);/-void key_scan() interrupt 0 /使用了外部中断0的键盘扫描子函数 if(k0=0) /有键按下吗?(k0=0 ?) delay_ms(10); /延时消抖if(k0=0) /确实是有键按下,则:led0=!led0; /翻转灯的状态while(!k0); /等待按键放开if(k1=0) /有键按下吗?(k1=0 ?) delay_ms(10); /延时消抖if(k1=0) /确实是有键按下,则:led1=!led1; /翻转灯的状态while(!k1); /等待按键放开if(k2=0) /有键按下吗?(k2=0 ?) delay_ms(10); /延时消抖if(k2=0) /确实是有键按下,则:led2=!led2; /翻转灯的状态while(!k2); /等待按键放开if(k3=0) /有键按下吗?(k3=0 ?) delay_ms(10); /延时消抖if(k3=0) /确实是有键按下,则:led3=!led3; /翻转灯的状态while(!k3); /等待按键放开if(k4=0) /有键按下吗?(k4=0 ?) delay_ms(10); /延时消抖if(k4=0) /确实是有键按下,则:led4=!led4; /翻转灯的状态while(!k4); /等待按键放开if(k5=0) /有键按下吗?(k5=0 ?) delay_ms(10); /延时消抖if(k5=0) /确实是有键按下,则:led5=!led5; /翻转灯的状态while(!k5); /等待按键放开if(k6=0) /有键
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中音乐课堂多声部合唱教学策略与音乐教育改革研究论文
- 校本课程开发中的课程内容设计论文
- 绘画课程对学生视觉思维的影响论文
- 基于虚拟现实技术的初中地理教学情境创设与教学效果评价论文
- 艾伯森财务管理制度
- 苗圃地员工管理制度
- 茶牌坊人员管理制度
- 融资合同:流动资金贷款合同
- 评估指标体系和评估机制构建支撑工作竞争性磋商文件
- 财政学 期末考试复习重点总结
- (2025)入党积极分子培训考试试题及答案
- 2025年计算机网络技术考试试卷及答案
- 2025年天津市河西区中考二模语文试题
- 教育事业十五五(2026-2030)发展规划
- 2025年中医基础理论考试试题及答案
- 2025中国铁路济南局集团限公司招聘116人(七)易考易错模拟试题(共500题)试卷后附参考答案-1
- 酒店入股合同协议书范本
- 河南省南阳市2025年七年级英语第二学期期末学业水平测试模拟试题含答案
- T/CNESA 1003-2020电力储能系统用电池连接电缆
- 2025年石油天然气管线钢管行业深度研究报告
- 2025年高考军队院校征集和招录人员政治考核表(原表)
评论
0/150
提交评论