本人刚开始学习单片机,手里有一片使用过的DS12C887芯片,想学习制作一个万年历,下载了别人的代码在学习中了解到,首次操作12C887时,寄存器要初始化,初始化完成后相应的代码要删除。代码中有两段是关于12C887初始化,有一段起点和结束注解的很清楚,整段删除就可以,还有一段注解不是很清楚,不知道哪里是结束点。请高手给予指点一二。谢谢啦! 下面是标注清楚的一段: /* 首次操作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); } /*首次上电设置DS12C887时使用,以后不必再调用*/ 下面这一段注解不是很清楚,不知道删除到哪里结束:,还有就是初始化代码都删除了,后面还有一句“init();调用初始化函数”怎么办? void set_time() //首次操作12c887时给寄存器初始化,完成后,要把这一段用给屏蔽起来 { write_ds(0,0); //根据寄存器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); 根据寄存器A,分别把闹钟值读出来,并且赋值给时分秒 afen=read_ds(3); ashi=read_ds(5); } void main() //主程序 { init(); //调用初始化函数 while(1) //为真不断循环,等待闹钟中断 { 还有下面这一段是不是只删除打开振荡器这一句代码就可以了? write_ds(0x0A,0x20); //首次使用ds12c887时使用,以后不必在写。打开振荡器 write_ds(0x0B,0x26); // 设置24小时模式,数据二进制格式,开启闹钟中断。 //0A,0B表示地址,20,26翻译成二进制是00100000,00100110对应着对着寄存器A和B从D7-D0 set_time(); //设置默认上电时间
|