📄 muxclock4.lst
字号:
C51 COMPILER V8.16 MUXCLOCK4 12/03/2000 19:19:11 PAGE 1
C51 COMPILER V8.16, COMPILATION OF MODULE MUXCLOCK4
OBJECT MODULE PLACED IN muxclock4.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE muxclock4.c RTX51 BROWSE DEBUG OBJECTEXTEND CODE LISTINCLUDE SYMBOLS
line level source
1 #pragma CODE DEBUG OBJECTEXTEND
2
3 #include <reg52.h>
1 =1 /*--------------------------------------------------------------------------
2 =1 REG52.H
3 =1
4 =1 Header file for generic 80C52 and 80C32 microcontroller.
5 =1 Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
6 =1 All rights reserved.
7 =1 --------------------------------------------------------------------------*/
8 =1
9 =1 #ifndef __REG52_H__
10 =1 #define __REG52_H__
11 =1
12 =1 /* BYTE Registers */
13 =1 sfr P0 = 0x80;
14 =1 sfr P1 = 0x90;
15 =1 sfr P2 = 0xA0;
16 =1 sfr P3 = 0xB0;
17 =1 sfr PSW = 0xD0;
18 =1 sfr ACC = 0xE0;
19 =1 sfr B = 0xF0;
20 =1 sfr SP = 0x81;
21 =1 sfr DPL = 0x82;
22 =1 sfr DPH = 0x83;
23 =1 sfr PCON = 0x87;
24 =1 sfr TCON = 0x88;
25 =1 sfr TMOD = 0x89;
26 =1 sfr TL0 = 0x8A;
27 =1 sfr TL1 = 0x8B;
28 =1 sfr TH0 = 0x8C;
29 =1 sfr TH1 = 0x8D;
30 =1 sfr IE = 0xA8;
31 =1 sfr IP = 0xB8;
32 =1 sfr SCON = 0x98;
33 =1 sfr SBUF = 0x99;
34 =1
35 =1 /* 8052 Extensions */
36 =1 sfr T2CON = 0xC8;
37 =1 sfr RCAP2L = 0xCA;
38 =1 sfr RCAP2H = 0xCB;
39 =1 sfr TL2 = 0xCC;
40 =1 sfr TH2 = 0xCD;
41 =1
42 =1
43 =1 /* BIT Registers */
44 =1 /* PSW */
45 =1 sbit CY = PSW^7;
46 =1 sbit AC = PSW^6;
47 =1 sbit F0 = PSW^5;
48 =1 sbit RS1 = PSW^4;
49 =1 sbit RS0 = PSW^3;
50 =1 sbit OV = PSW^2;
51 =1 sbit P = PSW^0; //8052 only
52 =1
C51 COMPILER V8.16 MUXCLOCK4 12/03/2000 19:19:11 PAGE 2
53 =1 /* TCON */
54 =1 sbit TF1 = TCON^7;
55 =1 sbit TR1 = TCON^6;
56 =1 sbit TF0 = TCON^5;
57 =1 sbit TR0 = TCON^4;
58 =1 sbit IE1 = TCON^3;
59 =1 sbit IT1 = TCON^2;
60 =1 sbit IE0 = TCON^1;
61 =1 sbit IT0 = TCON^0;
62 =1
63 =1 /* IE */
64 =1 sbit EA = IE^7;
65 =1 sbit ET2 = IE^5; //8052 only
66 =1 sbit ES = IE^4;
67 =1 sbit ET1 = IE^3;
68 =1 sbit EX1 = IE^2;
69 =1 sbit ET0 = IE^1;
70 =1 sbit EX0 = IE^0;
71 =1
72 =1 /* IP */
73 =1 sbit PT2 = IP^5;
74 =1 sbit PS = IP^4;
75 =1 sbit PT1 = IP^3;
76 =1 sbit PX1 = IP^2;
77 =1 sbit PT0 = IP^1;
78 =1 sbit PX0 = IP^0;
79 =1
80 =1 /* P3 */
81 =1 sbit RD = P3^7;
82 =1 sbit WR = P3^6;
83 =1 sbit T1 = P3^5;
84 =1 sbit T0 = P3^4;
85 =1 sbit INT1 = P3^3;
86 =1 sbit INT0 = P3^2;
87 =1 sbit TXD = P3^1;
88 =1 sbit RXD = P3^0;
89 =1
90 =1 /* SCON */
91 =1 sbit SM0 = SCON^7;
92 =1 sbit SM1 = SCON^6;
93 =1 sbit SM2 = SCON^5;
94 =1 sbit REN = SCON^4;
95 =1 sbit TB8 = SCON^3;
96 =1 sbit RB8 = SCON^2;
97 =1 sbit TI = SCON^1;
98 =1 sbit RI = SCON^0;
99 =1
100 =1 /* P1 */
101 =1 sbit T2EX = P1^1; // 8052 only
102 =1 sbit T2 = P1^0; // 8052 only
103 =1
104 =1 /* T2CON */
105 =1 sbit TF2 = T2CON^7;
106 =1 sbit EXF2 = T2CON^6;
107 =1 sbit RCLK = T2CON^5;
108 =1 sbit TCLK = T2CON^4;
109 =1 sbit EXEN2 = T2CON^3;
110 =1 sbit TR2 = T2CON^2;
111 =1 sbit C_T2 = T2CON^1;
112 =1 sbit CP_RL2 = T2CON^0;
113 =1
114 =1 #endif
C51 COMPILER V8.16 MUXCLOCK4 12/03/2000 19:19:11 PAGE 3
4 #include <rtx51.h> // RTX-51 functions & defines
*** WARNING C318 IN LINE 4 OF muxclock4.c: can't open file 'rtx51.h'
5
6 #define INIT 0 // task number of task : init
7 #define SETMINUTE 1 // task number of task : setminute
8 #define SETHOUR 2 // task number of task : sethour
9 #define BLINK 3 // task number of task : blink
10 #define DIGITALCLOCK 4 // task number of task : digitalclock
11 #define SCANDISPLAY 5 // task number of task : scandisplay
12
13 char second,minute,hour=0;
14 char BCD[] = {0,0,0,0};
15 char ticks = 20;
16
17 sbit minute_switch = P3^2;
18 sbit hour_switch = P3^3;
19 sbit flick = P3^4;
20
21 void split (char h, char m){
22 1 BCD[0] = 0x80 + (h/10);
23 1 BCD[1] = 0x40 + (h%10);
24 1 BCD[2] = 0x20 + (m/10);
25 1 BCD[3] = 0x10 + (m%10);
26 1 }
27
28 /***********************************************************************/
29 /* _task_ 2 'setminute': minute adjustment */
30 /***********************************************************************/
31 void setminute(void) _task_ SETMINUTE{
32 1 while (1){
33 2 if (!minute_switch){
34 3 if (++minute==60) minute=0;
35 3 split(hour,minute);}
36 2 os_wait (K_TMO, 25,0); // wait for 250 mS
*** ERROR C202 IN LINE 36 OF MUXCLOCK4.C: 'K_TMO': undefined identifier
37 2 }
38 1 }
39
40 /***********************************************************************/
41 /* _task_ 3 'sethour': hour adjustment */
42 /***********************************************************************/
43 void sethour(void) _task_ SETHOUR{
44 1 while (1){
45 2 if (!hour_switch){
46 3 if (++hour==24) hour=0;
47 3 split(hour,minute);}
48 2 os_wait (K_TMO, 25,0); // wait for 250 mS
*** ERROR C202 IN LINE 48 OF MUXCLOCK4.C: 'K_TMO': undefined identifier
49 2 }
50 1 }
51
52 /***********************************************************************/
53 /* _task_ 4 'blink': blink every half second */
54 /***********************************************************************/
55 void blink(void) _task_ BLINK{
56 1 while (1){
57 2 flick=!flick;
58 2 os_wait (K_TMO, 50,0); // wait for 500 mS
*** ERROR C202 IN LINE 58 OF MUXCLOCK4.C: 'K_TMO': undefined identifier
59 2 }
60 1 }
61
C51 COMPILER V8.16 MUXCLOCK4 12/03/2000 19:19:11 PAGE 4
62 /***********************************************************************/
63 /* _task_ 5 'digitalclock': Digital Clock */
64 /***********************************************************************/
65 void digitalclock(void) _task_ DIGITALCLOCK{
66 1 while (1){
67 2 if (++second==60){
68 3 second=0;
69 3 if (++minute==60){
70 4 minute=0;
71 4 if (++hour==24) hour=0;
72 4 }
73 3 }
74 2 split(hour,minute);
75 2 os_wait (K_TMO,100,0); // wait for 1000 mS
*** ERROR C202 IN LINE 75 OF MUXCLOCK4.C: 'K_TMO': undefined identifier
76 2 }
77 1 }
78
79 /***********************************************************************/
80 /* _task_ 6 'scandisplay': Scanning 7 segment display */
81 /***********************************************************************/
82 void scandisplay(void) _task_ SCANDISPLAY{
83 1 static char i=0;
84 1 while (1)
85 1 {
86 2 P1 = BCD[++i & 0x03];
87 2 os_wait (K_TMO, 1, 0); // wait for 10 mS
*** ERROR C202 IN LINE 87 OF MUXCLOCK4.C: 'K_TMO': undefined identifier
88 2 }
89 1 }
90
91 /***********************************************************************/
92 /* _task_ 0 'init': Initialize */
93 /***********************************************************************/
94 void init (void) _task_ INIT { // program execution starts here
95 1 split(hour,minute);
96 1 os_set_slice (10000); // set the system timebase to 10 ms
97 1 //os_create_task (INIT);
98 1 os_create_task (SETMINUTE);
99 1 os_create_task (SETHOUR);
100 1 os_create_task (BLINK);
101 1 os_create_task (DIGITALCLOCK);
102 1 os_create_task (SCANDISPLAY);
103 1 os_delete_task (INIT); // stop init _task_ (no longer needed)
104 1 }
105
106 void main (void) {
107 1 os_start_system (INIT); // start the first _task_
108 1 }
C51 COMPILATION COMPLETE. 1 WARNING(S), 5 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -