📄 ht1380.lst
字号:
215 *
216 *******************************************************************************/
217 /*void ComuStop(void)
218 {
219 pin_SCLK = 1;
220 pin_RESET =0;;
221 }*/
222
223 /*******************************************************************************
224 * 函数名称: void SendByte(unsigned char ucData);
225 * 功能描述: 发送一个字节到HT1380
226 * 输入参数: 需要发送的字节
227 * 输出参数: 无
228 * 返 回 值: 无
229 * 其他说明:
230 * 修改日期 版 本 号 修 改 人 修改内容
231 *-------------------------------------------------------------------------------
232 *
233 *******************************************************************************/
234 void SendByte(unsigned char ucData)
235 {
236 1 volatile unsigned char idata i;
237 1 for (i = 8; i != 0; i--)
238 1 {
239 2 pin_SCLK = 0;
240 2 pin_SIO = ucData & 0x01;
241 2 ucData >>= 1;
C51 COMPILER V8.02 HT1380 05/18/2008 16:43:12 PAGE 5
242 2 pin_SCLK = 1;
243 2 }
244 1 pin_SCLK = 0;
245 1 }
246
247 /*******************************************************************************
248 * 函数名称: unsigned char ReceiByte(void);
249 * 功能描述: 接收HT1380的一个字节
250 * 输入参数: 无
251 * 输出参数: 无
252 * 返 回 值: HT1380发送出来的一个字节数据
253 * 其他说明:
254 * 修改日期 版 本 号 修 改 人 修改内容
255 *-------------------------------------------------------------------------------
256 *
257 *******************************************************************************/
258 unsigned char ReceiByte(void)
259 {
260 1 unsigned char i;
261 1 unsigned char ucDataRecv = 0;
262 1 for(i = 8; i > 0; i--)
263 1 {
264 2 ucDataRecv >>= 1;
265 2 if (pin_SIO)
266 2 {
267 3 ucDataRecv |= 0x80;
268 3 }
269 2 pin_SCLK = 1;
270 2 pin_SCLK = 0;
271 2 }
272 1 return(ucDataRecv);
273 1 }
274
275 /*******************************************************************************
276 * 函数名称: unsigned char ReadReg(unsigned char ucRegAdd);
277 * 功能描述: 读取HT1380寄存器的命令函数
278 * 输入参数: 要读取HT1380的寄存器地址
279 * 输出参数: 无
280 * 返 回 值: 读取出HT1380的寄存器数据
281 * 其他说明:
282 * 修改日期 版 本 号 修 改 人 修改内容
283 *-------------------------------------------------------------------------------
284 *
285 *******************************************************************************/
286 //unsigned char ReadReg(unsigned char ucRegAdd)
287 unsigned char ReadTime(unsigned char ucRegAdd)
288 {
289 1 unsigned char idata ucData; //存放接收数据
290 1 ucRegAdd <<= 1;
291 1 ucRegAdd &= 0x0E;
292 1 ucRegAdd += 0x81;
293 1 ComuStart();
294 1 SendByte(ucRegAdd); //需要读取地址
295 1 ucData = ReceiByte();
296 1 pin_RESET = 0;
297 1 return ucData;
298 1 }
299
300 /*******************************************************************************
301 * 函数名称: unsigned char ReadTime(unsigned char ucRegAdd);
302 * 功能描述: 与ReadTime(ucRegAdd)功能完全相同,通过调用ReadTime(ucRegAdd)实现
303 * 输入参数: 要读取HT1380的寄存器地址
C51 COMPILER V8.02 HT1380 05/18/2008 16:43:12 PAGE 6
304 * 输出参数: 无
305 * 返 回 值: 读取出HT1380的寄存器数据
306 * 其他说明: 只是方便调用是理解,reg太普遍了,使用reg方便在本文件中理解
307 * 修改日期 版 本 号 修 改 人 修改内容
308 *-------------------------------------------------------------------------------
309 *
310 *******************************************************************************/
311 /*unsigned char ReadTime(unsigned char ucRegAdd)
312 {
313 return ReadTime(ucRegAdd);
314 }*/
315 /*******************************************************************************
316 * 函数名称: void WriteReg(unsigned char ucRegAdd, unsigned char ucData);
317 * 功能描述: 写HT1380寄存器的函数
318 * 输入参数: 要写入HT1380的寄存器地址ucRegAdd,要写入的数据ucData
319 * 输出参数: 无
320 * 返 回 值: 无
321 * 其他说明:
322 * 修改日期 版 本 号 修 改 人 修改内容
323 *-------------------------------------------------------------------------------
324 *
325 *******************************************************************************/
326 void WriteReg(unsigned char ucRegAdd, unsigned char ucData)
327 {
328 1 ComuStart();
329 1 SendByte(ucRegAdd);
330 1 SendByte(ucData);
331 1 pin_RESET = 0;
332 1 }
333
334 /*******************************************************************************
335 * 函数名称: void WriteReg(unsigned char ucRegAdd, unsigned char ucData);
336 * 功能描述: 写HT1380寄存器的函数
337 * 输入参数: 要写入HT1380的寄存器地址ucRegAdd,要写入的数据ucData
338 * 输出参数: 无
339 * 返 回 值: 无
340 * 其他说明:
341 * 修改日期 版 本 号 修 改 人 修改内容
342 *-------------------------------------------------------------------------------
343 *
344 *******************************************************************************/
345 void WriteTime(unsigned char ucRegAdd, unsigned char ucData)
346 {
347 1 //去除写保护
348 1 WriteReg(CMD_WRT_WP, 0x00);
349 1 //写数据
350 1 ucRegAdd <<= 1;
351 1 ucRegAdd &= 0x0E;
352 1 ucRegAdd |= 0x80;
353 1 WriteReg(ucRegAdd, ucData);
354 1 //开写保护
355 1 WriteReg(CMD_WRT_WP, 0x80);
356 1 }
357 /*******************************************************************************
358 * 函数名称: void WriteTime(unsigned char ucRegAdd, unsigned char ucData);
359 * 功能描述: 与WriteTime()功能完全相同,通过调用与WriteTime()实现
360 * 输入参数: 要写入HT1380的寄存器地址ucRegAdd,要写入的数据ucData
361 * 输出参数: 无
362 * 返 回 值: 无
363 * 其他说明:
364 * 修改日期 版 本 号 修 改 人 修改内容
365 *-------------------------------------------------------------------------------
C51 COMPILER V8.02 HT1380 05/18/2008 16:43:12 PAGE 7
366 *
367 *******************************************************************************/
368 /*void WriteTime(unsigned char ucRegAdd, unsigned char ucData)
369 {
370 WriteTime(ucRegAdd, ucData);
371 }*/
372
373 /*******************************************************************************
374 * 函 数 名: bit IsBCD(unsigned char ucNum_IsBCD)
375 * 功 能: 判断一个无符号字符型数据是否为BCD码
376 * 输入参数: 要判断的数据
377 * 输出参数: 无
378 * 返 回 值: 位(bool)变量,是就返回1,不是就返回0
379 * 其它说明:
380 * 修改日期 版本号 修改人 修改内容
381 *-------------------------------------------------------------------------------
382 *
383 *******************************************************************************/
384 //LHD6000的主程序中有实现部分,后面本文件中的实现部分被转成注释
385 /*bit IsBCD(unsigned char ucNum_IsBCD)
386 {
387 if (((ucNum_IsBCD >> 4) <= 0x09) && ((ucNum_IsBCD & 0x0F) <= 0x09))
388 {
389 return 1;
390 }
391 else
392 {
393 return 0;
394 }
395 }*/
396
397 /*******************************************************************************
398 * 函 数 名: unsigned char BCD_Hex(unsigned char ucNumBCD)
399 * 功 能:
400 * 输入参数:
401 * 输出参数: 无
402 * 返 回 值:
403 * 其它说明:
404 * 修改日期 版本号 修改人 修改内容
405 *-------------------------------------------------------------------------------
406 *
407 *******************************************************************************/
408 //LHD6000的主程序中有实现部分,后面本文件中的实现部分被转成注释
409 /*unsigned char BCD_Hex(unsigned char ucNumBCD)
410 {
411 if (IsBCD(ucNumBCD))
412 {
413 return (ucNumBCD >> 4) * 10 + (ucNumBCD & 0x0F);
414 }
415 else
416 {
417 return 0;
418 }
419 }*/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 176 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 1
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
C51 COMPILER V8.02 HT1380 05/18/2008 16:43:12 PAGE 8
IDATA SIZE = ---- 2
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 + -