📄 main.lst
字号:
C51 COMPILER V7.07 MAIN 09/09/2004 18:15:25 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MAIN.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <at89x52.h>
2 #include <intrins.h>
3 #include "common.h"
4 #include "pdiusbd12.h"
5 #include "Int_D12.h"
6 #include "AT89S52.h"
7 BYTE page;
8
9 void SystemInitial ()
10 {
11 1 EA=0;
12 1 PSW=0;
13 1 P0=P1=P2=P3=0xFF;
14 1 Ret_I();
15 1 Ret_I();
16 1 Delay_ms(100);
17 1 Init_D12(); // Initialize USB chipset
18 1 IE=0x81;
19 1 B_RST=0;
20 1 programed=0;
21 1 }
22
23 void main(void)
24 {
25 1 BYTE i;
26 1 WORD p;
27 1
28 1 SystemInitial ();
29 1 while(1){
30 2 if(b_rx_done){
31 3 //FlashLight ();
32 3
33 3 DISABLE_USBINT // Disable USB interrupt
34 3 for(i=0; i<BUF_LEN; i++)
35 3 buf[i]=rx_buf[i];
36 3 b_rx_done=0;
37 3 ENABLE_USBINT // Enable USB interrupt
38 3 switch(buf[0]){
39 4 case 0: // 退出编程模式,目标CPU复位
40 4 Reset_Target();
41 4 Send_Data();
42 4 break;
43 4 case 1: // 允许串行编程
44 4 device=buf[6];
45 4 if (programed)
46 4 {tx_buf[0]=1; tx_buf[1]=0xAA; tx_buf[2]=0xAA; Send_Data(); break;}
47 4 Enable_Program();
48 4 Send_Data();
49 4 break;
50 4 case 2: // 芯片擦除
51 4 if (!programed) //芯片未进入编程模式
52 4 {
53 5 if (!Enable_Program()) //芯片不能进入编程状态
54 5 {tx_buf[0]=2; tx_buf[1]=0xAA; tx_buf[2]=0xAA; Send_Data(); break;}
55 5 }
C51 COMPILER V7.07 MAIN 09/09/2004 18:15:25 PAGE 2
56 4 Chip_Erase();
57 4 Send_Data();
58 4 break;
59 4 case 3: // 字节方式读
60 4 for(i=0; i<4; i++)
61 4 tx_buf[i]=buf[i];
62 4 p=buf[3]*256+buf[2];
63 4 for(i=0; i<buf[1]; i++){
64 5 tx_buf[i+4]=Flash_ReadByte(p);
65 5 p++;
66 5 }
67 4 Send_Data();
68 4 break;
69 4 case 4: // 字节方式写
70 4 p=buf[3]*256+buf[2];
71 4 switch (device){
72 5 case 0:
73 5 case 1:
74 5 for(i=0; i<buf[1];i++){
75 6 Flash_WriteByte(p, buf[i+4]);
76 6 p++;
77 6 //tx_buf[i]=buf[i];
78 6 }
79 5 tx_buf[0]=4; tx_buf[1]=0xEE; tx_buf[2]=0xEE;
80 5 Send_Data();
81 5 break;
82 5 case 2:
83 5 break;
84 5 }
85 4 case 5: // 写加密位
86 4 Write_LockBit(buf[1]);
87 4 tx_buf[0]=5; tx_buf[1]=0xEE; tx_buf[2]=0xEE;
88 4 Send_Data();
89 4 break;
90 4 case 6: // 读加密位
91 4 break;
92 4 case 7: // 读电子标签
93 4 break;
94 4 case 8: // 页方式读
95 4 break;
96 4 case 9: // 页方式写
97 4 Flash_WritePage (buf[1],buf[2]);//buf[1]:mode,buf[2]:page,(ATMEGA8L:buf[3]->6位页内地址)
98 4 tx_buf[0]=9; tx_buf[1]=0xEE; tx_buf[2]=0xEE;
99 4 Send_Data();
100 4 break;
101 4 /*
102 4 case 10:
103 4 count=0;
104 4 for (page=0;page<128&&count<addrMax;page++){
105 4 pageaddr=count/64;
106 4 bCommand[2]=0;
107 4 bCommand[3]=pageaddr;
108 4 for (i=0;i<2;i++){
109 4 addrinpage=count%64;
110 4 bCommand[4]=addrinpage;
111 4 for (j=5;j<37&&count<addrMax;j++)
112 4 bCommand[j]=data[count++];
113 4 MyWriteFile(DeviceNo,bCommand, rbuf,1);
114 4 bCommand[2]=1;
115 4 }
116 4 */
117 4 }
C51 COMPILER V7.07 MAIN 09/09/2004 18:15:25 PAGE 3
118 3 }
119 2 }
120 1
121 1 }
122
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2392 ----
CONSTANT SIZE = 141 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 56 20
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -