单片机学习新人 STC12C4052AD P1.1口电平输出.求解疑惑 上图 上程序

2019-03-24 19:38发布

 用STC12C4052 搭建好最小系统 12M晶振 .写个 P1.1口输出 间隔时间输出脉冲信号.程序如下:     ORG 0000H
    LJMP MAIN
   ORG 0030H
MAIN: 
       MOV R1,#020H
       MOV R7,#08H
       clr p1^1
loop1: cpl p1^1
       call DELAY
       djnz R7,loop1
       clr P1^1
LOOP2: call DELAY
       djnz R1,LOOP2
       ajmp MAIN
DELAY:
       nop
       nop
       nop
       ret   程序烧录入后 单片机正常输出波形. 带上电阻负载后 波形发生变化.  高电平不再维持延迟的时间. 单片机是 1时钟/机械周期.经计算程序延迟时间也与实际电平持续时间不符合. 图附件     此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
辛昕
1楼-- · 2019-03-25 05:51
空载波形正确,说明没程序什么事

问题出在负载

接了 470欧的电阻下地,5V时,单片机被拉走了 10多毫安,问题就出在这里。
你把电阻弄大一些,这个问题就会解决,比如说 10K或者更大。

至于为什么加了104以后,还是这个波形,我猜测是你的延时周期太短了,把它扩大一些再试试。
PS:STC系列的片子,指令速度快,但是硬件反应跟不上,搞不好那个中间的平台期,其实就是人家的高电平,只是它来不及拉上去。为什么,空载的时候就好呢?因为空载的时候,恢复时间要短一些,要验证这一点的方法就是把 高电平时间拉长一些再看波形,如果还这样,回来接着找我~~

另一个验证的方法是,接更大的电阻,看看波形有无变化。
不过我不知道STC的硬件水平到了什么程度,也许它接多少的反应速度都那样,那我就没辙了。
其实这个是可以看PDF的,它的上升沿速度是有受负载影响的,你可以看一下在10K时的速度,如果这个速度和你的延迟时间相差不大,或者在一个数量级内,那估计就难免这样了。

另外,你这个波形图从哪得来的。

[ 本帖最后由 辛昕 于 2011-10-14 09:36 编辑 ]
hg200300
2楼-- · 2019-03-25 09:06
看到 版主的回复首先激动了。迫不急待的看了版主的分析。见解通俗易懂  在这儿谢谢了  我去验证下你提到的问题。

还有 ,图没带U盘  手绘的
hg200300
3楼-- · 2019-03-25 11:35
我换了100K、 300K 脉冲作实验。结果电平在后半断还是有不同程序的降低。高电平只持续上升沿后140ns-160ns 后下降。
我刚学用烧录软件,有很多地方都是自己想象的。另外我用的keil 的UV2文件里面没有STC12C的产品。
辛昕
4楼-- · 2019-03-25 12:29
谁让你用100K 300K脉冲了,,我说的是100K电阻......

UV2里没有文件不打紧,KEIL能支持它,算它瞎了眼.....
就用一般的REG52.H,有些特别的寄存器,sfr一下就完事了.....
辛昕
5楼-- · 2019-03-25 18:00
 精彩回答 2  元偷偷看……
hg200300
6楼-- · 2019-03-25 22:27
你好,我比对整理了一下思路 问题如图: 理想的波形应该是像89C52一样的波形吧,同样的程序为什么在STC12C4502上就不行呢 输出口是P1.1

一周热门 更多>