📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 04/23/2007 09:34:34 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN E:\TEMP\main.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND OBJECT(E:\TEMP\main.obj)
line level source
1 #include "os_cfg.h" //Easy51RTOS操作系统头文件
2 #include "51board.h" //51板硬件接口定义头文件
3 #include "ds18b20.h" //51板标配温度传感器头文件
4 #include "51bdlcd.h" //51板LCD函数
5 #include "51bdkey.h" //51板4X4矩阵键盘函数
6 #include "functns.h" //常用一些功能函数
7 #include "24CxxWR.h" //串行存储读写头文件
8
9
10 #define Taskturn P16 = ~P16
11
12 uchar Temp_Str[16]=" ";
13 uchar Key_Str[16]=" "; //16位空格是必须的
14 bit key_flag;
15 uchar counter1;
16
17
18 //任务0:测温度送显
19 void task0(void)
20 {
21 1 uint tmp;
22 1 tmp=ReadTemperature();
23 1 Int_to_Str(tmp,Temp_Str);
24 1 Add_Dot(3,5, Temp_Str);
25 1 LCD_w_data(1,1,"Home Temp:");
26 1 LCD_w_data(1,11,Temp_Str);
27 1 }
28
29 //任务1:键盘扫描,LCD显示
30 void task1(void)
31 {
32 1 uchar key_num,j;
33 1
34 1
35 1 key_num = Key_Scan();
36 1 if ((key_num != 0xff) & key_flag )
37 1 {
38 2 key_flag=0;
39 2 for(j=0;j<16;j++) Key_Str[j]=Key_Str[j+1];
40 2 Key_Str[15]=key_num;
41 2 Write24C16(0x0, Key_Str,16);//往24C16里写入字符串
42 2 //LCD_w_data(2,1,Key_Str);
43 2 }
44 1 else if (key_num == 0xff) key_flag = 1;
45 1 }
46
47 //任务2
48 void task2()
49 {
50 1 uchar Disp_Str[17]=" ";
51 1 Read24C16(0x0, Disp_Str,16); //从24C16里读出字符串
52 1 Disp_Str[16]='\0';
53 1 LCD_w_data(2,1,Disp_Str); //显示读出的字符串,验证是否正确
54 1 }
55
C51 COMPILER V8.02 MAIN 04/23/2007 09:34:34 PAGE 2
56 //任务3
57 void task3()
58 {
59 1 P1=In_P0;
60 1 }
61
62 //任务4
63 void task4(void)
64 {
65 1 counter1++;
66 1 Out_P0 = counter1;
67 1 Out_P1 = counter1;
68 1 Out_P2 = counter1;
69 1 Out_P3 = counter1;
70 1 }
71
72 //任务5
73 void task5(void)
74 {
75 1
76 1 }
77
78 //任务6
79 void task6()
80 {
81 1
82 1 }
83
84 //任务7
85 void task7()
86 {
87 1 }
88
89 //main主函数
90 void main(void)
91 {
92 1 OS_InitTimer0();
93 1 EA=1;
94 1 LCD_Init();
95 1 LCD_w_data(1,1,Temp_Str);
96 1 LCD_w_data(2,1,Key_Str);
97 1
98 1 while(1)
99 1 {
100 2 if (OS_Delay[0]==0){task0();OS_Delay[0]=100;} //温度测量,每秒1次
101 2 if (OS_Delay[1]==0){task1();OS_Delay[1]=10;} //键盘扫描,键值存储
102 2 if (OS_Delay[2]==0){task2();OS_Delay[2]=100;} //读出存储的键值,LCD显示
103 2 if (OS_Delay[3]==0){task3();OS_Delay[3]=50;}
104 2 if (OS_Delay[4]==0){task4();OS_Delay[4]=100;}
105 2 if (OS_Delay[5]==0){task5();OS_Delay[5]=60;}
106 2 if (OS_Delay[6]==0){task6();OS_Delay[6]=70;}
107 2 if (OS_Delay[7]==0){task7();OS_Delay[7]=80;}
108 2 Delay(50);
109 2 //Taskturn;
110 2 }
111 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1338 ----
CONSTANT SIZE = 28 ----
XDATA SIZE = ---- ----
C51 COMPILER V8.02 MAIN 04/23/2007 09:34:34 PAGE 3
PDATA SIZE = ---- ----
DATA SIZE = 49 64
IDATA SIZE = ---- ----
BIT SIZE = 2 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -