📄 zlg7289.lst
字号:
C51 COMPILER V7.01 ZLG7289 02/09/2004 20:43:55 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE ZLG7289
OBJECT MODULE PLACED IN Zlg7289.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE Zlg7289.c OPTIMIZE(2,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /****************************************************************************
2 * File:ZLG7289.C
3 * 功能:ZLG7289A键盘显示芯片显示驱动程序。
4 * 说明:MCS-51单片机,晶振不要大于12MHz。
5 ****************************************************************************/
6
7 #include <Reg51.h>
8 #include "ZLG7289.H"
9
10 // 定义控制口线,用户根据自已的系统相应更改
11
12
13 bit temp1;
14
15
16 /****************************************************************************
17 * 名称:Delay8uS
18 * 功能:8uS软件延时
19 * 说明:用户根据自已的系统相应更改
20 ****************************************************************************/
21 void Delay8uS(void)
22 { uchar i;
23 1 for(i=0; i<4; i++);
24 1 }
25
26
27 /****************************************************************************
28 * 名称:Delay50uS
29 * 功能:50uS软件延时
30 * 说明:用户根据自已的系统相应更改
31 ****************************************************************************/
32 void Delay50uS(void)
33 { uchar i;
34 1 for(i=0; i<25; i++);
35 1 }
36
37
38 /****************************************************************************
39 * 名称:ZLG7289_SendByte
40 * 功能:发送字节数据,高位在前,符合ZLG7289传输协议。
41 * 入口参数:dat 待发送的数据
42 * 注意:使用此函数前要选择ZLG7289,即ZLG7289_CS = 0;
43 * 本函数不操作ZLG7289_CS
44 ****************************************************************************/
45 void ZLG7289_SendByte(uchar dat)
46 { uchar i;
47 1 Delay50uS(); // 延时,T1
48 1 for(i=0; i<8; i++)
49 1 { if( (dat&0x80)==0 ) ZLG7289_DIO = 0;
50 2 else ZLG7289_DIO = 1;
51 2 dat = dat<<1; // 数据移位
52 2 ZLG7289_CLK = 1; // 发送CLK脉冲
53 2 Delay8uS(); // 延时,T2
54 2 ZLG7289_CLK = 0;
55 2 Delay8uS(); // 延时,T3
C51 COMPILER V7.01 ZLG7289 02/09/2004 20:43:55 PAGE 2
56 2 }
57 1
58 1 ZLG7289_DIO = 0;
59 1 }
60 /*
61 uchar ZLG7289_RcvByte()
62 { uchar i,dat=0;
63 ZLG7289_DIO=1;
64 Delay50uS(); // 延时,T1
65 for(i=0; i<8; i++)
66 {
67 ZLG7289_CLK = 1;// 发送CLK脉冲
68 dat = dat<<1; // 数据移位
69 Delay8uS();
70 dat=dat+(uchar)ZLG7289_DIO;
71 ZLG7289_CLK = 0;
72 Delay8uS(); // 延时,T2
73 }
74
75 ZLG7289_DIO = 0;
76 return dat;
77 }*/
78 /****************************************************************************
79 * 名称:ZLG7289_SendCommand
80 * 功能:向ZLG7289发送命令。
81 * 入口参数:com 待发送的命令字
82 ****************************************************************************/
83 void ZLG7289_SendCommand(uchar com)
84 {
85 1 ZLG7289_CLK = 0;
86 1 ZLG7289_CS = 0;
87 1 ZLG7289_SendByte(com); // 将命令发送出去
88 1 ZLG7289_CS = 1;
89 1 }
90 /*
91 uchar ZLG7289_GetKey()
92 {
93 uchar dat,i;
94 ZLG7289_CLK = 0;
95 ZLG7289_CS = 0;
96 Delay50uS();
97 dat=0x15; // 延时,T1
98 for(i=0; i<8; i++)
99 { if( (dat&0x80)==0 ) ZLG7289_DIO = 0;
100 else ZLG7289_DIO = 1;
101 dat = dat<<1; // 数据移位
102 ZLG7289_CLK = 1; // 发送CLK脉冲
103 Delay8uS(); // 延时,T2
104 ZLG7289_CLK = 0;
105 Delay8uS(); // 延时,T3
106 }
107 dat=0;
108 Delay50uS();
109 for(i=0; i<8; i++)
110 {
111 ZLG7289_CLK = 1;// 发送CLK脉冲'
112 Delay8uS();
113
114 temp1=ZLG7289_DIO;
115 dat=dat<<1;
116 dat=dat+(uchar)temp1;
117 ZLG7289_CLK = 0;
C51 COMPILER V7.01 ZLG7289 02/09/2004 20:43:55 PAGE 3
118 Delay8uS();
119 }
120 ZLG7289_DIO = 0;
121 ZLG7289_CS = 1;
122 return dat;
123 }
124 */
125 /****************************************************************************
126 * 名称:ZLG7289_SendData
127 * 功能:向ZLG7289发送数据。即带数据的命令。
128 * 入口参数:com 待发送的命令字
129 * dat 待发送的数据
130 ****************************************************************************/
131 void ZLG7289_SendData(uchar com, uchar dat)
132 { ZLG7289_CLK = 0;
133 1 ZLG7289_CS = 0;
134 1 ZLG7289_SendByte(com);
135 1 Delay50uS(); // 延时,T4
136 1 ZLG7289_SendByte(dat);
137 1 ZLG7289_CS = 1;
138 1 }
139
140
141 /****************************************************************************
142 * 名称:ZLG7289_SendBuf
143 * 功能:向ZLG7289发送显示数据,8字节,不译码。
144 * 入口参数:buf 显示数据缓冲区指针
145 ****************************************************************************/
146 void ZLG7289_SendBuf(uchar *buf)
147 { uchar i;
148 1 for(i=0; i<8; i++)
149 1 { ZLG7289_SendData(Z_DISPADR1+i, *buf++);
150 2 }
151 1 }
152
153
154 /****************************************************************************
155 * 名称:ZLG7289_FillDat
156 * 功能:显示填充。显示不译码。
157 * 入口参数:dat 待填充的显示数据
158 ****************************************************************************/
159 /*void ZLG7289_SendFillDat(uchar dat)
160 { uchar i;
161 for(i=0; i<8; i++)
162 { ZLG7289_SendData(Z_DISPADRX+i, dat);
163 }
164 }*/
165
166
167
168
169
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 164 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 11
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
C51 COMPILER V7.01 ZLG7289 02/09/2004 20:43:55 PAGE 4
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -