?? ds12887.lst
字號:
C51 COMPILER V8.02 DS12887 05/04/2002 11:07:14 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE DS12887
OBJECT MODULE PLACED IN DS12887.OBJ
COMPILER INVOKED BY: D:\keil\新建文件夾\C51\BIN\C51.EXE DS12887.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include<all.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5
6 /*定義DS12CR887數據線--------------------------------------------------------*/
7 //sbit DS_CS = P3^4; //片選 直接接地
8 sbit DS_AS = P3^5;//地址選通
9 sbit DS_RW = P3^6;
10 sbit DS_DS = P3^7;
11 #define Ds_Bus P0 //DS12CR887數據總線
12
13 //uchar p[7]=0x00; //定義時間數組為全局變量
14
15
16 /*DS12CR887驅動程序----------------------------------------------------------*/
17
18 //往DS12CR887寫數據函數
19 void ds_write(uchar add,uchar date)
20 {
21 1 DS_RW=0; // 寫地址
22 1 DS_AS=1;
23 1 Ds_Bus=add;
24 1 DS_AS=0;
25 1
26 1 DS_DS=1;
27 1 Ds_Bus=date; //寫數據,數據由RW上升沿鎖存
28 1 DS_DS=0; //DS下降沿鎖存數據
29 1
30 1 }
31
32
33 //讀取DS12CR887的數據
34 uchar ds_read(uchar add)
35 { uchar z;
36 1
37 1
38 1 DS_RW=0; // 寫地址
39 1 DS_AS=1;
40 1 Ds_Bus=add;
41 1 DS_AS=0;
42 1
43 1 DS_RW=1; //讀數據
44 1 DS_DS=1;
45 1 Ds_Bus=0xff;
46 1 z=Ds_Bus;
47 1 DS_DS=0;
48 1 return z;
49 1 }
50
51
52
53 //DS12CR887初始化
54 void ds_int()
55 {
C51 COMPILER V8.02 DS12887 05/04/2002 11:07:14 PAGE 2
56 1 uchar i;
57 1 i=ds_read(0x0d);
58 1 ds_write(0x0a,0x70);
59 1 ds_write(0x0b,0xa2); //DS12CR887寄存器A功能設置,開啟時鐘振蕩器
60 1
61 1 ds_write(0x0b,0x06);
62 1 ds_write(0x0a,0x20);
63 1 i=ds_read(0x0c); //讀c后,c清零
64 1 }
65
66 /****************************/
67 //日期和星期顯示
68 /***************************/
69 void day_time_display()
70 { uchar p[7]={0,0,0,0,0,0,0};
71 1 p[0]=ds_read(0x00);
72 1 p[1]=ds_read(0x02);
73 1 p[2]=ds_read(0x04);
74 1 p[3]=ds_read(0x06);
75 1 p[4]=ds_read(0x07);
76 1 p[5]=ds_read(0x08);
77 1 p[6]=ds_read(0x09);
78 1
79 1 LCD_write_shu(0,0,2); //2
80 1 LCD_write_shu(1,0,0); //0
81 1 LCD_write_shu(2,0,p[6]/10); //年十位
82 1 LCD_write_shu(3,0,p[6]%10); //年個位
83 1 // _____________
84 1 LCD_write_shu(4,0,12); // / |2009/04/02 |
85 1 LCD_write_shu(5,0,p[5]/10); //月十位 | 13:06:25 |
86 1 LCD_write_shu(6,0,p[5]%10); //月個位 |星期四 17.2℃|
87 1 LCD_write_shu(7,0,12); // / |_____________|
88 1 LCD_write_shu(8,0,p[4]/10); //日十位
89 1 LCD_write_shu(9,0,p[4]%10); //日個位
90 1
91 1 LCD_write_hanzi(0,4,11); //星
92 1 LCD_write_hanzi(1,4,12); //期
93 1 LCD_write_hanzi(2,4,p[3]); //×
94 1
95 1
96 1
97 1 LCD_write_shu(0,2,13); //寫空格,消除干擾
98 1 LCD_write_shu(1,2,p[2]/10); //時十位
99 1 LCD_write_shu(2,2,p[2]%10); //時個位
100 1 LCD_write_shu(3,2,10); //:
101 1 LCD_write_shu(4,2,p[1]/10); //分十位
102 1 LCD_write_shu(5,2,p[1]%10); //分個位
103 1 LCD_write_shu(6,2,10); //:
104 1 LCD_write_shu(7,2,p[0]/10); //秒十位
105 1 LCD_write_shu(8,2,p[0]%10); //秒個位
106 1 LCD_write_shu(9,2,13); //寫空格,消除干擾
107 1 }
108
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 407 ----
CONSTANT SIZE = 7 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 7
IDATA SIZE = ---- ----
C51 COMPILER V8.02 DS12887 05/04/2002 11:07:14 PAGE 3
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 + -