这好像是ahshmj版主的大作 我从别处转来的.
我不想赚什么电阻——这东西对我来说也没什么用。
也不需要回复无聊的帖子以后再看,浪费时间、资源。随便看。
只要对朋友们有帮助,比什么都好。
上午看里本论坛一个帖子,大概是说说怎么学的单片机?
我忘记是怎么学的单片机,也不知道什么叫做“学会”,也许现在还不算会。
我前段时间想做一个电子钟,全部自己写程序,按自己的思路写。作好了以后,
又改称串口的(没有原因,就是看网上这样的东西少,加上使用的口线少,便于连接。一共4根线,2根电源,1根时钟、1根数据)
又想加上日历,公历的也加上了,也有星期,
又想加上纪念日,也成了。
进一步,又加了上农历转换,——有点费脑筋,但是也于昨天调试成了。
在进一步,又添上农历干、支纪年和生肖,
还有农历节日(可以屏蔽闰月的“节日”,可以正确显示腊月二十九的除夕)。。。
想再加上24节气,可是12864没地方写了,想分时显示,但是也不满意,准备换一个大一点的。
以上程序从2000年测试到2049年,无误。
——以上的程序全是自己写的,汇编的4k多,完全是原创,和别人的绝不雷同。
——因为想读懂别人的、没有较详细注释的4k以上的汇编程序,比自己写还难!!(因为需要揣摩别人的思路)。
大概学习就是这样循序渐进的吧?从小程序到一点点加大,一个个模块堆积木一样的搭起来。
化整为零,模块化有许多好处。一次做完一个小的项目,思路顺畅,一气呵成。免得再次坐下来时,有的从头整理思路。——也许对小程序还不明显,对稍大一些的程序影响就大了。
“;1.这个程序是串口通讯,和网上其他的不一样,比较实用,占用机器时间少。
;2.纪念日程序简单,添加容易,续上纪念日的内容,然后在对应的日期
; 填上编号即可。方法别出心裁。
;3.农历的转换也很新颖,网上现有的汇编的只找到一款,思路大不相同。
;4.网上的C语言的也很少,而且有些不准,比如腊月29和腊月30除夕的判别
;5.简练,尽量简化,减少语句。程序中多采用模块式,可读性强。
;6.为了程序简练、易读,农历信息使用了4个字节,从2000年开始,到2100年。
; 1901年到2000年的数据表中保留了,如果需要可以使用。
;7.农历节日,排除了闰月,有判断除夕是29或30的功能
;8.加上了足够详细的注释,便于阅读、理解和引用。
;9.由于12864已经写满,所以24节气程序写好后,没有添加。
; 准备换一个大的后再加。
;10.农历纪念日可以合并到一块儿,序号加公历纪念日最后一行
; 的行号,把改后的编号填入农历编号表即可
;为了测试,可以改动定时器初装值、秒20次中断、最大值表
;本程序4019(1013H)个字节,所以如果使用89s51类,4000字节的MCU时,
;可删去最5年的农历数据,减少几个字节即可。
;最后修正日期:2009年12月22日23:02 ,从2000年开始到2049年;测试核对无误。”
最近拿上来给大家看看。不知道达到这样算不算入门了?
原来编制程序时,使用的《万年历》有误,今天刚刚发现。2012年3月22日对应的应是农历3月1日,由于原万年历把2月份印成大月,4月份印成小月。
使用时,请把“TAB_NO_SHU: ”中的2012年数据更正一下,把这一行替换掉“ DB 0AEH, 0A8H, 004H, 088H ;2012(原数据表第一字节是0BAH,错的)”(不要引号),抱歉!!
汇编语言程序:
自编农历串口OK.rar
(74.8 KB, 下载次数: 241)
自编农历节日串口OK.rar
(74.18 KB, 下载次数: 216)
|