发新帖我要提问
12
返回列表
打印

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

[复制链接]
楼主: chinesecom
手机看帖
扫描二维码
随时随地手机跟帖
21
hotpower| | 2007-7-17 23:38 | 只看该作者 回帖奖励 |倒序浏览

晕倒了~~~搞个458不是有PWM吗???

使用特权

评论回复
22
conwh| | 2007-7-17 23:53 | 只看该作者

怎么自己在说话?

使用特权

评论回复
23
hotpower| | 2007-7-18 00:08 | 只看该作者

用定时器模拟PWM比延时要好玩~~~

声明:俺是"真的"~~~

使用特权

评论回复
24
conwh| | 2007-7-18 00:12 | 只看该作者

一模一样呀,对用定时器好管理,并且也准确

使用特权

评论回复
25
hotpower| | 2007-7-18 00:21 | 只看该作者

空格也可以呀~~~无奈~~~

使用特权

评论回复
26
hotpower| | 2007-7-18 01:37 | 只看该作者

这里有PWM控制的帖子,你可去查查,实在找不到了就到俺菜

使用特权

评论回复
27
hotpower| | 2007-7-18 02:10 | 只看该作者

无语呀...欲哭也无泪呀...老天呐,倒塌了!

使用特权

评论回复
28
hotpower| | 2007-7-18 02:11 | 只看该作者

天要塌了吗???俺这是在梦游???

使用特权

评论回复
29
程序匠人| | 2007-7-18 09:08 | 只看该作者

23楼的想法很幼稚

458的价格是153的2~3倍呢!
23楼的想法很幼稚,一看就是假ID


--------------------------------------------
hotpower 发表于 2007-7-17 23:38 侃单片机 ←返回版面    

23楼: 晕倒了~~~搞个458不是有PWM吗??? 

使用特权

评论回复
30
dongh821| | 2007-7-18 09:38 | 只看该作者

渐变程序

义隆的我用过,也做过灯的渐变程序,应该还可以的,我做的是LED手电筒的无级调光控制,我觉得还是要考虑你的频率,时基问题

使用特权

评论回复
31
micheal7| | 2007-7-18 15:02 | 只看该作者

这里有个程序给你参考下


;----------------------------------------------------------------
;
;;
;;;单片机的P1口的LED实现渐明渐暗的效果   
;;;P1口接8个LED,灌电流
;;;改变占空比来调整亮度
;;
;
;----------------------------------------------------------------
LED EQU P1;定义IO口,为了方便改动而设计

ORG 00H
JMP MAIN
ORG 30H

;----------------------------------------------------------------
MAIN:;主程序循环
CALL DL;初始化一段长时间的延时,也可不加,灯全灭。
MOV A,#0
CALL LOOP;调用渐暗的子程序,通过改变规定时间内LED的占空比来改变亮度。
MOV LED,#0FFH;达到最暗时则关全部灯,占空比为0,灯最灭。
MOV A,#0;将A值清0
CALL LOOP2;调用渐亮的子程序,使占空比慢慢变为1
MOV LED,#0;最亮时,开全部灯。
JMP MAIN

;-----------------------------------------------------------------
LOOP:;渐暗程序循环
MOV LED,#0;灯全亮
INC A;A中值加1
CJNE A,#0FFH,E2;看A中值是否到了最大值?
E1:JMP OVER;到了最大值则退出。
E2:MOV R7,A;不到时则将R7延时程序给于初值。
D1:MOV R6,#30;延时程序的上限值由R6可调,但不能调的过大不然灯会闪动。
DJNZ R6,$
DJNZ R7,D1
MOV LED,#0FFH;占空比的“占”时间到,灯全灭准备开始“空”时间的延时。

CPL A;A取反的目的是取得整个时间内(FFH)“空”的时间长度。
MOV R7,A;将“空”的时间长度送入延时程序。
D2:MOV R6,#30
DJNZ R6,$
DJNZ R7,D2
CPL A;将A的值正过来,准备下一次循环“占”的决定时间。
JMP LOOP
OVER:RET;A的值到了最大值则退出。(渐暗完成)

;-------------------------------------------------------------------
LOOP2: ;渐亮程序循环
MOV LED,#0FFH;灯全灭
INC A;A中值加1,慢慢加大“占”的时间。
CJNE A,#0FFH,W2
W1:JMP OVER2
W2:
MOV R7,A
D11:MOV R6,#30
DJNZ R6,$
DJNZ R7,D11
MOV LED,#0    ;与渐暗的程序大体相同,不多解释。

CPL A
MOV R7,A
D22:MOV R6,#30
DJNZ R6,$
DJNZ R7,D22
CPL A
JMP LOOP2
OVER2:RET

;---------------------------------------------------------------------
DL:           ;长时间开机初始化延时程序
MOV LED,#0FFH;
MOV R5,#10;
DD0:MOV R7,#250;
DD1:MOV R6,#250;
DD2:DJNZ R6,DD2
DJNZ R7,DD1
DJNZ R5,DD0
RET

;----------------------------------------------------------------------
END



使用特权

评论回复
32
conwh| | 2007-7-18 17:29 | 只看该作者

冤枉呀,23楼是我呀

班头呀,打板子也不能这么打法呀,都是假HOT搞的

程序匠人 发表于 2007-7-18 09:08 侃单片机 ←返回版面    

31楼: 23楼的想法很幼稚 

458的价格是153的2~3倍呢!
23楼的想法很幼稚,一看就是假ID


--------------------------------------------
hotpower 发表于 2007-7-17 23:38 侃单片机 ←返回版面    

23楼: 晕倒了~~~搞个458不是有PWM吗??? 





签名:

               ____________________________
   
 
 

使用特权

评论回复
33
ETUAL| | 2007-7-18 18:36 | 只看该作者

EM78P153 没有PWM

EM78P153 没有PWM,只能程序实现PWM功能。这个叫郁闷......
注意速度一定要快,不能TCC中断计时的,那个太慢了

使用特权

评论回复
34
chinesecom|  楼主 | 2007-7-20 08:36 | 只看该作者

啊啊啊!!太感动了!!

  这里有这么多的热心人,简直太感动了!!
还以为没大虾们给我回复呢。原来大家都是下班后和夜晚上来啊。我晚上没得上网,这两天比较忙所以没上来看了。
  感谢大虾们的支持!
  太谢谢micheal7, 我用您程序试一下!

使用特权

评论回复
35
conwh| | 2007-7-20 09:43 | 只看该作者

晕,我这里显示的,我是23楼呀。

程序匠人 发表于 2007-7-18 09:08 侃单片机 ←返回版面    

31楼: 23楼的想法很幼稚 

458的价格是153的2~3倍呢!
23楼的想法很幼稚,一看就是假ID


--------------------------------------------
hotpower 发表于 2007-7-17 23:38 侃单片机 ←返回版面    

23楼: 晕倒了~~~搞个458不是有PWM吗??? 





签名:

 
 
======================================================
conwh 发表于 2007-7-18 17:29 侃单片机 ←返回版面    

34楼: 冤枉呀,23楼是我呀 

班头呀,打板子也不能这么打法呀,都是假HOT搞的 
 
======================================================
hotpower 发表于 2007-7-17 23:38 侃单片机 ←返回版面    

22楼: 晕倒了~~~搞个458不是有PWM吗??? 
======================================================
conwh 发表于 2007-7-17 23:53 侃单片机 ←返回版面    

23楼: 怎么自己在说话? 

使用特权

评论回复
36
chinesecom|  楼主 | 2007-7-20 09:46 | 只看该作者

对啊,是20k的时钟

这是延时程序: D1:  DJZ    R14    ;延时R14*2*100US(r14=r17)
           JMP    D1
我用的是20k的震荡频率,延时时间这样算对吗?R14*2*100US(r14=r17)
  这是外部时钟,还有外部复位电路(按手册上搭接的)电路。

使用特权

评论回复
37
gyt| | 2007-7-20 09:59 | 只看该作者

我看到的楼数和conwh是一样的

使用特权

评论回复
38
chinesecom|  楼主 | 2007-7-21 14:59 | 只看该作者

hexi30 就麻烦你帮我仿真下程序啦。谢谢

使用特权

评论回复
39
tda1875| | 2015-11-24 12:53 | 只看该作者
各位大哥帮我看下,义隆153单片机,定时器计数溢出无法进入中断,哪里配置不对呢?
#include "interrupt_vector.h"
#include "EM78P153A.h"
#define LED PORT6

void delay(unsigned short);
void main(void)
{
        unsigned int i;
        WDTCR=0;
        TCC = 0;
        P6CR = 0Xf0;
//        IMR = 0x01;
        _asm{
                MOV     A, @0x01           ; 允许计数器中断
        IOW     0xf
        ENI                     ; 开中断
        }
        ISR = 0;
        _asm
                {
                        mov a,@0x04
                        contw
                }       
        while(1)
        {
                for(i=7;i>0;i--)
                {
                        LED = i;
                        delay(60000);
                }       
        }

}
void delay(unsigned short i)
{
        unsigned short j;
        for(j=0;j<60000;j++)
        {       
                for(;i>0;i--)
                {
                        ;
                }
        }               
}
void _intcall interrupt(void) @ int
{
        ISR = 0;
        _asm
           {
                     reti            //Tell Compiler to recover common registers here.
                                                                               //Don't remove or duplicate this instruction in this function
           }
}

使用特权

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

本版积分规则