📄 4506_8bit_ok.lst
字号:
C51 COMPILER V7.05 4506_8BIT_OK 09/21/2005 13:21:37 PAGE 1
C51 COMPILER V7.05, COMPILATION OF MODULE 4506_8BIT_OK
OBJECT MODULE PLACED IN 4506_8bit_ok.OBJ
COMPILER INVOKED BY: C:\Program Files\SiLabs\MCU\IDEfiles\C51\BIN\C51.exe 4506_8bit_ok.c DB OE
stmt level source
1 //-----------------------------------------------------------------------------
2 // Copyright (C) 2004 Silicon Laboratories, Inc.
3 //
4 // AUTH: JS
5 // DATE: 03 JUL 02
6 //
7 // This program flashes the green LED on the C8051F31x target board about
8 // five times a second using the interrupt handler for Timer2.
9 //
10 // Target: C8051F31x
11 //
12 // Tool chain: KEIL Eval 'c'
13 //
14
15 //-----------------------------------------------------------------------------
16 // Includes
17 //-----------------------------------------------------------------------------
18 //OSC=24.5MHz
19 /*
20 ; C8051F310
21 ; KEY5 P0.1 1|---=---|32 P0.2 XTAL1
22 ; KEY6 P0.0 2| |31 P0.3 XTAL2
23 ; GND 3| |30 P0.4 KEY1
24 ; VDD 4| |29 P0.5 KEY2
25 ; /RST/C2ACK 5| |28 P0.6 CNVSTR KEY3
26 ; KEY7 P3.0(C2D) 6| |27 P0.7 KEY4
27 ; CS2 P3.1 7| |26 P1.0 D0
28 ; CS1 P3.2 8| |25 P1.1 D1
29 ; RD P3.3 9| |24 P1.2 D2
30 ; WR P3.4 10| |23 P1.3 D3
31 ; RS P2.7 11| |22 P1.4 D4
32 ; MR_B P2.6 12| |21 P1.5 D5
33 ; MWE P2.5 13| |20 P1.6 D6
34 ; MRE P2.4 14| |19 P1.7 D7
35 ; MALE P2.3 15| |18 P2.0 LP
36 ; MCLE P2.2 16|-------|17 P2.1 MCE
37 ;
38 */
39 //=============================
40 #include <c8051f310.h>
41
42 //=============================
43
44 #define uchar unsigned char
45 #define uint unsigned int
46 //=============================
47 uchar xdata buffer[513]; //开辟页缓存数组
48 uchar *pointer; //建立数组指针
49 uchar raddrl; uchar raddrh; //页寻址的高、低位
50 uchar mydata; //数据
51 //=============================
52 sbit KEY3 =P0^6; //fr
53 sbit KEY4 =P0^7; //-
54 sbit KEY2 =P0^5; //+
55 sbit KEY7 =P3^0; //no step
C51 COMPILER V7.05 4506_8BIT_OK 09/21/2005 13:21:37 PAGE 2
56 sbit KEY1 =P0^4; //step
57 sbit RD =P3^3;
58 sbit RS =P2^7;
59 sbit WR =P3^4;
60 sbit MR_B =P2^6;
61 sbit MWE =P2^5;
62 sbit MRE =P2^4;
63 sbit MALE =P2^3;
64 sbit MCLE =P2^2;
65 sbit MCE =P2^1;
66 sbit CS1 =P3^2;
67 //================
68 sbit LED =P0^0;
69 //=================
70 uchar autorun0,data_out,data_data;
71 uint ii,jj,kk,wait_value,aa,bb,cc;
72 int otp_value;
73 //========write instruction===========================================
74 void wr_com8080(uchar x)
75 {
76 1 RS=0;RD=1;WR=1;WR=1;WR=1;P1=x;P1=x;P1=x;WR=0;WR=0;WR=0;WR=0;WR=1;WR=1;WR=1;
77 1 P1=0xff;
78 1 }
79
80 //=====write display data==================================================
81 void wr_data8080(uchar x)
82 {
83 1 RS=1;WR=1;WR=1;WR=1;RD=1;P1=x;P1=x;P1=x; WR=0; WR=0; WR=0;WR=0;WR=1;WR=1;WR=1;
84 1 P1=0xff;
85 1 }
86 //=========================================================
87 void coordinate(uchar col,page)
88 {
89 1 wr_com8080(0x42);
90 1 wr_com8080(page); //page(row)
91 1 wr_com8080(127);
92 1 wr_com8080(0x43);
93 1 wr_com8080(col); //colomn
94 1 wr_com8080(127);
95 1 }
96 //=========delay without key==========================================
97 void DelayX1ms(uchar count)
98 {
99 1 uchar i,j,k;
100 1 for(i=0;i<count;i++)
101 1 for(j=0;j<40;j++)
102 1 for(k=0;k<120;k++)
103 1 {
104 2 ;
105 2 }
106 1 }
107 //=====================================================================
108 void DelayX10ms(uint count)
109 {
110 1 uint i,j,k;
111 1 for(i=0;i<count;i++)
112 1 for(j=0;j<10;j++)
113 1 for(k=0;k<120;k++)
114 1 {
115 2 ;
116 2 }
117 1 }
C51 COMPILER V7.05 4506_8BIT_OK 09/21/2005 13:21:37 PAGE 3
118 //====================================================================
119 void Delay50us(uchar count)
120 {
121 1 uchar i,j;
122 1 for(j=0;j<count;j++)
123 1 for(i=0;i<6;i++)
124 1 {
125 2 ;
126 2 }
127 1 }
128 //=======================================================================
129 void key_wait(uint count)
130 {
131 1 uint i,j,k;
132 1 if(autorun0==0)
133 1 {
134 2 for(i=0;i<count;i++)
135 2 for(j=0;j<10;j++)
136 2 for(k=0;k<20;k++)
137 2 {
138 3 if(KEY1!=1)
139 3 {
140 4 autorun0=1;
141 4 goto next;
142 4 }
143 3 //==========================
144 3 if(KEY7!=1)
145 3 {
146 4 while(KEY7!=1)
147 4 {
148 5 ;
149 5 }
150 4 kk=1000;
151 4 goto next;
152 4 }
153 3 //==========================
154 3 if(KEY3==0)
155 3 {
156 4 while(KEY3==0)
157 4 {
158 5 ;
159 5 }
160 4 DelayX10ms(25);
161 4 while(KEY3==0)
162 4 {
163 5 ;
164 5 }
165 4 if(wait_value==60)
166 4 wait_value=90;
167 4 else if(wait_value==90)
168 4 wait_value=130;
169 4 else if(wait_value==130)
170 4 wait_value=200;
171 4 else
172 4 wait_value=60;
173 4
174 4 }
175 3 }
176 2 }
177 1 else
178 1 {
179 2 while(1)
C51 COMPILER V7.05 4506_8BIT_OK 09/21/2005 13:21:37 PAGE 4
180 2 {
181 3 if(KEY1!=1)
182 3 {
183 4 for(i=0;i<100;i++)
184 4 for(j=0;j<100;j++)
185 4 {
186 5 ;
187 5 }
188 4 goto next;
189 4 }
190 3 //==============================
191 3 if(KEY7!=1)
192 3 {
193 4 while(KEY7!=1)
194 4 {
195 5 ;
196 5 }
197 4 kk=1000;
198 4 goto next;
199 4 }
200 3 //==========================
201 3 DelayX10ms(25);
202 3 if(KEY2==0)
203 3 {
204 4 while(KEY2==0)
205 4 {
206 5 ;
207 5 }
208 4 wr_com8080(0x2a);
209 4 otp_value=otp_value+1;
210 4 if(otp_value==256)
211 4 otp_value=0xff;
212 4 wr_com8080(otp_value);
213 4 }
214 3 //==========================
215 3 if(KEY4==0)
216 3 {
217 4 while(KEY4==0)
218 4 {
219 5 ;
220 5 }
221 4 wr_com8080(0x2a);
222 4 otp_value=otp_value-1;
223 4 if(otp_value==-1)
224 4 otp_value=0x00;
225 4 wr_com8080(otp_value);
226 4 }
227 3 }
228 2 }
229 1 next:
230 1 //==========================
231 1 RS=1;
232 1 //==========================
233 1 }
234 //=======================================================================
235 void pic_wait(uint count)
236 {
237 1 uint i,j,k;
238 1 if(autorun0==0)
239 1 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -