📄 时钟.lst
字号:
C51 COMPILER V7.50 时钟 10/17/2008 20:38:09 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 时钟
OBJECT MODULE PLACED IN 时钟.OBJ
COMPILER INVOKED BY: E:\keil1\C51\BIN\C51.EXE 时钟.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<define.h>
*** WARNING C258 IN LINE 29 OF DEFINE.H: 'table': mspace on parameter ignored
*** ERROR C244 IN LINE 29 OF DEFINE.H: 'table': can't initialize, bad type or class
3 #include<shezhishijian.h>
4 void delay(uint z)
5 {
6 uint x,y;
7 for(x=z;x>0;x--)
8 for(y=110;y>0;y--);
9 }
10 void write_com(uchar com) //LCD写命令
11 {
12 lcdrs=0;
13 P0=com;
14 delay(5);
15 lcden=1;
16 delay(5);
17 lcden=0;
18 }
19 void write_data(uchar date) //LCD写数据
20 {
21 lcdrs=1;
22 P0=date;
23 delay(5);
24 lcden=1;
25 delay(5);
26 lcden=0;
27 }
28 void inis() //初始化程序
29 {
30 lcden=0;
31 set_time();
32 write_ds(0x0B,0x26);
33 time_alarm(15,3,0);
34 write_com(0x01);
35 write_com(0x38);
36 write_com(0x0c);
37 write_com(0x06);
38 write_com(0x80);
39 for(i=0;i<=15;i++)
40 {
41 write_data(table[i]);
42 delay(5);
43 }
44 write_com(0xd0);
45 for(i=0;i<=11;i++)
46 {
47 write_data(table1[i]);
48 delay(5);
49 }
50 EA=1;
51 EX0=1;
52 IT0=1;
53 }
C51 COMPILER V7.50 时钟 10/17/2008 20:38:09 PAGE 2
54 void write_sfm(uchar address,uchar date) //显示LCD的时分秒
55 {
56 write_com(0x80+0x40+address);
57 si=date/10;
58 ge=date%10;
59 si=0x30+si;
60 ge=0x30+ge;
61 write_date(si);
62 delay(5);
63 write_date(ge);
64 }
65 void write_ds(uchar add,uchar date) //写时钟芯片 DS12CR887-DS12R887_
66 {
67 dscs=0;
68 dsds=1;
69 dsrw=1;
70 dsas=1;
71 P0=add;
72 dsas=0;
73 dsrw=0;
74 P0=date;
75 dsrw=1;
76 dsas=1;
77 dscs=1;
78 }
79 uchar read_ds(uchar add) // 读时钟芯片DS12CR887-DS12R887_
80 {
81 uchar ds_date;
82 dscs=0;
83 dsas=1;
84 dsds=1;
85 dsrw=1;
86 P0=add;
87 dsas=0;
88 dsds=0;
89 ds_date=P0;
90 dsds=1;
91 dsas=1;
92 dscs=1;
93 return ds_date;
94 }
95 void set_time() //设置时间
96 {
97 write_ds(4,14);
98 write_ds(2,47);
99 write_ds(0,0);
100 }
101 void time_alarm(ashi,afen,amiao) //设置闹钟时间
102 {
103 write_ds(1,amiao);
104 write_ds(3,afen);
105 write_ds(5,ashi);
106 }
107 void didi() //闹钟响声
108 {
109 beep=0;
110 delay(50);
111 beep=1;
112 delay(100);
113 beep=0;
114 delay(50);
115 beep=1;
C51 COMPILER V7.50 时钟 10/17/2008 20:38:09 PAGE 3
116 delay(100);
117
118 }
119 void main()
120 {
121 inis(); //初始化LCD
122 while(1)
123 {
124 keyscan()//时间的设定
125 if(flag==1)
126 {
127 didi();
128 }
129 else if(flag==0)
130 {
131 miao=read_ds(0);
132 fen=read_ds(2);
133 shi=read_ds(4);
134 write_sfm(10,miao);
135 write_sfm(7,fen);
136 write_sfm(4,shi);
137 }
138
139 }
140 }
141 void exter() interrupt 0 // 闹钟中断
142 {
143 uchar c;
144 flag1=1;
145 c=read_ds(0x0c);
146 }
C51 COMPILATION COMPLETE. 1 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -