📄 m_ds1302.lst
字号:
C51 COMPILER V7.20 M_DS1302 06/03/2005 17:25:52 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE M_DS1302
OBJECT MODULE PLACED IN m_ds1302.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE m_ds1302.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /**************************************************************************
2 YB-51-B DS1302的时钟演示程序
3 来源: 郑州远博科技 王兴民
4 0371-66949037 0371-67256036 13949105551
5 ***************************************************************************/
6 #include <config.h>
7
8 data Uchar yjdispbuff[32]; //液晶屏显示缓冲区
9 data Uchar clockdata2[7]; //时钟数据缓冲区
10 data Uchar *clockdatain;
11 data Uchar *clockdataout;
12 data Uchar cmddata;
13 data Uchar indata,outdata;
14 data Uchar houtdatal,houtdatah,moutdatal,moutdatah,soutdatal,soutdatah; //时、分、秒
15 data Uchar noutdatal,noutdatah,youtdatal,youtdatah,routdatal,routdatah; //年、月、日
16 data Uchar woutdatal, woutdatah; //星期
17 void main() {
18 1 Uchar j;
19 1 for(j=0;j<32;j++) {
20 2 yjdispbuff[j]=32;
21 2 }
22 1 Delayms(100);
23 1 Lcdreset();
24 1 cmddata=0x8e;
25 1 indata=0x00;
26 1 v_W1302(cmddata, indata); //init
27 1 cmddata=0x80;
28 1 indata=0x33;
29 1 v_W1302(cmddata, indata);//秒
30 1 cmddata=0x82;
31 1 indata=0x00;
32 1 v_W1302(cmddata, indata);//分
33 1 cmddata=0x84;
34 1 indata=0x00;
35 1 v_W1302(cmddata, indata);//小时
36 1 cmddata=0x86;
37 1 indata=0x31;
38 1 v_W1302(cmddata, indata);//日
39 1 cmddata=0x88;
40 1 indata=0x03;
41 1 v_W1302(cmddata, indata);//月
42 1 cmddata=0x8A;
43 1 indata=0x03;
44 1 v_W1302(cmddata, indata);//星期
45 1 cmddata=0x8C;
46 1 indata=0x05;
47 1 v_W1302(cmddata, indata);//年
48 1 while(1) {
49 2 clockdataout=&clockdata2;
50 2 v_BurstR1302T(clockdataout);
51 2 soutdatal=clockdata2[0]&0x0f;
52 2 soutdatah=(clockdata2[0]>>4)&0x07;
53 2 moutdatal=clockdata2[1]&0x0f;
54 2 moutdatah=(clockdata2[1]>>4)&0x07;
55 2 houtdatal=clockdata2[2]&0x0f;
C51 COMPILER V7.20 M_DS1302 06/03/2005 17:25:52 PAGE 2
56 2 houtdatah=(clockdata2[2]>>4)&0x07;
57 2 routdatal=clockdata2[3]&0x0f;
58 2 routdatah=(clockdata2[3]>>4)&0x07;
59 2 youtdatal=clockdata2[4]&0x0f;
60 2 youtdatah=(clockdata2[4]>>4)&0x07;
61 2 woutdatal=clockdata2[5]&0x0f;
62 2 woutdatah=(clockdata2[5]>>4)&0x07;
63 2 noutdatal=clockdata2[6]&0x0f;
64 2 noutdatah=(clockdata2[6]>>4)&0x07;
65 2 yjdispbuff[0]=50; //50代表数字‘2’的ASC码,液晶屏是按照ASC码来显示字符的
66 2 yjdispbuff[1]=48; //48代表数字‘0’的ASC码
67 2 yjdispbuff[2]=noutdatah+48; //48表示对应数字的实际值和相对应的ASC码的偏移量
68 2 yjdispbuff[3]=noutdatal+48;
69 2 yjdispbuff[5]=youtdatah+48;
70 2 yjdispbuff[6]=youtdatal+48;
71 2 yjdispbuff[8]=routdatah+48;
72 2 yjdispbuff[9]=routdatal+48;
73 2 yjdispbuff[13]=woutdatal+48;
74 2 yjdispbuff[17]=houtdatah+48;
75 2 yjdispbuff[18]=houtdatal+48;
76 2 yjdispbuff[20]=moutdatah+48;
77 2 yjdispbuff[21]=moutdatal+48;
78 2 yjdispbuff[23]=soutdatah+48;
79 2 yjdispbuff[24]=soutdatal+48;
80 2 yjdispbuff[4]=45; //‘-’的ASC码
81 2 yjdispbuff[7]=45;
82 2 yjdispbuff[10]=32; //空格的ASC码
83 2 yjdispbuff[11]=32;
84 2 yjdispbuff[12]=32;
85 2 yjdispbuff[14]=32;
86 2 yjdispbuff[15]=32;
87 2 yjdispbuff[16]=32;
88 2 yjdispbuff[19]=45;
89 2 yjdispbuff[22]=45;
90 2 for(j=0;j<32;j++)
91 2 {
92 3 Disponechar(0,j+2,yjdispbuff[j]);
93 3
94 3 }
95 2 }
96 1 }
97
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 381 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 62 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -