?? rtx_ex1.lst
字號:
C51 COMPILER V7.50 RTX_EX1 07/25/2006 18:09:33 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE RTX_EX1
OBJECT MODULE PLACED IN RTX_EX1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RTX_EX1.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************************/
2 /* */
3 /* RTX_EX1.C: The first RTX-51 Program */
4 /* */
5 /******************************************************************************/
6
7 #include <rtx51tny.h> /* RTX-51 tiny functions & defines */
8 #include <reg52.h>
9 #include <51board.h>
10 #include <51BLCD.h>
11 #include <DS18B20.h>
12 #include <KeyScan.h>
*** WARNING C280 IN LINE 23 OF KEYSCAN.H: 'byte_key': unreferenced local variable
13
14 uchar str_tmp[5]=" "; //溫度字符串
15 uchar str_key[16]=" ";//鍵盤輸入字符緩沖
16 uint tmp;//溫度測量
17
18 //將int型數據t轉換成10進制string型數據str
19 void Int_to_Str(uint t, uchar *str)
20 {
21 1 uchar a[5];
22 1 uchar i = 0;
23 1 bit j = 0;
24 1
25 1 a[0]=(t/10000)%10; //取得整數值到數組
26 1 a[1]=(t/1000)%10;
27 1 a[2]=(t/100)%10;
28 1 a[3]=(t/10)%10;
29 1 a[4]=(t)%10;
30 1
31 1 for(i=0; i<5; i++) //轉成ASCII碼
32 1 {
33 2 a[i]+='0';
34 2 if ((a[i] == 0x30)&&(j==0))
35 2 {
36 3 *str=' ';
37 3 }
38 2 else
39 2 {
40 3 *str = a[i];
41 3 j = 0x1;
42 3 }
43 2 str++;
44 2 }
45 1 *str='\0';
46 1 }
47
48 void Add_Dot(uchar num,uchar len, uchar *str)
49 {
50 1 uchar i;
51 1 for(i=len; i>num; i--)
52 1 {
53 2 *(str+i)=*(str+i-1);
54 2 }
C51 COMPILER V7.50 RTX_EX1 07/25/2006 18:09:33 PAGE 2
55 1
56 1 *(str+num)='.';
57 1 }
58
59
60 //從任務0開始
61 job0 () _task_ 0
62 {
63 1 os_create_task (1);
64 1 os_create_task (2);
65 1 os_create_task (3);
66 1 LCD_init();//初始化
67 1 os_delete_task (0);
68 1 }
69
70 job1 () _task_ 1
71 {
72 1 uint temp;
73 1 while (1)
74 1 {
75 2 temp = ReadTemperature(); //讀溫度
76 2 if (temp != tmp)
77 2 {
78 3 tmp = temp;
79 3 os_send_signal (3);
80 3 }
81 2 os_wait (K_TMO, 10, 0);
82 2 }
83 1 }
84
85 job2 () _task_ 2
86 {
87 1 uchar keynum;
88 1 uchar j;
89 1 bit key_flag;
90 1
91 1 while (1)
92 1 {
93 2 keynum = Key_Scan();
94 2 if ((keynum!=0xff) & key_flag )
95 2 {
96 3 key_flag=0;
97 3 for(j=0;j<16;j++) str_key[j]=str_key[j+1];
98 3 str_key[15]=keynum;
99 3 LCD_w_data(2,1,str_key);
100 3 }
101 2 else if (keynum == 0xff) key_flag = 1;
102 2
103 2 os_wait (K_TMO, 1, 0);
104 2 }
105 1 }
106
107 job3 () _task_ 3
108 {
109 1 while (1)
110 1 {
111 2 os_wait (K_SIG,0,0);
112 2 Int_to_Str(tmp,str_tmp);
113 2 Add_Dot(3,5,str_tmp); //增加小數點
114 2 LCD_w_data(1,1,"Temperatur:");
115 2 LCD_w_data(1,12,str_tmp);
116 2 }
C51 COMPILER V7.50 RTX_EX1 07/25/2006 18:09:33 PAGE 3
117 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 914 ----
CONSTANT SIZE = 76 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 39 21
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -