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

[复制链接]
6220|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的太贵,不适合作消费产品的啊。
  因我这里没有硬件仿真器,所以很麻烦啊!
gyt 发表于 2007-7-16 20:55 | 显示全部楼层

吃不准

按理说51行这个也应该行的
conwh 发表于 2007-7-16 23:51 | 显示全部楼层

LED也得限流吧

洪七公 发表于 2007-7-17 01:01 | 显示全部楼层

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

zhaoyu2005 发表于 2007-7-17 08:07 | 显示全部楼层

LZ拿没拿灯试?

万用表的采样速率大概3次/S,怎么跟的上脉冲变化?你以为是示波表?拿个示波器看波行对不
 楼主| chinesecom 发表于 2007-7-17 16:02 | 显示全部楼层

有接过灯试过了啊。

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

注意PWM的频率

hexi30 发表于 2007-7-17 16:27 | 显示全部楼层

我有78153S仿真器

把软件EMAIL给我,帮你调试一下.ZHDMAN@163.COM
程序匠人 发表于 2007-7-17 21:24 | 显示全部楼层

CPU的工作频率是多少?

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

雁搭农艺师 发表于 2007-7-17 21:28 | 显示全部楼层

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

conwh 发表于 2007-7-17 21:41 | 显示全部楼层

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

hotpower 发表于 2007-7-17 21:44 | 显示全部楼层

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

俺再长几双手也顾不过来呀!!!
conwh 发表于 2007-7-17 21:45 | 显示全部楼层

哈哈,太好了

teuton 发表于 2007-7-17 22:05 | 显示全部楼层

回复

我看这可能与不同单片机的内部结构有关,简单说就是51的放电要比仪陇强
你更改一下外部硬件结构试试。
还有,仪陇与51在指令上是有不同的。
你看看是不是更改一下硬件结构。
hotpower 发表于 2007-7-17 22:22 | 显示全部楼层

20K的时钟?

hotpower 发表于 2007-7-17 22:30 | 显示全部楼层

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

hotpower 发表于 2007-7-17 22:38 | 显示全部楼层

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

不过不用定时器可就不高明了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

81

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部