C51语言中断函数结构,C51中断函数的写法

发布者:innovator7最新更新时间:2022-07-01 来源: csdn关键字:C51语言  中断函数 手机看文章 扫描二维码
随时随地手机看文章

1、一、中断允许控制CPU 对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE 控制的。EX0(IE.0),外部中断 0 允许位;ET0(IE.1),定时/计数器 T0 中断允许位;EX1(IE.2),外部中断 0 允许位;ET1(IE.3),定时/计数器 T1 中断允许位;ES(IE.4),串行口中断允许位;EA (IE.7), CPU 中断允许(总允许)位。80C51 单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD 用于设置其工作方式;TCON 用于控制其启动和中断申请。一、工作方式寄存器 TMOD工作方式寄存器 TMOD 用于设置定时/计数器的工作方式,低四位用于。


2、 T0,高四位用于 T1。其格式如下:GATE:门控位。GATE0 时,只要用软件使 TCON 中的 TR0 或 TR1 为 1,就可以启动定时/计数器工作;GATA1 时,要用软件使 TR0 或 TR1 为 1,同时外部中断引脚 INT0/1也为高电平时,才能启动定时/计数器工作。即此时定时器的启动条件,加上了 INT0/1 引脚为高电平这一条件。:定时/计数模式选择位。C/T 0 为定时模式;C/T=1 为计数模式。M1M0:工作方式设置位。定时/计数器有四种工作方式,由 M1M0 进行设置。TCON 的低 4 位用于控制外部中断,已在前面介绍。TCON 的高 4 位用于控制定时/计数器的。


3、启动和中断申请。其格式如下:TF1(TCON.7):T1 溢出中断请求标志位。T1 计数溢出时由硬件自动置TF1 为 1。CPU 响应中断后TF1 由硬件自动清 0。T1 工作时,CPU 可随时查询TF1的状态。所以,TF1 可用作查询测试的标志。TF1 也可以用软件置 1 或清 0,同硬件置 1 或清 0 的效果一样。TR1(TCON.6):T1 运行控制位。TR1 置 1 时,T1 开始工作;TR1 置 0 时,T1 停止工作。TR1 由软件置 1 或清 0。所以,用软件可控制定时/计数器的启动与停止。TF0(TCON.5):T0 溢出中断请求标志位,其功能与 TF1 类同。TR0(TCO。


4、N.4):T0 运行控制位,其功能与 TR1 类同。3.3.5 定时/计数器应用举例初始化程序应完成如下工作:对 TMOD 赋值,以确定 T0 和 T1 的工作方式。计算初值,并将其写入 TH0、TL0 或 TH1、TL1。中断方式时,则对 IE 赋值,开放中断。使 TR0 或 TR1 置位,启动定时/计数器定时或计数。定时器 T0 中断的初始化TMOD=0x01;设定工作方式为 16 位定时器TH0=(65536-50000)/256; 赋定时器 T0 高四的值为 50MS(对 256 求模) TL0=(65536-50000)%256; 赋定时器 T0 低四的值为 50MS(对 256 求。


5、余) EA=1;开总中断ET0=1;开定时器 T0 中断TR0=1;启动定时器 T0当定时器时间到产生中断就自动跳到以下中断函数,中断函数不需要做任何声明;void timer0( ) interrupt 1 5 个中断源的排序:0 代表外部中断 0 中断 ,1 代表定时器/计数器 0 中断 ,2 代表外部中断 1 中断, 3 代表定时器/计数器 1, 4 代表串行中断的中断TH0=(65536-50000)/256;重装初值TL0=(65536-50000)%256;重装初值往下写 CPU 要处理的事情就 OK 了中断响应条件中断源有中断请求;此中断源的中断允许位为 1;CPU 开中断(即 。


6、EA=1)。以上三条同时满足时,CPU 才有可能响应中断。P3.2 口的外部中断EA=1;/开总中断EX0=1;/开外部中断 0/IT0=1;/当 IT=0 时为电平的外部中断触发方式,当 IT=1 时位跳变沿外部中断触发方式TCON=0x01;(这是对寄存器将 IT 置 1,和 IT0=1 的效果是一样的)因为 TCON 的地址是可以被 8 整除,所以可以对其进行位操作。当符合外部中断的条件时执行下面的中断函数void exter0() interrupt 0 5 个中断源的排序:0 代表外部中断 0 中断 ,1 代表定时器/计数器 0 中断 ,2 代表外部中断 1 中断, 3 代表定时器/。


7、计数器 1, 4 代表串行中断的中断这里下写 CPU 要处理的事情就 OK 了“”“”At the end, Xiao Bian gives you a passage. Minand once said, people who learn to learn are very happy people. In every wonderful life, learning is an eternal theme. As a professional clerical and teaching position, I understand the importance of continuous 。


8、learning, life is diligent, nothing can be gained, only continuous learning can achieve better self. Only by constantly learning and mastering the latest relevant knowledge, can employees from all walks of life keep up with the pace of enterprise development and innovate to meet the needs of the market. This document is also edited by my studio professionals, there may be errors in the document, if there are errors, please correct, thank you。


