📄 myapi.lst
字号:
C51 COMPILER V7.50 MYAPI 03/23/2009 12:46:39 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MYAPI
OBJECT MODULE PLACED IN MYAPI.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE MYAPI.c ROM(SMALL) BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include"MYAPI.h"
3 extern BYTE DISPLAYNUM;
4 extern BYTE oldSW;
5 extern BYTE TorRF;
6 extern BYTE COUNT1;
7 extern BYTE COUNT2;
8 extern BYTE SENDNUM;
9 extern BYTE RENUM;
10 extern BYTE EERCOUNT;
11 extern BYTE MASTERNUM;//累加主机接收到的个数 主机中使用
12 extern BYTE SLAVERNUM;//累加从机发送的个数,从机中使用
13 extern BYTE ADDRSlaver;//主机使用的 地址变量
14 extern BYTE ACKMASTER;
15 extern BYTE ACKSLAVER;
16 extern BYTE COUNT3;
17
18 void CPU_INIT(void)//中断 定时器 串口初始化
19 {
20 1 ACKMASTER = 0;
21 1 ACKSLAVER = 0;
22 1 COUNT1 = 0;
23 1 COUNT2 = 0;
24 1 COUNT3 = 0;
25 1 DISPLAYNUM = 0;
26 1 SENDNUM = 0x00;
27 1 RENUM = 0;
28 1 oldSW = 0xFF;
29 1 TorRF = 1;//不能接收
30 1 TR_CFG = 1;
31 1 P2 = 0xFF;
32 1 //中断
33 1 IE = 0x0A;//EA _ _ ES ET1 EX1 ET0 EX0
34 1 IP = 0x08;//- - - PS PT1 PX1 PT0 PX0
35 1 //定时器
36 1 TMOD = 0x11;//GATE C/_T M1 M0(T1) GATE C/_T M1 M0(T0)
37 1 TCON = 0x00;//TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
38 1 TH0 = 0x3C;
39 1 TL0 = 0xAF;//sw定时初值
40 1 TH1 = 0xB1;
41 1 TL1 = 0xE0;//Display定时初值
42 1 //T2
43 1 // T2CON = 0x30;
44 1 // RCAP2H = 0xff;
45 1 // RCAP2L = 0xee;
46 1 // TH2 = 0xff;
47 1 // TL2 = 0xee;
48 1
49 1
50 1 //串口
51 1 SCON = 0x90;//SM0 SM1 SM2 REN TB8 RB8 TI RI
52 1 PCON = PCON|0x80;//SMOD - - - - - - -
53 1 EA = 1;
54 1 TR0 = 1;
55 1 }
C51 COMPILER V7.50 MYAPI 03/23/2009 12:46:39 PAGE 2
56 //根据不同的拨码开关值执行不同测试程序(SW1 SW2 SW3 ~SWT)
57 //0111(7F)数码管 1011(BF)发光二极管跑马灯
58 //拨码开关(1101(DF)红 1110(EF)绿)
59 //通信(0111(F7)单发 1011(FB)单收 1101(FD)单发多收,多机通信) 0101 SW5==0为主机 1001 SW6==0为从机
60 void STATE_SW(void)
61 {
62 1 BYTE tmp;
63 1 tmp = P1;
64 1 tmp = tmp|0x01;
65 1
66 1 switch(tmp)
67 1 {
68 2 case 0x7F:
69 2 {
70 3 TR1 = 1;TorRF = 1;
71 3 if(COUNT1 < 5) COUNT1++;
72 3 else {COUNT1 = 0; if(DISPLAYNUM<99) ++DISPLAYNUM;else {SR2=SR1=ST1=ST2=1;DISPLAYNUM=0;}}
73 3 }
74 2 break;
75 2 case 0xBF:
76 2 LED();
77 2 break;
78 2 case 0xF7:
79 2 AtoB();
80 2 break;
81 2 case 0xFB:
82 2 AreB();
83 2 break;
84 2 case 0xFD:
85 2 case 0xF5:
86 2 case 0xF9:
87 2 MasterTOSlaver();
88 2 break;
89 2 case 0x01:
90 2 CPU_INIT();
91 2 break;
92 2 default:
93 2 TESTSW();
94 2 if(SW1) {DisplayOFF();}
95 2 if(SW6) {AreBOFF();}
96 2 if(SW5) {AtoBOFF();}
97 2 break;
98 2 }
99 1 oldSW = tmp;
100 1 }
101 void Delay(BYTE n)//大约n ms
102 {
103 1 BYTE i;
104 1 while(n--)
105 1 for(i = 0; i < 124; i++);
106 1 }
107 void Display(void)
108 {
109 1
110 1 if(DISPLAYNUM <= 9)
111 1 {
112 2 P0 = 0xF0|DISPLAYNUM;
113 2 if(TorRF == 1) {SR1 = 1;ST2 = 1; ST1 = 0;}
114 2 else {ST1 = 1;SR2 = 1;SR1 = 0; }
115 2 }
116 1 else
117 1 {
C51 COMPILER V7.50 MYAPI 03/23/2009 12:46:39 PAGE 3
118 2 BYTE TMP1;
119 2 BYTE TMP2;
120 2 TMP1 = DISPLAYNUM%10;
121 2 TMP2 = DISPLAYNUM/10;
122 2 if(TorRF == 1) {SR1 = SR2 = 1;ST2 = 1;P0 = TMP1|0xF0;ST1 = 0;Delay(40);ST1 = 1;P0 = TMP2|0xF0;ST2 = 0;}
123 2 else {ST1 = ST2 = 1;SR2 = 1;P0 = TMP1|0xF0;SR1 = 0;Delay(40);SR1 = 1;P0 = TMP2|0xF0;SR2 = 0;}
124 2 }
125 1
126 1 }
127 void DisplayOFF(void)
128 {TR1 = 0;SR2=SR1=ST1=ST2=1;DISPLAYNUM=0;}
129 void LED(void)//跑马灯
130 {
131 1 BYTE tmp;
132 1 tmp = P2|0x0F;
133 1 P2 = tmp&0xF7;
134 1 Delay(255);
135 1 P2 = tmp&0xF3;
136 1 Delay(255);
137 1 P2 = tmp&0xF9;
138 1 Delay(255);
139 1 P2 = tmp&0xFC;
140 1 Delay(255);
141 1 P2 = tmp&0xFE;
142 1 Delay(255);
143 1 P2 = tmp&0xFF;
144 1 Delay(255);
145 1 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -