📄 ds.lst
字号:
C51 COMPILER V8.05a DS 02/24/2009 20:22:56 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE DS
OBJECT MODULE PLACED IN ds.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE ds.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <at89x51.h>
2 #include "lcd_h.h"
3 const char LCDnum[10]="0123456789";
4 sbit rst=P2^5;
5 sbit sclk=P2^7;
6 sbit io=P2^6;
7 void write_8bit(unsigned char dat)
8 {
9 1 unsigned char i=0;
10 1 sclk=0;
11 1 for (i=0;i<8;i++)
12 1 {
13 2 if (dat&0x01) io=1;
14 2 else io=0;
15 2 sclk=1;
16 2 sclk=0;
17 2 dat=dat>>1;
18 2 }
19 1 }
20 void write_data(unsigned char address,unsigned char dat)
21 {
22 1 rst=0;
23 1 sclk=0;
24 1 rst=1;
25 1 write_8bit(address);
26 1 write_8bit(dat);
27 1 sclk=1;
28 1 rst=0;
29 1 }
30 unsigned char read_8bit(void)
31 {
32 1 unsigned char receive=0,i=0;
33 1 sclk=0;
34 1 for (i=0;i<8;i++)
35 1 {
36 2 receive=receive>>1;
37 2 if (io==1) receive=receive|0x80;
38 2 sclk=1;
39 2 sclk=0;
40 2 }
41 1 return (receive);
42 1 }
43 unsigned char read_dat(unsigned char address)
44 {
45 1 unsigned char receive1=0,i=0;
46 1 rst=0;
47 1 sclk=0;
48 1 rst=1;
49 1 write_8bit(address);
50 1 io=1;
51 1 receive1=read_8bit();
52 1 sclk=1;
53 1 rst=0;
54 1 return (receive1);
55 1 }
C51 COMPILER V8.05a DS 02/24/2009 20:22:56 PAGE 2
56 void ds1302(void)
57 {
58 1 rst=0;
59 1 sclk=0;
60 1 rst=1;
61 1 write_8bit(0x8e);
62 1 write_8bit(0);
63 1 //sclk=1;
64 1 rst=0;
65 1 write_8bit(0x90);
66 1 write_8bit(0xa5);
67 1 rst=0;
68 1 write_data(0x80,0);
69 1 write_data(0x82,0);
70 1 rst=0;
71 1 sclk=0;
72 1 rst=1;
73 1 write_8bit(0x8e);
74 1 write_8bit(0x80);
75 1 //sclk=1;
76 1 rst=0;
77 1 }
78 void main(void)
79 {
80 1 unsigned char second[2]={0,0};
81 1 delayms(50);
82 1
83 1 init_LCD();
84 1 clear_LCD();
85 1 movexy(1,1);
86 1 do
87 1 {
88 2 if (P2_0==0)
89 2 {
90 3 ds1302();
91 3 while(P2_0!=1);
92 3 }
93 2 second[0]=read_dat(0x81);
94 2
95 2 second[1]=second[0];
96 2 second[0]=second[0]&0x0f;
97 2
98 2 second[1]=second[1]&0x70;
99 2 second[1]=second[1]>>4;
100 2 movexy(1,0);
101 2
102 2 write_LCD_data(LCDnum[second[1]]);
103 2 write_LCD_data(LCDnum[second[0]]);
104 2
105 2 }while(1);
106 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 258 ----
CONSTANT SIZE = 2 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V8.05a DS 02/24/2009 20:22:56 PAGE 3
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -