📄 ht1621.lst
字号:
C51 COMPILER V7.09 HT1621 05/30/2008 10:22:29 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE HT1621
OBJECT MODULE PLACED IN ht1621.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ht1621.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <stdio.h>
2 #include <intrins.h>
3 #include <reg52.h>
4
5 sbit CS1=P1^5;
6 sbit WRR=P1^7;
7 sbit DI=P1^6;
8 sbit GO=P3^3;
9
10 void DelayXms(unsigned int i)
11 {
12 1 unsigned char a;
13 1 unsigned int b;
14 1 for(b=0;b<i;b++)
15 1 for(a=0;a<255;a++);
16 1 }
17
18 void Wait()
19 {
20 1 while(1)
21 1 {
22 2 if(GO==0)
23 2 {
24 3 DelayXms(330);
25 3 return;
26 3 }
27 2 }
28 1 }
29
30
31 Write()
32 {
33 1 WRR=1;
34 1 _nop_();
35 1 _nop_();
36 1 _nop_();
37 1 _nop_();
38 1 _nop_();
39 1 _nop_();
40 1 _nop_();
41 1 WRR=0;
42 1 _nop_();
43 1 _nop_();
44 1 _nop_();
45 1 _nop_();
46 1 _nop_();
47 1 _nop_();
48 1 _nop_();
49 1 }
50
51 void write_cmd(unsigned char cmd)
52 {
53 1 unsigned char j,mask;
54 1 CS1=0;
55 1 WRR=0;
C51 COMPILER V7.09 HT1621 05/30/2008 10:22:29 PAGE 2
56 1 DI=1;
57 1 Write();
58 1 DI=0;
59 1 Write();
60 1 DI=0;
61 1 Write();
62 1 for(j=0, mask=0x80; j<8; j++, mask>>=1 )
63 1 {
64 2 if( (cmd & mask) != 0 )
65 2 DI=1;
66 2 else
67 2 DI=0;
68 2 Write();
69 2 }
70 1 WRR=1;
71 1 DI=0;
72 1 CS1=1;
73 1 }
74
75 void write_dat(unsigned char add,unsigned char dat)
76 {
77 1 unsigned char j,mask;
78 1 CS1=0;
79 1 WRR=0;
80 1 DI=1;
81 1 Write();
82 1 DI=0;
83 1 Write();
84 1 DI=1;
85 1 Write();
86 1 for(j=0, mask=0x20; j<6; j++, mask>>=1 )
87 1 {
88 2 if(( add & mask)!=0 )
89 2 DI=1;
90 2 else
91 2 DI=0;
92 2 Write();
93 2 }
94 1 for(j=0, mask=0x01; j<4; j++, mask<<=1 )
95 1 {
96 2 if(( dat & mask) != 0 )
97 2 DI=1;
98 2 else
99 2 DI=0;
100 2 Write();
101 2 }
102 1 CS1=1;
103 1 }
104
105
106 void ht1621initial(void)
107 {
108 1 write_cmd(0x01); //SYS EN
109 1 write_cmd(0x18); //RC 256k
110 1 write_cmd(0x03); //LCD ON
111 1 write_cmd(0x29); //BIAS
112 1 }
113
114 void Display1(unsigned char d)
115 {
116 1 unsigned char i;
117 1 for(i=0;i<31;i++)
C51 COMPILER V7.09 HT1621 05/30/2008 10:22:29 PAGE 3
118 1 write_dat(i,d);
119 1 }
120
121 void Display2()
122 {
123 1 unsigned char i;
124 1 for(i=0;i<6;i++)
125 1 {
126 2 Display1(0x00);
127 2 write_dat(i,0xff);
128 2 Wait();
129 2 }
130 1
131 1 }
132 void main(void)
133 {
134 1 ht1621initial();
135 1 while(1)
136 1 {
137 2 Display1(0xff);
138 2 Wait();
139 2 Display1(0x00);
140 2 Wait();
141 2 Display1(0x01);
142 2 Wait();
143 2 Display1(0x02);
144 2 Wait();
145 2 Display1(0x04);
146 2 Wait();
147 2 Display1(0x08);
148 2 Wait();
149 2 Display2();
150 2 }
151 1 }
152
153
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 292 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -