📄 main.lst
字号:
C51 COMPILER V6.23a MAIN 05/11/2007 22:24:43 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: C:\Keil623\C51\BIN\C51.EXE MAIN.C OPTIMIZE(11,SPEED) REGFILE(.\intsio2.ORC) BROWSE DEFINE(XTAL=1105
-9200) OBJECTADVANCED DEBUG CODE SYMBOLS PREPRINT
stmt level source
1
2
3 #include <reg52.h>
4 #include <stdio.h>
5 #include <intrins.h>
6 #include "sio.h"
7 #define MasterCall P34 //P34 == 0,主机呼叫
8
9 sbit P00 = 0x80;
10 sbit P01 = 0x81;
11 sbit P02 = 0x82;
12 sbit P03 = 0x83;
13 sbit P04 = 0x84;
14 sbit P05 = 0x85;
15 sbit P06 = 0x86;
16 sbit P07 = 0x87;
17
18 sbit P34 = 0xB4;
19 sbit P30 = 0xB0;
20
21 char _getkey (void)
22 {
23 1 int k;
24 1
25 1 do
26 1 {
27 2 k = com_getchar ();
28 2 }
29 1 while (k == -1);
30 1
31 1 return ((unsigned char) k);
32 1 }
33
34 /*------------------------------------------------------------------------------
35 ------------------------------------------------------------------------------*/
36 char putchar (char c)
37 {
38 1 volatile unsigned int i;
39 1
40 1 while (com_putchar (c) != 0)
41 1 {
42 2 for (i=0; i<1000; i++)
43 2 {
44 3 /*** DO NOTHING ***/
45 3 }
46 2 }
47 1
48 1 return (c);
49 1 }
50
51
52 void main (void)
53 { //unsigned int i;
54 1 //unsigned char j;
C51 COMPILER V6.23a MAIN 05/11/2007 22:24:43 PAGE 2
55 1 unsigned char k;
56 1 com_initialize (); /* initialize interrupt driven serial I/O */
57 1 com_baudrate (9600);
58 1 P1 = 0xAA ;
59 1 P2 = 0x55 ;
60 1 P3 = 0xff ;
61 1 MasterCall = 1 ; //ready to wait for master call
62 1 EA = 1; /* Enable Interrupts */
63 1 while (1)
64 1 { P30 = 1; //进入串行接收状态
65 2 P0 = _getkey () ;
66 2 P1 = _getkey () ;
67 2 P2 = _getkey () ;
68 2 k = _getkey () | 0x11 ; //p30,p34为1不变
69 2 P3 = k ;
70 2 P30 = 0; //回应主机接收到
71 2 _nop_();
72 2 _nop_();
73 2 _nop_();
74 2 _nop_();
75 2 } //end of while(1)
76 1 } //end of main
77
78
79
80
C51 COMPILER V6.23a MAIN 05/11/2007 22:24:43 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _getkey (BEGIN)
; SOURCE LINE # 21
; SOURCE LINE # 22
?C0003:
; SOURCE LINE # 26
; SOURCE LINE # 27
E CALL com_getchar
;---- Variable 'k' assigned to Register 'R6/R7' ----
; SOURCE LINE # 28
; SOURCE LINE # 29
MOV A,R7
CPL A
R JNZ ?C0014
MOV A,R6
CPL A
?C0014:
R xJZ ?C0003
; SOURCE LINE # 31
; SOURCE LINE # 32
?C0004:
RET
; FUNCTION _getkey (END)
; FUNCTION _putchar (BEGIN)
; SOURCE LINE # 36
R MOV c,R7
; SOURCE LINE # 37
?C0005:
; SOURCE LINE # 40
R MOV R7,c
E CALL _com_putchar
MOV A,R7
R xJZ ?C0006
; SOURCE LINE # 41
; SOURCE LINE # 42
CLR A
R MOV i,A
R MOV i+01H,A
?C0007:
CLR C
R MOV A,i+01H
SUBB A,#0E8H
R MOV A,i
SUBB A,#03H
R xJGE ?C0005
; SOURCE LINE # 43
; SOURCE LINE # 45
R INC i+01H
R MOV A,i+01H
R JNZ ?C0015
R INC i
?C0015:
R xJMP ?C0007
; SOURCE LINE # 46
?C0006:
; SOURCE LINE # 48
R MOV R7,c
; SOURCE LINE # 49
?C0010:
C51 COMPILER V6.23a MAIN 05/11/2007 22:24:43 PAGE 4
RET
; FUNCTION _putchar (END)
; FUNCTION main (BEGIN)
; SOURCE LINE # 52
; SOURCE LINE # 53
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -