项目三抽奖器设计
任务二外部中断的简单实例应用
任务描述本任务要求利用按键(按键接P3.2引脚)模拟外部中断0,当外部中断0有中断请求时,CPU响应该中断请求,中断程序使P1.0引脚所接的LED点亮,再一次按下则熄灭,如图。?
知识链接一中断允许控制寄存器IE二中断标志寄存器TCON三中断服务函数
位编码IE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0位名称EA——ESET1EX1ET0EX0位地址AFH——ACHABHAAHA9HA8H功能外部中断0的中断允许控制位中断总允许控制位(1)EA=0,表示总中断关闭;EA=1,表示总中断打开。(2)EX0=1,打开外部中断0;工作说明:一中断允许控制寄存器IE
位编码TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H功能/INT0中断标志位/INT0触发方式位(1)IT0=0表示外部中断0采用电平触发,IT0=1表示外部中断0采用边沿触发。(2)当IE0=1时,表示外部中断0发出中断请求。工作说明:二中断标志寄存器TCON
三中断服务程序【例】设AT89C51使用外部中断0,中断触发方式为边沿触发。voidmain()//主程序{EA=1;//打开总中断EX0=1;//打开外部中断0IT0=1;//设置外部中断0为下降沿触发方式…… }voidint0()interrupt0using1//外部中断0的中断服务程序,名字取为int0{……}
任务实施1.硬件电路。2.程序设计。
1.硬件电路
2.程序设计#includereg51.h“//包含单片机寄存器的头文件#defineucharunsignedchar//宏定义,定义uchar为无符号字符型#defineuintunsignedint//宏定义,定义uint为无符号整型sbitLED=P1^0;//P1.0引脚定义为LED?voidint0_init()//外部中断0初始化程序{EA=1;//开CPU总中断EX0=1;//允许外部中断0中断IT0=1;//设置下降沿触发}
voidmain()//主程序{ int0_init(); //调用外部中断0初始化子程序while(1);//原地踏步,等待中断产生}voidint0()interrupt0//外部中断0的中断服务程序,名字取为int0{LED=~LED; //进入中断,就对P1.0引脚电平取反}
知识总结1.中断系统的配置。2.中断服务程序的格式。
综合评价
课后作业如果将按键接到P3.3口,来控制小灯D1。程序该如何编写呢?
谢谢观看《单片机技术与应用》课程