找回密码
 立即注册
查看: 856|回复: 13

AI8051U实验箱库函数应用,T0/T1/T2/T3/T4,普通I/O口都支持的外部中断

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15611
发表于 2025-1-7 23:27:37 | 显示全部楼层 |阅读模式

AI8051U实验箱库函数应用,
T0/T1/T2/T3/T4,T11
普通I/O口都支持的外部中断


截图202501081049068103.jpg


普通I/O口都支持的外部中断,实验例程,基于AI8051U实验箱:


老师要例程,AI8051U-8BIT:
P34和P35,下降沿中断

1,汇编
2,C
3,  库函数
中断发生后,串口送哪个字符出来,好知到发生啥事了

谁帮将测试过的程序贴上来


老师要例程,AI8051U-32BIT:
P34和P35,下降沿中断

1,C
2,  库函数
中断发生后,串口送哪个字符出来,好知到发生啥事了

谁帮将测试过的程序贴上来

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2025-1-7 23:51:39 | 显示全部楼层
(基于寄存器版本)
AI8051U试验箱使用IO下降沿中断检测P34,P35,串口返回信息.zip (42.48 KB, 下载次数: 38) (32bit版本)
AI8051U(8bit)试验箱使用IO下降沿中断检测P34,P35,串口返回信息.zip (80.76 KB, 下载次数: 38) (8bit版本)


程序已经经过测试,下载时需要设置时钟为22.1184Mhz方便串口使用。
本例子基于独立的IO中断,对P34和P35的下降沿进行捕获,并且使用串口返回信息。

注意:32bit版本直接使用了超过31号的中断地址,如果报错超过31号中断地址的话
可以使用Keil 中断拓展插件
深圳国芯人工智能有限公司-工具软件


以下是测试图片:
截图202501072351332506.jpg

截图202501080008098801.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15611
发表于 2025-1-8 08:56:23 | 显示全部楼层

普通I/O口都支持的外部中断,实验例程,基于AI8051U实验箱:

能来个用 8H库函数的 AI8051U 版本 ?
能来个用 32G库函数的 AI8051U 版本 ?

点评

使用STC32G库函数的独立例程版本 已经测试通过:(下载时钟需要设置为22.1184Mhz) [attachimg]79624[/attachimg] 注意:新增库函数set_ioint_mode为变长函数,最后一个参数需要为Pin_End。可以一次性设置一个模  详情 回复 发表于 2025-1-8 12:20
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2025-1-8 12:20:35 | 显示全部楼层
神*** 发表于 2025-1-8 08:56
能来个用 8H库函数的 AI8051U 版本 ?
能来个用 32G库函数的 AI8051U 版本 ?

使用STC32G库函数的独立例程版本
STC32G库函数 P34,P35的IO中断测试.zip (230.52 KB, 下载次数: 32)


已经测试通过:(下载时钟需要设置为22.1184Mhz)
截图202501081216069333.jpg

注意:新增库函数set_ioint_mode为变长函数,最后一个参数需要为Pin_End。可以一次性设置一个模式下的所有IO(是否连续都可以)
  1. /******************** IOINT配置 ********************/
  2. void IOINT_config(void)
  3. {
  4.         set_ioint_mode(down_edge_mode,Pin34,Pin35,Pin_End);//设置Pin34,Pin35为下降沿触发
  5.         set_ioint_mode(en_int,Pin34,Pin35,Pin_End);//使能Pin34,Pin35的IOINT功能
  6. }
复制代码
这样也是可以的,设置步骤是先设置模式,然后打开对应端口的中断使能。

其他有关IOINT的功能也已经支持,详请查阅“STC32G_IOINT.h”
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15611
发表于 2025-1-8 15:22:08 | 显示全部楼层
普通I/O口都支持的外部中断,实验例程,基于AI8051U实验箱:

能再来个用 8H库函数的 Ai8051U 版本 ?

点评

[attachimg]79671[/attachimg] STC8H版本的库函数测试通过,可以在AI8051U的8bit模式上直接使用  详情 回复 发表于 2025-1-8 16:06
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2025-1-8 16:06:52 | 显示全部楼层
神*** 发表于 2025-1-8 15:22
普通I/O口都支持的外部中断,实验例程,基于AI8051U实验箱:

能再来个用 8H库函数的 Ai8051U 版本 ?

截图202501081605528647.jpg

STC8H版本的库函数测试通过,可以在AI8051U的8bit模式上直接使用
STC8H库函数版本例程-P34、P35触发IO中断,串口返回.zip (462.02 KB, 下载次数: 33)


注意事项:
STC8H/AI8051U(8bit)模式在开启LX51链接器的时候,不能使用超过31号中断。
所以超过31号中断的需要借用13号中断进行跳转。
具体可以参见文件内的isr.asm文件。

截图202501081622584384.jpg
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-02-03 00:02:49

1

主题

19

回帖

75

积分

荣誉版主

积分
75
发表于 2025-1-9 10:01:15 | 显示全部楼层
给力

点评

郭老师,有关8H库函数中,定时器例程不能使用问题: 更改库函数中config.h中引用的头文件为AI8051U即可,因为底层的定时器3/4部分定义不同,T11部分稍后修改完成后上传 [attachimg]79863[/attachimg]  详情 回复 发表于 2025-1-9 17:42
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2025-1-9 17:42:43 | 显示全部楼层

郭老师,有关8H库函数中,定时器例程不能使用问题:
更改库函数中config.h中引用的头文件为AI8051U即可,
因为底层的定时器3/4部分定义不同,T11部分稍后修改完成后上传
更改后测试通过例程
截图202501091742272832.jpg


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-02-03 00:02:49

1

主题

19

回帖

75

积分

荣誉版主

积分
75
发表于 2025-1-9 17:58:11 | 显示全部楼层
兄弟,不能那么容易改,因为我的代码中还有很多其它AI8051里没有的东东,已经打补丁打了不少了,直接代替我原来的功能又不能用了,你告诉我,AI8051中定时器3和4与8H的定时器3和4相关的头文件中哪些不同,我单独修改

点评

具体更改在STC8H.h头文件中 搜索T4T3M寄存器,替换为: 即可 另外,给出加入了T11部分的STC8H库函数(AI8051U专用,仍然使用STC8H的头文件形式,T11在STC8H.h的168行处进行增加) 在AI8051U(8bit模式)试验箱上测  详情 回复 发表于 2025-1-9 18:39
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2025-1-9 18:39:39 | 显示全部楼层
郭*** 发表于 2025-1-9 17:58
兄弟,不能那么容易改,因为我的代码中还有很多其它AI8051里没有的东东,已经打补丁打了不少了,直接代替我 ...

具体更改在STC8H.h头文件中
搜索T4T3M寄存器,替换为:

  1. sfr T4T3M =  0xdd;
复制代码
即可


另外,给出加入了T11部分的STC8H库函数(AI8051U专用,仍然使用STC8H的头文件形式,T11在STC8H.h的168行处进行增加)
AI8051U试验箱独立例程-T0-T1-T2-T3-T4-T11测试程序.zip (286.57 KB, 下载次数: 42)
在AI8051U(8bit模式)试验箱上测试通过。

点评

谢谢  详情 回复 发表于 2025-1-9 19:14
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 22:00 , Processed in 0.129568 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表