📄 dec.lst
字号:
C51 COMPILER V6.23a DEC 05/04/2003 23:52:50 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE DEC
OBJECT MODULE PLACED IN dec.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE dec.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "reg51.h"
2 typedef unsigned char u8;
3
4 sbit P0_0 = P0^0;
5 sbit P0_1 = P0^1;
6 sbit P0_2 = P0^2;
7 sbit P0_3 = P0^3;
8 sbit P0_4 = P0^4;
9 sbit P0_5 = P0^5;
10 sbit P0_6 = P0^6;
11 sbit P0_7 = P0^7;
12
13 sbit P1_0 = P1^0;
14 sbit P1_1 = P1^1;
15 sbit P1_2 = P1^2;
16 sbit P1_3 = P1^3;
17 sbit P1_4 = P1^4;
18 sbit P1_5 = P1^5;
19 sbit P1_6 = P1^6;
20 sbit P1_7 = P0^7;
21
22
23 /*------------------------------------------------
24 P2 Bit Registers
25 ------------------------------------------------*/
26 sbit P2_0 = 0xA0;
27 sbit P2_1 = 0xA1;
28 sbit P2_2 = 0xA2;
29 sbit P2_3 = 0xA3;
30 sbit P2_4 = 0xA4;
31 sbit P2_5 = 0xA5;
32 sbit P2_6 = 0xA6;
33 sbit P2_7 = 0xA7;
34 /*------------------------------------------------
35 P3 Bit Registers (Mnemonics & Ports)
36 ------------------------------------------------*/
37 sbit P3_0 = 0xB0;
38 sbit P3_1 = 0xB1;
39 sbit P3_2 = 0xB2;
40 sbit P3_3 = 0xB3;
41 sbit P3_4 = 0xB4;
42 sbit P3_5 = 0xB5;
43 sbit P3_6 = 0xB6;
44 sbit P3_7 = 0xB7;
45
46
47 void SCI_INI(void); //sci_a init
48 void output(void);
49 void delay(int);
50 void com_isr(void);
51
52 u8 rec_flag=1;
53
54 int time_flag;
55
C51 COMPILER V6.23a DEC 05/04/2003 23:52:50 PAGE 2
56 u8 buf1=0xeb;
57 u8 buf2=0x20;
58 u8 buf3; //address
59 u8 buf4=0xaa;
60 u8 buf5; //control code
61 u8 buf6=0x55;
62
63 void main(void)
64 {
65 1 P3_3=0;
66 1 delay(500);
67 1 P3_3=1;
68 1 delay(200);
69 1 P3_3=0;
70 1 delay(500);
71 1 P3_3=1;
72 1
73 1 SCI_INI();
74 1 while(1)
75 1 {
76 2
77 2
78 2 delay(1);
79 2 while (time_flag)
80 2 {
81 3 output();
82 3 delay(10);
83 3 time_flag-=1;
84 3 }
85 2 //output off
86 2 P1=0xff;
87 2 P2=0;
88 2 P3_3=0;
89 2
90 2
91 2 }
92 1 }
93
94 void SCI_INI(void)
95 {
96 1 P0=0XFF;
97 1 P1=0Xff;
98 1 P2=0X0;
99 1 P3=0X0;
100 1 P3_0=1;
101 1
102 1 TMOD=0x20; //timer1 use as sci bord ,timer0 use as 16bit counter
103 1
104 1 TL1=0XFd;
105 1 TH1=0xfd; //sci bord speed=2400 when 11.052Mhz.
106 1
107 1 TR1=1; //timer1 enable
108 1
109 1 PCON=0X0;
110 1 SCON=0X50; //工作方式 1,接收允许
111 1
112 1 EA=1;
113 1 ES=1;
114 1 }
115
116
117 void com_isr(void) interrupt 4 using 1
C51 COMPILER V6.23a DEC 05/04/2003 23:52:50 PAGE 3
118 {
119 1 u8 temp;
120 1
121 1
122 1
123 1 if (RI)
124 1 {
125 2 temp=SBUF;
126 2 if (temp==buf1) rec_flag=1;
127 2
128 2 switch (rec_flag)
129 2 {
130 3 case 1:
131 3 if(temp==0xeb) rec_flag+=1;
132 3 break;
133 3 case 2:
134 3 if(temp==0x20) rec_flag+=1;
135 3 else rec_flag=1;
136 3 break;
137 3 case 3:
138 3 buf3=temp; //recieve address
139 3 rec_flag+=1;
140 3 break;
141 3 case 4:
142 3 if(temp==0xaa) rec_flag+=1;
143 3 else rec_flag=1;
144 3 break;
145 3 case 5:
146 3 buf5=temp; //recieve contro code
147 3 rec_flag+=1;
148 3 break;
149 3 case 6:
150 3 if(temp==0x55)
151 3 {
152 4 if(buf3==P0) //address ok
153 4 {
154 5 //set output
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -