打印

仪陇153单片机实现灯的渐亮控制,请帮我看下出了什么问题

[复制链接]
4461|38
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chinesecom|  楼主 | 2007-7-16 09:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是我编的用em78p153单片机控制led灯渐亮程序,没有发现有什么错误的地方,软件仿真过了。可是烧录后用万用表接p5口发现表的指针在3-4v间摆个不停。实在找不出软件有什么问题了。  会不会是153的ic不适合用于这样的控制啊?头疼。
     R17  EQU   0X17        ;P5口输出高电平计数器
     R14  EQU   0X14        ;R17--〉R14,延时用
     R15  EQU   0X15        ;延时用
     P5    EQU  0X5         ;P5口
     
    MOV    A,@0x0    
    MOV    0x5,A    
    MOV    A,@0x0        
    IOW    0x5        

BBMIE:MOV  A,@OXFF
      MOV  R17,A
     CALL  LOOP1        ;灯由亮变暗子程序
     NOP
     NOP
     NOP
     JMP   BBMIE

LOOP1:MOV   A,@0X0    ;灯亮
      MOV   P5,A
      DJZ   R17         
       JMP   E1
       JMP   GMIE
E1:    MOV    A,R17           
       MOV    R14,A   

D1:  DJZ    R14         ;延时R14*2*100US(r14=r17)
       JMP    D1
       MOV    A,@0XF    ;灯灭
       MOV    P5,A

       COM    R17        
       MOV    A,R17
       MOV    R14,A
      
D2:    DJZ    R14    ;延时R14*2*100US(r14=/r17)
       JMP    D2
       COM    R17
       JMP    LOOP1

以下是波形解说图。

另外我加长乐延时时间,即在D1和D2延时出加了10个nop指令,结果发现烧录后的ic的p5口就一直是低电平保持不变,是什么原因啊??为何加多了几个nop就不行了?加nop如下:
  D1: NOP
      NOP
      ……
      NOP
      NOP  (共10个nop指令)
       DJZ   R14         ;延时R14*2*100US(r14=r17)
       JMP    D1
       MOV    A,@0XF    ;灯灭
       MOV    P5,A

相关帖子

沙发
chinesecom|  楼主 | 2007-7-16 09:57 | 只看该作者

请大虾帮我检验一下程序,

  按道理程序烧写后,ic的p5口电压会有低到高慢慢的变,然后又重新由低到高的变。
  至于延时时间,比如:
       D1:  DJZ    R14    ;延时R14*2*100US(r14=r17)
       JMP    D1
 我用的是20k的震荡频率,延时时间这样算对吗?R14*2*100US(r14=r17)

使用特权

评论回复
板凳
chinesecom|  楼主 | 2007-7-16 10:24 | 只看该作者

咋么没有热心人回一下啊?

使用特权

评论回复
地板
chinesecom|  楼主 | 2007-7-16 14:13 | 只看该作者

哈,有没有高手有兴趣复制下这个程序帮我检验一下啊。!

  感谢不尽啊!我用51单片机试过渐变可以的,但51的太贵,不适合作消费产品的啊。
  因我这里没有硬件仿真器,所以很麻烦啊!

使用特权

评论回复
5
gyt| | 2007-7-16 20:55 | 只看该作者

吃不准

按理说51行这个也应该行的

使用特权

评论回复
6
conwh| | 2007-7-16 23:51 | 只看该作者

LED也得限流吧

使用特权

评论回复
7
洪七公| | 2007-7-17 01:01 | 只看该作者

用带F的PIC先玩好了再移植到EM78P153上

使用特权

评论回复
8
zhaoyu2005| | 2007-7-17 08:07 | 只看该作者

LZ拿没拿灯试?

万用表的采样速率大概3次/S,怎么跟的上脉冲变化?你以为是示波表?拿个示波器看波行对不

使用特权

评论回复
9
chinesecom|  楼主 | 2007-7-17 16:02 | 只看该作者

有接过灯试过了啊。

 接上灯就是会不断的闪。
嘻,见笑啦。示波器也缺啊。 但这个渐变的程序按理说是会从0v渐渐加大到5v
我用过51单片机试过了,电压就是会渐渐升高的。
  而且我之前试过在延时程序中加了10个nop指令,ic就不正常了,p5口一直都是低电平,而我只加2个nop,p5口电压就会在3-4v间不断的摆动。
  是不是这程序不适用于153的ic?
  我不会用麦肯的啊。没有用过啊。请问高手们有没仪陇的硬件仿真器?直接把这程序复制上去帮我仿真下啊!谢谢啦。小弟经验不足啊。设备又缺!!

使用特权

评论回复
10
xwj| | 2007-7-17 16:15 | 只看该作者

注意PWM的频率

使用特权

评论回复
11
hexi30| | 2007-7-17 16:27 | 只看该作者

我有78153S仿真器

把软件EMAIL给我,帮你调试一下.ZHDMAN@163.COM

使用特权

评论回复
12
程序匠人| | 2007-7-17 21:24 | 只看该作者

CPU的工作频率是多少?

其实,你可以自己推算一下,每个高电平和低地电平的时间是否相符。
另外要注意,JMP、CALL、RET等指令也要占用CPU时间的,并且这些指令会占用两条普通指令的执行时间。

使用特权

评论回复
13
雁搭农艺师| | 2007-7-17 21:28 | 只看该作者

匠人说的对,要注意频率。因为LED的惯性较小,所以得使用

使用特权

评论回复
14
conwh| | 2007-7-17 21:41 | 只看该作者

呵呵,真能搞笑。到头来还是从头越。不会是自己恶搞吧?

使用特权

评论回复
15
hotpower| | 2007-7-17 21:44 | 只看该作者

俺晕糊~~~不信让二姨显示上网的详细信息~~~倒塌了~~~

俺再长几双手也顾不过来呀!!!

使用特权

评论回复
16
conwh| | 2007-7-17 21:45 | 只看该作者

哈哈,太好了

使用特权

评论回复
17
teuton| | 2007-7-17 22:05 | 只看该作者

回复

我看这可能与不同单片机的内部结构有关,简单说就是51的放电要比仪陇强
你更改一下外部硬件结构试试。
还有,仪陇与51在指令上是有不同的。
你看看是不是更改一下硬件结构。

使用特权

评论回复
18
hotpower| | 2007-7-17 22:22 | 只看该作者

20K的时钟?

使用特权

评论回复
19
hotpower| | 2007-7-17 22:30 | 只看该作者

晕~~~用定时器或PWM多方便~~~

使用特权

评论回复
20
hotpower| | 2007-7-17 22:38 | 只看该作者

哥们,仪隆这款可能没有PWM,只好用软件了。

不过不用定时器可就不高明了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

81

帖子

1

粉丝