📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 04/25/2007 23:21:01 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "DS1302.h"
2 #include <AT89X51.H>
3 #include "intrins.h"
4
5 sbit led = P2^0;
6
7 #define uchar unsigned char
8 #define uint unsigned int
9 typedef unsigned char BYTE;
10 typedef unsigned char byte;
11 typedef unsigned int word;
12
13 void int_0(); //外部中断0
14 ////////////////////////////////////////
15 ///////////////////////////////////////
16 sbit CS = P1^0;
17 sbit SK = P1^1;
18 sbit DI = P1^5; /* 注意 DI/DO 是连在一起的 */
19 sbit DO = P1^5;
20
21 void WriteEnabled()
22 {
23 1 bit tp;
24 1 BYTE jj;
25 1
26 1 CS=0;
27 1 SK=0;
28 1 DI=0;
29 1 CS=1;
30 1
31 1 DI=1; SK=1; DI=0; SK=0; // START
32 1 DI=0; SK=1; DI=0; SK=0;
33 1 DI=0; SK=1; DI=0; SK=0;
34 1 DI=1; SK=1; DI=0; SK=0;
35 1 DI=1; SK=1; DI=0; SK=0;
36 1
37 1 for(jj=1;jj<=5;jj++) //skh
38 1 {
39 2 tp=0;
40 2 DI=0x00;
41 2 SK=1;
42 2 DI=0;
43 2 SK=0;
44 2 }
45 1 CS=0;
46 1 }
47 void WriteChar(BYTE addr, BYTE value)
48 {
49 1 BYTE i;
50 1 CS = 1;
51 1
52 1 SK=0; DI=1; _nop_(); SK=1;
53 1 SK=0; DI=0; _nop_(); SK=1;
54 1 SK=0; DI=1; _nop_(); SK=1;
55 1 SK=0;
C51 COMPILER V7.06 MAIN 04/25/2007 23:21:01 PAGE 2
56 1
57 1 for( i=0;i<7;i++ )
58 1 {
59 2 SK=0;
60 2 DI = (addr & 0x40) == 0x40;
61 2 _nop_();
62 2 SK = 1;
63 2 addr <<= 1;
64 2 }
65 1 SK = 0;
66 1
67 1 for( i=0;i<8;i++ )
68 1 {
69 2 SK=0;
70 2 DI = (value & 0x80) == 0x80; /* 时钟为低时写数据 */
71 2 _nop_();
72 2 SK = 1;
73 2
74 2 value <<= 1; /* 移位操作会将数据交给C */
75 2 }
76 1 SK = 0;
77 1 CS = 0;
78 1 return ;
79 1 }
80 BYTE ReadChar(BYTE addr)
81 {
82 1 BYTE i;
83 1 BYTE Result;
84 1
85 1 CS = 1;
86 1 SK=0; DI=1; _nop_(); SK=1;
87 1 SK=0; DI=1; _nop_(); SK=1;
88 1 SK=0; DI=0; _nop_(); SK=1;
89 1 SK=0;
90 1
91 1 for( i=0;i<7;i++ )
92 1 {
93 2 DI = ((addr & 0x40) == 0x40);
94 2 SK = 1;
95 2 _nop_();_nop_();
96 2 SK = 0;
97 2 addr <<= 1;
98 2 }
99 1 Result = 0;
100 1 DO = 1;
101 1 SK = 0;
102 1 for( i=0;i<8;i++ )
103 1 {
104 2 Result <<= 1;
105 2
106 2 SK = 1;
107 2 _nop_();_nop_();
108 2 Result |= (BYTE) DO;
109 2 SK = 0;
110 2 }
111 1 SK = 0;
112 1 CS = 0;
113 1 return Result;
114 1 }
115 //////////////////////////////////////////
116 //////////////////////////////////////////
117
C51 COMPILER V7.06 MAIN 04/25/2007 23:21:01 PAGE 3
118 /*void Delay1ms(unsigned int count)
119 {
120 unsigned int i,j;
121 for(i=0;i<count;i++)
122 for(j=0;j<120;j++);
123 }*/
124 void delay1(unsigned int num)
125 {while(num!=0){num=num-1;}
126 1 }
127 void t0(void)interrupt 0
128 {
129 1 BYTE aaa;
130 1
131 1 aaa = ReadChar(8);
132 1 led=~led;
133 1 }
134 main()
135 {
136 1 BYTE bbb;
137 1 /* //led =0;
138 1 //delay1(30000);
139 1 //led =1;
140 1 //delay1(30000);
141 1 }*/
142 1 EA=1; //开启0号中断
143 1 EX0=1;
144 1 IT0=1;
145 1
146 1 bbb = ReadChar(6);
147 1 WriteEnabled();
148 1 WriteChar(8, 0x30);
149 1 while(1)
150 1 {
151 2 }
152 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 882 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -