这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 嵌入式开发» MCU» cm33的试用手记:电阻色环趣味程序

共9条 1/1 1 跳转至

cm33的试用手记:电阻色环趣味程序

助工
2010-12-30 14:13:18 打赏

利用开发器附带的全色LED,做了一个趣味程序。

色环电阻的色环定义是:棕1、红2、橙3、黄4、绿5、蓝6、紫7、灰8、白9、黑0。

这个程序使得开发器上的LED依次显示出这十种颜色,可以帮助我们的记忆。

我用的配色方案为:

1 棕 brown :R 50%、G 25%、B 25%
2 红 red :R 100%、G 50%、B 0%
3 橙 orange :R 100%、G 50%、B 0%
4 黄 yellow :R 100%、G 100%、B 0%
5 绿 green :R 0%、G 100%、B 0%
6 蓝 blue :R 0%、G 0%、B 100%
7 紫 purple :R 50%、G 25%、B 75%
8 灰 gray :R 50%、G 50%、B 50%
9 白 white :R 100%、G 100%、B 100%
0 黑 black :R 0%、G 0%、B 0%

程序如下:




关键词: 试用 手记 电阻 色环 趣味 程序

助工
2010-12-30 14:14:11 打赏
2楼


#include "mb95200.h"

void Init (void)
{
DDR0_P06=1; //red
PDR0_P06=0;
DDR6_P62=1; //green
PDR6_P62=0;
DDR6_P63=1; //blue
PDR6_P63=0;
}

void wplay (unsigned int r, unsigned int g, unsigned int b)
{
unsigned int i;
PDR0_P06=r>4?0:1;
PDR6_P62=g>4?0:1;
PDR6_P63=b>4?0:1;
for(i=0;i<20;i++) asm("\tNOP");
}

void splay (unsigned int r, unsigned int g, unsigned int b)
{
unsigned int x,y,z,w;
x=r+4;
y=g+4;
z=b+4;
w=4;
while(w>0)
{
wplay(x,y,z);
x--; y--; z--;
w--;
}
}

void dplay (unsigned int j)
{
unsigned int i;
PDR0_P06=1;
PDR6_P62=1;
PDR6_P63=1;
for(i=0;i}

void pplay (unsigned int r, unsigned int g, unsigned int b)
{
unsigned int i;
for(i=0;i<100;i++) splay(r,g,b);
dplay(5000);
}

void main (void)
{
Init ();
while(1)
{
pplay(2,1,1); //1 brown
pplay(4,0,0); //2 red
pplay(4,2,0); //3 orange
pplay(4,4,0); //4 yellow
pplay(0,4,0); //5 green
pplay(0,0,4); //6 blue
pplay(2,1,3); //7 purple
pplay(2,2,2); //8 gray
pplay(4,4,4); //9 white
pplay(0,0,0); //0 black
}
}


专家
2010-12-30 15:20:22 打赏
3楼
Yes ,OK!继续哦

助工
2010-12-30 17:08:36 打赏
4楼
谢谢版主的支持和鼓励!

效果不错,挺好看的:)

有兴趣的朋友可以直接执行试试。把程序复制过去就行,很方便的。

院士
2010-12-30 19:55:41 打赏
5楼
继续努力啊~~~~~

助工
2010-12-31 09:03:28 打赏
6楼
多谢管理员!!

助工
2011-01-04 11:08:25 打赏
7楼
百分比要通过试验对照色标确定,这颗LED三基色的光强差异巨大。

再加上AD检测电阻值,然后用“灯语”把色环报出来,也有趣

助工
2011-01-04 16:03:37 打赏
8楼
楼上朋友说得很对,看得出您的水平很高。 有机会多交流,向您学习。 谢谢! 我给您投了一票:)

专家
2011-01-05 08:52:16 打赏
9楼

能够上传照片就更好了。


共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]