题目内容
(请给出正确答案)
[主观题]
编写 完成外部中断1控制LED亮灭变化的中断初始化程序与中断服务程序。中断初始化化程序定义为void int1_csh(void) ,中断服务程序定义为void int1()interrupt 2 using 1。要求用电平触发方式,优先级最高,每中断1次,定义为LED的端口控制LED灯亮灭变化1次。程序框架如下,请复制程序框架完成程序编写,实现功能。 void int1_csh(void) { IT1= ; //正确计2分 EA= ; //正确计2分 EX1= ; //正确计2分 IP= ; //正确计2分 } void int1()interrupt 2 using 1 { LED= ; }
答案
#include <reg51.h> // 包含头文件,声明各个特殊功能寄存器 #define uchar unsigned char // 为了书写方便,定义uchar表示无符号字符型 sbit light=P0^0; // 定义变量light表示P0口的P0.0引脚 sbit flag; void delay05s(void) // 定义延时0.5s函数 { uchar i,j,k; for (i=0;i<5;i++) { for (j=0;j<200;j++) { for (k=0;k<250;k++) {;} } } } void main() // 主函数 { IT0=1; // 外部中断0,下降沿中断 EX0=1; // 允许外部中断0申请中断中断 EA=1; while(flag) //while 循环,当条件为真(只有0为假)执行下面的循环 { // 体,由于条件恒为真,所以构成无限次循环 light=0; // 给P2.0赋值0,使P2.0输出低电平, LED点亮 delay05s(); // 延时0.5s light=1; // 给P2.0赋值1,使P2.0输出高电平, LED熄灭 delay05s(); // 延时0.5s } } Void int_0( ) interrupt 0 { flag=~flag; }
如搜索结果不匹配,请 联系老师 获取答案