51做的万年历,,,
收拾资料,发现它还躺在某盘内的角落里,,,前年的东西了都,,做出的万年历也在家里用了两个多年头了,,,
http://cache.amobbs.com/bbs_upload782111/files_15/ourdev_447948.jpg
(原文件名:万年历 程序 照片.jpg)
点击此处下载源程序 ourdev_447944.rar(文件大小:157K) (原文件名:万年历 程序C51.rar) C51写的,,万年历的算法是一个网友的,但也记不得名字了.../emotion/em016.gif
点击此处下载原理图PCB,SCH ourdev_447949.rar(文件大小:667K) (原文件名:万年历 程序 电路图PCB,SCH.rar) 看了楼主的原理图,也是用DS1302做的啊
偶自己也做了个,不过跑个24小时就要快几秒,难道就是因为6PF电容,没加啊
不过软件没补偿过,呵呵,自己做着玩的 板凳 大哥...用了两年多...时间都走到哪去了啊... 这也不是现在就拍的照片啊,,,,,,我觉得这点不用解释吧,,, mark CH451好像有点贵啊... 好 不错不错!!楼主强!! 回复【楼主位】xpstudio2003 曹香鹏
-----------------------------------------------------------------------
你就用了四个数码管 上面那些年月日星期你怎么显示的呀 想请教一下 想做好东西DS1302有点苛刻 下载来,学习一下,呵呵 我用 DS12CR887 做,这个自带温度补偿电路 。
之前被叫傻大个,不知道现在么样。 顶 我还有个12C887呢,都忘了从哪拆的了,据说这东西现在也挺贵的?不过1302体积小啊,哎~ 回复【15楼】xiaomage_2000
-----------------------------------------------------------------------
我这有好多12C887,但我不会写程序,可以把原理图和原程序上传参考一下吗 走时准吗? mark *子函数,用于读取数据表中农历月的大月或小月,如果该月为大返回1,为小返回0*/
bit get_moon_day(uchar month_p,uint table_addr)
{
uchar temp;
switch(month_p)
{
case 1 :temp=year_code&0x08;break;
case 2 :temp=year_code&0x04;break;
case 3 :temp=year_code&0x02;break;
case 4 :temp=year_code&0x01;break;
case 5 :temp=year_code&0x80;break;
case 6 :temp=year_code&0x40;break;
case 7 :temp=year_code&0x20;break;
case 8 :temp=year_code&0x10;break;
case 9 :temp=year_code&0x08;break;
case 10:temp=year_code&0x04;break;
case 11:temp=year_code&0x02;break;
case 12:temp=year_code&0x01;break;
case 13:temp=year_code&0x80;break;
}
if(temp==0)
return 0;
else
return 1;
}
为什么table_addre有的加1有的加2有的又不加呢,哪位大虾给我解释下,万分感谢! 哦,搞清楚了,原来是这三个数据中包含的农历闰月位置的变化 家用随便点好了 是不是校时下就ok了 这个厉害{:smile:}{:smile:}{:smile:} 帮顶了,哈哈
页:
[1]