51单片机,c语言,为什么写2个外部中断程序,就会有一个不工作呢?不是同时按的,不用考虑优先级

2024-03-02 20:38:52 浏览

首先两个中断是否都打开了,也就是EX0、EX1是否都等于1; 另外看看触发方式:IT0、IT1是什么置; 再看看你是否真的触发了,硬件上确认没有问题? 第四,你将两个中断函数后面usingn,使n不同,使用不同的工作组试试。

,c语言,为写2个外部中断程序

C51语言与标准C语言一些差别如下:

(1)库函数不同。标准C中不适合于嵌入式控制器系统的库函数,被排除在C51语言之外,如字符屏幕和图形函数。有些库函数必须针对8051的硬件特点来做出相应的开发。

(2)数据类型有一定区别。在C51中增加几种8051单片机的数据类型,在标准C的基础上又扩展了4种类型。例如,8051单片机包含位操作空间和丰富的位操作指令,因此,C51语言与标准C语言相比增加了位类型。

(3)C51语言变量存储模式与标准C语言中变量存储模式数据不一样。标准C最初是为通用计算机设计的,在通用计算机中只有一个程序和数据统一寻址的内存空间,而C51语言中变量的存储模式与8051单片机的各种存储器区紧密相关。

(4)数据存储类型不同。8051存储区可分为内部数据存储区、外部数据存储区以及程序存储区。

①内部数据存储区可分为3个不同的C51存储类型:data、idata和bdata。

②外部数据存储区分为2个不同的C51存储类型:xdata和pdata。

③程序存储区只能读不能写,可能在8051内部或者在外部,C51语言提供的code存储类型用来访问程序存储区。

(5)标准C语言没有处理单片机中断的定义,而C51语言中有专门的中断函数。

(6)头文件不同。C51语言头文件必须把8051单片机内部的外设硬件资源(如定时器、中断、I/O等)相应的特殊功能寄存器写入到头文件内,而标准C不用。

(7)程序结构的差异。由于8051单片机的硬件资源有限,它的编译系统不允许太多的程序嵌套。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。