渐变程序请教 已解决

[复制链接]
2817|7
 楼主| kxc2008 发表于 2009-7-18 15:27 | 显示全部楼层 |阅读模式
ov, vr, AI, HC, AD
本帖最后由 kxc2008 于 2009-8-2 15:32 编辑

;控制P1口LED灯渐亮和渐暗程序<br />ORG 00H<br />JMP MAIN<br />ORG 30H<br />MAIN:<br /><br />CALL LOOP2 ;<br />CALL DELAY1<br />JMP MAIN<br />;以下一段为由暗变亮的子程序,变化程度共255级,由两段程序组<br />;成,一段点亮,时间值由A中的数决定<br /><br /><br /><br />;以下为由亮变暗子程序,原理与上面一样.<br />LOOP2:<br />MOV ;P1,#0FFH <br />INC A  ;程序运行到此,A的值为0,经这一步后为1<br />CJNE A,#02H,W2<br />W1:<br />JMP OVER2<br />W2:<br />MOV R7,A<br />D11:MOV R6,#30<br />DJNZ R6,$<br />DJNZ R7,D11<br />MOV ;P1,#0<br />CPL A<br />MOV R7,A<br />D22:MOV R6,#30<br />DJNZ R6,$<br />DJNZ R7,D22<br />CPL A<br />JMP LOOP2<br />OVER2:RET<br />LOOP3:MOV  ;P1,#0FFH<br />      CALL  DELAY1<br />      MOV  ;P1,#00H<br />      CALL  DELAY1<br /><br />DELAY1:MOV  R3,#100<br />YS1:   MOV  R4,#100<br />YS2:   MOV  R5,#248<br />       DJNZ R5,$<br />       DJNZ  R4,YS2<br />       DJNZ R3,YS1<br />       RET<br />END<br /><br /><br /><br />请教各位高手如何由亮到暗的时候,不要全灭下去,要有一点微亮,然后在从暗到亮这样循环
小李志 发表于 2009-7-18 16:58 | 显示全部楼层

好像PWM可以做

先确定思想再写程序,
lzw120051 发表于 2009-7-18 16:58 | 显示全部楼层

可以这样

先确定周期,比如10MS<br />再把周期分成100份,来确定你输出。<br />50%的亮,通5MS断5MS实现,<br />
gzrjxsf 发表于 2009-7-21 15:30 | 显示全部楼层

哥们我来帮你实现

;控制P1口LED灯渐亮和渐暗程序&nbsp;LED低电平点亮<br />COUNT0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EQU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;31H<br />COUNT1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EQU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;32H<br />SPEED_DATA&nbsp;&nbsp;&nbsp;&nbsp;EQU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;33H<br />COUNT2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EQU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;34H<br />COUNT_DATA&nbsp;&nbsp;&nbsp;&nbsp;EQU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;35H<br />&nbsp;&nbsp;&nbsp;&nbsp;ORG&nbsp;00H<br />&nbsp;&nbsp;&nbsp;&nbsp;JMP&nbsp;MAIN<br />&nbsp;&nbsp;&nbsp;&nbsp;ORG&nbsp;30H<br />MAIN:<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT0,#00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT1,#00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT2,#00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPEED_DATA,#20&nbsp;&nbsp;&nbsp;&nbsp;;调速度<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT_DATA,#250&nbsp;&nbsp;&nbsp;&nbsp;;250级<br />;====================================&nbsp;&nbsp;&nbsp;&nbsp;<br />;由亮到暗2%&nbsp;&nbsp;&nbsp;&nbsp;<br />LED_DISP1:<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT0,#00H<br />&nbsp;&nbsp;&nbsp;&nbsp;INC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT2<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A,COUNT2<br />&nbsp;&nbsp;&nbsp;&nbsp;CJNE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A,SPEED_DATA,DEL_1<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT2,#00H<br />&nbsp;&nbsp;&nbsp;&nbsp;INC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT1<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A,COUNT1<br />&nbsp;&nbsp;&nbsp;&nbsp;CJNE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A,#245,DEL_1&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;JMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED_DISP2<br />DEL_1:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOOP1<br />&nbsp;&nbsp;&nbsp;&nbsp;JMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED_DISP1<br />;===================================&nbsp;<br />;由暗2%到亮100%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />LED_DISP2:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT0,#00H&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;INC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT2<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A,COUNT2<br />&nbsp;&nbsp;&nbsp;&nbsp;CJNE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A,SPEED_DATA,DEL_2<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT2,#00H&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;DJNZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT1,DEL_2<br />&nbsp;&nbsp;&nbsp;&nbsp;INC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT1&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;JMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED_DISP1<br />DEL_2:&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOOP1<br />&nbsp;&nbsp;&nbsp;&nbsp;JMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED_DISP2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />;=======================================&nbsp;&nbsp;&nbsp;&nbsp;<br />LOOP1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1,#0FFH<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;INC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A,COUNT0<br />&nbsp;&nbsp;&nbsp;&nbsp;CJNE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A,COUNT1,LOOP1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />LOOP2:&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A,COUNT0<br />&nbsp;&nbsp;&nbsp;&nbsp;CJNE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A,COUNT_DATA,NEXT&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;RET<br />NEXT:&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1,#00H&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;INC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT0<br />&nbsp;&nbsp;&nbsp;&nbsp;JMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOOP2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;END<br />&nbsp;
gzrjxsf 发表于 2009-7-21 15:47 | 显示全部楼层

看完我写的方法后&nbsp;在去想想用其它的方法来实现&nbsp;&nbsp;写程序发散自己思想很重要
戒指320 发表于 2009-7-22 19:07 | 显示全部楼层

我以前写过这个东西,就是把你的时间分成很小的段,在每一个时间段里,高电平和低电平的时间分配不相同。<br />另外用pwm也是可以的<br /><br />“如何由亮到暗的时候,不要全灭下去,要有一点微亮,然后在从暗到亮这样循环”<br />你都能写出来暗和亮,这个问题难道你还解决不了吗?你再想想。
czghn1 发表于 2009-7-23 17:20 | 显示全部楼层
 楼主| kxc2008 发表于 2009-8-2 15:29 | 显示全部楼层
多谢各位了,问题已解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

259

帖子

0

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