《单片机资料XC866中断系统.ppt》由会员分享,可在线阅读,更多相关《单片机资料XC866中断系统.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、XC866中断系统电子科技大学4 4 输入输入/输出及中断系统输出及中断系统I/I/O设备必须通过设备必须通过I/I/O接口与计算机连接。接口与计算机连接。微微型型机机I/I/O O接接口口I/I/O O接接口口I/I/O O设设备备I/I/O O设设备备I/I/O接口的功能接口的功能:1.速度匹配:速度匹配:2.数据格式转换:数据格式转换:3.电平转换:电平转换:4.隔离:隔离:5.缓冲驱动:缓冲驱动:I/I/O接口的功能接口的功能:1.速度匹配:速度匹配:锁存数据、传送联络信号。锁存数据、传送联络信号。2.数据格式转换:并数据格式转换:并-串转换、串转换、A/DA/D、D/AD/A转换。转
2、换。3.电平转换:电平转换:电平幅值或正电平幅值或正/负逻辑转换。负逻辑转换。4.隔离:多个设备信号通过接口三态门隔离干扰信号。隔离:多个设备信号通过接口三态门隔离干扰信号。5.缓冲驱动:驱动多个逻辑部件或大功率执行部件缓冲驱动:驱动多个逻辑部件或大功率执行部件。4.14.1 I/I/O接口信号及寻址方式接口信号及寻址方式每个每个I/I/O接口分配有对应的接口分配有对应的I/I/O地址。地址。CPUCPU与与I/I/O之间接口信号之间接口信号1.1.数据信息数据信息 2.2.状态信息状态信息 3.3.控制信息控制信息 DB AB RD WR INT微型机微型机D IODA IOSRD IOCW
3、R INTI/O接口接口DReadySTBI/O设备设备1.数据信息数据信息微型机与外设交换的数据,经接口数据缓冲器传送。微型机与外设交换的数据,经接口数据缓冲器传送。2.2.状态信息状态信息反映外设工作状态的信号。反映外设工作状态的信号。3.控制信息控制信息设定设定I/I/O电路工作方式的信号。电路工作方式的信号。数据总线传递三种信号,用不同数据总线传递三种信号,用不同I/I/O地址区别:地址区别:输入输入/输出数据缓冲器共用一个输出数据缓冲器共用一个I/I/O地址:数据端口。地址:数据端口。状态状态/控制寄存器共用一个控制寄存器共用一个I/I/O地址:控制地址:控制/状态端口。状态端口。I
4、/I/O控制方式控制方式一一.无条件传送方式无条件传送方式已知已知I/I/O设备准备就绪,可直接进行数据传送。设备准备就绪,可直接进行数据传送。二二.查询式传送查询式传送先查询先查询I/I/O设备当前状态,若准备就绪,则交换数据,否设备当前状态,若准备就绪,则交换数据,否则循环查询状态。则循环查询状态。1.1.硬件查询电路硬件查询电路DBAB微型机微型机AB数据端口状态端口外部设备I/O接口接口D62.2.软件查询程序软件查询程序先输入状态,决定是否进行数据传送。先输入状态,决定是否进行数据传送。INPUTINPUT:M MOV DPTRV DPTR,#SATUS#SATUS;状态口地址WAI
5、TWAIT:M MOVX AVX A,DPTRDPTR JB ACC.6 JB ACC.6,WAITWAIT M MOV DPTRV DPTR,#DATA#DATA;数据口地址 M MOVX AVX A,DPTRDPTR查询状态查询状态输入输入/输出数据输出数据准备就绪准备就绪?YN大多数时间计算机与外设并行工作,计算机不必因等待而浪费大多数时间计算机与外设并行工作,计算机不必因等待而浪费资源。当外设准备就绪,向资源。当外设准备就绪,向CPUCPU发出中断请求信号。发出中断请求信号。CPUCPU暂停当前程暂停当前程序,执行序,执行I/I/O操作。操作。当当I/I/O操作结束,操作结束,CPUC
6、PU仍继续被中断的工作。仍继续被中断的工作。三三.中断传送中断传送四四.直接存储器存取方式传送直接存储器存取方式传送(DMADirect Memory Access)Direct Memory Access)用于计算机与高速外设进行大批量数据用于计算机与高速外设进行大批量数据交换,由交换,由DMA控制器接管总线控制权,控制器接管总线控制权,RAMRAM与外设之间直接数据传输,不需与外设之间直接数据传输,不需CPUCPU的介入。的介入。概述l中断的定义和作用中断的定义和作用 所谓中断是指单片机对外部事件或内部特定事件所谓中断是指单片机对外部事件或内部特定事件做出的一种反应做出的一种反应.单片机暂
7、停正在执行的程序,保留现场后单片机暂停正在执行的程序,保留现场后自动转去执行相应的处理程序,处理完该事件后再返回断自动转去执行相应的处理程序,处理完该事件后再返回断点处继续执行被点处继续执行被“打断打断”的程序的过程。的程序的过程。正正 是是 由由 于于 中中 断断 所所 具具 有有 的的 功功 能能 才才 有有 了了 它它 独独 特特 的的 作作 用用:l加强了控制器对实时数据的处理能力加强了控制器对实时数据的处理能力l大大降低了大大降低了CPU的工作负担的工作负担4.3.1 4.3.1 中断概念的引入中断概念的引入某人看书某人看书 执行主程序执行主程序 日常事务日常事务电话铃响电话铃响 中
8、断信号中断信号INT=0INT=0 中断请求中断请求暂停看书暂停看书 暂停执行主程序暂停执行主程序 中断响应中断响应书中作记号书中作记号 当前当前PCPC入栈入栈 保护断点保护断点电话谈话电话谈话 执行执行I/I/O程序程序 中断服务中断服务继续看书继续看书 返回主程序返回主程序 中断返回中断返回 中断技术中断技术中断的概念中断的概念l在程序运行过程中,由于某种紧急事件的出现而中止现行在程序运行过程中,由于某种紧急事件的出现而中止现行程序的运行,从而将程序的运行,从而将CPU的控制权转向紧急事件处理程序,的控制权转向紧急事件处理程序,待处理完毕后再继续原程序运行的这一过程。待处理完毕后再继续原
9、程序运行的这一过程。日日常常事事务务程程序序中中断断服服务务程程序序一两种中断一两种中断1 1可屏蔽中断可屏蔽中断可程控可程控“开中断开中断/关中断关中断”。软件设置允许软件设置允许/禁止禁止CPUCPU响应中断。响应中断。2 2非屏蔽中断非屏蔽中断不可程控不可程控“关中断关中断”。有中断请求信号,有中断请求信号,CPUCPU必须响应。必须响应。INTNMI微型机微型机二中断优先权二中断优先权1.1.当同时有多个中断请求信号,先响应优先级别高的中断请求。当同时有多个中断请求信号,先响应优先级别高的中断请求。2.2.高优先级中断请求信号可中断低优先级中断服务。高优先级中断请求信号可中断低优先级中
10、断服务。三中断源三中断源能能发发出出中中断断请请求求信信号号的的各各种种事事件件。如如I/I/O设设备备、定定时时时时钟钟、系系统统故故障障、软软件设定等。件设定等。日常事务日常事务程序程序中断服务中断服务程序程序1中断服务中断服务程序程序23.3.2 3.3.2 中断处理过程中断处理过程一一.中断响应条件中断响应条件1 1有中断请求信号有中断请求信号2.2.系统处于开中断状态系统处于开中断状态3.3.中断源处于当前优先级中断源处于当前优先级二中断响应过程二中断响应过程1关中断:关中断:屏蔽其它中断请求信号。屏蔽其它中断请求信号。2保护断点:保护断点:将断点地址压入堆栈保存,即当前将断点地址压
11、入堆栈保存,即当前PCPC值入栈。值入栈。3寻找中断源:寻找中断源:中断服务程序入口中断服务程序入口 PCPC,转入中断服务。转入中断服务。4保护现场:保护现场:将中断服务程序使用的所有寄存器内容入栈。将中断服务程序使用的所有寄存器内容入栈。5中断处理:中断处理:执行中断源所要求的程序段。执行中断源所要求的程序段。6恢复现场:恢复现场:恢复被使用寄存器的原有内容。恢复被使用寄存器的原有内容。7开中断:开中断:允许接受其它中断请求信号。允许接受其它中断请求信号。8中断返回:中断返回:执行执行RETIRETI指令,栈顶内容指令,栈顶内容 PCPC,程序跳转回断程序跳转回断点处。点处。3.3.33.
12、3.3寻找中断源与确定优先级寻找中断源与确定优先级寻找中断源:每个中断源对应一个中断服务程序。寻找中断源:每个中断源对应一个中断服务程序。一一.软件查询方式软件查询方式二二.硬件查询方式硬件查询方式一一.软件查询方式软件查询方式INTSINTS:M MOV AV A,P1P1;读中断源寄存器读中断源寄存器 JBJBACC.0ACC.0,SV1SV1;查询高级中断请求查询高级中断请求 JBJBACC.1ACC.1,SV2SV2;查询低级中断请求查询低级中断请求SV1SV1:;中断服务程序中断服务程序1 1SV2SV2:;中断服务程序中断服务程序2 2中中断断源源寄寄存存器器1INT单片机单片机P
13、1中断请求中断请求1中断请求中断请求2中断请求中断请求71、硬件电路(右图)、硬件电路(右图)2、软件实现、软件实现二二.硬件查询方式硬件查询方式INTDB微型机微型机1中断源中断源1中断源中断源2中断源中断源3中断中断向量向量1中断中断向量向量2中断中断向量向量3中断向量:提供中断服务程序入口地址信息的地址。中断向量:提供中断服务程序入口地址信息的地址。XC866中断系统 lXC866中断类型中断类型1.可屏蔽中断可屏蔽中断XC866支持共分为支持共分为4个优先级等级的个优先级等级的14个可屏蔽中断向量个可屏蔽中断向量。2.非可屏蔽中断非可屏蔽中断(NMI)XC866系统中,下列七种事件可产
14、生系统中,下列七种事件可产生NMI:lWDT已发生预报警已发生预报警lPLL对外部晶振失锁对外部晶振失锁lFlash操作已经完成(编程、擦除或者擦除中止)操作已经完成(编程、擦除或者擦除中止)l监控模式下产生监控模式下产生JTAG接收请求或用户中断请求接收请求或用户中断请求lVDD低于预警电压(低于预警电压(2.3V)lVDDP低于预警电压(低于预警电压(4.0V,对应外部电压为,对应外部电压为5.0V的情况)的情况)lFlash纠错码出错纠错码出错 图图1到图到图4给出了中断源和中断节点的总览及其相应的控制和状态给出了中断源和中断节点的总览及其相应的控制和状态标志。图标志。图5给出了给出了N
15、MI请求源的总览请求源的总览 图图1 中断请求源(第一部分)中断请求源(第一部分)图图2 中断请求源(第二部分)中断请求源(第二部分)图图3 中断请求源(第三部分)中断请求源(第三部分)图图4 中断请求源(第四部分)中断请求源(第四部分)图图5 非可屏蔽中断请求源非可屏蔽中断请求源l中断结构中断结构 XC866有两种中断结构,主要区别在于中断请求的有两种中断结构,主要区别在于中断请求的产生和清除方式不同。产生和清除方式不同。n中断结构中断结构1 对于中断结构对于中断结构1,中断事件将会置位中断状态标志同时作为发至,中断事件将会置位中断状态标志同时作为发至内核的一个挂起的中断请求。仅当其相应的中
16、断源被使能的情况下,内核的一个挂起的中断请求。仅当其相应的中断源被使能的情况下,一个有效的挂起中断请求将中断内核。一旦中断源被服务其挂起的一个有效的挂起中断请求将中断内核。一旦中断源被服务其挂起的中断请求可由硬件自动清除中断请求可由硬件自动清除。n中断结构中断结构2 对于中断结构对于中断结构2,中断状态标志和挂起的中断请求是相互独立的。该,中断状态标志和挂起的中断请求是相互独立的。该结构适用于定时器结构适用于定时器2、LIN、外部中断、外部中断2到到6、ADC、SSC 和和CCU6中断中断源。一个由相应的中断源产生的中断事件将置位中断状态标志源。一个由相应的中断源产生的中断事件将置位中断状态标
17、志,同时产同时产生一个发向内核的挂起中断请求。一旦中断源被服务,有效的挂起中生一个发向内核的挂起中断请求。一旦中断源被服务,有效的挂起中断请求被硬件自动清除。中断标志保持置位,必须由软件清除。断请求被硬件自动清除。中断标志保持置位,必须由软件清除。除了内核,通过将中断节点使能位复位也可以间接地清除被内部锁除了内核,通过将中断节点使能位复位也可以间接地清除被内部锁存的中断请求。这点和中断结构存的中断请求。这点和中断结构1不同,中断结构不同,中断结构1中通过复位中断状中通过复位中断状态标志可直接清除挂起的中断请求。因此中断结构态标志可直接清除挂起的中断请求。因此中断结构2中的中断节点使能中的中断节
18、点使能位具有双重功能:使能位具有双重功能:使能/禁止挂起中断请求的产生,清除已经产生的挂禁止挂起中断请求的产生,清除已经产生的挂起中断请求。起中断请求。l中断处理中断处理CPUCPU在每个机器周期的在每个机器周期的P2P2对中断请求信号进行采样,在下一个机对中断请求信号进行采样,在下一个机器周期对采样到的中断请求进行查询。如果某中断节点请求标志位器周期对采样到的中断请求进行查询。如果某中断节点请求标志位在前一周期的在前一周期的P2P2已经有效,查询周期将发现该请求,中断系统将调已经有效,查询周期将发现该请求,中断系统将调用相应的中断服务程序。在下列任意一种情况下调用中断服务程序用相应的中断服务
19、程序。在下列任意一种情况下调用中断服务程序都会被推迟执行:都会被推迟执行:1 1正在处理同级或更高级的中断。正在处理同级或更高级的中断。2 2当前周期(查询周期)不是正在执行指令的最后一个周期。当前周期(查询周期)不是正在执行指令的最后一个周期。3 3正在执行的指令是正在执行的指令是RETIRETI或是对寄存器或是对寄存器IEN0/IEN1IEN0/IEN1或或IPIP,IPH/IP1IPH/IP1,IP1HIP1H的写操作。的写操作。l中断响应时间中断响应时间从中断请求有效到执行中断服务程序的第一条指令需从中断请求有效到执行中断服务程序的第一条指令需要至少三个完整的机器周期要至少三个完整的机
20、器周期。如果中断请求被阻止,则需要更长的响应时间如果中断请求被阻止,则需要更长的响应时间 lXC866XC866的的中断源中断源和中断和中断向量向量 中断中断节节点点中断向量地址中断向量地址分配分配给给XC866XC866使能位使能位SFRSFRNMINMI0073H0073H看看门门狗定狗定时时器器NMINMINMIWDTNMIWDTNMICONNMICONPLL NMIPLL NMINMIPLLNMIPLLFlash NMIFlash NMINMIFLASHNMIFLASHVDDCVDDC预预警警NMINMINMIVDDNMIVDDVDDPVDDP预预警警NMINMINMIVDDPNMIV
21、DDPFlash ECC NMIFlash ECC NMINMIECCNMIECCXINTR0XINTR00003H0003H外部中断外部中断0 0EX0EX0IEN0IEN0XINTR1XINTR1000BH000BH定定时时器器0 0ET0ET0XINTR2XINTR20013H0013H外部中断外部中断1 1EX1EX1XINTR3XINTR3001BH001BH定定时时器器1 1ET1ET1XINTR4XINTR40023H0023HUARTUARTESESXINTR5XINTR5002BH002BH定定时时器器2 2ET2ET2ET2ET2分数分分数分频频器器(正常分(正常分频频器溢
22、出)器溢出)LINLINXINTR6XINTR60033H0033HADCADCEADCEADCIEN1IEN1XINTR7XINTR7003BH003BHSSCSSCESSCESSCXINTR8XINTR80043H0043H外部中断外部中断2 2EX2EX2XINTR9XINTR9004BH004BH外部中断外部中断3 3EXMEXMIEN1IEN1外部中断外部中断4 4外部中断外部中断5 5外部中断外部中断6 6XINTR10XINTR100053H0053HCCU6 INP0CCU6 INP0ECCIP0ECCIP0XINTR11XINTR11005BH005BHCCU6 INP1CC
23、U6 INP1ECCIP1ECCIP1XINTR12XINTR120063H0063HCCU6 INP2CCU6 INP2ECCIP2ECCIP2XINTR13XINTR13006BH006BHCCU6 INP3CCU6 INP3ECCIP3ECCIP3l中断寄存器描述中断寄存器描述 中断寄存器有下列功能:中断节点使能,外部中断控制,中断寄存器有下列功能:中断节点使能,外部中断控制,中断标志和中断优先级设置。中断标志和中断优先级设置。1.中断节点使能寄存器中断节点使能寄存器IEN0中断使能寄存器中断使能寄存器0 复位值复位值:00HXC866的的中中断断源源和和中中断断向向量量一一节节对对每每
24、一一位位代代表表的的意意义义都都做做了了解解释释,这里不再赘述,其中这里不再赘述,其中EA表示全局中断位。当对应位为表示全局中断位。当对应位为1时表示对应时表示对应的中断使能,为的中断使能,为0时表示对应中断关闭。时表示对应中断关闭。IEN1中断使能寄存器中断使能寄存器1 复位值复位值:00H当对应位为当对应位为1时表示对应的中断使能,为时表示对应的中断使能,为0时表示对应中断关闭。时表示对应中断关闭。NMICONNMI 控制寄存器控制寄存器 复位值复位值:00H当对应位为当对应位为1时表示对应的中断使能,为时表示对应的中断使能,为0时表示对应中断关闭。时表示对应中断关闭。2 外部中断控制寄存
25、器外部中断控制寄存器XC866XC866单片机一共有单片机一共有7 7个外部中断,分别为个外部中断,分别为EXT_INT6EXT_INT6:00。EXICON0外部中断控制寄存器外部中断控制寄存器0 复位值复位值:00H对于对于EXINT0EXINT3,00 表示下降沿触发中断,表示下降沿触发中断,01 表示上表示上升沿触发中断,升沿触发中断,10 表示上升沿和下降沿均触发中断,表示上升沿和下降沿均触发中断,11 对对于于EXINT0EXINT1来说表示边沿检测被旁路,中断请求信来说表示边沿检测被旁路,中断请求信号被直接发送到内号被直接发送到内核。而对于核。而对于EXINT2EXINT2XIN
26、T3XINT3来说表示来说表示外部外部中断被禁止中断被禁止。EXICON1外部中断控制寄存器外部中断控制寄存器1 复位值复位值:00H对于对于EXINT4EXINT6,00 表示下降沿触发中断,表示下降沿触发中断,01 表示上表示上升沿触发中断,升沿触发中断,10 表示上升沿和下降沿均触发中断,表示上升沿和下降沿均触发中断,11 表示表示外部中断被禁止外部中断被禁止。MODPISEL外设输入选择寄存器外设输入选择寄存器 复位值复位值:00HEXINT0IS为为0 选择外部中断输入选择外部中断输入EXINT0_0,为,为1 选选择外部中断输入择外部中断输入EXINT0_1。阴影部分在此不做介绍,
27、。阴影部分在此不做介绍,其他位应写入其他位应写入0,读返回,读返回0。TCON定时器和计数器控制定时器和计数器控制/状态寄存器状态寄存器 复位值复位值:00HIT0表示外部中断表示外部中断0,IT1表示外部中断表示外部中断1。当对应位为。当对应位为0时表示时表示选择低电平触发外部中断,为选择低电平触发外部中断,为1时表示选择下降沿触发外部中时表示选择下降沿触发外部中断。断。3中断标志寄存器中断标志寄存器 IRCON0IRCON0中断请求寄存器中断请求寄存器0 复位值复位值:00HEXINTx(x=0-6)这些位由硬件置位,只能由软件清零。当这些位由硬件置位,只能由软件清零。当为为0时表示时表示
28、 未产生外部中断事件未产生外部中断事件x,当为,当为1时表示时表示 产生了外部产生了外部中断事件中断事件x。第。第7位为保留位,应该写入位为保留位,应该写入0,读时返回,读时返回0,IRCON1IRCON1中断请求寄存器中断请求寄存器1 复位值复位值:00HEIR表示表示SSC出错中断标志,出错中断标志,TIR表示表示SSC发送中断标志,发送中断标志,RIR表示表示SSC接收中断标志,接收中断标志,ADCSRC0表示表示ADC中断标中断标志志0,ADCSRC1表示表示ADC中断标志中断标志1。当对应位为。当对应位为0表示表示未产生中断事件,当对应位为未产生中断事件,当对应位为1表示产生了中断事
29、件,这表示产生了中断事件,这些位由硬件置位但要由软件清除。剩余位为保留位,应写些位由硬件置位但要由软件清除。剩余位为保留位,应写入入0,读返回,读返回0。TCONTCON定时器控制寄存器定时器控制寄存器 复位值复位值:00HIE0和和IE1表示外部中断表示外部中断0和外部中断和外部中断1的中断标志,当为的中断标志,当为1时时表示产生了对应的外部中断,由硬件置位,处理器响应中断表示产生了对应的外部中断,由硬件置位,处理器响应中断转入中断服务程序时,该标志由硬件清零,也可由软件清零。转入中断服务程序时,该标志由硬件清零,也可由软件清零。TF0和和TF1表示定时器表示定时器0和定时器和定时器1的溢出
30、标志,当为的溢出标志,当为1时表示时表示产生了对应的外部中断,由硬件置位,处理器响应中断转入产生了对应的外部中断,由硬件置位,处理器响应中断转入中断服务程序时,该标志由硬件清零,也可由软件清零。中断服务程序时,该标志由硬件清零,也可由软件清零。SCONSCON串行通道控制寄存器串行通道控制寄存器 复位值复位值:00HRIRI表示串行接口接收中断标志,如果已经完成串行数据的接表示串行接口接收中断标志,如果已经完成串行数据的接收,由硬件置位,必须由软件清零收,由硬件置位,必须由软件清零 。TITI表示串行接口发送中表示串行接口发送中断标志,如果已经完成串行数据的发送,由硬件置位,必须由断标志,如果
31、已经完成串行数据的发送,由硬件置位,必须由软件清零软件清零。阴影部分在这里不做介绍。阴影部分在这里不做介绍。NMISR NMISRNMI NMI 状态寄存器状态寄存器 复位值复位值:00H每一位代表的含义在每一位代表的含义在XC866的中断源和中断向量一节都做了的中断源和中断向量一节都做了详细的介绍,这里不再说明。当对应位为详细的介绍,这里不再说明。当对应位为1时表示产生了对时表示产生了对应的应的NMI,为,为0时表示未产生对应的时表示未产生对应的NMI。最高位保留,应。最高位保留,应写入写入0,读返回,读返回0。NMISR寄存器只能由软件清零或在上电寄存器只能由软件清零或在上电复位复位/硬件
32、复位硬件复位/压降复位之后被置为缺省值。在其他复位方压降复位之后被置为缺省值。在其他复位方式下,如式下,如WDT复位或掉电唤醒复位时,该寄存器内容保持复位或掉电唤醒复位时,该寄存器内容保持不变,从而使系统确定产生前次不变,从而使系统确定产生前次NMI的中断源。的中断源。4中断优先级寄存器中断优先级寄存器IPIP中断优先级寄存器中断优先级寄存器 复位值复位值:00HIPHIPH中断优先级寄存器,高位字节中断优先级寄存器,高位字节 复位值复位值:00H每个中断源的优先级(共有四级优先级可用)可分别每个中断源的优先级(共有四级优先级可用)可分别编程设定。有两对中断优先级寄存器来设定每个中断编程设定。
33、有两对中断优先级寄存器来设定每个中断向量的优先级。以上为第一对寄存器向量的优先级。以上为第一对寄存器IP和和IPH。从低。从低位位0依次对应中断节点依次对应中断节点XINTR0XINTR5的中断的中断优先级,比如优先级,比如PX0和和PX0H对应对应XINTR0的中断优先级,的中断优先级,依次类推。下表为优先级分类。依次类推。下表为优先级分类。4中断优先级寄存器中断优先级寄存器IP1IP1中断优先级寄存器中断优先级寄存器 1 复位值复位值:00HIPH1IPH1中断优先级寄存器中断优先级寄存器1,高位字节,高位字节 复位值复位值:00H以上为第二对寄存器以上为第二对寄存器IP1和和IPH1。从
34、低位。从低位07依次对依次对应中断节点应中断节点XINTR6XINTR13的中断优先级,比如的中断优先级,比如PADC和和PADCH对应对应XINTR6的中断优先级,依次类的中断优先级,依次类推。下表为优先级分类。推。下表为优先级分类。中断例程详解下面的例子完成当在外部中断下面的例子完成当在外部中断0 0的输入口有连续中断输入时在的输入口有连续中断输入时在P0_0P0_0口输出方波的功能。口输出方波的功能。一一C C语言代码语言代码#include MAIN.H /头文件,由头文件,由DAvE生成生成sbit P0_0=P0_DATA0;/定义定义P0_0代表代表P0口的最低位口的最低位voi
35、d IO_vInit(void)SFR_PAGE(_pp1,noSST);/将页设置为将页设置为P0_PUDSEL和和 P0_PUDEN所在的页所在的页 P0_PUDSEL =0 x1F;/选择使用上拉电阻选择使用上拉电阻 P0_PUDEN =0 x1F;/上拉电阻使能上拉电阻使能 SFR_PAGE(_pp0,noSST);/转到转到P0_DIR及及P0_DATA所在的页所在的页 P0_DIR =0 x1F;/将将P0_5设置为输入作为外部中断设置为输入作为外部中断0 的输入口,其余的输入口,其余IO口设置为输出模口设置为输出模式式 P0_DATA =0 x1F;/先将端口值设置为全先将端口值
36、设置为全1,P0口一共有口一共有 6个口线个口线void MAIN_vInit(void)/函数初始化 IO_vInit();/I/O口初始化函数,根据需 要配置 SFR_PAGE(_su0,noSST);/页选择,将页设置为下面寄存 器所在的页0 NMICON =0 x7F;/开启所有非可屏蔽中断 IEN0 =0 x81;/开启外部中断0,其他中断关闭 IEN1 =0 x00;/关闭其他中断 TCON =0 x01;/选择下降沿触发外部中断 EXICON0 =0 x00;EXICON1 =0 x00;/所有中断的触发沿都为下降沿触发 IP =0 x00;IPH =0 x00;IP1 =0 x
37、00;IPH1 =0 x00;/所有中断的优先级都保持默认 EA =1;/开总中断 void delay(ubyte i)/延时函数延时函数 unsigned int j;for(;i0;i-)for(j=0;j5000;j+);return;void INT_viExt0(void)interrupt 0 /中断函数,外部中断中断函数,外部中断0的中断号为的中断号为 中断向量中断向量=中断号中断号*8+3 SFR_PAGE(_su0,SST2);/转到转到IRCON0所在的页所在的页 IRCON0&=(ubyte)0 x01;/软件清除外部中断软件清除外部中断0的中断标志的中断标志 delay(10);P0_0=P0_0;/在在PO_0口输出方波,这部分可口输出方波,这部分可 以根据实际需要添写自己的代以根据实际需要添写自己的代码。码。SFR_PAGE(_su0,RST2);/转到第转到第0页页void main(void)/主函数主函数 MAIN_vInit();/主函数初始化主函数初始化 while(1)/可根据需要添加自己的代码可根据需要添加自己的代码
限制150内