📄 cunchu.lst
字号:
C51 COMPILER V7.06 CUNCHU 03/23/2005 22:21:02 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CUNCHU
OBJECT MODULE PLACED IN cunchu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe cunchu.c DB OE
stmt level source
1
2 #include<main.H>
3 //#include <stdio.h>
4 #include <intrins.h>
5 //#include <string.h>
6 //#include <stdarg.h>
7 void PORT_Init (void)
8 {
9 1 SFRPAGE=0x0F;
10 1 XBR0 = 0x05; //UART0,SMbus0接到端口引脚
11 1 XBR1 = 0x04; //外部中断0接到端口引脚(P0.4)
12 1 //XBR0 = 0x04; //使能UART0
13 1 //XBR1 = 0x00;
14 1 XBR2 = 0x40; // 使能交叉开关和弱上拉
15 1 //P0MDOUT |=0x0D;
16 1
17 1 }
18
19 void cunchu_Init()
20 {
21 1 SFRPAGE=0x0F;
22 1 // Enable crossbar and weak pull-ups
23 1
24 1 P7MDOUT =0xFF;
25 1 P6MDOUT =0xFF;
26 1 P5MDOUT =0xFF;
27 1 P4MDOUT |=0xCF;
28 1 P1MDOUT|= 0x80;//P1.7为160D的片选端
29 1 P3MDOUT|= 0x01;//P3.0为160D的RESET端
30 1 P3MDOUT&= 0xFD;//P3.1为160D的BUSY端
31 1 P3|=0x02;
32 1 SFRPAGE=0x00;
33 1 EMI0TC = 0x21;
34 1 EMI0CN = 0xFF;
35 1 EMI0CF = 0x34; //EMIF0CF=00110100 使用P4到P7口 非复用方式 不带块选择的分片方式
36 1 }
37
38
39 //-----------------------------------------------------------------------
40 // 读写子程序
41 //-----------------------------------------------------------------------
42
43 unsigned char flash_readchar(unsigned int addrh,unsigned int ADDR) //读SRAM子程序
44 {
45 1 unsigned char ch;
46 1 SFRPAGE=0x0F;
47 1 RDY_BUSY
48 1 chip_select //enable DataFlash
49 1 P4=(P4&0xF0)|(addrh&0x0F); //定义地址A16--A19
50 1 ADDRHL = ADDR>>8; //输出要读数据的地址高8位
51 1 ADDRL = ADDR; //输出要读数据的地址低8位
52 1 P7MDOUT=0x00; //使能P7数据口为输入状态,先将P7口设置为漏极开路,
53 1 DATA = 0xFF ; //再向P7口写入‘1’
54 1 NOWR
55 1 RD;
C51 COMPILER V7.06 CUNCHU 03/23/2005 22:21:02 PAGE 2
56 1 _nop_(); //使能读信号
57 1 ch = DATA; //读入数据
58 1 NORD; //使读信号无效
59 1 chip_noselect
60 1 return ch;
61 1 }
62 //----------------------------------------------------------
63 void flash_writechar(unsigned long addr,unsigned char ch)
64 {
65 1 SFRPAGE=0x0F;
66 1 RDY_BUSY
67 1 chip_select //enable DataFlash
68 1 P4=(P4&0xF0)|((addr>>16)&0x0F); //定义地址A16--A19
69 1 ADDRHL = addr>>8; //输出要读数据的地址高8位
70 1 ADDRL = addr; //输出要读数据的地址低8位
71 1 P7MDOUT=0xFF; //使能P7数据口为推挽输出状态
72 1 DATA = ch; //输出数据
73 1
74 1 NORD
75 1 WR //使能写入信号
76 1
77 1 _nop_();
78 1
79 1 NOWR //是写入信号无效
80 1 chip_noselect
81 1 }
82 void flash_writecom(unsigned int ADDR,unsigned char ch)
83 {
84 1 SFRPAGE=0x0F;
85 1 RDY_BUSY
86 1 chip_select //enable DataFlash
87 1 ADDRHL = ADDR>>8; //输出要读数据的地址高8位
88 1 ADDRL = ADDR; //输出要读数据的地址低8位
89 1 P7MDOUT=0xFF; //使能P7数据口为推挽输出状态
90 1 DATA = ch; //输出数据
91 1
92 1 NORD
93 1 WR //使能写入信号
94 1
95 1 _nop_();
96 1
97 1 NOWR //是写入信号无效
98 1 chip_noselect
99 1 }
100 /*void sram_write ( unsigned int addh ,unsigned int addr,unsigned int in )
101 { unsigned char ch11,ch22;
102
103 ch11=in&0x00FF;
104 ch22=in>>8;
105 sram_writechar(addh,addr,ch11);
106 addr++;
107 sram_writechar(addh,addr,ch22);
108
109 }*/
110 //-------------------------------------------------------------
111 //参数addr是起始地址,Inarry是数组名,arry是传送数据的长度
112 void flash_write( unsigned long addr,unsigned int *Inarry,unsigned int arry)
113 {
114 1 unsigned char ch11,ch22;
115 1 unsigned int i;
116 1 flash_writecom(0xAAA,0xAA); //write program command
117 1 flash_writecom(0x555,0x55);
C51 COMPILER V7.06 CUNCHU 03/23/2005 22:21:02 PAGE 3
118 1 flash_writecom(0xAAA,0xA0);
119 1
120 1 for(i=0;i<arry;i++)
121 1 {ch11=Inarry[i]&0x00FF;
122 2 ch22=Inarry[i]>>8;
123 2 flash_writechar(addr+i,ch11);
124 2 addr++;
125 2 flash_writechar(addr+i,ch22);
126 2 }
127 1 }
128 /*void flash_writesample ( unsigned long addr,unsigned int number,unsigned int *Inarry,unsigned int arry)
129 {
130
131 flash_writeyizhu (addr+number*arry,Inarry, arry);
132
133 }*/
134 unsigned int flash_read(unsigned int addh,unsigned int addr)
135 { volatile unsigned char ch1=0,ch2=0;
136 1 volatile unsigned int ch=0,ch3=0,ch4=0;
137 1 ch1=flash_readchar(addh,addr);
138 1 addr++;
139 1 ch2=flash_readchar(addh,addr);
140 1 ch3=ch2;
141 1 ch4=ch1;
142 1 ch=((ch3<<8)|ch4);
143 1
144 1 return ch;
145 1
146 1
147 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 458 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 25
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -