stm8教程-第十章stm8s207外部输入中断及其应用实例

stm8教程-第十章stm8s207外部输入中断及其应用实例

ID:20434496

大小:79.02 KB

页数:3页

时间:2018-10-13

stm8教程-第十章stm8s207外部输入中断及其应用实例_第1页
stm8教程-第十章stm8s207外部输入中断及其应用实例_第2页
stm8教程-第十章stm8s207外部输入中断及其应用实例_第3页
资源描述:

《stm8教程-第十章stm8s207外部输入中断及其应用实例》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、第十章STM8S207外部输入中断及其应用实例这一章内容和第九章内容有很大关联,前面章节己经对TU外部不可屏蔽屮断有过详细说明,所以这一章相对來说比较简单10.1STM8S207外部可屏蔽中断这一节,我们将向大家介绍如何使用STM8的外部输入中断。通过前面的学习,我们掌握了STM8的10口操作以及设计到的串口屮断。这节我们将介绍作为外部屮断输入口,STM8需要做的一些设置10.2STM8外部中断简介STM8的10口在之前已经有详细的介绍,而中断也在串口章节中做过介绍。我们这节是将这两者结合起来,实现外部屮断输入。STM8的大部分10口可以作为中断输入,这点很好用。具体的10

2、口有PA,PB,PC,PD,PE要把10口作为外部中断输入,有以下步骤:1)初始化10口作为输入中断,其中有悬浮和上拉,设置CR1和CR2寄存器2)设置屮断产生条件上升沿还是下降沿或者其它类型,设置EXTICR1,EXTICR23)在main函数中开全局中断asm("rim")4)编写屮断服务程序注意的是,外部中断是每个端口分配一个中断向量号,例如PA口只分配了3这个中断向量号,也就是说8个10口共用一个屮断向量号,我们可以通过IDR寄存器渎出对应的10LI引脚值来判断到底是那个产生的中断,这在初始化了多个10LI的必须使用的。更为要注意的是PD7是一个特别的外部中断输入,

3、看数据手册可以知道PD7后缀有TLI,这个是拥有独立的中断向貴号,为0下面我们将逐步讲解与外部中断有关的寄存器1)CR1,CR2这两个寄存器相信大家都很熟悉了,我们前面与10口有关的操作都要到这两个寄存器,之前我们设置的一般都是推挽式输出以及上拉式输入在这里我们设置成中断上拉输入,闪为我们的硬件上没有外接上拉,需要内部上拉,设置对应位的寄存器值是CR1=1以及CR2=02)EXTI_CR176543210PDIS[1:O]PCIS[1:O]PBIS[1:O]PAIS[1:O]nrr

4、、7位是设置PD口的中断方式。如K图所示:位7:0PDIS[1:0J:PORTD的中断触发位达牌位仅tfCC寄存》的11和IO位都为1(组W3)时才可以1;入.这牲位定义纗口D的中断《发位00,下降沿和低fe发01:仅1•.升沿触发10:仅下降沿触发11:上升沿和下降沿触发我们的实验是设置为仅下降沿触发,所以在我们只需要设置力EXTI_CR1=0x80就可以了。实验硬件连接:KEY1KEYJOKD卜'面是软件代码的编写//include"iostm8s207rb.h"#defineLED1_FLASHPD_ODR_ODRO=!PD_ODR_ODRO#defineLED2_F

5、LASHPD_ODR_ODR1=!PD_ODR_ODR1//defineLED3_FLASHPD_ODR_ODR2=!PD_ODR_ODR2#defineLED4_FLASHPD_ODR_ODR3=!PD_ODR_ODR3voidGPIO_init(void){PD_DDR=OxOF;//配置PD端口的方向寄存器PD_CRl=OxFF;//设置推挽输出,以及屮断上拉输入PD_CR2=OxFO;//使能PD5、6、7外部中断PD_ODR=OxFF;}voidEXTIJnit(void){EXTI_CR1=0x80;//PD口下降沿触发中断}{asm("sim");//关全局中

6、断GPIO_init();EXTIJnitO;asm("rim");//开全局中断}voidmain(void){init_devices();//主循环里没有程序需要执行while⑴;}#pragmavector=0x02//这里很关键!看说明。_interruptvoidEXTI_PD7_TLI(void){LED4_FLASH;}#pragmavector=0x08_interruptvoidEXTI_PD(void){if(PDJDR_IDR5==0)//keyl按下{if(PD_IDR_IDR6==0)//keylkey2同时按下LED3_FLASH;elseLE

7、D1一FLASH;}elseLED2—FLASH;}编译下载后,通过不同的按键可以实现LED的开关,不过干扰很大。这是因为速度很快而且没有延吋滤波而产生的,我们的实验只是说明外部中断的使用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。