历史上的今天
今天是:2025年06月28日(星期六)
2020年06月28日 | STM8 PCF8563时钟芯片子程序
2020-06-28 来源:eefocus
软件设计
/*********************************************************************
目 的: 建立PCF8563操作库
目标系统: 基于STM8单片机
应用软件: Cosmic CxSTM8
*********************************************************************/
#include //器件地址: #ifndef WD_DADR #define WD_DADR 0xA2 //write device-address #endif #ifndef RD_DADR #define RD_DADR 0xA3 //read device-address #endif #define CTRL_BUF1 0x00 #define CTRL_BUF2 0x01 #define SECOND_DATA_BUF 0x02 #define MINUTE_DATA_BUF 0x03 #define HOUR_DATA_BUF 0x04 #define DAY_DATA_BUF 0x05 #define WEEK_DATA_BUF 0x06 #define MONTH_DATA_BUF 0x07 #define YEAR_DATA_BUF 0x08 #define MINUTE_AE_BUF 0x09 #define HOUR_AE_BUF 0x0A #define DAY_AE_BUF 0x0B #define WEEK_AE_BUF 0x0C #define CLK_FRQ_BUF 0x0D #define TIMER_CTRL_BUF 0x0E #define COUNT_VAL_BUF 0x0F //changeIntToHex(33),return 0x33 //传参必须为 unsigned 类型 #define changeIntToHex(dec) ( ( ((dec)/10) <<4 ) + ((dec)%10) ) //调用changeHexToInt(0x33),return 33 //传参必须为 unsigned 类型 #define changeHexToInt(hex) ( ( ((hex)>>4) *10 ) + ((hex)%16) ) void WriteAByte(u8 wordAdr,u8 dat) { I2C_Start(); I2C_SendDAdr(WD_DADR); I2C_SendDat(wordAdr); I2C_SendDat(dat); I2C_stop(); } void PCF8563_getTime(u8 *buf) { u8 i; I2C_Start(); I2C_SendDAdr(WD_DADR); I2C_SendDat(SECOND_DATA_BUF); I2C_Start(); I2C_SendDAdr(RD_DADR); for(i=0;i<2;i++) { buf[i]=I2C_RcvDat(); } I2C_NAck(); buf[i]=I2C_RcvDat(); I2C_stop(); I2C_Ack(); buf[0]=buf[0]&0x7f; //get second data buf[1]=buf[1]&0x7f; //get minute data buf[2]=buf[2]&0x3f; //get hour data buf[0]=changeHexToInt(buf[0]); buf[1]=changeHexToInt(buf[1]); buf[2]=changeHexToInt(buf[2]); } void PCF8563_setTime(u8 hour,u8 minute,u8 second) { hour=changeIntToHex(hour); //将数据的Dex格式转换为Hex格式 minute=changeIntToHex(minute); second=changeIntToHex(second); WriteAByte(HOUR_DATA_BUF,hour); WriteAByte(MINUTE_DATA_BUF,minute); WriteAByte(SECOND_DATA_BUF,second); } void PCF8563_init(u8 hour,u8 mintue,u8 second) { I2C_Init(); WriteAByte(CTRL_BUF1,0x00); //basic setting WriteAByte(CTRL_BUF2,0x00); PCF8563_setTime(hour,mintue,second); }
史海拾趣
|
我记得在做ARM9 S3C2410/S3C2440的BSP时,生成是NK.BIN和NK.NB0. 但现在做ARM11 tcc8900时,生成是NK.ROM. 哪位大哥能解释下吗?… 查看全部问答> |
|
***** COMPILING source\\pp_main.c MS-DOS C51 COMPILER V4.10 - Serial Number 83205779 Copyright (c) Franklin Software, Inc. 1991 - 1993 *** ERROR 318 IN LINE 0: can\'t open file \'SOURCE\\PP_MAIN.C\' C51 COMPILATION COMPLETE.&n ...… 查看全部问答> |
|
USB2.0已成为连接计算机与外部设备最流行的工业标准,确保产品能通过USB-IF组织规定的USB2.0一致性测试验证则是电子工程师非常关注的工作,本文介绍了力科公司的QualiPHY软件如何帮助工程师快速进行USB2.0产品一致性测试。… 查看全部问答> |
|
专利工程师 岗位职责: 1、进行专利技术检索,对研发人员提供专利咨询和指导。 2、对公司研发技术进行专利挖掘并对专利布局进行分析。 3、专利侵权分析,协助律师处理专利诉讼等专利法律事宜。 4、辅助技术团队进行专利编写, ...… 查看全部问答> |




