?? main.lst
字號:
C51 COMPILER V7.50 MAIN 03/09/2005 12:43:37 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg51.h"
2 /*****************************************************************************
3 * 文件說明
4 ******************************************************************************
5 創 建 人:楊宏偉
6 修 改 人:楊宏偉
7 創建日期:2003-10-19
8 最后更新:2004-01-01
9 描 述:FOR 128DI0,EM65565,8080,并行
10 *****************************************************************************/
11 #define DELAY_TIME 1000 // 定義每幅顯示畫面切換的時間常數,可根據需要更改
12
13
14 /*****************************************************************************
15 * 接口定義
16 ******************************************************************************/
17 sbit CS1 = P3^5; // SELECT CHIP
18 sbit RES = P3^4;
19 sbit DC1 = P3^3;
20 sbit WR1 = P3^1; // 8080:/WR; 6800:R/W
21 sbit RD1 = P3^0; // 8080:/RD; 6800:E
22 sbit MI = P3^7; // SELECT 8080 OR 6800
23
24
25 /******************************************************************************
26 * 函數聲明及實現
27 *******************************************************************************/
28 void delay(unsigned int n)
29 {
30 1 unsigned int i,j;
31 1
32 1 for (i=0;i<n;i++)
33 1 for (j=0;j<350;j++)
34 1
35 1 {;}
36 1 }
37
38 void data_out(unsigned char i)
39 {
40 1 //8080 interface
41 1
42 1 CS1 = 0;
43 1 WR1 = 0;
44 1 DC1 = 1;
45 1 P1 = i;
46 1 WR1 = 1;
47 1 CS1 = 1;
48 1
49 1 }
50 void comm_out(unsigned char i)
51 {
52 1
53 1 //8080 interface
54 1
55 1 CS1 = 0;
C51 COMPILER V7.50 MAIN 03/09/2005 12:43:37 PAGE 2
56 1 DC1 =0;
57 1 WR1 = 0;
58 1 P1 = i;
59 1 WR1 = 1;
60 1 CS1 = 1;
61 1
62 1 }
63
64
65 void selectSeries(unsigned char i)
66 {
67 1
68 1 switch(i)
69 1 {
70 2 case 0:
71 2 MI = 0;//SELECT 8080
72 2 RD1 = 1;
73 2 WR1 = 1;
74 2 break;
75 2 case 1:
76 2 MI = 1; //SELECT 6800
77 2 RD1 = 0;
78 2 WR1 = 0;
79 2 break;
80 2 default:
81 2 ;
82 2
83 2 }
84 1 }
85
86 void reset(void)
87 {
88 1
89 1 RES = 0;
90 1 delay(100);
91 1 RES = 1;
92 1 delay(100);
93 1
94 1 }
95
96
97
98 void ini_lcd(void)
99 {
100 1 comm_out(0xA0);// ADC select
101 1 comm_out(0xA6);// Sets the LCD display normal/reverse
102 1 comm_out(0xA2);// Sets the LCD drive voltage bias ratio 1/9
103 1 comm_out(0x2F);// Power control set
104 1 comm_out(0x24);// V0 Voltage Regulator Internal Resistor Ratio Set
105 1 comm_out(0x81);// Electronic volume mode set
106 1 comm_out(0x29);// 3F
107 1 comm_out(0xAF);// display on
108 1 }
109
110
111
112
113 void setPageAddress(unsigned char i)
114 {
115 1 comm_out(0xb0+i);
116 1 }
117
C51 COMPILER V7.50 MAIN 03/09/2005 12:43:37 PAGE 3
118
119 void setColAddress(unsigned char i)
120 {
121 1
122 1
123 1 if(i<=16)
124 1 {
125 2 comm_out(0x00+i);
126 2 comm_out(0x10);
127 2 }
128 1 else
129 1 {
130 2 comm_out(0x00+i%16);
131 2 comm_out(0x10+i/16);
132 2 }
133 1
134 1 }
135
136
137 void dispData(unsigned char s_page,e_page,s_col,e_col,unsigned char dispdata,unsigned char dly)
138 {
139 1 unsigned char i,j,page_num,col_num;
140 1 page_num = e_page - s_page+1;
141 1 col_num = e_col - s_col+1;
142 1
143 1 for (i=s_page;i<(s_page+page_num);i++ )
144 1 {
145 2 setPageAddress(i);
146 2 setColAddress(s_col);
147 2
148 2 for(j=0;j<col_num;j++)
149 2 {
150 3 data_out(dispdata);
151 3 delay(dly);
152 3 }
153 2 }
154 1
155 1 }
156
157
158
159 /*******************************************************************************
160 * 主程序
161 *******************************************************************************/
162 void main(void)
163 {
164 1
165 1
166 1 selectSeries(0); // 選擇8080時序
167 1 reset();
168 1
169 1 CS1 = 0; // 片選有效
170 1
171 1 ini_lcd();
172 1 while(1)
173 1 {
174 2
175 2
176 2
177 2 dispData(0,8,0,127,0xff,0); //全顯
178 2 delay(DELAY_TIME);
179 2
C51 COMPILER V7.50 MAIN 03/09/2005 12:43:37 PAGE 4
180 2 dispData(0,7,0,127,0xaa,0); //隔行
181 2 delay(DELAY_TIME);
182 2
183 2 dispData(0,8,0,127,0x00,0); //清屏
184 2 delay(DELAY_TIME);
185 2
186 2
187 2 }
188 1
189 1 }
190
191
192
193 /******************************************************************************
194 ** 文件結束
195 *******************************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 455 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 24 ----
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 + -