h2feo4版怀表,正式版1.0出炉
h2feo4版怀表,正式版1.0出炉以下除特别声明外均为 h2feo4 原创
为了方便新手焊接,所有分立元件均为0603封装
所有IO引出,方便扩展
此板直径37mm
正反面各有一组控制电路的位置,功能完全相同,视个人爱好焊其中一组即可
将由版主组织发放空PCB(或套件)
另外,说明一下,我这个版本功能不像白沙版那么完善,例如按键检测、表盖检测等没有留出专门的焊盘,需要自己飞线,或者做一块扩展板。
此问题将在下一版本中改进,目前先收集问题,下次一起解决
看图说话
正面:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508883.JPG
(原文件名:20091129A.JPG)
背面:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508884.JPG
(原文件名:20091129B.JPG)
穿上衣服,正面:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508885.JPG
(原文件名:20091129C.JPG)
穿上衣服,背面:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508886.JPG
(原文件名:20091129D.JPG)
裸板正面:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508887.JPG
(原文件名:20091129E.JPG)
裸板背面:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508888.JPG
(原文件名:20091129F.JPG)
焊盘定义(参考网格尺寸1.0mm),顶视:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508889.PNG
(原文件名:20091129G.PNG)
焊盘定义(参考网格尺寸1.0mm),底视:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508890.PNG
(原文件名:20091129H.PNG)
后续计划,1号扩展板(仿白沙版)正面:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508891.png
(原文件名:20091126A.png)
后续计划,1号扩展板(仿白沙版)背面:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508892.png
(原文件名:20091126B.png)
后续计划,2号扩展板(12*12点阵)正面:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508893.png
(原文件名:20091126C.png)
后续计划,2号扩展板(12*12点阵)背面:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508894.png
(原文件名:20091126D.png)
演示代码:
/**********************************************/
/* LED_Clock_test_1 */
/* ATmaga48V-10AU @ 1MHz */
/* 2009-11-05 */
/* h2feo4 */
/* www.ourdev.cn */
/**********************************************/
//================= include ==================//
// winavr-20081124
#include <avr/io.h>
#include <avr/interrupt.h>
//================== define ==================//
volatile unsigned char sec = 0, min = 0, hou = 12;
const unsigned char oring = {12, 1, 9, 11, 8, 1, 2, 10, 12, 9, 2, 3, 11, 1, 10, 3, 4, 12, 2, 11, 4, 5, 1, 3, 12, 5, 6, 2, 4, 1, 6, 7, 3, 5, 2, 7, 8, 4, 6, 3, 8, 9, 5, 7, 4, 9, 10, 6, 8, 5, 10, 11, 7, 9, 6, 11, 12, 8, 10, 7, 12, 1};
const unsigned char iring = {7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8};
//=================== init ===================//
void t0_init(void)
{
TCCR0B |= (1 << CS00);
}
void t1_init(void)
{
TCCR1B |= (1 << WGM12) | (1 << CS11) | (1 << CS10);
TIMSK1 |= (1 << OCIE1A);
OCR1A = 15624;
}
void port_init(void)
{
PORTB &= 0xc0;
PORTC &= 0xc0;
DDRB&= 0xc0;
DDRC&= 0xc0;
}
//================ interrupt =================//
ISR(TIMER1_COMPA_vect)
{
sec++;
if (sec >= 60)
{
sec = 0;
min++;
}
if (min >=60)
{
min = 0;
hou++;
}
if (hou >12)
{
hou = 1;
}
}
//=================== sub ====================//
void disp_sec(void)
{
DDRB&= 0xc0;
DDRC&= 0xc0;
PORTB &= 0xc0;
PORTC &= 0xc0;
if (oring <= 6)
{
PORTB |= (1 << (6 - oring));
DDRB|= (1 << (6 - oring));
}
else
{
PORTC |= (1 << (12 - oring));
DDRC|= (1 << (12 - oring));
}
if (oring <= 6)
{
DDRB|= (1 << (6 - oring));
}
else
{
DDRC|= (1 << (12 - oring));
}
}
void disp_min(void)
{
DDRB&= 0xc0;
DDRC&= 0xc0;
PORTB &= 0xc0;
PORTC &= 0xc0;
if (oring <= 6)
{
DDRB|= (1 << (6 - oring));
}
else
{
DDRC|= (1 << (12 - oring));
}
if (oring <= 6)
{
PORTB |= (1 << (6 - oring));
DDRB|= (1 << (6 - oring));
}
else
{
PORTC |= (1 << (12 - oring));
DDRC|= (1 << (12 - oring));
}
}
void disp_hou(void)
{
DDRB&= 0xc0;
DDRC&= 0xc0;
PORTB &= 0xc0;
PORTC &= 0xc0;
if (iring <= 6)
{
PORTC |= (1 << (6 - iring));
DDRC|= (1 << (6 - iring));
DDRB|= (1 << (6 - iring));
}
else
{
PORTB |= (1 << (12 - iring));
DDRC|= (1 << (12 - iring));
DDRB|= (1 << (12 - iring));
}
}
//=================== main ===================//
void main(void)
{
port_init();
t0_init();
t1_init();
sei ();
while(1)
{
disp_sec();
while(TIFR0 == 0);
TIFR0 = 0xff;
disp_min();
while(TIFR0 == 0);
TIFR0 = 0xff;
disp_hou();
while(TIFR0 == 0);
TIFR0 = 0xff;
}
}
元件清单:
LED(0603封装)132只,包括秒针60只,分针60只,时针12只,推荐分别使用不同颜色。由于LED在焊接时有一定的死亡率,建议采购零件时数量上留出一定的余量
电容(0603封装)2只,包括 VCC-GND 1只,AREF-GND 1只(选装),推荐容量为0.1uF
电阻(0603封装)12只,LED限流电阻,推荐阻值为 100R-330R
ATmega48PA(或其他x8系列的AVR)1只
32.768K晶振 1只(选装);与晶振匹配的电容 2只(选装)[此二零件在PCB上没有位置,故需要飞在外面,可使用预留的IO引出焊盘]
其余例如表盖检测、环境光检测、调整时间等功能在此版本中尚未涉及,须自行设计,可使用预留的IO引出焊盘
PDF版原理图:
点击此处下载 ourdev_509189.pdf(文件大小:64K) (原文件名:怀表sch.pdf)
以上除特别声明外均为 h2feo4 原创
转载必须注明来自 www.ourdev.cn 及原作者 h2feo4 无机酸
所有的文档资料仅可用于学习研究,如果用于商业用途则必须征得本人同意。 沙发!!!站位 ding ! 顶!太好了 沙发这么快就没了v_v 很喜欢那红油,和外壳简直是绝配! 明天上午第一批PCB和LED将发给版主
我的工作暂告一段落,剩下就看版主和各位了 mark 漂亮!! 好漂亮 要一套 哇塞 超赞! 不错 很赞 我要订一套 好想要一套啊 顶无机酸 漂亮! cool! 顶你! 帅 漂亮,支持 好漂亮 这个太漂亮了! shuai 靓 看起来不错。 mark 漂亮~~~ 套件套件,自己焊不好哦 期待后续板!!! 很漂亮!! 这个也是你用热转印做的?太精细了! 太帅了!预定2套!!最好带表壳! yy888 许意义:
h2feo4版怀表PCB已于2009年11月30日中午,通过顺风速运从XXX发货,单号 = XXXXXXXXXXXX(详见邮件)
包装为阿莫电子邮购部蓝色包装箱
内容物为:h2feo4版怀表PCB,14块每包 X 5包,共70块;0603封装红色LED一盘(约1.5K只)
请查收,顺风速运查询网站:http://www.sf-express.com/
h2feo4 无机酸
2009-11-30 想要想要~~~ 哪位能给不懂AVR和MPS430的兄弟整个用51系列的怀表么? to 【35楼】 yy888 许意义
没问题
>> 元件清单已更新到楼主位 <<
==================================================================================
总费用如下:
PCB(工程费160 + 1.3 * 80 = 264)
LED(0.075 * 1500 = 112.5)
快递 22
共计 398.5
请版主验算 好漂亮啊。。我预定两套 牛,真牛! 一个一个去打板太麻烦了,又费钱。还是组织下团购吧 好强 好想要一块哦 >> 原理图已更新到楼主位 << to 【40楼】 yy888 许意义
颜色完全取决于个人爱好,
不过注意蓝紫白管子压降较高,使用锂金属电池(3.0V)的朋友慎用(我没测试过),使用锂离子电池(3.7V)的话倒是关系不大
我个人采用的廉价方案:
红秒,黄分,绿时,限流电阻为200R to 【45楼】 yy888 许意义
每套只配60只LED估计不可靠,要焊废一个就惨了,就算再重买一个装上,亮度也不一定一致
考虑一般网友的焊接水平,建议分、秒LED各提供至少4只备用管,小时LED提供至少1只备用管
另,我寄过去的LED数量没有仔细清点,只是大约1.5K(保守估计),也可能有1.6K
如果套件包含电池是不是可能不方便快递? 密切关注中。。。 建议版主还是把32.768K晶振算进套件里面吧(因为版主出套件是为了方便一部分购买散件不方便的网友),如果没这玩意就不可能实现低功耗、高精度,怀表就没有实用性。配一个普通圆柱形直插表振就可以了
晶振电容就算不加应该也能振起来,是否配电容可以再讨论
另外,PCB的直径貌似比怀表略大0.1mm左右,需要特定角度才能塞进去(有时候想拿出来有点费劲),也可以用砂纸将PCB稍稍打磨一下,即可顺利放入和取出。 能订2只再要一块空PCB么?./emotion/em025.gif 哇,口水,无机酸在长沙? 能不能直接和你订一个? 太有才了! to 【52楼】 yy888 许意义
明天提供安装32.768K晶振的照片,及测试程序 好的,标记 预定一套套件和一块PCB可以吗?谢谢!!主要怕弄坏了。。。 漂亮! 哈哈 终于等到了 申请两个套件! 改用32.768K晶振,已经通过测试
照片晚些时候贴出来
演示程序:
在原来程序上稍稍修改而已
没有注释不好意思,以后有空时再补上
2009-12-01 修改内容,将原T1定时器初始化、中断程序改为T2的
/**********************************************/
/* LED_Clock_test_1 */
/* ATmaga48V-10AU @ 1MHz */
/* 2009-11-05 */
/* h2feo4 */
/* www.ourdev.cn */
/**********************************************/
//================= include ==================//
// winavr-20081124
#include <avr/io.h>
#include <avr/interrupt.h>
//================== define ==================//
volatile unsigned char sec = 0, min = 0, hou = 12;
const unsigned char oring = {12, 1, 9, 11, 8, 1, 2, 10, 12, 9, 2, 3, 11, 1, 10, 3, 4, 12, 2, 11, 4, 5, 1, 3, 12, 5, 6, 2, 4, 1, 6, 7, 3, 5, 2, 7, 8, 4, 6, 3, 8, 9, 5, 7, 4, 9, 10, 6, 8, 5, 10, 11, 7, 9, 6, 11, 12, 8, 10, 7, 12, 1};
const unsigned char iring = {7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8};
//=================== init ===================//
void t0_init(void)
{
TCCR0B = (1 << CS00);
}
void t2_init(void)
{
ASSR = (1 << AS2);
TCCR2B = (1 << CS22) | (1 << CS20);
TIFR2= 0xff;
TIMSK2 = (1 << TOIE2);
}
void port_init(void)
{
PORTB &= 0xc0;
PORTC &= 0xc0;
DDRB&= 0xc0;
DDRC&= 0xc0;
}
//================ interrupt =================//
ISR(TIMER2_OVF_vect)
{
sec++;
if (sec >= 60)
{
sec = 0;
min++;
}
if (min >=60)
{
min = 0;
hou++;
}
if (hou >12)
{
hou = 1;
}
}
//=================== sub ====================//
void disp_sec(void)
{
DDRB&= 0xc0;
DDRC&= 0xc0;
PORTB &= 0xc0;
PORTC &= 0xc0;
if (oring <= 6)
{
PORTB |= (1 << (6 - oring));
DDRB|= (1 << (6 - oring));
}
else
{
PORTC |= (1 << (12 - oring));
DDRC|= (1 << (12 - oring));
}
if (oring <= 6)
{
DDRB|= (1 << (6 - oring));
}
else
{
DDRC|= (1 << (12 - oring));
}
}
void disp_min(void)
{
DDRB&= 0xc0;
DDRC&= 0xc0;
PORTB &= 0xc0;
PORTC &= 0xc0;
if (oring <= 6)
{
DDRB|= (1 << (6 - oring));
}
else
{
DDRC|= (1 << (12 - oring));
}
if (oring <= 6)
{
PORTB |= (1 << (6 - oring));
DDRB|= (1 << (6 - oring));
}
else
{
PORTC |= (1 << (12 - oring));
DDRC|= (1 << (12 - oring));
}
}
void disp_hou(void)
{
DDRB&= 0xc0;
DDRC&= 0xc0;
PORTB &= 0xc0;
PORTC &= 0xc0;
if (iring <= 6)
{
PORTC |= (1 << (6 - iring));
DDRC|= (1 << (6 - iring));
DDRB|= (1 << (6 - iring));
}
else
{
PORTB |= (1 << (12 - iring));
DDRC|= (1 << (12 - iring));
DDRB|= (1 << (12 - iring));
}
}
//=================== main ===================//
int main(void)
{
port_init();
t0_init();
t2_init();
sei ();
while(1)
{
disp_sec();
while(TIFR0 == 0);
TIFR0 = 0xff;
disp_min();
while(TIFR0 == 0);
TIFR0 = 0xff;
disp_hou();
while(TIFR0 == 0);
TIFR0 = 0xff;
}
return 0;
} 漂亮估计我现在的技术还不能“测试学习提高” 先在寒假学习下再买吧 建议把20元快递改为10元快递。。。省下来10元打入版主基金
这样每做一个项目基金可以平衡,而不是光靠网友捐助 cool 很崇拜无机酸 留言预定! Charlieplexing,COOL! 照片更新:
在1号测试板上飞了一只32.768K晶振
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_510643.JPG
(原文件名:20091204A.JPG)
2号测试板,mega48焊在了背面,已通过测试
绿圈中的点代表Pin1的位置,箭头代表12点方向
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_510644.JPG
(原文件名:20091204B.JPG)
2号测试板,mega48焊在了背面,已通过测试
绿圈中的点代表Pin1的位置,箭头代表12点方向
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_510645.JPG
(原文件名:20091204C.JPG)
LED焊接方向
分、秒LED负极向内
小时LED负极向逆时针方向
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_510647.PNG
(原文件名:20091204D.PNG) 关注ing 今天收到了板子,谢谢, 等着我买的led一到就可以开工了。。 怎样购买? 留言,想申请一块PCB,不知道,现在还有没? 如果购买套件的话,楼主,还有吗? to 【72楼】 Clinging ;【73楼】 hczx2005906
PCB及套件发放由本站 yy888(许意义、版主)组织
请参看此帖:(楼主位的最后面写出了申请条件)
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3650875 COOL 希望继续有整套的件~~ 我也要买一套, 这么好的东西不收藏太对不起自己了. 想要套件。。。。什么时候出售套件? 想要一片PCB, 元件我手里都有. 我也要买一套 顶! 打算出套件吗?
看起来很漂亮。 呼唤成品套件 mark mark,漂亮 我终于把它焊好了。。 挺漂亮 mark 我想要套件做一个,什么时候有得卖啊………坐等……… 好看
页:
[1]