📄 main.lst
字号:
C51 COMPILER V8.15 MAIN 03/10/2009 17:08:57 PAGE 1
C51 COMPILER V8.15, 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 /* Copyright (c) 2009, 电子信息工程学院 */
3 /* All rights reserved. */
4 /* 作 者:王明兴 */
5 /*****************************************/
6
7 #include "main.h"
8 #include "MAX7219.h"
9 #include "DS18B20.h"
10
11 char data Temp_Limit = 50;
12 uchar data Key_Start_flag = 0;
13 uchar data Key_Setup_flag = 0;
14 uchar data Key_Up_flag = 0;
15 uchar data Key_Down_flag = 0;
16 uchar data Key_Enter_flag = 0;
17 uchar data tplsb,tpmsb; // 温度值低位、高位字节
18 uchar data Buffer0[4];
19 uchar data Buffer1[4];
20 char data Cur_Temp;
21 uchar data Read_flag = 0;
22 uchar data DisBuffer[8]={0,0,0,0,0,0,0,0}; // 显示缓存区
23 volatile uint data Disp_Count = 0;
24 volatile uint data Temp_Count = 0;
25 volatile uint data Temp_Read = 0;
26
27
28 void main()
29 {
30 1 TMOD = 0x11; //置T1、T0按方式1工作 16位模式
31 1 TH0 = 0xf0;
32 1 TL0 = 0xd8;
33 1 TH1 = 0xf0;
34 1 TL1 = 0xd8;
35 1 TR0 = 1; //开启定时器0
36 1 ET0 = 1; //允许T0中断
37 1 ET1 = 1; //允许T1中断
38 1 EA = 1; //开中断
39 1 LED_STATE = 0;
40 1
41 1 InitDisplay(); // MAX7219初始化
42 1 WriteWord(DisplayTest,TestMode); // 开始显示测试,点亮所有LED
43 1 delay(1000); // 延时约2s
44 1 convert(); // 启动温度转换,需要750ms
45 1 delay(1000); // 延时1s
46 1 RdTemp(); // 读取温度
47 1 Da_Trans();
48 1 WriteWord (DisplayTest,TextEnd); // 退出显示测试模式
49 1 Display(Buffer0); //显示当前温度
50 1 TR1 = 1; //开启定时器1
51 1
52 1 while(1)
53 1 {
54 2 Key_Process(); //键盘处理
55 2 if(Key_Start_flag)
C51 COMPILER V8.15 MAIN 03/10/2009 17:08:57 PAGE 2
56 2 {
57 3 if(Key_Setup_flag)
58 3 {
59 4 TEMP_CTRL = 1;
60 4 LED_NORMAL = 1;
61 4 LED_WARING = 1;
62 4 Da_Tran(Temp_Limit);
63 4 Display(Buffer1);
64 4
65 4 if(Key_Up_flag)
66 4 {
67 5 if(Temp_Limit <= 125)
68 5 Temp_Limit ++;
69 5 Key_Up_flag = 0;
70 5 }
71 4 if(Key_Down_flag)
72 4 {
73 5 if(Temp_Limit != 0)
74 5 Temp_Limit --;
75 5 Key_Down_flag = 0;
76 5 }
77 4 if(Key_Enter_flag)
78 4 {
79 5 Key_Setup_flag = 0;
80 5 Key_Enter_flag = 0;
81 5 Display(Buffer0);
82 5 }
83 4 }
84 3 else
85 3 {
86 4 if(Cur_Temp <= Temp_Limit)
87 4 {
88 5 LED_NORMAL = 0;
89 5 LED_WARING = 1;
90 5 TEMP_CTRL = 0;
91 5 }
92 4 else
93 4 {
94 5 LED_NORMAL = 1;
95 5 LED_WARING = 0;
96 5 TEMP_CTRL = 1;
97 5 }
98 4 }
99 3 }
100 2 if(!Key_Setup_flag)
101 2 {
102 3 if(Disp_Count > 500) //0.5S显示刷新一次
103 3 {
104 4 Display(Buffer0);
105 4 Disp_Count = 0;
106 4 } //1S测一次温度
107 3 if(Temp_Count > 1000)
108 3 {
109 4 Temp_Count = 0;
110 4 convert(); // 启动温度转换,需要750ms
111 4 Read_flag = 1;
112 4 if(Temp_Read > 800)
113 4 {
114 5 Read_flag = 0;
115 5 Temp_Read = 0;
116 5 RdTemp(); // 读取温度
117 5 Da_Trans();
C51 COMPILER V8.15 MAIN 03/10/2009 17:08:57 PAGE 3
118 5 }
119 4 }
120 3 }
121 2 }
122 1 }
123
124
125
126
127
128
129
130
131
132
133
134
135
136
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 268 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 32 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -