?? ht1622.lst
字號:
C51 COMPILER V7.09 HT1622 01/14/2009 16:21:13 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE HT1622
OBJECT MODULE PLACED IN ht1622.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ht1622.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <stdio.h>
2 #include <intrins.h>
3 #include <reg52.h>
4
5 sbit CS1=P3^7;
6 sbit WRR=P3^6;
7 sbit DI=P2^1;
8 sbit GO1=P2^4;
9 sbit GO2=P2^5;
10 sbit SL=P2^3;
11
12
13
14 void Delay(unsigned int i)
15 {
16 1 unsigned char a;
17 1 unsigned int b;
18 1 for(b=0;b<i;b++)
19 1 for(a=0;a<255;a++);
20 1 }
21
22 bit Wait()
23 {
24 1 bit GO=0;
25 1 while(1)
26 1 {
27 2 if(GO1==0||GO2==0)
28 2 {
29 3 if(GO2==0)GO=1;
30 3 Delay(250);
31 3 while(GO1==0||GO2==0);
32 3 return GO;
33 3 }
34 2 }
35 1 }
36
37
38 Write()
39 {
40 1 WRR=1;
41 1 _nop_();
42 1 _nop_();
43 1 WRR=0;
44 1 _nop_();
45 1 _nop_();
46 1 }
47
48 void write_cmd(unsigned char cmd)
49 {
50 1 unsigned char j,mask;
51 1 CS1=0;
52 1 WRR=0;
53 1 DI=1;
54 1 Write();
55 1 DI=0;
C51 COMPILER V7.09 HT1622 01/14/2009 16:21:13 PAGE 2
56 1 Write();
57 1 DI=0;
58 1 Write();
59 1 for(j=0, mask=0x80; j<8; j++, mask>>=1 )
60 1 {
61 2 if( (cmd & mask) != 0 )
62 2 DI=1;
63 2 else
64 2 DI=0;
65 2 Write();
66 2 }
67 1 Write();
68 1 CS1=1;
69 1 }
70
71 void write_dat(unsigned char add,unsigned char dat)
72 {
73 1 unsigned char j,mask;
74 1 CS1=0;
75 1 WRR=0;
76 1 DI=1;
77 1 Write();
78 1 DI=0;
79 1 Write();
80 1 DI=1;
81 1 Write();
82 1 for(j=0, mask=0x20; j<6; j++, mask>>=1 )
83 1 {
84 2 if(( add & mask)!=0 )
85 2 DI=1;
86 2 else
87 2 DI=0;
88 2 Write();
89 2 }
90 1 for(j=0, mask=0x01; j<4; j++, mask<<=1 )
91 1 {
92 2 if(( dat & mask) != 0 )
93 2 DI=1;
94 2 else
95 2 DI=0;
96 2 Write();
97 2 }
98 1 CS1=1;
99 1 }
100
101
102
103 void ht1622initial(void)
104 {
105 1 write_cmd(0x01); //SYS EN
106 1 write_cmd(0x18); //RC 256k
107 1 write_cmd(0x03); //LCD ON
108 1 write_cmd(0xe3); //BIAS
109 1 }
110
111
112 void Display(unsigned char d)
113 {
114 1 unsigned char i;
115 1 for(i=0;i<64;i++)
116 1 write_dat(i,d);
117 1 }
C51 COMPILER V7.09 HT1622 01/14/2009 16:21:13 PAGE 3
118
119
120
121
122 display_point()
123 {
124 1 unsigned char n=0;
125 1 while(1)
126 1 {
127 2 Display(0x00);
128 2 write_dat(n/4,0x01<<(n%4));
129 2 if(Wait()==1)
130 2 if(n==0)n=255;
131 2 else n--;
132 2 else
133 2 if(n==255)n=0;
134 2 else n++ ;
135 2 }
136 1 }
137
138
139
140
141 void main(void)
142 {
143 1 ht1622initial();
144 1 if(SL==0)
145 1 {
146 2 Display(0xff);
147 2 Wait();
148 2 Display(0x00);
149 2 Wait();
150 2 display_point();
151 2 Wait();
152 2 }
153 1 while(1);
154 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 311 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -