📄 k9f6408u0a.lst
字号:
C51 COMPILER V7.06 K9F6408U0A 04/06/2005 21:47:01 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE K9F6408U0A
OBJECT MODULE PLACED IN K9F6408U0A.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil20\C51\BIN\C51.EXE K9F6408U0A.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //-----------------------函数声明,变量定义--------------------------------------------------------
2 #include <reg51.h>
3 #include <stdio.h>
4 #include <intrins.h>
5 #include <reg51.h>
6 sbit FLASH_CLE=P1^0;
7 sbit FLASH_ALE=P1^1;
8 sbit FLASH_WE=P1^2;
9 sbit FLASH_WP=P1^3;
10 sbit FLASH_CE=P1^4;
11 sbit FLASH_RD=P1^5;
12 sbit FLASH_RB=P1^6;
13 void WriteCommand(unsigned char command);
14 void WriteAddress(
15 unsigned char H_ADR, //A16~A23 列地址
16 unsigned char M_ADR, //A8~A15
17 unsigned char L_ADR //A0~A7 行地址
18 );
19 void WRITEBYTE(unsigned char Wdata); //写一个数据到FLASH
20 unsigned char READBYTE(); //从FLSAH读一个数据
21 void REC_data_process(unsigned char Rdata); //接收数据处理,读一页时,每读一次处理一次
22 void READ_onepage1(); //连续读一页数据(528字节)
23
24 //--------------------------------------------------------------------------------------------------
25 // 函数名称: WriteCommand
26 // 入口参数: command命令字
27 // 函数功能: 写命令字,开始各种操作
28 //--------------------------------------------------------------------------------------------------
29 void WriteCommand(unsigned char command)
30 {
31 1 FLASH_ALE=0;
32 1 FLASH_CE=0;
33 1 FLASH_CLE=1;
34 1 FLASH_WE=0;
35 1 P0=command;
36 1 FLASH_WE=1;
37 1 FLASH_CLE=0;
38 1 FLASH_ALE=1;
39 1 }
40 //--------------------------------------------------------------------------------------------------
41 // 函数名称: WriteAddress
42 // 入口参数: H_ADR,M_ADR,L_ADR 行列地址
43 // 函数功能: 写地址
44 //--------------------------------------------------------------------------------------------------
45 void WriteAddress(
46 unsigned char H_ADR, //A16~A23 列地址
47 unsigned char M_ADR, //A8~A15
48 unsigned char L_ADR //A0~A7 行地址
49 )
50 {
51 1 FLASH_WE=1;
52 1 FLASH_CE=0;
53 1 FLASH_CLE=0;
54 1 FLASH_ALE=1;
55 1 FLASH_WE=0;
C51 COMPILER V7.06 K9F6408U0A 04/06/2005 21:47:01 PAGE 2
56 1 P0=L_ADR;
57 1 FLASH_WE=1;
58 1 _nop_();
59 1 FLASH_WE=0;
60 1 P0=M_ADR;
61 1 FLASH_WE=1;
62 1 _nop_();
63 1 FLASH_WE=0;
64 1 P0=H_ADR;
65 1 FLASH_WE=1;
66 1 _nop_();
67 1 FLASH_ALE=0;
68 1 }
69 //--------------------------------------------------------------------------------------------------
70 // 函数名称: WRITEBYTE
71 // 入口参数: Wdata要写入 FLASH的数据
72 // 函数功能: 写一个数据到FLASH
73 //--------------------------------------------------------------------------------------------------
74 void WRITEBYTE(unsigned char Wdata) //写一个数据到FLASH
75 {
76 1 FLASH_WE=1;
77 1 FLASH_CLE=0;
78 1 FLASH_CE=0;
79 1 FLASH_ALE=0;
80 1 FLASH_WE=0;
81 1 _nop_();
82 1 P0=Wdata;
83 1 _nop_();
84 1 FLASH_WE=1;
85 1 }
86 //--------------------------------------------------------------------------------------------------
87 // 函数名称: READBYTE
88 // 出口参数: Rdata从FLASH读出的数据
89 // 函数功能: 从FLSAH读一个数据
90 //--------------------------------------------------------------------------------------------------
91 unsigned char READBYTE() //从FLSAH读一个数据
92 {
93 1 unsigned char Rdata;
94 1 FLASH_WE=1;
95 1 FLASH_CLE=0;
96 1 FLASH_ALE=0;
97 1 FLASH_CE=0;
98 1 FLASH_RD=0; //准备好读入
99 1 _nop_();
100 1 _nop_();
101 1 while(!FLASH_RB)//当读信号无效时,等待
102 1 {
103 2 }
104 1 Rdata=P0; //把P0口读出的值存入ACC寄存器
105 1 //插入2个机器周期
106 1 _nop_();
107 1 _nop_();
108 1 FLASH_RD=1; //不再读入
109 1 return(Rdata);
110 1 }
111
112 unsigned char READ_Status()
113 {
114 1 unsigned char Status;
115 1 WriteCommand(0x70);
116 1 Status=READBYTE();
117 1 return(Status);
C51 COMPILER V7.06 K9F6408U0A 04/06/2005 21:47:01 PAGE 3
118 1 }
119 //--------------------------------------------------------------------------------------------------
120 // 函数名称: READ_onepage1
121 // 调用函数: WriteCommand
122 // WriteAddress
123 // REC_data_process();每接收一个数据,处理
124 // 函数功能: 连续读一页数据(528字节)
125 //--------------------------------------------------------------------------------------------------
126 void READ_onepage1() //连续读一页数据(528字节)
127 {
128 1 unsigned char d=528;
129 1 unsigned char Rec_data;
130 1 WriteCommand(0x00); //写读的命令0x00或0x01
131 1 WriteAddress(0x00,0x00,0x00); //写读的地址
132 1 while(d>0)
133 1 {
134 2 Rec_data=READBYTE();
135 2 REC_data_process(Rec_data);
136 2 d--;
137 2 }
138 1 FLASH_CE=1;
139 1 }
140
141 void REC_data_process(unsigned char Rdata) //接收数据处理,读一页时,每读一次处理一次
142 {
143 1 }
*** WARNING C280 IN LINE 141 OF K9F6408U0A.C: 'Rdata': unreferenced local variable
144
145
146
147
148
149
150
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 135 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -