h2feo4 发表于 2009-11-29 21:04:36

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 无机酸
所有的文档资料仅可用于学习研究,如果用于商业用途则必须征得本人同意。

534117403 发表于 2009-11-29 21:05:38

沙发!!!站位

eryunk 发表于 2009-11-29 21:06:33

ding !

zhifeng 发表于 2009-11-29 21:07:59

顶!太好了

cowboy 发表于 2009-11-29 21:10:36

沙发这么快就没了v_v

cowboy 发表于 2009-11-29 21:15:15

很喜欢那红油,和外壳简直是绝配!

h2feo4 发表于 2009-11-29 21:17:02

明天上午第一批PCB和LED将发给版主
我的工作暂告一段落,剩下就看版主和各位了

bigworms 发表于 2009-11-29 21:20:41

mark

kalo 发表于 2009-11-29 21:31:47

漂亮!!

yeyu1234 发表于 2009-11-29 21:39:17

好漂亮 要一套

zhiyuan1106 发表于 2009-11-29 21:51:29

哇塞 超赞!

ajin505 发表于 2009-11-29 22:29:09

不错 很赞 我要订一套

a69161 发表于 2009-11-29 22:29:20

好想要一套啊

JQ_Lin 发表于 2009-11-29 22:42:24

顶无机酸

richey07 发表于 2009-11-29 22:48:02

漂亮!

abuzhu 发表于 2009-11-30 00:03:51

cool!

skoo 发表于 2009-11-30 00:16:07

顶你!

laolu 发表于 2009-11-30 00:22:29

StephenCui 发表于 2009-11-30 04:41:28

漂亮,支持

mcu5i51 发表于 2009-11-30 08:14:52

好漂亮

super373 发表于 2009-11-30 08:20:51

这个太漂亮了!

xaofen 发表于 2009-11-30 08:22:07

shuai

lwy86 发表于 2009-11-30 08:23:48

zhaojun_xf 发表于 2009-11-30 08:31:32

看起来不错。

yemingxp 发表于 2009-11-30 08:40:06

mark

chierchen 发表于 2009-11-30 08:49:29

漂亮~~~

bird07 发表于 2009-11-30 09:01:53

套件套件,自己焊不好哦

super373 发表于 2009-11-30 09:52:45

期待后续板!!!

zhangfuhg 发表于 2009-11-30 10:09:15

很漂亮!!

Yaksa 发表于 2009-11-30 10:14:19

这个也是你用热转印做的?太精细了!

Jason022 发表于 2009-11-30 12:09:45

太帅了!预定2套!!最好带表壳!

h2feo4 发表于 2009-11-30 15:13:22

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

chierchen 发表于 2009-11-30 15:30:42

想要想要~~~

flyingfish 发表于 2009-11-30 17:37:03

哪位能给不懂AVR和MPS430的兄弟整个用51系列的怀表么?

h2feo4 发表于 2009-11-30 17:48:37

to 【35楼】 yy888 许意义
没问题
>> 元件清单已更新到楼主位 <<
==================================================================================
总费用如下:
PCB(工程费160 + 1.3 * 80 = 264)
LED(0.075 * 1500 = 112.5)
快递 22
共计 398.5
请版主验算

0712 发表于 2009-11-30 17:52:37

好漂亮啊。。我预定两套

ggddll 发表于 2009-11-30 18:13:14

牛,真牛!

niba 发表于 2009-11-30 19:25:03

一个一个去打板太麻烦了,又费钱。还是组织下团购吧

gujie111 发表于 2009-11-30 19:49:48

好强 好想要一块哦

h2feo4 发表于 2009-11-30 19:50:44

>> 原理图已更新到楼主位 <<

h2feo4 发表于 2009-11-30 19:55:22

to 【40楼】 yy888 许意义
颜色完全取决于个人爱好,
不过注意蓝紫白管子压降较高,使用锂金属电池(3.0V)的朋友慎用(我没测试过),使用锂离子电池(3.7V)的话倒是关系不大
我个人采用的廉价方案:
红秒,黄分,绿时,限流电阻为200R

h2feo4 发表于 2009-11-30 20:24:58

to 【45楼】 yy888 许意义
每套只配60只LED估计不可靠,要焊废一个就惨了,就算再重买一个装上,亮度也不一定一致
考虑一般网友的焊接水平,建议分、秒LED各提供至少4只备用管,小时LED提供至少1只备用管

另,我寄过去的LED数量没有仔细清点,只是大约1.5K(保守估计),也可能有1.6K

如果套件包含电池是不是可能不方便快递?

525133174 发表于 2009-11-30 20:35:16

密切关注中。。。

h2feo4 发表于 2009-11-30 20:50:35

建议版主还是把32.768K晶振算进套件里面吧(因为版主出套件是为了方便一部分购买散件不方便的网友),如果没这玩意就不可能实现低功耗、高精度,怀表就没有实用性。配一个普通圆柱形直插表振就可以了
晶振电容就算不加应该也能振起来,是否配电容可以再讨论

另外,PCB的直径貌似比怀表略大0.1mm左右,需要特定角度才能塞进去(有时候想拿出来有点费劲),也可以用砂纸将PCB稍稍打磨一下,即可顺利放入和取出。

zhiyuan1106 发表于 2009-11-30 21:00:22

能订2只再要一块空PCB么?./emotion/em025.gif

huangqi412 发表于 2009-11-30 21:17:10

哇,口水,无机酸在长沙? 能不能直接和你订一个?

wangzujin38 发表于 2009-11-30 21:31:55

太有才了!

h2feo4 发表于 2009-11-30 22:37:53

to 【52楼】 yy888 许意义
明天提供安装32.768K晶振的照片,及测试程序

liu969610245 发表于 2009-11-30 22:46:45

好的,标记

534117403 发表于 2009-11-30 22:46:56

预定一套套件和一块PCB可以吗?谢谢!!主要怕弄坏了。。。

kele2009 发表于 2009-11-30 22:53:13

漂亮!

Jason022 发表于 2009-12-1 10:13:25

哈哈 终于等到了 申请两个套件!

h2feo4 发表于 2009-12-1 17:28:19

改用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;
}

kclc 发表于 2009-12-1 20:17:33

漂亮估计我现在的技术还不能“测试学习提高” 先在寒假学习下再买吧

zwhold 发表于 2009-12-2 23:26:07

建议把20元快递改为10元快递。。。省下来10元打入版主基金
这样每做一个项目基金可以平衡,而不是光靠网友捐助

reeou 发表于 2009-12-3 23:25:53

cool

zyc10 发表于 2009-12-4 10:51:26

很崇拜无机酸

sz_ehome 发表于 2009-12-4 10:56:21

留言预定!

flyingfish 发表于 2009-12-4 11:03:52

Charlieplexing,COOL!

h2feo4 发表于 2009-12-4 12:43:28

照片更新:

在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)

zoto 发表于 2009-12-4 13:24:15

关注ing

beer 发表于 2009-12-7 21:56:15

今天收到了板子,谢谢, 等着我买的led一到就可以开工了。。

Clinging 发表于 2009-12-8 15:09:43

怎样购买?

hczx2005906 发表于 2009-12-8 16:18:25

留言,想申请一块PCB,不知道,现在还有没? 如果购买套件的话,楼主,还有吗?

h2feo4 发表于 2009-12-8 16:21:57

to 【72楼】 Clinging ;【73楼】 hczx2005906
PCB及套件发放由本站 yy888(许意义、版主)组织
请参看此帖:(楼主位的最后面写出了申请条件)
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3650875

shanyan 发表于 2009-12-8 20:04:41

COOL

liu969610245 发表于 2009-12-9 13:07:17

希望继续有整套的件~~

lvhaian 发表于 2009-12-9 13:36:39

我也要买一套, 这么好的东西不收藏太对不起自己了.

wear778899 发表于 2009-12-9 13:39:29

想要套件。。。。什么时候出售套件?

jeffryhao 发表于 2009-12-10 22:19:36

想要一片PCB, 元件我手里都有.

cumt20 发表于 2009-12-14 21:26:10

我也要买一套

sunmy 发表于 2009-12-14 22:35:10

顶!

Excellence 发表于 2009-12-18 16:07:05

打算出套件吗?
看起来很漂亮。

richey07 发表于 2009-12-25 10:40:13

呼唤成品套件

micropower 发表于 2009-12-25 11:23:56

mark

mcu_mouse 发表于 2011-4-20 20:05:52

mark,漂亮

beer 发表于 2011-6-9 11:57:27

我终于把它焊好了。。

fskjhm 发表于 2011-6-9 12:35:22

挺漂亮

wenjin0386 发表于 2011-9-30 23:28:46

mark

shuiluo 发表于 2011-11-2 11:08:19

我想要套件做一个,什么时候有得卖啊………坐等………

chenguanghua 发表于 2012-1-30 09:10:07

好看
页: [1]
查看完整版本: h2feo4版怀表,正式版1.0出炉