?? dfq.lst
字號:
C51 COMPILER V7.06 DFQ 03/03/2006 15:27:35 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DFQ
OBJECT MODULE PLACED IN DFQ.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DFQ.c BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS
stmt level source
1 /******************************************************
2 DESIGN FOR PCBA'S Material Number Display by RF315M
3 Designer: BH Zhang
4 Date:2006-1-11
5 Ver:1.0
6 Modify Mark:NONE
7 *******************************************************/
8 #include <at89x51.h> //包含89S51的WDT子過程
9 #include "dfq.h"
10 #include "timer.h"
11 #include "1602b_lcd.h"
12 #include "rf315mhz.h"
13 #include "4x4key.h"
14
15 //------------------------------------------------------
16 #define MNLEN (RFSENDLEN-4) //material NO len=16bits
17 //------------------------------------------------------
18 unsigned char nCurMode=KEY; //init status
19 unsigned char nCurLine='A'; //Line Code
20 unsigned char aDispNo[MNLEN+1];
21
22 bit bInLN=0; //input LO:1 MO:0
23 unsigned char nGroup=0; //0--number 1,2,3--abcd...
24 unsigned char nKey=NOKEY; //record key,0xFF=NO KEY
25 //------------------------------------------------------
26 void ClearDispNo(void){
27 1 unsigned char i;
28 1 for(i=0;i<MNLEN+1;i++)aDispNo[i]='_';
29 1 }
30 //------------------------------------------------------
31 void DispSendOK(void){
32 1 unsigned char i;
33 1 for(i=0;i<MNLEN+1;i++)aDispNo[i]='_';
34 1 aDispNo[0]='S';aDispNo[1]='E';
35 1 aDispNo[2]='N';aDispNo[3]='D';
36 1 aDispNo[5]='O';aDispNo[6]='K';
37 1 }
38 //------------------------------------------------------
39 void DispSendFail(void){
40 1 unsigned char i;
41 1 for(i=0;i<MNLEN+1;i++)aDispNo[i]='_';
42 1 aDispNo[0]='N';aDispNo[1]='O';
43 1 aDispNo[3]='A';aDispNo[4]='C';
44 1 aDispNo[5]='K';
45 1 }
46 //------------------------------------------------------
47 void InitMcu(void){
48 1 RFTX=1; //close 315MH Transistor
49 1 LCD_init();
50 1 InitTime();
51 1 ClearDispNo();
52 1 EA=1;
53 1 TR0=1;
54 1 TR1=0;
55 1 }
C51 COMPILER V7.06 DFQ 03/03/2006 15:27:35 PAGE 2
56 //------------------------------------------------------
57 unsigned char InputPos(){
58 1 unsigned char i;
59 1 for(i=0;i<MNLEN;i++){
60 2 if(aDispNo[i]==' ')break;
61 2 if(aDispNo[i]=='_')break;
62 2 }
63 1 return i;
64 1 }
65 //------------------------------------------------------
66 void Display(void){
67 1 unsigned char i;
68 1 static bit b;
69 1 b=!b;
70 1
71 1
72 1 LCD_write_string(0,0,"LineNo:");
73 1
74 1 if((bInLN)&&(nCurMode==KEY)){
75 2 if(b)LCD_char(nCurLine);
76 2 else LCD_char('_');
77 2 }else LCD_char(nCurLine);
78 1
79 1 LCD_write_string(9,0," ");
80 1
81 1 if(bInLN){
82 2 LCD_char('L');LCD_char('N');
83 2 }else{
84 2 LCD_char('M');LCD_char('O');
85 2 }
86 1
87 1 LCD_char(' ');
88 1 LCD_char('G');
89 1 LCD_digtal(nGroup);
90 1
91 1 LCD_set_xy(0,1);
92 1 if((!bInLN)&&(nCurMode==KEY)){
93 2 i=InputPos();
94 2 if(b)aDispNo[i]='_';
95 2 else aDispNo[i]=' ';
96 2 }
97 1 for(i=0;i<MNLEN;i++)LCD_char(aDispNo[i]);
98 1 }
99 //------------------------------------------------------
100 void DeleteChar(void){
101 1 unsigned char i;
102 1 //for(i=0;i<MNLEN;i++)if(aDispNo[i]==' ')break;
103 1 i=InputPos();
104 1 if(i>0)aDispNo[i-1]='_';
105 1 }
106 //------------------------------------------------------
107 //0 1 2 3
108 //0ABC 1DEF 2GHI 3JKL
109 //4 5 6 7
110 //4MNO 5PQR 6STU 7VWX
111 //8 9 10 11
112 //8YZ 9 NUM A-1
113 //12 13 14 15
114 //A-2 A-3 c/l Enter
115 //------------------------------------------------------
116 void process_key(){
117 1 unsigned char i,tmp;
C51 COMPILER V7.06 DFQ 03/03/2006 15:27:35 PAGE 3
118 1
119 1 i=InputPos();
120 1 switch(nKey){
121 2 case 10:
122 2 case 11:
123 2 case 12:
124 2 case 13:
125 2 nGroup=nKey-10;
126 2 break;
127 2 case 14:
128 2 if(i==0)bInLN=!bInLN;
129 2 else DeleteChar();
130 2 break;
131 2 case 15:
132 2 if(i>0){
133 3 nCurMode=SEND;
134 3 LCD_write_string(0,1,"Sending_________");
135 3 }
136 2 break;
137 2 default:
138 2 tmp=(nGroup==0)?nKey+'0':nKey*3+'A'+nGroup-1;
139 2 if(tmp<='Z'){
140 3 if(bInLN)nCurLine=tmp;
141 3 else if(i<16)aDispNo[i]=tmp;
142 3 }
143 2 break;
144 2 }
145 1 i=InputPos();
146 1 for(;i<MNLEN+1;i++)aDispNo[i]='_';
147 1 nKey=NOKEY;
148 1 }
149 //------------------------------------------------------
150 void Sort_Data(){
151 1 unsigned char i;
152 1 RFBuf[2]=nCurLine;
153 1 for(i=3;i<19;i++)RFBuf[i]=aDispNo[i-3];
154 1 }
155 //------------------------------------------------------
C51 COMPILER V7.06 DFQ 03/03/2006 15:27:35 PAGE 4
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION ClearDispNo (BEGIN)
; SOURCE LINE # 26
; SOURCE LINE # 28
;---- Variable 'i' assigned to Register 'R7' ----
0000 ?C0001:
0000 7F11 MOV R7,#011H
0002 7800 R MOV R0,#LOW aDispNo
0004 745F MOV A,#05FH
0006 ?C0060:
0006 F6 MOV @R0,A
0007 08 INC R0
0008 DFFC DJNZ R7,?C0060
; SOURCE LINE # 29
000A ?C0004:
000A 22 RET
; FUNCTION ClearDispNo (END)
; FUNCTION DispSendOK (BEGIN)
; SOURCE LINE # 31
; SOURCE LINE # 33
;---- Variable 'i' assigned to Register 'R7' ----
0000 ?C0005:
0000 7F11 MOV R7,#011H
0002 7800 R MOV R0,#LOW aDispNo
0004 745F MOV A,#05FH
0006 ?C0061:
0006 F6 MOV @R0,A
0007 08 INC R0
0008 DFFC DJNZ R7,?C0061
000A ?C0006:
; SOURCE LINE # 34
000A 750053 R MOV aDispNo,#053H
000D 750045 R MOV aDispNo+01H,#045H
; SOURCE LINE # 35
0010 75004E R MOV aDispNo+02H,#04EH
0013 750044 R MOV aDispNo+03H,#044H
; SOURCE LINE # 36
0016 75004F R MOV aDispNo+05H,#04FH
0019 75004B R MOV aDispNo+06H,#04BH
; SOURCE LINE # 37
001C 22 RET
; FUNCTION DispSendOK (END)
; FUNCTION DispSendFail (BEGIN)
; SOURCE LINE # 39
; SOURCE LINE # 41
;---- Variable 'i' assigned to Register 'R7' ----
0000 ?C0009:
0000 7F11 MOV R7,#011H
0002 7800 R MOV R0,#LOW aDispNo
0004 745F MOV A,#05FH
0006 ?C0062:
0006 F6 MOV @R0,A
0007 08 INC R0
0008 DFFC DJNZ R7,?C0062
000A ?C0010:
; SOURCE LINE # 42
000A 75004E R MOV aDispNo,#04EH
000D 75004F R MOV aDispNo+01H,#04FH
C51 COMPILER V7.06 DFQ 03/03/2006 15:27:35 PAGE 5
; SOURCE LINE # 43
0010 750041 R MOV aDispNo+03H,#041H
0013 750043 R MOV aDispNo+04H,#043H
; SOURCE LINE # 44
0016 75004B R MOV aDispNo+05H,#04BH
; SOURCE LINE # 45
0019 22 RET
; FUNCTION DispSendFail (END)
; FUNCTION InitMcu (BEGIN)
; SOURCE LINE # 47
; SOURCE LINE # 48
0000 D2B7 SETB RFTX
; SOURCE LINE # 49
0002 120000 E LCALL LCD_init
; SOURCE LINE # 50
0005 120000 E LCALL InitTime
; SOURCE LINE # 51
0008 120000 R LCALL ClearDispNo
; SOURCE LINE # 52
000B D2AF SETB EA
; SOURCE LINE # 53
000D D28C SETB TR0
; SOURCE LINE # 54
000F C28E CLR TR1
; SOURCE LINE # 55
0011 22 RET
; FUNCTION InitMcu (END)
; FUNCTION InputPos (BEGIN)
; SOURCE LINE # 57
; SOURCE LINE # 59
;---- Variable 'i' assigned to Register 'R7' ----
0000 E4 CLR A
0001 FF MOV R7,A
0002 ?C0014:
; SOURCE LINE # 60
0002 7400 R MOV A,#LOW aDispNo
0004 2F ADD A,R7
0005 F8 MOV R0,A
0006 E6 MOV A,@R0
0007 FE MOV R6,A
0008 6420 XRL A,#020H
000A 6009 JZ ?C0015
000C ?C0017:
; SOURCE LINE # 61
000C EE MOV A,R6
000D 645F XRL A,#05FH
000F 6004 JZ ?C0015
; SOURCE LINE # 62
0011 ?C0016:
0011 0F INC R7
0012 BF10ED CJNE R7,#010H,?C0014
0015 ?C0015:
; SOURCE LINE # 63
; SOURCE LINE # 64
0015 ?C0019:
0015 22 RET
; FUNCTION InputPos (END)
; FUNCTION Display (BEGIN)
; SOURCE LINE # 66
C51 COMPILER V7.06 DFQ 03/03/2006 15:27:35 PAGE 6
; SOURCE LINE # 69
0000 B200 R CPL b
; SOURCE LINE # 72
0002 7BFF MOV R3,#0FFH
0004 7A00 R MOV R2,#HIGH ?SC_0
0006 7900 R MOV R1,#LOW ?SC_0
0008 E4 CLR A
0009 FD MOV R5,A
000A FF MOV R7,A
000B 120000 E LCALL _LCD_write_string
; SOURCE LINE # 74
000E 30000D R JNB bInLN,?C0020
0011 E500 R MOV A,nCurMode
0013 7009 JNZ ?C0020
; SOURCE LINE # 75
0015 300002 R JNB b,?C0021
0018 8004 SJMP ?C0063
001A ?C0021:
; SOURCE LINE # 76
001A 7F5F MOV R7,#05FH
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -