No.58155 作者:baolqkun 邮件:benny79@126.com ID:13770 登陆:32次 QQ:366467623 文章数:207篇 最后登陆IP:219.239.44.233 最后登陆:2008/3/21 17:09:31 注册:2003/7/21 17:01:52 财富:708 发帖时间:2004/7/14 16:58:24 发贴者IP:202.106.103.225 标题:baolqkun:pcf8563的一个小问题,希望能得到答案,谢谢 摘要:No.58155pcf8563的一个小问题,希望能得到答案,谢谢 我现在用PCF8563, 程序有点问题 程序如下 MINU DATA 30H ;秒寄存器 SECO DATA 31H ;分寄存器 HOU DATA 32H ;时寄存器 DAY DATA 33H ;日寄存器 WEEK DATA 34H ;周寄存器 MONTH DATA 35H ;月寄存器 YEAR DATA 36H ;年寄存器 SLA DATA 37H ;37H为被控器的地址 NUMBYT DATA 38H ;38H为数据字节计数器 MRT DATA 40H ;接收数据缓冲区首地址 MTD DATA 50H ;发送数据缓冲区首地址 BITCNT DATA 39h ; bit counter for I2C routines SLAVEADD DATA 3Ah ; slave address for I2C routines INPUT DATA 3Bh ; data recieved from the slave OUTPUT DATA 3Ch ; data to be transmitted to slave NOACK BIT 00h ; I2C no acknowledge flag ;①PCF8563定时器工作模式 PCFINT: MOV 51H,#81H ;设置PCF8563的0EH为81H,启动定时器,定时器频率64Hz MOV 52H,#64 ;设置PCF8563的0FH为64,定时器倒计数值为64 MOV MTD,#0EH ;定时器控制寄存器字节首地址 MOV NUMBYT,#3 ;写字节 MOV SLA,#0A2H ;取写器件地址 LCALL WRNBYT ;写8563 ;以上配置完成后,PCF8563的INT脚产生周期为1s,脉冲宽度(低电平)约为15ms的脉冲中断信号。 ;②PCF8563当前时间设定子程序如下: PCFWR: MOV 51H,#00H ;启动时钟 MOV 52H,#11H ;定时器为中断模式,脉冲形式 MOV 53H,MINU ;将秒至年的时间写入发送缓冲区 MOV 54H,SECO MOV 55H,HOU MOV 56H,DAY MOV 57H,WEEK MOV 58H,MONTH MOV 59H,YEAR MOV SLA,#0A2H ;取写器件地址 MOV NUMBYT,#10 ;写字节数 MOV MTD,#00H ;写入8563寄存器首地址为00H LCALL WRNBYT ;写入8563 RET ;③读出时钟芯片当前值子程序设计 PCFRD: MOV MTD,#02H ;读时钟寄存器首字节地址02H MOV SLA,#0A2H ;取写器件地址 MOV NUMBYT,#1 ;写字节数 LCALL WRNBYT ;写8563 MOV SLA,#0A3H ;取读器件地址 MOV NUMBYT,#7 ;读七个时钟信息 LCALL RDNBYT ;读取时间并放入缓冲区 MOV A,40H ;取滗字节 ANL A,#7FH ;屏蔽无效位 MOV MINU,A ;送秒寄存器 MOV A,41H ;取分字节 ANL A,#7EH ;屏蔽无效位 MOV MINU,A ;送分寄存器 MOV A,42H ;取小时字节 ANL A,#3FH ;屏蔽无效位 MOV HOU,A ;送时寄存器 MOV A,43H ;取天字节 ANL A,#3FH ;屏蔽无效位 MOV DAY,A ;送天寄存器 MOV A,44H ;取星期字节 ANL A,#07H ;屏蔽无效位 MOV WEEK,A ;送星期寄存器 MOV A,45H ;取月字节 ANL A,#1FH ;屏蔽无效位 MOV MONTH,A ;送月寄存器 RET ;系统程序流程如图4所示,中断服务程序如5所示。 ; Send 8-bits in ACC to the slav ......
>>返回讨论的主题
|