功能强大的时钟中断
- 格式:doc
- 大小:26.50 KB
- 文档页数:3
cpu有什么功能中央处理器(Central Processing Unit,简称CPU)是计算机系统的核心部件,负责执行指令以及控制计算机的运行。
CPU的功能十分丰富,下面将介绍CPU的五大主要功能。
1. 指令执行CPU负责执行计算机中的各种指令。
在计算机中,各种操作是以指令的形式存在的,包括数据的运算、传送、存储和控制等。
CPU通过解码指令,并按照指令的要求执行相应的操作,从而实现计算机的各种功能。
2. 算术逻辑运算CPU能够进行各种算术运算和逻辑运算,包括加法、减法、乘法、除法等数值运算,以及与、或、非、异或等逻辑运算。
这些运算是计算机进行各类计算和逻辑判断的基础,CPU通过执行这些运算,实现了计算机的计算能力和逻辑判断能力。
3. 存储管理CPU负责管理计算机的存储器,包括主存储器(RAM)和辅助存储器(硬盘、固态硬盘等)。
CPU向存储器发送读取和写入请求,从而实现数据的读取和存储。
同时,CPU还负责对存储器进行管理,包括对存储器进行分配、地址转换、数据传输等操作。
4. 控制系统CPU是计算机中的控制中心,负责控制计算机的整个运行过程。
CPU通过执行指令来控制各个硬件组件的工作,包括输入输出设备、存储器、中断系统等。
CPU接收来自外部的输入信号,根据指令的要求对各个硬件设备进行操作,从而实现计算机的正常运行。
5. 中断处理在计算机运行过程中,可能会出现各种中断情况,比如输入输出中断、时钟中断等。
CPU负责检测各种中断信号,并根据中断的优先级和程序要求进行相应的中断处理。
CPU会保存当前的运行状态,切换到中断处理程序,并在处理完中断后恢复到原来的运行状态,从而保证计算机能够及时响应各种中断请求。
总之,中央处理器是计算机系统中最重要的部件之一,具有执行指令、算术逻辑运算、存储管理、控制系统以及中断处理等多个功能。
正是由于CPU的功能的强大和高效,才能够实现计算机的各种复杂的运算和功能,提高计算机的工作效率和性能。
一、STM32F411芯片概述STM32F411是意法半导体公司推出的一款高性能的ARM Cortex-M4核心的微控制器芯片,具有丰富的外设接口和强大的计算能力,广泛应用于工业控制、智能家居、医疗设备等领域。
二、定时开发的意义定时开发是指在嵌入式系统中通过定时器实现定时触发某些任务或事件,例如定时采集传感器数据、定时控制某些执行单元等。
在实际应用中,定时开发可以提高系统的稳定性和实时性,优化系统资源的利用,提高系统的响应速度和性能。
三、定时器的工作原理定时器是嵌入式系统中常用的外设,用于产生精确的定时事件,并触发相应的中断或事件处理。
定时器通常由计数器和控制寄存器组成,计数器用于计数时钟脉冲,控制寄存器用于配置定时器的工作模式和触发条件。
四、STM32F411定时器的特点1. 多种定时器:STM32F411芯片内置了多个定时器,包括基本定时器(TIM6/TIM7)、通用定时器(TIM2/TIM3/TIM4/TIM5)、高级定时器(TIM1)。
不同的定时器具有不同的工作模式和功能,可以满足不同的应用需求。
2. 强大的时钟控制:STM32F411芯片具有丰富的时钟控制功能,可以为定时器提供精确的时钟源,并支持多种时钟分频和倍频配置,满足不同的定时精度要求。
3. 灵活的中断处理:定时器可以产生定时中断,并触发相应的中断处理程序,实现定时任务的实时响应和处理。
五、STM32F411定时开发实验原理在STM32F411芯片上实现定时开发,一般需要以下步骤:1. 初始化定时器:首先需要对所选择的定时器进行初始化配置,包括时钟源、工作模式、定时器周期等参数的设置。
2. 配置中断:根据实际需求,配置定时器的中断触发条件和相关中断优先级。
3. 编写中断处理程序:编写定时器中断的处理程序,用于响应定时触发的事件,并执行相应的任务或操作。
4. 启动定时器:将定时器启动,开始计时,等待定时中断的触发。
5. 完善其他相关功能:根据具体应用需求,可以进一步完善其他相关功能,如定时器的互联、定时器同步、定时器的PWM输出等。
定时器1使用总结定时器1(Timer 1)是一种用于计时和触发特定事件的设备。
它是微控制器中常见的硬件组件之一,可以在计时器模式下生成精确的时间间隔,或者在计数器模式下实现特定的计数功能。
在使用定时器1之前,需要根据实际需求进行一些设置和配置。
首先,需要确定计时或计数的时间基准(prescaler)和计数器的初始值(counter),这决定了定时器的计时周期和溢出时间。
其次,需要确定所需的计时或计数模式,并进行相应的配置。
最后,在开始计时或计数之前,还需要确保相关的中断(interrupt)被打开,以便在达到设定的时间或计数值时触发中断处理函数。
定时器1的使用场景非常广泛,下面将从不同的角度对其进行总结。
一、计时功能定时器1可以用于生成精确的时间间隔。
在计时模式下,定时器1以预设的时间基准递增计数,当达到设定的计数值时触发中断。
这一功能在许多应用中非常有用,例如测量实际时间、控制电机速度、实现周期性任务等。
在使用计时功能时,需要根据实际需求选择合适的时间基准和计数值。
时间基准的选择决定了计时器的溢出时间,从而决定了可以测量的时间范围。
通常,可以采用不同的时间基准来适应不同的应用场景,例如使用系统时钟(System Clock)作为时间基准以获取较长的计时间隔,或者使用外部中断(External Interrupt)来触发计时器以实现更高精度的计时。
在实际应用中,可以根据计时器1的中断标志位(T1IF)进行判断,当T1IF置位时,即表示定时器1已经达到设定的计数值。
此时,可以在中断处理函数中进行相应的操作,例如更新数据、控制输出、触发其他事件等。
二、计数功能定时器1还可以用作计数器,用于计算特定事件的数量。
在计数模式下,当外部事件触发计数器的输入引脚时,定时器1会递增计数,直到达到设定的计数值时触发中断。
这一功能在许多应用中非常有用,例如测量外部事件的频率、计算脉冲数量等。
在使用计数功能时,需要根据外部事件的特点选择合适的计数触发方式。
第7章输入/输出与中断一、自测练习题㈠选择题1.一微机系统有10根地址线用于I/O端口寻址,因而具有I/O空间的范围是( )字节。
A) 1024 B) 10K C) 0.5M D) 1M2.8086CPU读/写一次存储器或I/O端口所需的时间称为一个( )。
A) 总线周期 B) 指令周期 C) 时钟周期 D) 基本指令执行时间3.微型计算机的输入/输出有三种不同的控制方法,其中以( )控制的输入/输出是微机进行I/O的一种最主要的控制方式。
A) 程序控制 B) 中断控制C) DMA控制D) 以上均可4.程序查询I/O方式的工作流程是按( )的次序完成一个字符的传输。
A) 写数据端口,读/写控制端口B) 读状态端口,读/写数据端口C) 写控制端口,读状态端口,写数据端口D) 随I/O接口的具体要求而定5.在CPU与外设的I/O传送控制方式中,效率高、实时性强的方式是( )。
A) 同步传送 B) 查询传送 C) 无条件传送 D) 中断传送6.在CPU与外设的I/O传送控制方式中,传送速度最快的方式是( )。
A) 无条件传送 B) 查询传送 C) 中断传送 D) DMA传递7.用具有两个状态(“0”和“1”态)的一组开关作简单输入设备时,应采用( )传送方式来输入信息。
A) 无条件B) 查询C) 中断D) DMA8.用一组发光二极管作为简单输出设备时,应采用( )传送方式来输出信息。
A) DMA B) 无条件C) 查询D) 中断9.在微机系统中引入中断技术,可以( )。
A) 提高外设速度B) 减轻主存负担C) 提高处理器的效率D) 增加信息交换的精度10.CPU响应中断请求的时刻是在( )。
A) 执行完成正在执行的程序以后 B) 执行完正在执行的指令以后C) 执行完本时钟周期以后D)执行完正在执行的机器周期以后11.8086/8088CPU向应两个硬中断INTR和NMI时,相同的必要条件是( )。
A) 允许中断B) 当前I/O操作执行结束C) 总线空闲D) 当前访问内存操作结束12.在微型计算机系统中,高速外设与内存储器进行批量数据传送时,应采用( )。
一、引言随着科技的不断进步,人们对电子产品的需求也愈发增加。
电子钟作为一种必需品,能够准确地显示时间和日期,被广泛应用于家庭、办公室、学校等场所。
然而,传统的电子钟只能显示当前的日期和时间,功能较为简单。
为了满足人们的需求,设计一种万年历电子钟是十分必要的。
二、设计方法1.硬件设计(1)主控芯片选择:根据万年历电子钟的功能需求,选择一款性能强大的主控芯片,例如ARM Cortex-M系列的芯片,具备强大的计算和控制能力。
(2)显示屏选择:选用高分辨率的液晶显示屏,能够清晰地显示日期和时间。
考虑到用户操作的便捷性,可以选择带有背光灯的显示屏。
(3)电源设计:采用直流电源供电,可以选择使用电池或者接入市电。
对于使用电池供电的设计,需加入节电模式,提高电池使用寿命。
2.软件设计(1)显示功能:通过主控芯片控制液晶显示屏,实现日期和时间的显示。
根据数据的变化,实时更新显示内容。
(2)时钟功能:使用定时器功能,实现时钟的计时功能。
利用时钟中断,每秒更新一次时钟。
(3)日期功能:通过读取实时时钟芯片的数据,获取当前的年份、月份、日期和星期。
根据每月的天数和闰年的规则,实现日期的显示和计算。
(4)闹钟功能:通过设置闹钟选项,设置闹钟的时间和铃声。
当闹钟的设定时间到达时,发出闹铃声。
三、设计结果经过软硬件设计的整合,实现了一款功能丰富的万年历电子钟。
通过液晶显示屏,能够准确地显示当前的年份、月份、日期、星期、小时和分钟。
通过定时器功能,实现了精准的时间计时功能。
通过读取实时时钟芯片的数据,实现了准确的日期显示和计算。
同时,通过设置闹钟功能,提醒用户重要的时间节点。
四、结论本文设计了一款功能强大的万年历电子钟,能够准确地显示日期和时间,并具有闹钟功能。
通过软硬件的整合,实现了高清晰度的显示和准确的日期计算。
该设备不仅满足了人们对时间和日期的需求,还具有提醒功能,对用户的生活起到了积极的作用。
值得注意的是,该设计只是一个初始的版本,仍可以进行优化和改进,使其更加符合用户需求。
80C51单片机的基本结构是由中央处理器CPU、存储器、输入/输出接口电路(I/O口)、定时和中断电路组成。
80C51的组成:微处理器、存储器、外部输入/输出接口电路(I/O接口)、中断系统、时钟电路、系统总线、80C51的存储器内部数据存储器:实际上80C51芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,供用户使用的只是前128单元,用于存放可读写的数据。
内部程序存储器:内部程序存储器是指ROM(4KB×8)。
80C51共有4 KB掩膜ROM,用存放程序和原始数据。
因此称之为程序存储器,简称“内部ROM”。
I/O口电路:80C51单片机共有4个8位的I/0口(P0-P3),以实现数据的并行输入输出。
还有一个可编程全双工的串行口,它功能强大,可做异步通信收发器使用,也可用作同步移位器使用。
中断系统:80C51单片机的中断功能较强,以满足控制应用的需要。
80C51共有5个中断源。
即外部中断2个,定时/计数中断2个,串行中断1个。
全部中断分为高优先级和低优先级共两级。
时钟电路:80C51单片机的内部具有时钟电路,但石英晶体振荡器和微调电容需外接。
总线:上述这些部件都是通过总线连接起来,才能构成一个完整的单片机系统。
总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。
主电源引脚Uss和Ucc :Vss(20脚):接地Vcc(40脚):正常操作、对EPROM编程和验证时为+5V电源。
外接晶振引脚XTALl和XTAL2 XTALl(19脚):内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。
当使用外部时钟时,对于HMOS单片机,该引脚必须接地;对于CHMOS单片机,该引脚作为驱动端。
XTAL2(18脚):内部振荡电路反相放大器的输出端,是外接晶体的另一端。
若使用外部时钟时,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。
控制和其它电源复用引脚RST/VPD(9脚):复位信号输入引脚/备用电源输入引脚。
基于STC89C52单片机时钟的设计与实现1. 本文概述本文主要介绍了基于STC89C52单片机和DS1302时钟芯片的电子时钟设计与实现。
该电子时钟系统具有年月日等基本时间显示功能,并集成了秒表计时处理、闹钟定时、蜂鸣器和温度显示等附加功能。
系统采用LCD1602作为液晶显示器件,通过单片机对时钟和温度等数据进行处理后传输至LCD进行显示。
用户可以通过按键对时间进行调节,同时,单片机还通过扩展外围接口实现了温度采集等功能。
本文的目标是提供一个功能丰富、易于操作的电子时钟系统,为学习和应用单片机技术提供一个实用的案例。
2. 系统设计要求在设计基于STC89C52单片机的时钟系统时,我们需要考虑以下几个关键的设计要求:时钟系统必须具备基本的时间显示功能,能够以小时、分钟和秒为单位准确显示当前时间。
系统还应支持设置闹钟功能,允许用户设定特定的时间点进行提醒。
系统需要保证长时间稳定运行,具备良好的抗干扰能力,确保在各种环境下都能准确计时。
还应具备一定的容错能力,即使在操作失误或外部干扰的情况下,也能保证系统的正常运行。
用户界面应简洁直观,便于用户快速理解和操作。
时钟的显示部分应清晰可见,即使在光线较暗的环境下也能保持良好的可视性。
同时,设置和调整时间的操作应简单易懂,方便用户进行日常使用。
在设计时钟系统时,应考虑到未来可能的功能扩展,如温度显示、日期显示等。
系统的设计应具有一定的灵活性和扩展性,以便在未来可以轻松添加新的功能模块。
鉴于时钟系统可能需要长时间运行,能耗是一个重要的考虑因素。
设计时应选择低功耗的元件,并优化电源管理策略,以延长电池寿命或减少能源消耗。
在满足上述所有要求的同时,还需要控制成本,确保产品的市场竞争力。
这可能涉及到对单片机的编程优化、选择性价比高的外围元件等措施。
通过满足上述设计要求,我们可以确保开发出一个功能完善、稳定可靠、用户友好、易于扩展、节能环保且成本效益高的STC89C52单片机时钟系统。
stm32 rtc用法STM32是一款功能强大的微控制器系列,RTC(Real Time Clock)是其中一个重要的功能模块。
RTC模块为嵌入式设备提供了高精度的实时时钟功能,能够在断电后依然保持时间的准确性。
本篇文章将详细介绍STM32 RTC的使用方法,一步一步回答相关问题。
第一步:使用前的准备在开始使用STM32 RTC之前,需要对RTC模块进行一些准备工作。
首先,在Keil或者其他集成开发环境(IDE)中,需要将RTC作为外设来进行配置。
其次,需要对RTC外设的时钟进行配置,通常可以选择外部晶体振荡或者内部LSI振荡作为时钟源。
最后,还需要配置RTC的预分频器和计数器,以满足实际应用的需求。
第二步:初始化RTC模块在进行RTC模块的初始化之前,需要先对RTC外设进行使能。
通过启用RCC_AHB1ENR或RCC_APB1ENR寄存器中的RTCEN位,可以使能RTC外设。
接着,可以通过RCC_CSR寄存器中的备份域访问位(BDCR寄存器)来对RTC 模块进行初始化。
在初始化RTC模块时,可以设置时钟源、预分频器和计数器的初值,以及其他一些参数,如是否使能闹钟功能等。
第三步:设置RTC时间在RTC模块初始化完成后,可以通过写入RTC_TR和RTC_DR寄存器来设置RTC的时间。
其中,RTC_TR寄存器用于设置小时、分钟和秒钟的值,RTC_DR寄存器用于设置年、月和日期的值。
需要注意的是,写入RTC_TR和RTC_DR寄存器的时候,应该先禁用RTC写保护,然后再进行写操作。
完成时间设置后,可以重新启用RTC写保护。
第四步:读取RTC时间除了设置RTC时间外,还可以通过读取RTC_TR和RTC_DR寄存器来获取当前的RTC时间。
读取RTC时间的时候,同样需要先禁用RTC写保护,然后再进行读取操作。
完成读取后,需要重新启用RTC写保护。
第五步:使用闹钟功能RTC模块还支持闹钟功能,可以通过设置RTC_ALRMxR(x为1、2或3)寄存器来设置闹钟的时间和触发方式。
stm32f103基本架构STM32F103是STMicroelectronics(意法半导体)推出的一款32位单片机。
它基于ARM Cortex-M3内核,是一款高性能、低功耗的微控制器。
STM32F103的基本架构包括以下几个方面:1. Cortex-M3内核:STM32F103采用了ARM Cortex-M3内核,该内核具有高性能、低功耗、高代码密度以及高指令集的特点。
它支持Thumb-2指令集,提供了更高的代码密度和更好的性能。
2. 外设接口:STM32F103提供了丰富的外设接口,包括多个通用输入/输出口(GPIO)、通用同步/异步收发器(USART)、SPI接口、I2C接口、定时器等。
这些外设接口可以满足各种应用的需求,方便用户进行各种外设的连接和控制。
3. 存储器:STM32F103内部集成了不同容量的闪存和SRAM。
闪存用于存储程序代码和常量数据,SRAM用于存储变量数据和堆栈。
闪存的容量可以根据不同型号的芯片而变化,用户可以根据自己的需求选择适合的型号。
4. 时钟系统:STM32F103具有灵活的时钟系统,可以通过配置时钟分频器和时钟源来满足不同的应用需求。
它可以利用内部RC振荡器、外部晶体振荡器或PLL锁相环来提供稳定的系统时钟。
5. 中断控制器:STM32F103配备了一个灵活的中断控制器,可以处理多个外部中断和内部中断。
中断控制器可以配置中断优先级和中断向量表,确保及时响应和处理各种中断事件。
6. 电源管理:STM32F103具有多种低功耗模式,可以根据应用需求选择合适的模式以降低功耗。
它还提供了多种电源管理功能,如供电电压监测、供电电压调节等,可以保证系统的稳定运行。
7. 调试和编程接口:STM32F103支持JTAG和SWD调试接口,可以方便地进行程序的调试和烧录。
用户可以使用ST-Link、J-Link 等调试工具进行调试和编程操作。
总结起来,STM32F103基于ARM Cortex-M3内核,具有丰富的外设接口、灵活的时钟系统、强大的中断控制器和低功耗模式。
系统调用与中断的关系1.中断课本中“中断”的定义:所谓中断,是指CPU在正常运行程序时,由于内部/外部事件或由程序的预先安排引起CPU暂停正在运行程序,而转到为内部/外部事件或为预先安排事件服务的程序中去。
服务完毕,再返回去继续执行被暂停的程序。
中断可分为三类,第一类是由CPU外部引起的,称作中断,如I/O中断、时钟中断、控制台中断等。
第二类是来自CPU的内部事件或程序执行中的事件引起的过程,称作异常,如由于CPU本身故障(电源电压低于105V或频率在47~63Hz之外)、程序故障(非法操作码、地址越界、浮点溢出等)等引起的过程。
第三类由于在程序中使用了请求系统服务的系统调用而引发的过程,称作“陷入”(trap,或者陷阱)。
前两类通常都称作中断,它们的产生往往是无意、被动的,而陷入是有意和主动的。
2.系统调用所谓系统调用,就是内核提供的、功能十分强大的一系列的函数。
这些系统调用是在内核中实现的,再通过一定的方式把系统调用给用户,一般都通过门(gate)陷入(trap)实现。
系统调用是用户程序和内核交互的接口。
操作系统的主要功能是为应用程序的运行创建良好的环境,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用的(system call)的接口呈现给用户。
系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,用户将不能编写大型应用程序。
整个系统调用的过程可以总结如下:1.执行用户程序(如:fork)2.根据glibc中的函数实现,取得系统调用号并执行int $0x80产生中断。
3.进行地址空间的转换和堆栈的切换,执行SAVE_ALL。
(进行内核模式)4.进行中断处理,根据系统调用表调用内核函数。
5.执行内核函数。
6.执行RESTORE_ALL并返回用户模式那么,系统调用和中断调用有什么联系和区别呢?首先它们都是操作系统概念。
功能强大的时钟中断
在单片机程序设计中,设置一个好的时钟中断,将能使一个CPU发挥两个CPU的功效,大大方便和简化程序的编制,提高系统的效率与可操作性。
我们可以把一些例行的及需要定时执行的程序放在时钟中断中,还可以利用时钟中断协助主程序完成定时、延时等操作。
下面以6MHz时钟的AT89C51系统为例,说明时钟中断的应用。
定时器初值与中断周期时钟中断无需过于频繁,一般取20mS(50Hz)即可。
如需要百分之一秒的时基信号,可取10mS(100Hz)。
这里取20mS,用定时器T0工作于16位定时器方式(方式1)。
T0的工作方式为:每过一个机器周期自动加1,当计满0FFFFh,要溢出时,便会产生中断,并由硬件设置相应的标志位供软件查询。
即中断时比启动时经过了N+1个机器周期。
所以,我们只要在T0中预先存入一个比满值0FFFFh小N的数,然后启动定时器,便会在N个机器周期后产生中断。
这个值便是所谓的“初值”。
下面计算我们需要的初值:时钟为6MHz,12个时钟周期为一个机器周期,20mS中有10000个机器周期。
(10000)10=(2710)16,则0FFFFh-2710h+1=0D8F0h。
由于响应中断、保护现场及重装初值还需要7~8个机器周期,把这个值再加上7,即T0应装入的初值是0D8F7h。
每次中断进入后,先把A及PSW的值压入堆栈,然后即把0D8F7h装入T0。
设置一个单元,每次中断加1我们可以取内部RAM中一个单元,取名为INCPI(Increase Per Interrupt),在中断中,装完T0初值后,用INC INCPI指令将其加一。
从这个单元中,无论中断程序还是主程序,都可
以从中获得20mS的1~256之间任意整数倍的信号。
例如:有一段向数码管送显的程序,需要每0.5秒执行一次以便刷新显示器,便可以设一单元(称为等待单元)W_DISP,用/MOV A,INCPI/ADD A,#25/MOV W_DISP,A/语句让其比当前的INCPI值大25,然后在每次中断中检查是否于INCPI 值相等。
若相等,说明已过了25个中断周期,便执行送显程序,并且让W_DISP再加上25,等待下个0.5秒。
我们可以设置多个等待单元,以便取出多个不同的时基信号。
让中断程序在每次中断时依次查询各个等待单元是否与INCPI相等,若相等,则执行相应的处理,并重新设置该等待单元的值,否则跳过。
例如:用0.5秒信号刷新或闪烁显示器,用1秒信号产生实时时钟,或输出一定频率的方波,以一定间隔查询输入设备等。
在中断中读键通常,我们在主程序中读键盘,步骤为:扫描键盘,若有键按下,则延时几十毫秒去抖动,再次确认此键确实按下,然后处理该键对应的工作,完成后再次重上述步骤。
但这有两点不足:1.处理相应工作时无法锁存按键的输入,即可能漏键。
2.延时去抖时CPU无法做其它事情,效率不高。
如果把读键放入时钟中断中,则可避免上述不足。
方法为:如果两次相邻的中断中都读到同一个键按下,则这个键是有效的(达到了去抖目的),并将其锁存到先入先出(队列)的键盘缓冲区,等主程序来处理。
这样,主程序处理按键的同时,仍可响应键盘的输入。
缓冲区深度通常可设为8级,若锁存的键数多于8个,则忽略新的按键,并报警提示用户新的按键将无效。
若键盘缓冲队列停滞的时间大大长于主程序处理按键所需要的最大时间,说明主程序已出错或跑飞,可以在
中断用指令将系统复位,起到了看门狗的目的。
主程序中的延时由于有常开的时钟中断,所以当主程序中有需要时间较短、精度较高的延时时,应暂时把时钟中断关闭。
而程序中需要时间较长、精度不高的延时时,便可仿照下需的写法,避免多层嵌套的循环延时。
例:在P1.1输出1秒的高电平脉冲
MOV A,INCPI
INC A
CJNE A,INCPI$ ;等待一次中断处理完成
SETB P1.1 ;设P1.1为H,脉冲开始
ADD A,#50 ;50个20mS为1秒
CJNE A,INCPI,$ ;等中断将INCPI加一50次
CLR P1.1 ;设P1.1为L,脉冲结束
结束语:从上看出,要灵活地应用时钟中断,将任务合理分配给中断和主程序,并且二者要分工明确,接口简单。
这其中的技巧还需要大家在实践中多多摸索与体会。
另外要注意:应尽量缩短中断处理程序的执行时间,更不要长于20mS。