📄 test.lst
字号:
C51 COMPILER V7.09 TEST 08/10/2005 00:27:29 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN TEST.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TEST.C OPTIMIZE(2,SPEED) BROWSE INTVECTOR(0X8000) DEFINE(monitor51) DEBUG O
-BJECTEXTEND
line level source
1 /*************************************************************************************************
2 * PROJECT CODE:MCS_51 Experiment Board Test Program *
3 *`CREATE DATE :2004.12.20 *
4 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
5 * MODEIFY DATE:2005.6.2 *
6 * DOCUMENT :None *
7 * OTHER :None *
8 *************************************************************************************************/
9 #include <reg51.H>
10 #include<absacc.h>
11
12 #define WR_COM XBYTE[0x4000]
13 #define RD_STA XBYTE[0x4001]
14 #define WR_DAT XBYTE[0x4002]
15 #define RD_DAT XBYTE[0x4003]
16 char code CGRAM_TABLE[]={0x08,0x0F,0x12,0x0F,0x0A,0x1F,0x02,0x02,// ;年
17 0x0F,0x09,0x0F,0x09,0x0F,0x09,0x11,0x00, //;月
18 0x0F,0x09,0x09,0x0F,0x0,0x09,0x0F,0x00}; // ;日
19 char code TABLE1[]={'C','Q','I','T',' ','M','C','S','-','5','1',' ','E','M','U',' '};//,'V','1','.','0'};/
-/{0x44,0x50,0x2D,0x35,0x31,0x48};//;DP-51H
20 char code TABLE2[]={'V','1','.','0'};//;空格
21 char code TABLE3[]={0x5A,0x4C,0x47,0x32,0x30,0x30,0x33,0x00,0x37,0x01,0x31,0x32,0x02};
22 //; Z l G 2 0 0 3 年 7 月 1 2 日
23 char code TABLE4[]="Designed By WWL";
24 void printf_lcd(unsigned char StartPosition,char *string,char len);
25 void init_cgram();
26 void init_lcd();
27 void test_lcd();
28 void clr_lcd();
29
30 sbit CS=P1^0;
31 sbit CLK=P1^1;
32 sbit DIO=P1^2;
33 sbit AD_OK=P3^2;
34 char KeyCode;
35 char dispbuff[8];
36 char adconvert(char channel);
37 char ReadKB();
38 void sent(unsigned char sent_buf);
39 void delay(unsigned char time);
40 void display();
41 char TICK;
42 char ADresult;
43 /*************************************************************************************************
44 * FUNCTION NAME:void Timer0 interrupt *
45 *`CREATE DATE :2004.12.20 *
46 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
47 * MODEIFY DATE :2005.6.2 *
48 * INPUT :None *
49 * OUTPUT :None *
50 * RETURN :None *
51 * Global Variable:unsigned TICK *
52 *************************************************************************************************/
53
C51 COMPILER V7.09 TEST 08/10/2005 00:27:29 PAGE 2
54 void Timer0() interrupt 1
55 {
56 1 TMOD=0x01;
57 1 TH0=0x3c;
58 1 if(TICK==5)
59 1 {
60 2 display();
61 2 TICK=0;
62 2 ADresult=adconvert(0);
63 2 }
64 1 TICK++;
65 1 }
66 /*************************************************************************************************
67 * FUNCTION NAME:void KeyBoard() interrupt 2 *
68 *`CREATE DATE :2004.12.20 *
69 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
70 * MODEIFY DATE :2005.6.2 *
71 * INPUT :None *
72 * OUTPUT :None *
73 * RETURN :None *
74 * Global Variable:KeyCode *
75 *************************************************************************************************/
76 void KeyBoard() interrupt 2
77 {
78 1 KeyCode=ReadKB();
79 1 if(KeyCode==0x0f)
80 1 printf_lcd(0x80,TABLE4,15);
81 1 if(KeyCode==0x0e)
82 1 {
83 2 clr_lcd();
84 2 test_lcd();}
85 1 }
86 main()
87 {
88 1
89 1 EX1=1;
90 1 EA=1;
91 1 CS=1;
92 1 IT1=1;
93 1 TMOD=0x01;
94 1 TH0=0x3c;
95 1 TL0=0xb0;
96 1 ET0=1;
97 1 TR0=1;
98 1 TICK=0;
99 1 init_lcd();
100 1 init_cgram();
101 1 test_lcd();
102 1 clr_lcd();
103 1 test_lcd();
104 1
105 1
106 1 while(1)
107 1 {
108 2 dispbuff[0]=KeyCode/16;
109 2 dispbuff[1]=KeyCode%16;
110 2 dispbuff[6]=(ADresult/16)&0x0f;
111 2 dispbuff[7]=(ADresult%16)&0x0f;
112 2
113 2 }
114 1
115 1 }
C51 COMPILER V7.09 TEST 08/10/2005 00:27:29 PAGE 3
116 /*************************************************************************************************
117 * FUNCTION NAME:char ReadKB() *
118 *`CREATE DATE :2004.12.20 *
119 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
120 * MODEIFY DATE :2005.6.2 *
121 * INPUT :None *
122 * OUTPUT :None *
123 * RETURN :KeyCode *
124 * Global Variable:KeyCode *
125 *************************************************************************************************/
126 char ReadKB()
127 { char kb=0,i;
128 1 CS=1;
129 1 CLK=0;
130 1 delay (50);
131 1 sent(0x15);//发送读键盘指令
132 1 delay(10);
133 1 DIO=1;
134 1 CLK=1;
135 1 delay(50);
136 1 for(i=0;i<8;i++)
137 1 {CLK=0;
138 2 kb=kb*2+(char)DIO;//读1位数据
139 2 delay(10);
140 2 CLK=1;
141 2 delay(10);
142 2 }
143 1 CS=1;
144 1 return(kb);}
145 /*************************************************************************************************
146 * FUNCTION NAME:void sent(unsigned char sent_buf) *
147 *`CREATE DATE :2004.12.20 *
148 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
149 * MODEIFY DATE :2005.6.2 *
150 * INPUT :sent_buf *
151 * OUTPUT :sent sent_buf to SPI interface *
152 * RETURN :None *
153 * Global Variable:None *
154 *************************************************************************************************/
155 void sent(unsigned char sent_buf)
156 {
157 1 char i;
158 1 CLK=0; /*置SPI时钟线为低*/
159 1 CS=0; /*置SPI片选线为低*/
160 1 delay (50); /*延时50us*/
161 1
162 1 for(i=0;i<8;i++) /*发送8位数据*/
163 1 {
164 2 sent_buf=sent_buf<<1; /*从数据最高位开始,将要发发送的数据位移入进位位CY*/
165 2 DIO=CY; /*数据位送数据线*/
166 2 CLK=1; /* 置SPI时钟线为高*/
167 2 delay (10); /*延时10us*/
168 2 CLK=0; /* 置SPI时钟线为低,发送完1位数据*/
169 2 delay (10);/*延时10us*/
170 2 }
171 1 DIO=0;
172 1 }
173 /*************************************************************************************************
174 * FUNCTION NAME:void delay(unsigned char time) *
175 *`CREATE DATE :2004.12.20 *
176 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
177 * MODEIFY DATE :2005.6.2 *
C51 COMPILER V7.09 TEST 08/10/2005 00:27:29 PAGE 4
178 * INPUT :unsigned char time *
179 * OUTPUT :Delay some times *
180 * RETURN :None *
181 * Global Variable:None *
182 *************************************************************************************************/
183 void delay(unsigned char time)
184 {
185 1 unsigned char i;
186 1 for(i=0;i<time;i++);
187 1 }
188 /*************************************************************************************************
189 * FUNCTION NAME:void delay(unsigned char time) *
190 *`CREATE DATE :2004.12.20 *
191 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
192 * MODEIFY DATE :2005.6.2 *
193 * INPUT :char channel *
194 * OUTPUT :None *
195 * RETURN :ADresult *
196 * Global Variable:ADresult *
197 *************************************************************************************************/
198 char adconvert(char channel)
199 {
200 1 char result;
201 1 char xdata *adport;
202 1 adport=0x0000+channel; //AD转换通道选择
203 1 *adport=0; // 启动转换
204 1 while(AD_OK==1); //等待转换结束
205 1 result=*adport; // 读转换结果
206 1 return result;
207 1 }
208 /*************************************************************************************************
209 * FUNCTION NAME:void delay(unsigned char time) *
210 *`CREATE DATE :2004.12.20 *
211 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
212 * MODEIFY DATE :2005.6.2 *
213 * INPUT :char channel *
214 * OUTPUT :None *
215 * RETURN :ADresult *
216 * Global Variable:ADresult *
217 *************************************************************************************************/
218 void display()
219 {
220 1 char i;
221 1 for(i=0;i<8;i++)
222 1 {
223 2 CS=1;
224 2 sent(0xc8+i);
225 2 sent(dispbuff[i]);
226 2 CS=1;
227 2 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -