原创 [原创]用PIC10F200实现三色LED亮度调节

2011-4-8 09:17 5600 8 12 分类: MCU/ 嵌入式

10F200资源:
一个8位timer,一个WDT
可以工作在 2.0~5.5V
内置晶振,单一频率4MHz 精度1%
三个IO,一个Input
指令空间: 255

目标:
使用串口通讯方式,波特率38400,8位数据,1位停止,无奇偶校验  (38400,N,8,1)
GPIO0,1,2    RGB PWM输出
GPIO3        USART 输入

连接方式:
所有10F200的GPIO3都连在一起,用每个芯片自定义的ID值来决定收受还是忽略此次数据

数据格式:
ID, R, G, B
占用时间 (1+8+1)*4 = 40   40*1000,000/38400 = 1041.67 us
1秒钟可控制次数 1000,000 / 1041 = 960

问题:
1.在接收串口数据的同时,刷新IO
2.区分开数据与ID

数据格式 ID, r, g ,b

ID最高位必须为1,r,g,b最高位必须为0,这样可以区分开数据与ID,实际可调的亮度只有7位精度

PWM频率由timer0的分频比决定,理论上可达到1MHz/2/256 = 1.9K, 由于IO平均19.5条指令刷一次,因此精度只有20/2/128*100% = -8.0% ~ +8.0%,刷IO的指令不是均匀分布的,误差还会再大一些

PWM精度由xCnt与tmr0的比较频率决定。比较越频繁,精度越高

读ID方法,启动时将GPIO3接地,ID从GPIO0发出,格式(38400,N,8,1)

源代码下载 attachment download

源代码包含:

.\MPLAB     MPLAB ASM汇编源代码            (MPLAB 8.00)
.\Proteus   Proteus仿真文件                (Proteus 6.9)
.\CPP       上位机CPP代码                  (VS2005)
.\LinkVSP    VSPM虚拟串口互连的配置文件    (VSPM 2.5)


仿真图

395eb97c-52fc-45d5-93f4-e4a50cbda574.jpg

实物图

6b15344e-9c5b-4e47-81a8-d8a586f22af6.jpg

a8efe54c-f14b-4589-8de1-9bd3f0aebc14.jpg

颜色对比

e737d71e-96d7-4080-9220-09f50ede1cdc.jpg

输出波型

ddef24c3-7373-4eca-b5f2-22b734c4ffa5.jpg

文章评论4条评论)

登录后参与讨论

用户501716 2015-12-19 10:46

太好了,我的一个方案正好能用上

用户559562 2014-5-15 13:20

看看

1563661808_715097223 2014-3-24 16:36

谢谢楼主

用户447623 2013-8-14 23:55

怎样下载
相关推荐阅读
用户236335 2011-05-16 17:36
[原创]操作DS18B20的程序(C写的 带ROMSearch和CRC校验)
调试环境:MPLAB 7.5PICC  8.05 PL1PIC16F88,DS18B20 两颗,晶振4MHz(如换其它晶振,需要更改WriteBit和ReadBit中的等待操作以及延时函数)我只有两颗...
用户236335 2010-04-09 16:35
[原创]DIY一个多功能手柄
打造一个属于自己的多功能手柄多功能手柄的视频演示http://v.youku.com/v_show/id_XMTYyOTcwNjUy.html预览小结:芯片: STM32F103C8T6,MMA726...
用户236335 2010-04-09 14:12
[原创]STM32迷你OLed显示屏
之前买了几块128X64的OLed屏,用开发板驱动起来玩了一下,感觉显示效果还蛮不错的去赛格逛的时候又看到了这么一个小盒子,比划了一下觉得把这个屏放进去还能加点东西在上面盒子内部大小为44mm X 2...
用户236335 2010-04-07 23:28
FPM不能使用?(Foot Print Maker)别急,那是作者的小玩笑
用Candence来画PCB很不错,但是做封装很麻烦还好有人做了一个免费的小软件FPM(Foot Print Maker),用来生成封装很方便但是作者开了个小玩笑,0.0.8.0版本的从2010年4月...
用户236335 2010-03-28 15:57
[原创]用STM32 199元的开发板来玩俄罗斯方块
开发板是万利的那个带有ST-Link2的199开发板  STM3210B-LK1上面有一块STM32F103VBT6,这个片子有128K的Flash,20K的RAM开发板上面可以用到的资源·1 个LC...
我要评论
4
8
关闭 站长推荐上一条 /2 下一条