?? zlg7290.lst
字號:
C51 COMPILER V8.02 ZLG7290 03/26/2007 19:14:28 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE ZLG7290
OBJECT MODULE PLACED IN ..\Output\zlg7290.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\app\zlg7290.c LARGE BROWSE INCDIR(..\app;..\Main;..\Port;..\SOURCE) DEBU
-G OBJECTEXTEND PRINT(..\Output\zlg7290.lst) OBJECT(..\Output\zlg7290.obj)
line level source
1 #include "zlg7290.h"
2 #include "IIC.h"
3 #include <C8051F020.H>
4
5 /***********************************************************************
6 *函數(shù): ZLG7290_WriteReg()
7 *調(diào)用函數(shù): bit SmbSend (unsigned char slaveAddr, unsigned char subAddr,
8 * unsigned char subMod, unsigned char size, unsigned char *sendPtr)
9 *功能: 向ZLG7290 的某個內(nèi)部寄存器寫入數(shù)據(jù)
10 *參數(shù):
11 * RegAddr:ZLG7290 的內(nèi)部寄存器地址
12 * dat:要寫入的數(shù)據(jù)
13 *返回:
14 * 1:正常
15 * 0:訪問ZLG7290 時出現(xiàn)異常
16 ************************************************************************/
17 unsigned char ZLG7290_WriteReg(unsigned char regAddr, unsigned char dat)
18 {
19 1 unsigned char b;
20 1 b = SmbSend(ZLG7290_I2C_ADDR, ®Addr, 1, 1, &dat);
21 1 return b;
22 1 }
23 /***********************************************************************
24 *函數(shù): ZLG7290_ReadReg()
25 *功能: 從ZLG7290 的某個內(nèi)部寄存器讀出數(shù)據(jù)
26 *調(diào)用函數(shù):bit SmbRec(unsigned char slaveAddr,unsigned char subAddr,
27 unsigned char subMod,unsigned char size, unsigned char *recPtr )
28 *參數(shù):
29 * RegAddr:ZLG7290 的內(nèi)部寄存器地址
30 * *dat:保存讀出的數(shù)據(jù)
31 *返回:
32 * 1:正常
33 * 0:訪問ZLG7290 時出現(xiàn)異常
34 ************************************************************************/
35 unsigned char ZLG7290_ReadReg(unsigned char regAddr, unsigned char *dat)
36 {
37 1 unsigned char b;
38 1 b = SmbRec(ZLG7290_I2C_ADDR, ®Addr, 1, 1, dat);
39 1 return b;
40 1 }
41
42 /***********************************************************************
43 *函數(shù):ZLG7290_Cmd()
44 *功能:向ZLG7290 發(fā)送控制命令
45 *調(diào)用函數(shù): bit SmbSend (unsigned char slaveAddr, unsigned char subAddr,
46 * unsigned char subMod, unsigned char size, unsigned char *sendPtr)
47 *參數(shù):
48 * cmd0:寫入CmdBuf0 寄存器的命令字(第1 字節(jié))
49 * cmd1:寫入CmdBuf1 寄存器的命令字(第2 字節(jié))
50 *返回:
51 * 1:正常
52 * 0:訪問ZLG7290 時出現(xiàn)異常
53 **********************************************************************/
54 unsigned char ZLG7290_Cmd(unsigned char cmd0, unsigned char cmd1) reentrant
C51 COMPILER V8.02 ZLG7290 03/26/2007 19:14:28 PAGE 2
55 {
56 1 unsigned b;
57 1 unsigned char buf[2];
58 1 unsigned char cmdBuf;
59 1 cmdBuf = ZLG7290_CmdBuf;
60 1 buf[0] = cmd0;
61 1 buf[1] = cmd1;
62 1 b = SmbSend(ZLG7290_I2C_ADDR,&cmdBuf,1,2,buf);
63 1 return b;
64 1 }
65
66 /*******************************************************************
67 *函數(shù):ZLG7290_SegOnOff()
68 *功能:段尋址,單獨點亮或熄滅數(shù)碼管(或LED)中的某一段
69 *參數(shù):
70 * seg:取值0~63,表示數(shù)碼管(或LED)的段號
71 * b:0 表示熄滅,1 表示點亮
72 *返回:
73 * 0:正常
74 * 1:訪問ZLG7290 時出現(xiàn)異常
75 *說明:
76 * 在每一位數(shù)碼管中,段號順序按照“a,b,c,d,e,f,g,dp”進行
77 *******************************************************************/
78 unsigned char ZLG7290_SegOnOff(unsigned char seg, unsigned char b)
79 {
80 1 unsigned char cmd;
81 1 cmd = seg & 0x3F;
82 1 if ( b )
83 1 cmd |= 0x80;
84 1 return ZLG7290_Cmd(0x01,cmd);
85 1 }
86
87 /*****************************************************************
88 *函數(shù):ZLG7290_Download()
89 *功能:下載數(shù)據(jù)并譯碼
90 *
91 *參數(shù):
92 * addr:取值0~7,顯示緩存DpRam0~DpRam7 的編號
93 * dp:是否點亮該位的小數(shù)點,0-熄滅,1-點亮
94 * flash:控制該位是否閃爍,0-不閃爍,1-閃爍
95 * dat:取值0~31,表示要顯示的數(shù)據(jù)
96 *返回:
97 * 1:正常
98 * 0:訪問ZLG7290 時出現(xiàn)異常
99 *說明:
100 * 顯示數(shù)據(jù)具體的譯碼方式請參見ZLG7290 的數(shù)據(jù)手冊
101 *****************************************************************/
102 unsigned char ZLG7290_Download(unsigned char addr, unsigned char dp, unsigned char flash, unsigned char
- dat)
103 {
104 1 unsigned char cmd0;
105 1 unsigned char cmd1;
106 1 cmd0 = addr & 0x0F;
107 1 cmd0 |= 0x60;
108 1 cmd1 = dat & 0x1F;
109 1 if ( dp )
110 1 cmd1 |= 0x80;
111 1 if ( flash )
112 1 cmd1 |= 0x40;
113 1 return ZLG7290_Cmd(cmd0,cmd1);
114 1 }
115
C51 COMPILER V8.02 ZLG7290 03/26/2007 19:14:28 PAGE 3
116 void ZLG7290_GetKey(unsigned char * keyValue)
117 {
118 1 while(IE0==0);
119 1 ZLG7290_ReadReg(ZLG7290_Key,keyValue); //讀取鍵值、
120 1
121 1
122 1 }
123 void ZLG7290_GetRepeatCnt(unsigned char *repeatCnt)
124 {
125 1 while(IE0==0);
126 1 ZLG7290_ReadReg(ZLG7290_RepeatCnt,repeatCnt); // 連擊計數(shù)器值
127 1
128 1 }
129 /*****************************************************************
130 *函數(shù):ZLG7290_Clear(char a)
131 *功能:清除指定位的顯示
132 *
133 *參數(shù):
134 * a: 取小于-1全部清除,a>=0,a<=7 時清楚該位的顯示
135
136 *返回: 無
137
138 *說明:
139 * 顯示數(shù)據(jù)具體的譯碼方式請參見ZLG7290 的數(shù)據(jù)手冊
140 */
141 void ZLG7290_Clear(char a)
142 {
143 1 unsigned char i = 0;
144 1 if(a<=-1)
145 1 {
146 2 for(i=0;i<8;i++)
147 2 ZLG7290_Download(i,0,0,0x1f);
148 2 }
149 1 if(a>-1&&a<8)
150 1 ZLG7290_Download(a,0,0,0x1f);
151 1 if(a>=8)
152 1 return;
153 1 }
154 unsigned char ZLG7290_DispValue(unsigned char x, unsigned long int dat)
155 {
156 1 unsigned char d[8];
157 1 unsigned char i = 0;
158 1 unsigned char j;
159 1 while(dat>0)
160 1 {
161 2 d[i] = dat%10;
162 2 dat /= 10;
163 2 i++;
164 2 }
165 1 if(x<i-1)
166 1 return 0;
167 1 for(j=0;j<i;j++)
168 1 {
169 2 ZLG7290_Download(x-j,0,0,d[j]);
170 2 }
171 1 return 1;
172 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 562 ----
CONSTANT SIZE = ---- ----
C51 COMPILER V8.02 ZLG7290 03/26/2007 19:14:28 PAGE 4
XDATA SIZE = ---- 27
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 + -