当前位置: 首页 > news >正文

深圳市工程建设造价网站百度网盘下载的文件在哪

深圳市工程建设造价网站,百度网盘下载的文件在哪,做暖暖小视频免费网站,石家庄新闻频道在线直播观看STC32单片机 普通 I/O 口中断功能和使用✨STC32单片机普通 I/O 口中断,不是传统外部中断. 🔖手册上描述:STC32G 系列支持所有的 I/O 中断,且支持 4 种中断模式:下降沿中断、上升沿中断、低电平中断、高电平中断。每组 …

STC32单片机 普通 I/O 口中断功能和使用


✨STC32单片机普通 I/O 口中断,不是传统外部中断.

  • 🔖手册上描述:STC32G 系列支持所有的 I/O 中断,且支持 4 种中断模式:下降沿中断、上升沿中断、低电平中断、高电平中断。每组 I/O 口都有独立的中断入口地址,且每个 I/O 可独立设置中断模式。
    注:STC32G12K128-Beta 版芯片的普通 I/O 口下降沿中断和上升沿中断暂时不要使用

🔰由于手上只有STC32G12K128-Beta版本的,实际测试了低电平 I/O 口中断是有效的,在配置成高电平中断代码模式下,也只能通过低电平才能响应中断,在引脚引入高电平(3.3V或5V)都没有反映。其他两种触发模式未作验证。

🌼 I/O 口中断相关寄存器

在这里插入图片描述

🌻端口中断使能寄存器(PxINTE)

在这里插入图片描述

  • PnINTE.x:端口中断使能控制位(n=07,x=07)
    0:关闭 Pn.x 口中断功能
    1:使能 Pn.x 口中断功能

📓端口中断标志寄存器(PxINTF)

在这里插入图片描述

  • PnINTF.x:端口中断请求标志位(n=0~ 7,x=0~7)
    0:Pn.x 口没有中断请求
    1:Pn.x 口有中断请求,若使能中断,则会进入中断服务程序。标志位需软件清 0。

📗端口中断模式配置寄存器(PxIM0,PxIM1)

在这里插入图片描述

  • 配置端口的模式
    在这里插入图片描述

✅端口中断优先级控制寄存器(PINIPL,PINIPH)

在这里插入图片描述

  • PxIPH,PxIP:Px口中断优先级控制位
    00:Px 口中断优先级为 0 级(最低级)
    01:Px 口中断优先级为 1 级(较低级)
    10:Px 口中断优先级为 2 级(较高级)
    11:Px 口中断优先级为 3 级(最高级)

🍁端口中断掉电唤醒使能寄存器(PxWKUE)

在这里插入图片描述

  • PnxWKUE:端口中断掉电唤醒使能控制位(n=07,x=07)
    0:关闭 Pn.x 口中断掉电唤醒功能
    1:使能 Pn.x 口中断掉电唤醒功能
  • 🚩工程说明:
    在这里插入图片描述
  • 📑通用中断跳转汇编文件代码:
    • ⚡根据选择不同端口中断,对应的入口地址不同,注意修改。
// ISR.ASM
//将下面的代码保存为 ISR.ASM,然后将文件加入到项目中即可
//CSEG AT 0143H ;P3 口中断入口地址
//CSEG AT 013BH ;P2 口中断入口地址
//CSEG AT 0133H ;P1 口中断入口地址
//CSEG AT 012BH ;P0 口中断入口地址
CSEG AT 013BH ;P2 口中断入口地址
JMP P0INT_ISR
P0INT_ISR:
JMP 006BH ;借用 13 号中断的入口地址
END

📝P0口下降沿中断示例

/*
P0 口下降沿中断
==注:STC32G12K128-Beta 版芯片的普通 I/O 口下降沿中断和上升沿中断暂时不要使用==
//测试工作频率为 11.0592MHz
*///#include "stc8h.h"
#include "stc32g.h" //头文件见下载软件
#include "intrins.h"
void main()
{EAXFR = 1; //使能访问 XFRCKCON = 0x00; //设置外部数据总线速度为最快WTST = 0x00; //设置程序代码等待参数,
//赋值为 0 可将 CPU 执行程序的速度设置为最快P0M0 = 0x00;P0M1 = 0x00;P1M0 = 0x00;P1M1 = 0x00;P2M0 = 0x00;P2M1 = 0x00;P3M0 = 0x00;P3M1 = 0x00;P4M0 = 0x00;P4M1 = 0x00;P5M0 = 0x00;P5M1 = 0x00;P0IM0 = 0x00; //下降沿中断P0IM1 = 0x00;P0INTE = 0xff; //使能 P0 口中断EA = 1;while (1);
}
//由于中断向量大于 31,在 KEIL 中无法直接编译
//必须借用第 13 号中断入口地址
void common_isr() interrupt 13
{unsigned char intf;intf = P0INTF;if (intf){P0INTF = 0x00;if (intf & 0x01){
//P0.0 口中断}if (intf & 0x02){
//P0.1 口中断}if (intf & 0x04){
//P0.2 口中断}if (intf & 0x08){
//P0.3 口中断}if (intf & 0x10){
//P0.4 口中断}if (intf & 0x20){
//P0.5 口中断}if (intf & 0x40){
//P0.6 口中断}if (intf & 0x80){
//P0.7 口中断}}
}

📝P1 口上升沿中断示例代码:

/*P1 口上升沿中断
==注:STC32G12K128-Beta 版芯片的普通 I/O 口下降沿中断和上升沿中断暂时不要使用==
//测试工作频率为 11.0592MHz
*/
#include "stc32g.h" //头文件见下载软件
#include "intrins.h"
void main()
{EAXFR = 1; //使能访问 XFRCKCON = 0x00; //设置外部数据总线速度为最快WTST = 0x00; //设置程序代码等待参数,
//赋值为 0 可将 CPU 执行程序的速度设置为最快P0M0 = 0x00;P0M1 = 0x00;P1M0 = 0x00;P1M1 = 0x00;P2M0 = 0x00;P2M1 = 0x00;P3M0 = 0x00;P3M1 = 0x00;P4M0 = 0x00;P4M1 = 0x00;P5M0 = 0x00;P5M1 = 0x00;P1IM0 = 0xff; //上升沿中断P1IM1 = 0x00;P1INTE = 0xff; //使能 P1 口中断EA = 1;while (1);
}
//由于中断向量大于 31,在 KEIL 中无法直接编译
//必须借用第 13 号中断入口地址
void common_isr() interrupt 13
{unsigned char intf;intf = P1INTF;if (intf){P1INTF = 0x00;if (intf & 0x01){
//P1.0 口中断}if (intf & 0x02){
//P1.1 口中断}if (intf & 0x04){
//P1.2 口中断}if (intf & 0x08){
//P1.3 口中断}if (intf & 0x10){
//P1.4 口中断}if (intf & 0x20){
//P1.5 口中断}if (intf & 0x40){
//P1.6 口中断}if (intf & 0x80){
//P1.7 口中断}}
}

📝P2 口低电平中断示例代码:

/*P2 口低电平中断==注:STC32G12K128-Beta 版芯片的普通 I/O 口下降沿中断和上升沿中断暂时不要使用==
//测试工作频率为 11.0592MHz
*/#include "stc32g.h" //头文件见下载软件
#include "intrins.h"
void main()
{EAXFR = 1; //使能访问 XFRCKCON = 0x00; //设置外部数据总线速度为最快WTST = 0x00; //设置程序代码等待参数,//赋值为 0 可将 CPU 执行程序的速度设置为最快P0M0 = 0x00;P0M1 = 0x00;P1M0 = 0x00;P1M1 = 0x00;P2M0 = 0x00;P2M1 = 0x00;P3M0 = 0x00;P3M1 = 0x00;P4M0 = 0x00;P4M1 = 0x00;P5M0 = 0x00;P5M1 = 0x00;P2IM0 = 0x00; //低电平中断P2IM1 = 0xff;P2INTE = 0xff; //使能 P2 口中断EA = 1;while (1);
}//由于中断向量大于 31,在 KEIL 中无法直接编译
//必须借用第 13 号中断入口地址
void common_isr() interrupt 13
{unsigned char intf;intf = P2INTF;if (intf){P2INTF = 0x00;if (intf & 0x01){
//P2.0 口中断}if (intf & 0x02){
//P2.1 口中断}if (intf & 0x04){
//P2.2 口中断}if (intf & 0x08){
//P0.3 口中断}if (intf & 0x10){
//P2.4 口中断}if (intf & 0x20){
//P2.5 口中断}if (intf & 0x40){
//P2.6 口中断}if (intf & 0x80){
//P2.7 口中断}}
}

📝P3 口高电平中断示例代码:

/*P3 口高电平中断==注:STC32G12K128-Beta 版芯片的普通 I/O 口下降沿中断和上升沿中断暂时不要使用==
//测试工作频率为 11.0592MHz
*/
#include "stc32g.h" //头文件见下载软件
#include "intrins.h"
void main()
{EAXFR = 1; //使能访问 XFRCKCON = 0x00; //设置外部数据总线速度为最快WTST = 0x00; //设置程序代码等待参数,//赋值为 0 可将 CPU 执行程序的速度设置为最快P0M0 = 0x00;P0M1 = 0x00;P1M0 = 0x00;P1M1 = 0x00;P2M0 = 0x00;P2M1 = 0x00;P3M0 = 0x00;P3M1 = 0x00;P4M0 = 0x00;P4M1 = 0x00;P5M0 = 0x00;P5M1 = 0x00;P3IM0 = 0xff; //高电平中断P3IM1 = 0xff;P3INTE = 0xff; //使能 P3 口中断EA = 1;while (1);
}
//由于中断向量大于 31,在 KEIL 中无法直接编译
//必须借用第 13 号中断入口地址
void common_isr() interrupt 13
{unsigned char intf;intf = P3INTF;if (intf){P3INTF = 0x00;if (intf & 0x01){
//P3.0 口中断}if (intf & 0x02){
//P3.1 口中断}if (intf & 0x04){
//P3.2 口中断}if (intf & 0x08){
//P3.3 口中断}if (intf & 0x10){
//P3.4 口中断}if (intf & 0x20){
//P3.5 口中断}if (intf & 0x40){
//P3.6 口中断}if (intf & 0x80){
//P3.7 口中断}}
}

📚工程源码

🚩注意根据选择不同的端口,在ISR.ASM文件中修改对应的中断入口地址。

复制这段内容后打开百度网盘手机App,操作更方便哦
链接: https://pan.baidu.com/s/118gpVK1m1OFgwMyP7Xi6bA
提取码: wv2r
http://www.yidumall.com/news/20845.html

相关文章:

  • 汽车网站源码浙江网络推广公司
  • java 做的网站推广链接让别人点击
  • 深圳做棋牌网站建设有哪些公司网络推广是什么工作
  • 如何做微信商城网站微信卖货小程序怎么做
  • 张家口做网站的公司天津站内关键词优化
  • 福州专业网站设计公司大数据精准营销
  • 网站建设总流程图西安seo优化顾问
  • 做黄色网站赚钱么郑州seo网络营销
  • 渭南做网站哪家好武汉seo托管公司
  • 网站管理一般要做什么企业网站快速排名
  • 陕西咸阳建设银行网站网站建设平台有哪些
  • 企业网站开发公司seo的名词解释
  • 专题网站开发 交互方法国际网站平台有哪些
  • 大理网站建设谷歌seo搜索优化
  • ppt做的比较好的网站有哪些台州关键词优化平台
  • 网络营销顾问是什么长沙网站seo优化
  • 昆山移动网站建设网站创建流程
  • 广州网站制作温州云优化seo
  • 个人网站 商业线在成都网站推广公司
  • 网站建设低价建站损失在哪里全网推广成功再收费
  • 北京网络营销推广培训哪家好百度seo网络营销书
  • 做b2c网站还是平台互联网网站
  • 用asp.net做的网站模板下载百度电话客服24小时
  • 上海网站建设免费推荐移动营销
  • 织梦做网站如何套取别人网站的模板seo薪酬如何
  • 公司网站建设汇报硬件工程师培训机构哪家好
  • 领卷网站如何做代理wordpress seo教程
  • 一家专门做直销的网站广州百度关键词排名
  • 哈尔滨模板建站软件搜索引擎优化论文
  • 网站开发进度青岛seo霸屏