找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4758|回复: 18
收起左侧

单片机定时器和中断不够用怎么办?

  [复制链接]
ID:463139 发表于 2019-5-26 05:54 来自手机 | 显示全部楼层 |阅读模式
大佬帮我出出主意吧
我芯片用的是stc89c52RC单片机 问:T0用于外部计数中断每1s,T1用于10ms的定时中断数码管刷新,现在还需要wifi通信,那么需要波特率发生器和定时中断,但是定时器只剩下T2了该怎么办?还有51的波特率发生器默认是T1,我知道是可以改的,就是想再确认下。资源不够用我该怎么变通?
回复

使用道具 举报

ID:530392 发表于 2019-5-26 10:17 | 显示全部楼层
无标题.png 用中断查询的方法,不过这个需要另加驱动,直接连肯定是不行的(我试过,当时搞了一晚上没搞出来,血的教训,一定要加驱动!)
回复

使用道具 举报

ID:94031 发表于 2019-5-26 10:28 | 显示全部楼层
把波特率发生器用T2,腾出T1干别的用。
回复

使用道具 举报

ID:213173 发表于 2019-5-26 11:17 | 显示全部楼层
如果对外部计数脉冲频率不是很高不必非得用T0外部计数中断,随便用哪个IO口,在主函数中查询即可。数码管动态刷新也不必非得用定时器精确定时,只要主循环周期基本稳定也可以用计数法计时刷新数码管。
回复

使用道具 举报

ID:56665 发表于 2019-5-26 11:24 | 显示全部楼层
一个定时中断产生N个软件定时器,用这个办法试试。
回复

使用道具 举报

ID:160500 发表于 2019-5-26 11:32 | 显示全部楼层
根据自己的需要,把不是必须中断和使用定时器的用软件模拟,必须用中断的做好优先级,相同优先级的通过一个与门接到int端,中断程序里判断是哪个外设请求的中断,做相应处理。定时器只能针对一个事件计数或定时,软件必须针对情况作出判断和处理,实在不能绕开,就换芯片或加外部扩展
回复

使用道具 举报

ID:490330 发表于 2019-5-26 11:57 | 显示全部楼层
其实可以用两个单片机的。。如果项目允许你可以试试
回复

使用道具 举报

ID:511890 发表于 2019-5-26 16:44 | 显示全部楼层
中断可以复用呀。比如单倍的中断处理通讯,双倍的中断处理数码管刷新。只需加一个全局变量和一个if语句罢了。还有外部中断也可以考虑。
回复

使用道具 举报

ID:530034 发表于 2019-5-26 18:09 | 显示全部楼层
不必非得用T0外部计数中断,随便用哪个IO口,在主函数中查询即可。数码管动态刷新也不必非得用定时器精确定时,只要主循环周期基本稳定也可以用计数法计时刷新数码管。
回复

使用道具 举报

ID:530034 发表于 2019-5-26 18:11 | 显示全部楼层
用两个单片机  就行了
回复

使用道具 举报

ID:45330 发表于 2019-5-26 20:33 | 显示全部楼层
能做10ms定时,100个10ms就是1s了
回复

使用道具 举报

ID:52944 发表于 2019-5-27 08:40 | 显示全部楼层
单片机外设不够,换其它单片机啊
回复

使用道具 举报

ID:714012 发表于 2020-5-25 17:53 | 显示全部楼层
13856449865 发表于 2019-5-26 10:17
用中断查询的方法,不过这个需要另加驱动,直接连肯定是不行的(我试过,当时搞了一晚上没搞出来,血的教训 ...

另加驱动什么意思,要是用Proteus仿真直接按照这个图不可以?
回复

使用道具 举报

ID:401564 发表于 2020-5-26 09:11 | 显示全部楼层
难道数码管中断不能用T2,一定要用T1吗?
回复

使用道具 举报

ID:319023 发表于 2020-5-26 10:43 | 显示全部楼层
一个定时器可以用代码处理到N个软件定时器。 或者换功能强大的单片机添加单片机个数。  
回复

使用道具 举报

ID:170800 发表于 2023-11-2 15:50 | 显示全部楼层
初学入门,但我想思路可以有:统一各定时需求初值基准THL0H、TH0L,两个定时需求都需要打开计时器TR0=1;然后据不同的触发条件打开其相应计数开关,中断计数够后,由触发条件程序进行要处理,并复零;
回复

使用道具 举报

ID:195496 发表于 2023-11-3 22:30 | 显示全部楼层
51速度太慢了,你这多个任务不如早点换上别的单片机
回复

使用道具 举报

ID:517951 发表于 2023-11-4 07:22 | 显示全部楼层
T0用于外部计数中断每1s,T1用于10ms的定时中断数码管刷新.   
这两个功能可以合并为用一个T0或T1来完成.   多想想办法, 办法总比困难多.
回复

使用道具 举报

ID:382454 发表于 2023-11-4 14:21 | 显示全部楼层
两个定时器够多了,可以用一个定时器做成时基,
如果你的要求真不达不到,可以选用高级点的单片机,STC官方大把。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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