你怎么会用到int20h和int21H啊自己扩展了8259
不知道你主程序是怎么写的,正常情况下,如果你不退出程序返回DOS,中断后,程序应该是能正常工作。如果是驻留程序,退出后,系统将可能无法正常工作,因为你接管了DOS的两个关键调用入口,但又没有提供服务。
但如果你用的不是DOS系统,从你提供的程序片断,我这里是没有看出有什么问题。
另,在你处理中断向量表时,之前应该有个CLI,处理结束后,再STI。一般不建设自己直接修改向量表,正常应使用DOS调用来完成。
希望能帮到你。
给你一个中断服务程序编写的样式:
#include "reg51h"
void Init(void)
{
TMOD = 0x01; //十六位定时器
TH0 = 60000/256; //定时器计数器赋值,12MHz晶振55ms一次中断
TL0 = 60000%256;
ET0 = 1; //开定时器0中断允许
PT0 = 0; //中断优先级为0
return;
}
void Timer0(void) interrupt 1 //定时器中断0
{
TL0 = TL0|(60000%256);//重装初值
TH0 = 60000/256; //定时器计数器赋值,12MHz晶振50ms一次中断
// 你的代码(如信号引脚取反==) 通过判断重装不同的初值可以改变占空比
return;
}
两个不同频率的信号不能在同一个引脚上输出,因为谈频率,就得是周期性的!
给你个单片机论坛地址:>
以上就是关于8086汇编语言中,两个中断怎么写呀这是我写的一段代码,一中断就直接跳出程序了,回不到主程序中。全部的内容,包括:8086汇编语言中,两个中断怎么写呀这是我写的一段代码,一中断就直接跳出程序了,回不到主程序中。、如何用51系列单片机产生DTMF双音频信号,核心是关于怎样用C语言写两个中断程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)