找回密码
 注册
关于网站域名变更的通知
查看: 1347|回复: 8
打印 上一主题 下一主题

求助:51单片机普通I/O口怎么实现对外计数功能

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-4-9 13:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
51单片机普通I/O口怎么实现对外计数功能
9 M0 e7 t# e9 b3 h4 X4 E9 s! h
" {: E# l: b* c9 a2 _; _小弟现在想对一个脉冲进行计数,想求教各位普通I/O口怎么实现对外计数功能!
1 ^3 \( S- [7 s注意:是普通的I/O口,不是外部中断口!
' [$ h/ X  H7 x* ^% l

该用户从未签到

2#
发表于 2019-4-9 14:08 | 只看该作者
就通过程序读取IO口的电平变化嘛?

点评

我需要来一个高电平只计数一次,怎么样读取,能否给个实例我看下?  详情 回复 发表于 2019-4-9 14:20

该用户从未签到

3#
 楼主| 发表于 2019-4-9 14:20 | 只看该作者
helendcany 发表于 2019-4-9 14:08
6 `6 E4 X. w  K. U( F就通过程序读取IO口的电平变化嘛?

# Y7 c" O' a. T5 ?; s; ?7 a, A我需要来一个高电平只计数一次,怎么样读取,能否给个实例我看下?
& @3 v3 i, |% V/ G; S3 h) {- z7 e% w

点评

没有示例、例如 temp=P1_0; if(temp==1) num++; temp==0 else ... 之类的  详情 回复 发表于 2019-4-9 14:31

该用户从未签到

4#
发表于 2019-4-9 14:31 | 只看该作者
小黄豆 发表于 2019-4-9 14:20- m! m5 l2 P. U2 ~; ]/ I
我需要来一个高电平只计数一次,怎么样读取,能否给个实例我看下?
, E+ y# W. u) c9 \2 ~
没有示例、例如' G( v* M+ {* c
temp=P1_0;7 _4 B6 d  |) X
  if(temp==1)+ |  R$ o# B" [4 C' @
  num++;
) q8 }* l8 y, W& \temp==0
9 z& K& ?/ [/ m% ]1 B- a7 `else 6 P! o0 B% G; K, A. Y
...
! ~- I2 S* U5 U7 K之类的) H) [* L4 ~# C4 s

点评

你确定你这个程序是对的???  详情 回复 发表于 2019-4-9 14:44

该用户从未签到

5#
发表于 2019-4-9 14:35 | 只看该作者
这样玩 。。在定时器中每隔10ms检测IO楼状态,用2个静态变量存储按键的值   检测信号的上升沿2 ?! |& R5 ^' p% W
sbit  IN = P1^0;
/ D4 }1 q/ H& A6 G4 [8 q) P- X& q2 svoid timer0 () interrupt  1
8 h# l0 H( W$ S2 L+ {{
5 Z. \  B$ \) e: o$ |  static uchar key,L_key;( c% o* r& k( }. K; T" L
  L_key = key;//保存上次状态2 w( C, c  G  d/ w' `8 [: s. Y
  key  =  IN;, K: A3 E  {! @. s! f/ Z( r3 _
if((key == 1)&&(L_key == 0))//上升沿即上次状态为0,这次状态为1就是上升沿  要检测下降沿也可以
4 k9 K( _% F0 |+ Y4 H$ \$ _{, ?7 L+ C. X% z) p& h
.....//计数变量加16 z( u8 S  Y4 }
}
7 z+ h5 W- K; `: j1 W) s; x1 y0 Q/ i! l}

点评

这位兄弟的答案貌似可行,不管怎么样多谢  详情 回复 发表于 2019-4-9 14:46

该用户从未签到

6#
 楼主| 发表于 2019-4-9 14:44 | 只看该作者
helendcany 发表于 2019-4-9 14:31
: u& ^1 H0 n, T. e' v6 S没有示例、例如
) ?1 W! S4 R& n' F# N5 c# ktemp=P1_0;
( W  K- j% b0 D. V% I  if(temp==1)
' `$ C- g4 K! u# C& L( _
你确定你这个程序是对的???
' E" S2 w, K* n' b# x

该用户从未签到

7#
 楼主| 发表于 2019-4-9 14:46 | 只看该作者
kinidrily 发表于 2019-4-9 14:35
# U8 s; L7 K4 g6 T# [9 V这样玩 。。在定时器中每隔10ms检测IO楼状态,用2个静态变量存储按键的值   检测信号的上升沿! G2 a3 y( I: ^$ B, x# e" _% l
sbit  IN =  ...

4 B! p6 \8 W; J& Q& P* P4 g& A这位兄弟的答案貌似可行,不管怎么样多谢: y" r" Y6 }6 Q# f- T( b

该用户从未签到

8#
发表于 2019-4-9 14:49 | 只看该作者
普通IO口检测边沿,只要速度够快。。用普通IO解码红外都是无压力。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-24 01:26 , Processed in 0.156250 second(s), 30 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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