本人剛開始學(xué)習(xí)單片機,手里有一片使用過的DS12C887芯片,想學(xué)習(xí)制作一個萬年歷,下載了別人的代碼在學(xué)習(xí)中了解到,首次操作12C887時,寄存器要初始化,初始化完成后相應(yīng)的代碼要刪除。代碼中有兩段是關(guān)于12C887初始化,有一段起點和結(jié)束注解的很清楚,整段刪除就可以,還有一段注解不是很清楚,不知道哪里是結(jié)束點。請高手給予指點一二。謝謝啦! 下面是標注清楚的一段: /* 首次操作12C887時,寄存器初始化 配置12C887當前時間(20190716-10:54:07) 配置12C887鬧鐘 */ void set_time(void) { write_ds(0,7); write_ds(1,0); write_ds(2,54); write_ds(3,0); write_ds(4,10); write_ds(5,0); write_ds(6,3); write_ds(7,16); write_ds(8,7); write_ds(9,19); } /*首次上電設(shè)置DS12C887時使用,以后不必再調(diào)用*/ 下面這一段注解不是很清楚,不知道刪除到哪里結(jié)束:,還有就是初始化代碼都刪除了,后面還有一句“init();調(diào)用初始化函數(shù)”怎么辦? void set_time() //首次操作12c887時給寄存器初始化,完成后,要把這一段用給屏蔽起來 { write_ds(0,0); //根據(jù)寄存器A,相當于 所有的位置,全部顯示00。 write_ds(1,0); write_ds(2,0); write_ds(3,0); write_ds(4,0); write_ds(5,0); write_ds(6,0); write_ds(7,0); write_ds(8,0); write_ds(9,0); } void read_alarm() //讀取鬧鐘值 { amiao=read_ds(1); 根據(jù)寄存器A,分別把鬧鐘值讀出來,并且賦值給時分秒 afen=read_ds(3); ashi=read_ds(5); } void main() //主程序 { init(); //調(diào)用初始化函數(shù) while(1) //為真不斷循環(huán),等待鬧鐘中斷 { 還有下面這一段是不是只刪除打開振蕩器這一句代碼就可以了? write_ds(0x0A,0x20); //首次使用ds12c887時使用,以后不必在寫。打開振蕩器 write_ds(0x0B,0x26); // 設(shè)置24小時模式,數(shù)據(jù)二進制格式,開啟鬧鐘中斷。 //0A,0B表示地址,20,26翻譯成二進制是00100000,00100110對應(yīng)著對著寄存器A和B從D7-D0 set_time(); //設(shè)置默認上電時間
|