关键字:C51语言  中断函数 引用地址:C51语言中断函数结构,C51中断函数的写法

上一篇:C51最小单片机系统
下一篇:51单片机按键控制LED亮灭\单个IO翻转

推荐阅读最新更新时间:2024-11-13 10:25

C51语言使用外部存储器的方法
简介:课本上学到的外部存储器操作基本上都是用汇编语言实现的,但是在实际工作中,大都用C语言编写单片机的程序,那么对外部存储器的操作就不仅仅是给一个普通变量赋值那样子了。 简单地说,注意两个方面: 软件部分: 1.添加头文件#include 2.在需要读写的地方用XBYTE就行,具体做法如下: 比如要访问0xA0B0这个地址(读数据):变量名=XBYTE 就行 反过来要给0xA0B0这个地址赋一个值(写数据):XBYTE =变量名 硬件部分: 硬件连接,将51单片机的P2口接外部存储器的高8位,P0口接数据并通过锁存器接外部存储器的低8位,锁存器的锁存端接51单片机的ALE, 51单片机的读写端要
[单片机]
STM32-GPIO口设为外部中断时,中断函数名称
以A口为例,A0~A4中断函数名称为: void EXTI0_IRQHandler(void ); void EXTI1_IRQHandler(void ); void EXTI2_IRQHandler(void ); void EXTI3_IRQHandler(void ); A5~A9: void EXTI9_5_IRQHandler(void ); A10~A15: void EXTI15_10_IRQHandler(void );
[单片机]
不同编译器中断函数的表示方法
1.keil对51单片机的中断函数表示: void 函数名() interrupt n using n { . } 其中函数名可以任意取,关键字interrupt用来指明这是一个中断服务函数,后面的n表示中断号,关键字using加后面的n表示使用哪一组寄存器。 2. GCC for AVR,对于中断函数支持两种关键字ISR与SIGNAL,其格式如下: ISR(vect) { } 与 SIGNAL(vect) { .. } 其中的vect就是中断向量名,根据不同的型号的AVR单片机的不同的中断源都会有相对应的中断向量名,比如外部中断0对
[单片机]
Keil C51破解版(c语言单片机编程软件) v9.0 免费汉化版
软件介绍 keil c51汉化包旨在带来单片机的各类编程操作,让你能够轻松的进行所需的编辑服务,拥有c语言编程辅助功能,为你带来免费的各类操作效果! 官方介绍 是一款破解过的C语言单片机编程软件!这款软件主要为编程学员们提供c语言服务。绿色资源网小编提供的这款软件完全免费,大家下载后即可使用! eil C51简介: eil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 可以使用以前的注册文件如果全新安装,在VISTA或者WIN 7系统下,请使用管理员
[单片机]
Keil <font color='red'>C51</font>破解版(c<font color='red'>语言</font>单片机编程软件) v9.0 免费汉化版
c51单片机中断函数
以串口中断为例: 如: void serial() interrupt 4 { } 和 void serial_uart() interrupt 4 { } 两个函数的功能都是定义串口中断函数。函数名字不一样不重要,重要的是函数名字后面的interrupt 4(中断向量表地址)要正确。
[单片机]
中断服务函数的编写要求
中断是嵌入式系统中重要的组成部分,但是在标准C中不包含中断。许多编译开发商在标准C上增加了对中断的支持,提供新的关键字用于标示中断服务程序 (ISR),类似于__interrupt、#program interrupt等。当一个函数被定义为ISR的时候,编译器会自动为该函数增加中断服务程序所需要的中断现场入栈和出栈代码。    中断服务程序需要满足如下要求:    (1)不能返回值;    (2)不能向ISR传递参数;    (3) ISR应该尽可能的短小精悍;    (4) printf(char * lpFormatString,…)函数会带来重入和性能问题,不能在ISR中采用。 个人的一点理解 如果说中断服务程序有返
[单片机]
Keil C51对C语言的关键词扩展之十一: xdata
xdata声明的变量位于外部ram 64KB地址范围内某一位置。 程序示例: unsigned int xdata m=0; /* 声明一个全局变量,可位于外部ram 64KB地址范围内任意位置,由编译器决定 */ int main(void) { ...... }
[单片机]
STM32是如何进入中断函数
中断相信很多人都知道是什么意思,不同的任务有不同的优先级,高任务优先级会比低优先级先执行。在嵌入式系统中, 任务的调度和切换都是根据优先级来判断的。 中断可以分为软中断和硬中断。一开始接触到的一般都是软中断,软中断就是中断程序包含在主程序里面,当中断条件满足时,直接跳转到中断函数执行,然后再返回。就相当于判断语句。 刚开始接触STM32的小伙伴可能会发现main.c里面没有中断程序也没用跳转判断语句。例如:定时器中断 #include system.h #include SysTick.h #include led.h #include time.h int main() { u8 i; SysTic
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved