📄 1302.lst
字号:
C51 COMPILER V7.06 1302 05/30/2008 10:15:00 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 1302
OBJECT MODULE PLACED IN 1302.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE 1302.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /******************************************************
2 ** Copyright (C), 1988-1999, Gxzjy.Djx.Dzjys ****
3 ** File name: DS1302 ****
4 ** Author: mingxin Version: 1.1V Date:2005.11.4 ****
5 ** Description: what is use DS1302 ,The main is to **
6 ** set the time to 1302 and display the time **
7 ** Function List: display(),init_ds1302(),main() **
8 ** write1302_byte(),read1302_byte() **
9 ** Others: when program runing you will have see **
10 the LED show "hh.mm.ss" six number **
11 ******************************************************/
12
13 #include "reg51.h"
14 #define uchar unsigned char
15 #define uint unsigned int
16 #define disport P0
17
18 code uchar disp_data[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
19 uchar disp[6]={1,2,3,4,5,6};
20
21 void delay(uchar x);
22 void display();
23
24 void init_ds1302();
25 void write1302_byte(uchar add,uchar dat);
26 uchar read1302_byte(uchar add);
27
28 main()
29 {
30 1 uchar k;
31 1 init_ds1302();
32 1 while(1)
33 1 {
34 2 k=read1302_byte(0x85); //read hour
35 2 disp[0]=k&0x30;disp[0]>>=4;
36 2 disp[1]=k&0x0f;
37 2 k=read1302_byte(0x83); //read min
38 2 disp[2]=k&0x70;disp[2]>>=4;
39 2 disp[3]=k&0x0f;
40 2 k=read1302_byte(0x81); //read sec
41 2 disp[4]=k&0x70;disp[4]>>=4;
42 2 disp[5]=k&0x0f;
43 2 display();
44 2 }
45 1 }
46 void init_ds1302()
47 {
48 1 write1302_byte(0x8e,0x00);
49 1 write1302_byte(0x80,0x45); //write sec
50 1 write1302_byte(0x82,0x41); //write min
51 1 write1302_byte(0x84,0x11); //write hour
52 1 }
53 void display()
54 {
55 1 uchar i,j=0x01;
C51 COMPILER V7.06 1302 05/30/2008 10:15:00 PAGE 2
56 1 uchar *k;
57 1 k=&disp_data;
58 1
59 1 disport=0;
60 1 for(i=0;i<6;i++)
61 1 {
62 2 if ((i==3)|(i==1))
63 2 disport=*(k+disp[i])|0x80;
64 2 else
65 2 disport=*(k+disp[i]);
66 2 P1=j;
67 2 j=j<<1;
68 2 delay(3);
69 2 }
70 1 delay(3);
71 1 disport=0;
72 1 }
73 void delay(uchar x)
74 {
75 1 uchar i,j;
76 1 for(j=0;j<x;j++)
77 1 for(i=0;i<120;i++)
78 1 {;}
79 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 242 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 6
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 + -