📄 mzmfr.lst
字号:
C51 COMPILER V7.01 MZMFR 02/27/2003 10:00:53 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE MZMFR
OBJECT MODULE PLACED IN MZMFR.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE MZMFR.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /* This program is a example */
2 /* item1 */
3 #include <reg51.h> /* item2 */
4 #define uint unsigned int
5 #define uchar unsigned char
6
7 uchar bdata FLAG;
8 sbit FLAG1 = FLAG^1;
9 sbit FLAG2 = FLAG^2;
10 sbit P1_1 = P1^1;
11 uchar data time,Dtime,Btime; /* item3 */
12 uint fetch_rate(void); /* item4 */
13
14 main(){ /* item5 */
15 1 char bdata JFLAG;
16 1 uint data state,Astate,Bstate,rate;
17 1 do {
18 2 P1=0xFF; /* item6 */
19 2 FLAG=P1;
20 2 TXD=0; /* P3.1 */
21 2 JFLAG=FLAG>>6;
22 2 JFLAG=JFLAG&0x03;
23 2 switch(JFLAG) {
24 3 case 0:
25 3 time=2;Dtime=20;break;
26 3 case 1:
27 3 time=4;Dtime=40;break;
28 3 case 2:
29 3 time=6;Dtime=60;break;
30 3 case 3:
31 3 time=8;Dtime=80;break;
32 3 }
33 2 Btime=Dtime;
34 2 JFLAG=FLAG>>3;JFLAG=JFLAG&0x07;
35 2 switch(JFLAG) {
36 3 case 0:
37 3 state=50;break; /* item7 */
38 3 case 1:
39 3 state=100;break;
40 3 case 2:
41 3 state=150;break;
42 3 case 3:
43 3 state=200;break;
44 3 case 4:
45 3 state=250;break;
46 3 case 5:
47 3 state=300;break;
48 3 case 6:
49 3 state=350;break;
50 3 case 7:
51 3 state=400;break;
52 3 }
53 2 FLAG1=0;
54 2 TMOD=0x51;
55 2 TH1=0;
C51 COMPILER V7.01 MZMFR 02/27/2003 10:00:53 PAGE 2
56 2 TL1=0;
57 2 TH0=0x3C;
58 2 TL0=0xB0;
59 2 TR0=1;
60 2 TR1=1;
61 2 ET0=1;
62 2 EA=1;
63 2 rate=fetch_rate(); /* item8 */
64 2 if(!FLAG2) {
65 3 Astate=state+2*state/10;
66 3 if(rate<=state) {
67 4 TXD=1;
68 4 do {
69 5 rate=fetch_rate();
70 5 }while(rate<=Astate);
71 4 TXD=0;
72 4 }
73 3 }
74 2 else {
75 3 Bstate=state-2*state/10;
76 3 if(rate>=state) {
77 4 TXD=1;
78 4 do {
79 5 rate=fetch_rate();
80 5 }while(rate>=Bstate);
81 4 TXD=0;
82 4 }
83 3 }
84 2 }while(1);
85 1 }
86
87 unsigned int fetch_rate() /* item9 */
88 { /* item10 */
89 1 uint count;
90 1 do{ }while(!FLAG1);
91 1 FLAG1=0;
92 1 count=TH1*256+TL1;
93 1 TH1=0;
94 1 TL1=0;
95 1 Dtime=Btime;
96 1 return(count/time); /* item11 */
97 1 } /* item12 */
98
99 timer0 () interrupt 1 using 1
100 {
101 1 TH0=0x3C;
102 1 TL0=0xB0;
103 1 Dtime=Dtime-1;
104 1 if(Dtime==0) {FLAG1=1;}
105 1 }
106
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 390 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 8
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V7.01 MZMFR 02/27/2003 10:00:53 PAGE 3
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -