?? calendarclk.lst
字號:
C51 COMPILER V7.02b CALENDARCLK 12/10/2005 19:36:25 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE CALENDARCLK
OBJECT MODULE PLACED IN CalendarClk.OBJ
COMPILER INVOKED BY: E:\EDATOOLS\KEILC7.0\C51\BIN\C51.EXE CalendarClk.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*****************************************/
2 /* Copyright (c) 2005, 通信工程學(xué)院 */
3 /* All rights reserved. */
4 /* 作 者:戴 佳 */
5 /*****************************************/
6
7 #include "CalendarClk.h"
8
9 /* 從串行口獲取數(shù)據(jù)函數(shù),數(shù)據(jù)包括:year1,month1,dayofweek1,
10 dayofmonth1,hour1,min1。如果獲取到正確數(shù)據(jù)則返回1,否則返回0 */
11 uchar getdata()
12 {
13 1 // 略去
14 1 }
*** WARNING C173 IN LINE 14 OF CALENDARCLK.C: missing return-expression
15
16 /* 設(shè)置日歷和時鐘函數(shù) */
17 void settime()
18 {
19 1 REG_B = REG_B|0x80; // SET=1,芯片DS12C887處于設(shè)置狀態(tài)
20 1
21 1 MIN = min1;
22 1 HOUR = hour1;
23 1 DAYOFWEEK = dayofweek1;
24 1 DAYOFMONTH = dayofmonth1;
25 1 MONTH = month1;
26 1 YEAR = year1;
27 1
28 1 REG_B = REG_B&0x7f; // SET=0,芯片DS12C887恢復(fù)正常數(shù)據(jù)更新狀態(tài)
29 1 }
30
31
32 /* 獲取日歷時鐘函數(shù) */
33 void gettime()
34 {
35 1 while (REG_A&0x80==0x00) // 直到UIP=0時,才能讀取日歷時鐘信息 {
36 1 {
37 2 min2 = MIN ;
38 2 hour2 = HOUR;
39 2 dayofweek2 = DAYOFWEEK;
40 2 dayofmonth2 = DAYOFMONTH;
41 2 month2 = MONTH;
42 2 year2 = YEAR;
43 2 }
44 1 }
45
46 /* 13位數(shù)碼管顯示年、月、日、星期、時、分 */
47 void display()
48 {
49 1 // 略去
50 1 }
51
52 /* 串口初始化函數(shù) */
53 void init_serial()
54 {
C51 COMPILER V7.02b CALENDARCLK 12/10/2005 19:36:25 PAGE 2
55 1 TMOD = 0x20; // 定時器T1使用工作方式2
56 1 TH1 = 250;
57 1 TL1 = 250;
58 1 TR1 = 1; // 開始計時
59 1 PCON = 0x80; // SMOD = 1
60 1 SCON = 0x50; // 工作方式1,波特率9600kbit/s,允許接收
61 1 }
62
63
64 void main(void)
65 {
66 1 uchar setflag;
67 1 init_serial();
68 1
69 1 /* 設(shè)置DV2、DV1、DV0為010,打開芯片DS12C877內(nèi)部晶振 */
70 1 REG_A = REG_A&0xaf; // DV2=DV0=0
71 1 REG_A = REG_A|0x20; // DV1=0
72 1
73 1 REG_B = REG_B&0x7b; // SET=0,時間數(shù)據(jù)正常更新;DM=0,二進制數(shù)據(jù)模式
74 1 REG_B = REG_B|0x02; // 寄存器B的24/12位置1,24小時時間模式
75 1
76 1 while (1)
77 1 {
78 2 setflag = getdata(); // 通過查詢方式獲取串口數(shù)據(jù)
79 2
80 2 /* 如果獲取到正確數(shù)據(jù),則設(shè)置時間 */
81 2 if (setflag==0x01)
82 2 settime();
83 2
84 2 /* 調(diào)用獲取日歷時鐘函數(shù) */
85 2 gettime();
86 2
87 2 /* 13位數(shù)碼管顯示日歷、星期和時間信息 */
88 2 display();
89 2 }
90 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 106 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -