drv_hd44780.h
上传用户:sourcesun
上传日期:2013-09-23
资源大小:362k
文件大小:3k
源码类别:

DNA

开发平台:

Asm

  1. /*************************************************************************
  2.  *
  3.  *    Used with ICCARM and AARM.
  4.  *
  5.  *    (c) Copyright IAR Systems 2005
  6.  *
  7.  *    File name   : drv_hd44780.h
  8.  *    Description : HD44780 Driver defenition
  9.  *
  10.  *    History :
  11.  *    1. Data        : Feb 10, 2005
  12.  *       Author      : Stanimir Bonev
  13.  *       Description : Create
  14.  *    1. Data        : Nov. 3, 2005
  15.  *       Author      : Stanimir Bonev
  16.  *       Description : modify
  17.                         add some definitions connected
  18.  *                     with HD44780_StrShow, HD44780_CheckVisual,
  19.  *                     HD44780_DisplayShift, HD44780_GetDDRamAdd fuctions
  20.  *
  21.  *    $Revision: 1.1.4.1 $
  22.  **************************************************************************/
  23. #include "includes.h"
  24. #ifndef  __DRV_HD44780_H
  25. #define  __DRV_HD44780_H
  26. typedef Int8U HD44780_XY_DEF;
  27. typedef Int8S HD44780_STRING_DEF;
  28. /* Display address range definition */
  29. #define HD44780_MIN_LINE1_ADD     0x00
  30. #define HD44780_MAX_LINE1_ADD     0x27
  31. #define HD44780_MIN_LINE2_ADD     0x40
  32. #define HD44780_MAX_LINE2_ADD     0x67
  33. /* Max DDRAM Address */
  34. #define HD44780_MAX_DDRAM         0x67
  35. /* Max CGRAM Address */
  36. #define HD44780_MAX_CGRAM         0x3F
  37. /* Address counter auto increment/decrement definition */
  38. #define HD44780_AC_DECREMENT      0
  39. #define HD44780_AC_INCREMENT      1
  40. /* Auto Display shift or cursor move definition */
  41. #define HD44780_CURSOR_MOVE       0
  42. #define HD44780_DISPLAY_SHIFT     1
  43. /* Number of line 1/2 definition */
  44. #define HD44780_1_LINE            0
  45. #define HD44780_2_LINE            1
  46. /* Dot 5x8 or 5x10 definition */
  47. #define HD44780_DOT_5_8           0
  48. #define HD44780_DOT_5_10          1
  49. /* Dispaly On/Off definition */
  50. #define HD44780_DISPLAY_OFF       0
  51. #define HD44780_DISPLAY_ON        1
  52. /* Cursor On/Off definition */
  53. #define HD44780_CURSOR_OFF        0
  54. #define HD44780_CURSOR_ON         1
  55. /* Cursor Blink definition */
  56. #define HD44780_CURSOR_NORM       0
  57. #define HD44780_CURSOR_BLINK      1
  58. /* Delay macro */
  59. #define HD44780_BUS_DLY()      for(volatile int dly = 10;dly;--dly)
  60. typedef struct
  61. {
  62.   Int8U  DiplayPos;
  63.   Int16U AC_Direction  : 1;
  64.   Int16U DisplayShift  : 1;
  65.   Int16U Line          : 1;
  66.   Int16U DotMode       : 1;
  67.   Int16U DisplayOn     : 1;
  68.   Int16U CursorOn      : 1;
  69.   Int16U CursorBlink   : 1;
  70. } HD44780_CTRL_DEF;
  71. typedef enum
  72. {
  73.   HD44780_OK = 0,
  74.   HD44780_BUSY_TO_ERROR,
  75.   HD44780_ERROR,
  76.   HD44780_OUT_OF_VISUAL,
  77. } HD44780_ERROR_CODE_DEF;
  78. HD44780_ERROR_CODE_DEF HD44780_PowerUpInit (void);
  79. HD44780_CTRL_DEF * HD44780_GetSetting(void);
  80. HD44780_ERROR_CODE_DEF HD44780_SetMode (void);
  81. HD44780_ERROR_CODE_DEF HD44780_ClearDisplay (void);
  82. HD44780_ERROR_CODE_DEF HD44780_ReturnToHome (void);
  83. HD44780_ERROR_CODE_DEF HD44780_DisplayShift (Boolean DisplayOn, Int8S DiplayShift);
  84. HD44780_ERROR_CODE_DEF HD44780_CursorPosSet (Boolean CursorOn, Boolean CursorBlink, HD44780_XY_DEF X, HD44780_XY_DEF Y);
  85. HD44780_ERROR_CODE_DEF HD44780_RdCGRAM (HD44780_STRING_DEF * CG_Data, Int8U CGRAM_Add);
  86. HD44780_ERROR_CODE_DEF HD44780_WrCGRAM (const HD44780_STRING_DEF * CG_Data, Int8U CGRAM_Add);
  87. HD44780_ERROR_CODE_DEF HD44780_StrShow(HD44780_XY_DEF X, HD44780_XY_DEF Y,  const HD44780_STRING_DEF * DataStr);
  88. Int8U HD44780_GetDisplayPosition (void);
  89. extern void Dly100us(void *arg);
  90. #endif  /* __DRV_HD44780_H */