Zlg7289.LST
资源名称:USB_2.0.rar [点击查看]
上传用户:ids068
上传日期:2013-04-04
资源大小:639k
文件大小:8k
源码类别:
USB编程
开发平台:
C/C++
- C51 COMPILER V7.06 ZLG7289 07/01/2003 17:36:25 PAGE 1
- C51 COMPILER V7.06, COMPILATION OF MODULE ZLG7289
- OBJECT MODULE PLACED IN Zlg7289.OBJ
- COMPILER INVOKED BY: C:KEILC51BINC51.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.06 ZLG7289 07/01/2003 17:36:25 PAGE 2
- 56 2 }
- 57 1
- 58 1 ZLG7289_DIO = 0;
- 59 1 }
- 60
- 61 uchar ZLG7289_RcvByte()
- 62 { uchar i,dat=0;
- 63 1 ZLG7289_DIO=1;
- 64 1 Delay50uS(); // 延时,T1
- 65 1 for(i=0; i<8; i++)
- 66 1 {
- 67 2 ZLG7289_CLK = 1;// 发送CLK脉冲
- 68 2 dat = dat<<1; // 数据移位
- 69 2 Delay8uS();
- 70 2 dat=dat+(uchar)ZLG7289_DIO;
- 71 2 ZLG7289_CLK = 0;
- 72 2 Delay8uS(); // 延时,T2
- 73 2 }
- 74 1
- 75 1 ZLG7289_DIO = 0;
- 76 1 return dat;
- 77 1 }
- 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 1 uchar dat,i;
- 94 1 ZLG7289_CLK = 0;
- 95 1 ZLG7289_CS = 0;
- 96 1 Delay50uS();
- 97 1 dat=0x15; // 延时,T1
- 98 1 for(i=0; i<8; i++)
- 99 1 { if( (dat&0x80)==0 ) ZLG7289_DIO = 0;
- 100 2 else ZLG7289_DIO = 1;
- 101 2 dat = dat<<1; // 数据移位
- 102 2 ZLG7289_CLK = 1; // 发送CLK脉冲
- 103 2 Delay8uS(); // 延时,T2
- 104 2 ZLG7289_CLK = 0;
- 105 2 Delay8uS(); // 延时,T3
- 106 2 }
- 107 1 dat=0;
- 108 1 Delay50uS();
- 109 1 for(i=0; i<8; i++)
- 110 1 {
- 111 2 ZLG7289_CLK = 1;// 发送CLK脉冲'
- 112 2 Delay8uS();
- 113 2
- 114 2 temp1=ZLG7289_DIO;
- 115 2 dat=dat<<1;
- 116 2 dat=dat+(uchar)temp1;
- 117 2 ZLG7289_CLK = 0;
- C51 COMPILER V7.06 ZLG7289 07/01/2003 17:36:25 PAGE 3
- 118 2 Delay8uS();
- 119 2 }
- 120 1 ZLG7289_DIO = 0;
- 121 1 ZLG7289_CS = 1;
- 122 1 return dat;
- 123 1 }
- 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 1 for(i=0; i<8; i++)
- 162 1 { ZLG7289_SendData(Z_DISPADRX+i, dat);
- 163 2 }
- 164 1 }
- 165
- 166
- 167
- 168
- 169
- MODULE INFORMATION: STATIC OVERLAYABLE
- CODE SIZE = 352 ----
- CONSTANT SIZE = ---- ----
- XDATA SIZE = ---- ----
- PDATA SIZE = ---- ----
- DATA SIZE = ---- 17
- IDATA SIZE = ---- ----
- BIT SIZE = 1 ----
- C51 COMPILER V7.06 ZLG7289 07/01/2003 17:36:25 PAGE 4
- END OF MODULE INFORMATION.
- C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)