?? ds1302.lst
字號:
C51 COMPILER V6.23a DS1302 09/09/2007 15:51:26 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE DS1302
OBJECT MODULE PLACED IN ds1302.OBJ
COMPILER INVOKED BY: e:\my_soft\keil\C51\Bin\c51.exe ds1302.c DB OE SMALL ROM(LARGE) OT(7)
stmt level source
1 //HT1380實時時鐘驅動程序****(改用DS1302)****
2 #include <reg52.h>
3 #include <A102.h>
4 #include <delay.h>
5 #include <Intrins.h>
6 extern unsigned char idata display_buff[COUNT]; //顯示緩沖
7
8 sbit clock_dat=P2^1;
9 sbit clock_clk=P2^2;
10 sbit clock_rst=P2^0;
11
12 sbit a0=ACC^0;
13 sbit a1=ACC^1;
14 sbit a2=ACC^2;
15 sbit a3=ACC^3;
16 sbit a4=ACC^4;
17 sbit a5=ACC^5;
18 sbit a6=ACC^6;
19 sbit a7=ACC^7;
20
21 void ClockOut(unsigned char dd)
22 { ACC=dd;
23 1 clock_dat=a0;clock_clk=1;clock_clk=0;
24 1 clock_dat=a1;clock_clk=1;clock_clk=0;
25 1 clock_dat=a2;clock_clk=1;clock_clk=0;
26 1 clock_dat=a3;clock_clk=1;clock_clk=0;
27 1 clock_dat=a4;clock_clk=1;clock_clk=0;
28 1 clock_dat=a5;clock_clk=1;clock_clk=0;
29 1 clock_dat=a6;clock_clk=1;clock_clk=0;
30 1 clock_dat=a7;clock_clk=1;clock_clk=0;
31 1 }
32 unsigned char ClockIn(void)
33 { clock_dat=1;
34 1 a0=clock_dat;
35 1 clock_clk=1;clock_clk=0;a1=clock_dat;
36 1 clock_clk=1;clock_clk=0;a2=clock_dat;
37 1 clock_clk=1;clock_clk=0;a3=clock_dat;
38 1 clock_clk=1;clock_clk=0;a4=clock_dat;
39 1 clock_clk=1;clock_clk=0;a5=clock_dat;
40 1 clock_clk=1;clock_clk=0;a6=clock_dat;
41 1 clock_clk=1;clock_clk=0;a7=clock_dat;
42 1 return(ACC);
43 1 }
44 unsigned char ReadClock(unsigned char ord)
45 { unsigned int dd=0;
46 1 clock_clk=0;
47 1 clock_rst=0;
48 1 clock_rst=1;
49 1 ClockOut(ord);
50 1 dd=ClockIn();
51 1 clock_rst=0;
52 1 clock_clk=1;
53 1 return(dd);
54 1 }
55 void WriteClock(unsigned char ord,unsigned char dd)
C51 COMPILER V6.23a DS1302 09/09/2007 15:51:26 PAGE 2
56 { clock_clk=0;
57 1 clock_rst=0;
58 1 clock_rst=1;
59 1 ClockOut(ord);
60 1 ClockOut(dd);
61 1 clock_rst=0;
62 1 clock_clk=1;
63 1 }
64
65 void WriteNumber(void)
66 { unsigned char i,j;
67 1 EA=0;
68 1 j=0;
69 1 WriteClock(0x8e,0); //關閉寫保護
70 1
71 1 for(i=2;i<0x0f;i+=2)
72 1 { WriteClock(0xc0|i,display_buff[j++]);
73 2 }
74 1 for(i=2;i<0x0f;i+=2)
75 1 { WriteClock(0xd0|i,display_buff[j++]);
76 2 }
77 1 for(i=2;i<0x0f;i+=2)
78 1 { WriteClock(0xe0|i,display_buff[j++]);
79 2 }
80 1 for(i=2;i<0x0f;i+=2)
81 1 { WriteClock(0xf0|i,display_buff[j++]);
82 2 }
83 1 DelayX50us(50);
84 1 WriteClock(0x8e,0x80); //開啟寫保護*/
85 1 EA=1;
86 1 }
87 void ReadNumber(void)
88 { unsigned char i,j;
89 1 j=0;
90 1 EA=0;
91 1 for(i=3;i<=0x0f;i+=2)
92 1 { display_buff[j]=ReadClock(0xc0|i);
93 2 j++;
94 2 }
95 1 for(i=3;i<=0x0f;i+=2)
96 1 { display_buff[j]=ReadClock(0xd0|i);
97 2 j++;
98 2 }
99 1 for(i=3;i<=0x0f;i+=2)
100 1 { display_buff[j]=ReadClock(0xe0|i);
101 2 j++;
102 2 }
103 1 for(i=3;i<=0x0f;i+=2)
104 1 { display_buff[j]=ReadClock(0xf0|i);
105 2 j++;
106 2 }
107 1 EA=1;
108 1 }
109
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 403 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
C51 COMPILER V6.23a DS1302 09/09/2007 15:51:26 PAGE 3
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 + -