📄 dataandtaime.lst
字号:
C51 COMPILER V7.50 DATAANDTAIME 04/19/2007 15:55:25 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE DATAANDTAIME
OBJECT MODULE PLACED IN DataAndTaime.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DataAndTaime.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /***********************************************************************************
2 ************************************************************************************
3 ********************************
4 基于MSC-51单片机的音乐播放程序
5 ********************************
6 文件名称:MusicPlay.h
7 设计者: 黄开坤
8 ***********************************************************************************/
9 #include <reg51.h>
10 #include <LCD1602.h>
11 #include <DS18B20.h>
12 /***全局变量************************************************************************/
13 unsigned char year =7 ; //年变量,初始值为2007年
14 unsigned char month =4 ; //月娈量,初始值为4月
15 unsigned char day =20 ; //日变量,初始值为20日
16 unsigned char week =5 ; //周 ,初始值为周5
17 unsigned char hour =12 ; //时 ,初始值为12
18 unsigned char minute =0 ; //分 ,初始值为0
19 unsigned char second =2 ; //秒 ,初始值为0
20 unsigned char Timer_hour =12 ; //定时器的时变量
21 unsigned char Timer_minute =0 ; //定时器的分变量
22 unsigned char Timer_sin ; //定时器响应标志,为1表示定时已到,正在响应
23 unsigned char days ; //用于存放每月的天数
24 unsigned char Temperature_sin =1 ; //温度转换标志,为1,则启动温度转换并刷新
25 unsigned char DATA[3];
26 unsigned char Week_Str[4] ; //用于存放3个字符表示星期,如Mon表示星期一
27
28
29 void WeekToStr( char n)
30 {
31 1 switch(n)
32 1 { case 1 :{Week_Str[0]='M' ;
33 3 Week_Str[1]='o' ;
34 3 Week_Str[2]='n' ;
35 3 Week_Str[3]='\0';
36 3 };break ;
37 2 case 2 :{Week_Str[0]='T' ;
38 3 Week_Str[1]='u' ;
39 3 Week_Str[2]='e' ;
40 3 Week_Str[3]='\0';
41 3 };break ;
42 2 case 3 :{Week_Str[0]='W' ;
43 3 Week_Str[1]='e' ;
44 3 Week_Str[2]='n' ;
45 3 Week_Str[3]='\0';
46 3 };break ;
47 2 case 4 :{Week_Str[0]='T' ;
48 3 Week_Str[1]='h' ;
49 3 Week_Str[2]='u' ;
50 3 Week_Str[3]='\0';
51 3 };break ;
52 2 case 5 :{Week_Str[0]='F' ;
53 3 Week_Str[1]='r' ;
54 3 Week_Str[2]='i' ;
55 3 Week_Str[3]='\0';
C51 COMPILER V7.50 DATAANDTAIME 04/19/2007 15:55:25 PAGE 2
56 3 };break ;
57 2 case 6 :{Week_Str[0]='S' ;
58 3 Week_Str[1]='a' ;
59 3 Week_Str[2]='t' ;
60 3 Week_Str[3]='\0';
61 3 };break ;
62 2 case 7 :{Week_Str[0]='S' ;
63 3 Week_Str[1]='u' ;
64 3 Week_Str[2]='n' ;
65 3 Week_Str[3]='\0';
66 3 };break ;
67 2 }
68 1 }
69
70 void CharToStr(float t)
71 {
72 1 //char i;
73 1 DATA[0]=(unsigned char)(t/10)%10+'0'; //取得整数值到数组
74 1 DATA[1]=(unsigned char)(t/1)%10+'0';
75 1 //DATA[2]=(unsigned char)(t/1)%10;
76 1 //DATA[4]=(unsigned char)(t/0.1)%10;
77 1
78 1 //for(i=0; i<6; i++) //转成ASCII码
79 1 // DATA[i]=DATA[i]+'0';
80 1 DATA[2]='\0';
81 1 // DATA[3]='.';
82 1 }
83 //******************************************************************************
84
85 //****************************
86 //主程序
87 main()
88 { float i=0;
89 1 LCD_Initial();
90 1 IT1=1;
91 1 IE=0x88;
92 1 EA=1;
93 1 EX1=1;
94 1
95 1
96 1
97 1 while(1)
98 1 {float i;
99 2 i=ReadTemperature();
100 2 //i=DS18B20_Initial();
101 2 IntToStr(i);
102 2 LCD_GoToXY(10,2);
103 2 LCD_Print(temp);
104 2 }
105 1 }
106 /***中断1服务程序(用于完成计时和日历转变和刷新,以及判断定时是否已到)***************/
107 void int1(void) interrupt 2 using 1
108 {
109 1 second++;
110 1 if(second==60)
111 1 { second=0;
112 2 minute++;
113 2 if((second%3==0)&&~Timer_sin)
114 2 Temperature_sin=1 ;
115 2 if(minute==60)
116 2 { minute=0 ;
117 3 hour++ ;
C51 COMPILER V7.50 DATAANDTAIME 04/19/2007 15:55:25 PAGE 3
118 3 if(hour==24)
119 3 { hour=0 ;
120 4 week++ ;
121 4 day++ ;
122 4 if(week==8)
123 4 week=1 ;
124 4 if(day==days)
125 4 { day=1 ;
126 5 month++ ;
127 5 if(month==13)
128 5 { month=1 ;
129 6 year++ ;
130 6 if(year==100)
131 6 year=0 ;
132 6 }
133 5 }
134 4 }
135 3 }
136 2 }
137 1 if((Timer_hour==hour)&&(Timer_minute==minute))
138 1 Timer_sin=1;
139 1 CharToStr(second) ;
140 1 LCD_GoToXY(7,2) ;
141 1 LCD_Print(DATA) ;
142 1 CharToStr(minute) ;
143 1 LCD_GoToXY(4,2) ;
144 1 LCD_Print(DATA) ;
145 1 LCD_Print(":") ;
146 1 CharToStr(hour) ;
147 1 LCD_GoToXY(1,2) ;
148 1 LCD_Print(DATA) ;
149 1 LCD_Print(":") ;
150 1 WeekToStr(week) ;
151 1 LCD_GoToXY(13,1) ;
152 1 LCD_Print(Week_Str);
153 1 CharToStr(day) ;
154 1 LCD_GoToXY(10,1) ;
155 1 LCD_Print(DATA) ;
156 1 CharToStr(month) ;
157 1 LCD_GoToXY(7,1) ;
158 1 LCD_Print(DATA) ;
159 1 LCD_Print("-") ;
160 1 CharToStr(year) ;
161 1 LCD_GoToXY(4,1) ;
162 1 LCD_Print(DATA) ;
163 1 LCD_Print("-") ;
164 1 LCD_GoToXY(2,1) ;
165 1 LCD_Print("20") ;
166 1 }
167
168
*** WARNING C316 IN LINE 168 OF DataAndTaime.c: unterminated conditionals
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1113 ----
CONSTANT SIZE = 7 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 34 17
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
C51 COMPILER V7.50 DATAANDTAIME 04/19/2007 15:55:25 PAGE 4
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -