gprs_new 发表于 2014-3-23 01:18:55

小程序proutes仿真通过,可是下载到单片机就异常(已解决

本帖最后由 gprs_new 于 2014-3-23 11:51 编辑

//通过用定时器T1模式2计数 ,每计满10个脉冲,将P1.4取反一次,外部信号输入为T1的P3.5
//计数次数=256-10=246=0F6H   TH1=TH1=0F6H
                                                                                          //单片机是STC11F02                   (是按键的问题,)
ORG 0000H
AJMP MAIN
ORG 001BH
AJMP ZD1
                                                               P3.5脚和GND之间有一个按键,(用来模拟脉冲信号,低电平触发) 下载到单片机的时候按理说应该是要按键按10次才会取反一次。。。可是按键一按就会取反,百思不得其解。。。。。
MAIN:
MOV TMOD,#60H
MOV TH1,#0F6H       
MOV TL1,#0F6H
SETB ET1
SETB EA
SETB TR1
SJMP $

ZD1:CPL P1.4
RETI
END

                  请知道的兄弟帮分析一下,是哪里出问题了。{:smile:}

swp 发表于 2014-3-23 01:51:01

不知是否按键没有去抖动处理造成的?加延时去抖动试试?

four_zhg 发表于 2014-3-23 09:59:40

按键没去抖造成的,硬件和仿真不一样,仿真是按一下就闭合一次,硬件按钮按下时有毛刺抖动的

yuyu87 发表于 2014-3-23 10:15:33

仿真你也好行?仿真只能简单测试下,

skynet 发表于 2014-3-23 11:19:51

仿真就是太监的玩意,你也相信,哈哈哈

gprs_new 发表于 2014-3-23 11:19:56

four_zhg 发表于 2014-3-23 09:59
按键没去抖造成的,硬件和仿真不一样,仿真是按一下就闭合一次,硬件按钮按下时有毛刺抖动的 ...

该开始也为是按键未消抖动造成的,可是问题是我修改为每计满100个在取反也是一样啊!按键只是按一下就取反(不可能按一下松开能能有100个脉冲啊),这不合理啊?

gprs_new 发表于 2014-3-23 11:21:15

skynet 发表于 2014-3-23 11:19
仿真就是太监的玩意,你也相信,哈哈哈

{:funk:}。。。。。。。不是吧。仿真起码也可以验证一下程序吧。再说这个小程序,没那么复杂啊。就是计满脉冲就取反。

高鼻子 发表于 2014-3-23 11:25:48

还在用汇编 ,楼主跑歪了

four_zhg 发表于 2014-3-23 11:26:21

gprs_new 发表于 2014-3-23 11:19
该开始也为是按键未消抖动造成的,可是问题是我修改为每计满100个在取反也是一样啊!按键只是按一下就取 ...

100个脉冲很正常,这要看你的检测速度了,更何况你按下和松开都会有抖动

gprs_new 发表于 2014-3-23 11:50:24

靠,还真是按键的问题,,,,,{:lol:}。。。我又写了个小程序,另外一个单片机的一个引脚定时输出1HZ的脉冲。然后接到,,,,计数的这个单片机上的P3.5脚,就正常了。

kebaojun305 发表于 2014-3-23 12:08:29

那个仿真是很理想化的。 有时和现实区别比较大。
页: [1]
查看完整版本: 小程序proutes仿真通过,可是下载到单片机就异常(已解决