12887.lst
来自「数据采集系统的好参考资料,高精度的传感器采集系统」· LST 代码 · 共 76 行
LST
76 行
C51 COMPILER V7.50 12887 09/13/2006 09:30:06 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 12887
OBJECT MODULE PLACED IN 12887.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12887.C BROWSE DEBUG OBJECTEXTEND
line level source
1 //-------------------------------------------------------------------
2 //12887驱动程序,程序定义p2.6作为芯片的片选,根据实际情况可进行修改
3 //程序与外部的接口是指针变量dt,可有调用程序提供
4 //-------------------------------------------------------------------
5 #include"absacc.h"
6 #define mca XBYTE[0xbf0a]
7 #define mcb XBYTE[0xbf0b]
8 #define mcc XBYTE[0xbf0c]
9 #define mcd XBYTE[0xbf0d]
10 unsigned char xdata *addr=0xbf00; //定义addr为基地址指针
11 unsigned char bdata buf;
12 sbit uip=buf^7;
13
14 unsigned char at[6]={6,9,7,4,2,0}; //时标寄存器地址缓冲区,依次为年月日时分秒
15 //----------------------------------------------------------------------------
16 //函数:void init_12887(void)
17 //功能:12887初始化函数
18 //----------------------------------------------------------------------------
19 void DS12887_init(void)
20 {
21 1 mca=0x2f; //时钟频率为32.768kHz,中断周期500ms
22 1 buf=mcc; //读寄存器C,清零中断请求标志
23 1 buf=mcd; //读寄存器D,使VRT=1,数据有效
24 1 mcb=0x76; //允许中断,时标为二进制码,12小时方式
25 1 }
26 //-------------------------------------------------------------------------
27 //函数:void Write_12887(unsigned char *dt)
28 //功能:12887写数据函数
29 //参数:时间缓冲区
30 //--------------------------------------------------------------------------
31 void Write_12887(unsigned char *dt)
32 {
33 1 unsigned char i;
34 1 mcb|=0x80; //写禁止12887命令,b寄存器最高位置1
35 1 for(i=0;i<6;i++)
36 1 *(addr+at[i])=*(dt+i);
37 1 mcb&=0x7f; //写允许12887命令使其工作,b寄存器最高位置0
38 1 }
39 //--------------------------------------------------------------------------
40 //函数:void Read_12887(unsigned char *dt)
41 //功能:12887读数据函数
42 //参数:数据读入时间缓冲区
43 //---------------------------------------------------------------------
44 void Read_12887(unsigned char *dt)
45 {
46 1 unsigned char i;
47 1 do{buf=mca;}while(uip); //检测芯片是否处在更新周期阶段
48 1 for(i=0;i<6;i++)
49 1 *(dt+i)=*(addr+at[i]);
50 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 138 ----
CONSTANT SIZE = ---- ----
C51 COMPILER V7.50 12887 09/13/2006 09:30:06 PAGE 2
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 7
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?