📄 93c46.lst
字号:
C51 COMPILER V6.12 93C46 04/06/2009 15:09:46 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE 93C46
OBJECT MODULE PLACED IN .\93c46.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\93c46.c DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 sbit CS=P2^4;
5 sbit SK=P2^5;
6 sbit DI=P2^6;
7 sbit DO=P2^7;
8 sbit led=P1^6;
9 sbit dm=P1^4;
10 sbit wm=P1^5;
11
12 unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
13 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
14
15 /****************擦写使能****************/
16 void Ewen(void)
17 {
18 1 unsigned char i,temp;
19 1 CS=0;
20 1 SK=0;
21 1 CS=1;
22 1 temp=0x98; // 10011XXXX
23 1 for(i=8;i>0;i--)
24 1 {
25 2 DI=temp&0x80;//取高位
26 2 SK=1; //写入
27 2 SK=0;
28 2 temp<<=1;
29 2 }
30 1 CS=0;
31 1 }
32
33 /****************擦写禁止***************/
34 void Ewds(void)
35 {
36 1 uchar i,temp;
37 1 CS=0;
38 1 SK=0;
39 1 CS=1;
40 1 temp=0x80; // 10000XXXX
41 1 for(i=8;i>0;i--)
42 1 {
43 2 DI=temp&0x80;
44 2 SK=1;
45 2 SK=0;
46 2 temp<<=1;
47 2 }
48 1 CS=0;
49 1 }
50 /*****************读数据********************/
51 unsigned int Read(unsigned char address)
52 {
53 1 unsigned char i;
54 1 unsigned int result;
55 1 Ewen();//写使能
C51 COMPILER V6.12 93C46 04/06/2009 15:09:46 PAGE 2
56 1 SK=0;
57 1 DI=1;
58 1 CS=0;
59 1 CS=1;
60 1 SK=1;
61 1 SK=0;
62 1 address=address&0x3|0x80;
63 1 for(i=8;i>0;i--)
64 1 {
65 2 DI=address&0x80;
66 2 SK=1;
67 2 SK=0;
68 2 address<<=1;
69 2 }
70 1 DO=1;
71 1 for(i=16;i>0;i--)
72 1 {
73 2 SK=1;
74 2 result=(result<<1)|DO;
75 2 SK=0;
76 2 }
77 1 CS=0;
78 1 Ewds();
79 1 return(result);
80 1 }
81 /************************写数据*********************************/
82 void Write(unsigned char address,unsigned int InData)
83 {
84 1 unsigned char i;
85 1 Ewen();
86 1 SK=0;
87 1 DI=1;
88 1 CS=0;
89 1 CS=1;
90 1 SK=1;
91 1 SK=0;
92 1 address=address&0x3f|0x40;//
93 1 for(i=8;i>0;i--)
94 1 { // 8
95 2 DI=address&0x80;
96 2 SK=1; SK=0;
97 2 address<<=1;
98 2 }
99 1 for(i=16;i>0;i--) //16bit
100 1 { // 16
101 2 DI=InData&0x8000;
102 2 SK=1; SK=0;
103 2 InData<<=1;
104 2 }
105 1 CS=0; DO=1;
106 1 CS=1; SK=1;
107 1 while(DO==0) // busy test
108 1 {
109 2 SK=0; SK=1;
110 2 }
111 1 SK=0; CS=0;
112 1 Ewds();
113 1 }
114
115
116 void delay(uint z)
117 {
C51 COMPILER V6.12 93C46 04/06/2009 15:09:46 PAGE 3
118 1 uint x,y;
119 1 for(x=z;x>0;x--)
120 1 for(y=113;y>0;y--);
121 1 }
122
123 void main(void)
124 {
125 1 led=0;
126 1 Write(0x03,0x03);
127 1 delay(1000);
128 1 P0=0X01;
129 1 wm=1;
130 1 wm=0;
131 1 P0=table[Read(0x03)];
132 1 dm=1;
133 1 dm=0;
134 1 while(1);
135 1 }
136
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 305 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -