中断和定时器实验--c语言实现中断嵌套【转载】
题目:通过外部中断0,触发一个延时过程,假定延时时间为1秒,延时期间可以点亮一个LED或让蜂鸣器发出声音。已知单片机晶振频率为6 .00MHz
问题:上面的方法可以完成一个“重复触发问题”,即定时时间没有到的时候又来一个触发信号,应该怎么办?
解:对于“重复触发问题”,单片及不响应外部中断。
硬件电路:
--------------------------------------------------------------------------------
实验程序:
//程序说明,外部中断服务程序的工作是:禁止外中断,启动定时器0,允许定时//器0中断,led1(p1.0口)取反。
//定时器中断服务程序的工作是:重载TH0和TL0的初值,延迟3s后,关闭定//时器0,禁止定时器0中断,允许外部中断,led进入灭状态。
//主函数设置定时器0的工作模式,外中断的触发模式(本实验使用的是脉冲触//发),允许总中断和外中断。
//yzxled.h
#include
sbit LED1=P1^0;
#define ON 1
#define OFF 0
#define RELOADTH0 0x3c
#define RELOADTL0 0x0b0
typedef unsigned char uchar;
uchar time="0",delaytime=10;