這好像是ahshmj版主的大作 我從別處轉來的.
我不想賺什么電阻——這東西對我來說也沒什么用。
也不需要回復無聊的帖子以后再看,浪費時間、資源。隨便看。
只要對朋友們有幫助,比什么都好。
上午看里本論壇一個帖子,大概是說說怎么學的單片機?
我忘記是怎么學的單片機,也不知道什么叫做“學會”,也許現在還不算會。
我前段時間想做一個電子鐘,全部自己寫程序,按自己的思路寫。作好了以后,
又改稱串口的(沒有原因,就是看網上這樣的東西少,加上使用的口線少,便于連接。一共4根線,2根電源,1根時鐘、1根數據)
又想加上日歷,公歷的也加上了,也有星期,
又想加上紀念日,也成了。
進一步,又加了上農歷轉換,——有點費腦筋,但是也于昨天調試成了。
在進一步,又添上農歷干、支紀年和生肖,
還有農歷節日(可以屏蔽閏月的“節日”,可以正確顯示臘月二十九的除夕)。。。
想再加上24節氣,可是12864沒地方寫了,想分時顯示,但是也不滿意,準備換一個大一點的。
以上程序從2000年測試到2049年,無誤。
——以上的程序全是自己寫的,匯編的4k多,完全是原創,和別人的絕不雷同。
——因為想讀懂別人的、沒有較詳細注釋的4k以上的匯編程序,比自己寫還難。。ㄒ驗樾枰e人的思路)。
大概學習就是這樣循序漸進的吧?從小程序到一點點加大,一個個模塊堆積木一樣的搭起來。
化整為零,模塊化有許多好處。一次做完一個小的項目,思路順暢,一氣呵成。免得再次坐下來時,有的從頭整理思路!苍S對小程序還不明顯,對稍大一些的程序影響就大了。
“;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)
2013-6-19 03:32 上傳
點擊文件名下載附件
自編農歷節日串口OK.rar
(74.18 KB, 下載次數: 216)
2013-6-19 03:32 上傳
點擊文件名下載附件
|