📄 main.lst
字号:
C51 COMPILER V8.08 MAIN 02/05/2009 15:57:55 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: F:\安装包\Keilc uv2\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*************************************************************************
2 文件名 :main.c
3 作 者:eleclike
4 修改日期:2008-9-9
5 版 本:v1.00
6 编译软件:KEIL uVision2
7 处理器: AT89S52
8 版权说明:本程序只供学习使用,未经作者许可,不得用于其它任何用途
9 备 注:
10 **************************************************************************/
11
12 #include "my52.h"
13 #include "ds12887.h"
14 #include "mmi.h"
15
16 //时钟闹钟调整模式宏定义
17 #define ADJUST_DISABLE 0x00
18 #define ADJUST_HOUR 0x01
19 #define ADJUST_MINUTE 0x02
20 #define ADJUST_MONTH 0x03
21 #define ADJUST_DATE 0x04
22 #define ADJUST_YEAR 0x05
23 #define ADJUST_DAY 0x06
24 #define ADJUST_ALARM_HOUR 0x07
25 #define ADJUST_ALARM_MINUTE 0x08
26
27 //全局变量定义
28 uchar DisplayAlarm = 0;
29 uchar AdjustMode = ADJUST_DISABLE;
30
31 //函数声明
32 void DeelDisplay(void);
33 void DeelPressKey(void);
34 void DdaInc(uchar* temp);
35 void DdaDec(uchar* temp);
36 void DeelKey(uchar* temp);
37 void DeelAlarm(void);
38
39 /*********************************************************
40 main
41 *********************************************************/
42 void main(void)
43 {
44 1
45 1 IsInitDs12887();
46 1 AlarmEnable = 0;
47 1
48 1 while(1)
49 1 {
50 2 ReadDs12887(); //读DS12887有关时钟的内容
51 2
52 2 ReadAlarmFlag(); //读闹钟标志
53 2
54 2 ReadKey(); //读按键值
55 2
C51 COMPILER V8.08 MAIN 02/05/2009 15:57:55 PAGE 2
56 2 if(KeyValue != 0xff)
57 2 {
58 3 DeelPressKey(); //处理按键
59 3 }
60 2
61 2 DeelAlarm(); //处理闹钟
62 2
63 2 DeelDisplay(); //处理时钟显示
64 2 }
65 1
66 1 }
67
68 /*********************************************************
69 函数名称:DeelAlarm()
70 函数功能:处理闹钟
71 入口参数:无
72 出口参数:无
73 备 注:
74 *********************************************************/
75 void DeelAlarm(void)
76 {
77 1 if(AlarmEnable == 1) //处理闹钟
78 1 {
79 2 AlarmLedShine();
80 2 AlarmBellShine();
81 2 }
82 1 else
83 1 {
84 2 AlarmLedOff();
85 2 AlarmBellOff();
86 2 }
87 1 }
88 /*********************************************************
89 函数名称:DeelPressKey()
90 函数功能:处理按键
91 入口参数:无
92 出口参数:无
93 备 注:
94 *********************************************************/
95 void DeelPressKey(void)
96 {
97 1 //调整模式变量处理
98 1 if (KeyValue == KEY_MODE)
99 1 {
100 2 AdjustMode ++;
101 2 if(AdjustMode >= 9)
102 2 {
103 3 AdjustMode = ADJUST_DISABLE;
104 3 }
105 2 }
106 1 //如果按下显示闹钟键
107 1 if(KeyValue == KEY_DISPLAY_ALARM)
108 1 {
109 2 DisplayAlarm ++;
110 2 if(DisplayAlarm >= 2) //按键交替为1或0,使能显示闹钟或其他时间信息
111 2 {
112 3 DisplayAlarm =0;
113 3 }
114 2 }
115 1
116 1 //根据调整模式决定调整的参数
117 1 switch(AdjustMode)
C51 COMPILER V8.08 MAIN 02/05/2009 15:57:55 PAGE 3
118 1 {
119 2 case ADJUST_HOUR:
120 2 DeelKey(&Hour);
121 2 if(Hour >= 0x24)
122 2 Hour = 0;
123 2 TIME_HOUR = Hour;
124 2 break;
125 2 case ADJUST_MINUTE:
126 2 DeelKey(&Minute);
127 2 if(Minute >= 0x60)
128 2 Minute = 0;
129 2 TIME_MINUTE = Minute;
130 2 break;
131 2 case ADJUST_MONTH :
132 2 DeelKey(&Month);
133 2 if(Month >= 0x13)
134 2 Month = 0;
135 2 TIME_MONTH = Month;
136 2 break;
137 2 case ADJUST_DATE:
138 2 DeelKey(&Date);
139 2 if(Date >= 0x32)
140 2 Date = 0;
141 2 TIME_DATE = Date;
142 2 break;
143 2 case ADJUST_YEAR:
144 2 DeelKey(&Year);
145 2 if(Year >= 0x100)
146 2 Year = 0;
147 2 TIME_YEAR = Year;
148 2 break;
149 2 case ADJUST_DAY:
150 2 DeelKey(&Day);
151 2 if(Day >= 0x8)
152 2 Day = 0;
153 2 TIME_DAY = Day;
154 2 break;
155 2 case ADJUST_ALARM_HOUR:
156 2 DeelKey(&AlmHour);
157 2 if(AlmHour >= 0x24)
158 2 AlmHour = 0;
159 2 ALARM_HOUR = AlmHour;
160 2 break;
161 2 case ADJUST_ALARM_MINUTE:
162 2 DeelKey(&AlmMinute);
163 2 if(AlmMinute >= 0x60)
164 2 AlmMinute = 0;
165 2 ALARM_MINUTE = AlmMinute;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -