📄 main.lst
字号:
C51 COMPILER V8.05a MAIN 05/08/2009 21:03:45 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************
2 PCF8653实验程序
3 程序说明:向PCF8653中写入初始时间值:2008年1月5日,星期三,15点18分56
4 秒后,在从其中读出数据后通过串口通信发送到显示装置进行显示
5 *******************************************************************/
6 #include <INIF.h>
7 #include <I2C.h>
8 #include <lcd1602.h>
9 uchar xdata Time_Data[16]={0};
10 void JDQ1();
11 void JDQ2();
12 long jj;
13 main()
14 {
15 1 uchar p[7]={0x56,0x18,0x15,0x05,0x02,0x01,0x08};
16 1 //2008 年1 月5 日星期三 15 点 18 分56 秒<倒序>
17 1 //uchar m[3]={0x19,0x15,0x05};
18 1 uchar m[1]={0x19};
19 1 uchar n[2]={0x80,60};
20 1 uchar afing;
21 1 uchar clear=0x00;
22 1 uchar kaizhong=0x03;
23 1 uchar q[7];
24 1 uchar i;
25 1
26 1 bit bp;
27 1 for(i=0;i<7;i++)
28 1 {
29 2 bp=ISendStr(PCF8563,SUBADDR+i,p+i,1); //向PCF8563各时钟寄存器写入初始数据
30 2 }
31 1 ISendStr(PCF8563,SUBADDRb,m,1);
32 1 IRcvStr(PCF8563,SUBADDRc,&kaizhong,1);
33 1 lcd1602init(); //液晶初始化
34 1 SDA = 1;
35 1 SCL = 1;
36 1 PORT = 0x03; //8155的A,B口作为输出,C为输入口
37 1 lcd_clear( ); //液晶清屏
38 1 while(1)
39 1 {
40 2 //读PCF8563各时钟寄存器
41 2 for(i=0;i<7;i++)
42 2 {
43 3 bp=IRcvStr(PCF8563,SUBADDR+i,q+i,1);
44 3 }
45 2 //屏蔽无效位
46 2 q[0]&=0x7F;//second
47 2 q[1]&=0x7F;//minute
48 2 q[2]&=0x3F;//hour
49 2 q[3]&=0x3F;//day
50 2 q[4]&=0x07;//week
51 2 q[5]&=0x1F;//month
52 2 q[6]&=0xFF;//year
53 2 //送显示器显示
54 2 Time_Data[0] = q[6]/16+'0';
55 2 Time_Data[1] = q[6]%16+'0';
C51 COMPILER V8.05a MAIN 05/08/2009 21:03:45 PAGE 2
56 2 Time_Data[2] = q[5]/16+'0';
57 2 Time_Data[3] = q[5]%16+'0';
58 2 Time_Data[4] = q[3]/16+'0';
59 2 Time_Data[5] = q[3]%16+'0';
60 2 Time_Data[6] = ' ';
61 2 Time_Data[7] = q[4]%16+'1';
62 2 Time_Data[8] = ' ';
63 2 Time_Data[9] = q[2]/16+'0';
64 2 Time_Data[10] = q[2]%16+'0';
65 2 Time_Data[11] = q[1]/16+'0';
66 2 Time_Data[12] = q[1]%16+'0';
67 2 Time_Data[13] = q[0]/16+'0';
68 2 Time_Data[14] = q[0]%16+'0';
69 2 IRcvStr(PCF8563,SUBADDRc,&afing,1);
70 2 if(afing&0x08)
71 2 {
72 3 //lcd_string(Time_Data,1);
73 3 JDQ1();
74 3 ISendStr(PCF8563,SUBADDRc,&clear,1);
75 3 ISendStr(PCF8563,SUBADDRd,n,2);
76 3 }
77 2 if(afing&0x04)
78 2 {
79 3 //lcd_string(Time_Data,1);
80 3 JDQ2();
81 3 ISendStr(PCF8563,SUBADDRc,&clear,1);
82 3 ISendStr(PCF8563,SUBADDRd,n,2);
83 3 }
84 2 lcd_string(Time_Data,2);
85 2 }
86 1 }
87 void JDQ1()
88 {
89 1 P1_4=0; //继电器导通
90 1
91 1 }
92 void JDQ2()
93 {
94 1 P1_4=1;
95 1 for(jj=0;jj<10000;jj++);
96 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 491 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = 16 ----
PDATA SIZE = ---- ----
DATA SIZE = 4 21
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -