找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 38426|回复: 19
打印 上一主题 下一主题
收起左侧

51单片机如何实现计数器对外部脉冲计数

  [复制链接]
跳转到指定楼层
楼主
ID:248189 发表于 2018-5-31 01:06 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
钻研好久不会,用计数器1对按键计数10次,每10次led状态取反,按键接P35中断也开了,led状态就是不变,怎么也找不出问题来,网上也没有类似的计数器外部脉冲计数的,外部中断计数到挺多,特来次向大佬们支招
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 2#
ID:7485 发表于 2018-5-31 17:13 | 只看该作者
你的脉冲信号从那个脚接入的?TMOD的“C/T--功能选择位”是怎么设置的?

看不见你的接线图和程序,没法帮到你。
回复

使用道具 举报

来自 3#
ID:248189 发表于 2018-5-31 17:53 来自手机 | 只看该作者
ahshmj 发表于 2018-5-31 17:13
你的脉冲信号从那个脚接入的?TMOD的“C/T--功能选择位”是怎么设置的?

看不见你的接线图和程序,没法 ...

你好,能帮我看下吗,还是不知道哪儿错了,谢谢

mmexport1527760273724.jpg (7.76 KB, 下载次数: 232)

mmexport1527760273724.jpg

mmexport1527760268974.jpg (60.06 KB, 下载次数: 89)

mmexport1527760268974.jpg
回复

使用道具 举报

来自 4#
ID:248189 发表于 2018-5-31 17:55 来自手机 | 只看该作者
ahshmj 发表于 2018-5-31 17:13
你的脉冲信号从那个脚接入的?TMOD的“C/T--功能选择位”是怎么设置的?

看不见你的接线图和程序,没法 ...

你好,有时间能帮我看下吗,还是不知道哪儿有错,LED状态一直不变,我要实现的是,按键10次,LED状态取反,必须用计数器实现

mmexport1527760273724.jpg (7.76 KB, 下载次数: 126)

mmexport1527760273724.jpg

mmexport1527760268974.jpg (60.06 KB, 下载次数: 76)

mmexport1527760268974.jpg
回复

使用道具 举报

来自 5#
ID:213173 发表于 2018-6-1 10:04 | 只看该作者
CJSH1997 发表于 2018-5-31 17:55
你好,有时间能帮我看下吗,还是不知道哪儿有错,LED状态一直不变,我要实现的是,按键10次,LED状态取反 ...

外部脉冲计数示例,低电平有效。
#include<reg52.h>
sbit led=P1^0;
/*****定时器1初始化****/
void Timer1Init()
{
        TMOD= 0x60;                //设置定时器1计数/自动重载模式
        TL1 = 0xf6;                //设置定时初值
        TH1 = 0xf6;                //设置定时重载值
        TF1 = 0;                        //清除TF1标志
        TR1 = 1;                        //定时器1开始计数
        EA=1;                        //开总中断
        ET1=1;                        //开定时器1中断       
}
/********主函数**********/
void main()
{
        Timer1Init();
        while(1);
}
/******定时器1中断服务*******/
void timer1() interrupt        3
{
        led=~led;
}



回复

使用道具 举报

来自 6#
ID:222620 发表于 2018-6-2 16:01 | 只看该作者
以T0定时器8位自动重装为例,设置T0为计数模式,装初值为256-10= 246,开启中断,当每次T0的外部输入引脚输入一个脉冲,计数器值加一,到255后再来一个脉冲触发中断,进入中断服务函数

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

7#
ID:111634 发表于 2018-5-31 07:06 | 只看该作者
本帖最后由 zl2168 于 2018-5-31 07:08 编辑

实例71  统计T0引脚上10分钟内的脉冲数
Proteus仿真一下,确认有效。
实例71 统计T0引脚上10分钟内脉冲数.rar (52.96 KB, 下载次数: 880)

以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行,可演示,可观测,程序语句条条有注解。
回复

使用道具 举报

8#
ID:248189 发表于 2018-5-31 08:02 来自手机 | 只看该作者
谢谢,笔芯!!!
回复

使用道具 举报

9#
ID:339500 发表于 2018-5-31 08:38 | 只看该作者
直接有例子,对照弄不懂再问问
回复

使用道具 举报

10#
ID:342381 发表于 2018-5-31 18:30 | 只看该作者
有两个外部中断引脚可以接上去,然后就可以计数中断的次数,来计算脉冲的个数

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

11#
ID:248189 发表于 2018-6-1 13:43 来自手机 | 只看该作者
wulin 发表于 2018-6-1 10:04
外部脉冲计数示例,低电平有效。
#include
sbit led=P1^0;

谢谢,也在此谢谢大家的帮助,已经解决了,萌新第一次发帖,开心
回复

使用道具 举报

12#
ID:343150 发表于 2018-6-1 21:17 | 只看该作者
延时和抖动的问题考虑了吗
回复

使用道具 举报

13#
ID:309784 发表于 2018-6-2 15:15 | 只看该作者
外部中断计数
回复

使用道具 举报

14#
ID:309307 发表于 2018-7-10 10:35 | 只看该作者
zl2168 发表于 2018-5-31 07:06
实例71  统计T0引脚上10分钟内的脉冲数
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机 ...

源代码在哪下载
回复

使用道具 举报

15#
ID:20672 发表于 2018-8-4 19:41 | 只看该作者
zl2168 发表于 2018-5-31 07:06
实例71  统计T0引脚上10分钟内的脉冲数
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机 ...

不错的,谢谢分享
回复

使用道具 举报

16#
ID:486443 发表于 2019-5-15 12:39 | 只看该作者
下载下来,KEIL打开没什么东西呢
回复

使用道具 举报

17#
ID:329116 发表于 2019-5-15 18:06 | 只看该作者
用计数器的办法就是,配置T0为计数器8位自动重装开中断,按键接到定时器计数器引脚,引脚出现的每一个脉冲会使计数器+1,当计数器溢出的时候会产生中断,进入中断后进行相应的处理
回复

使用道具 举报

18#
ID:93224 发表于 2019-5-16 17:39 | 只看该作者
外部中断可以实现你说的那个效果,偏偏非要用计数器?头铁?
回复

使用道具 举报

19#
ID:703053 发表于 2020-3-5 21:51 | 只看该作者
zl2168 发表于 2018-5-31 07:06
实例71  统计T0引脚上10分钟内的脉冲数
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机 ...

这个怎么打开呀?打开的是乱码
回复

使用道具 举报

20#
ID:646442 发表于 2020-4-5 10:27 | 只看该作者
源程序没有呀,
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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