⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uilcd.c

📁 基于EP7312的MP3播放器源代码,包括MCU和PC端代码.
💻 C
📖 第 1 页 / 共 2 页
字号:
//****************************************************************************//// UILCD.C - User interface using an LCD controlled by a Hitachi HD66410.//// Copyright (c) 2000,2001 Cirrus Logic, Inc.////****************************************************************************#include "../hwport.h"#include "../hwdefs.h"//****************************************************************************//// Only include this file if the LCD is being used for the user interface.////****************************************************************************#ifdef UI_IS_LCD//****************************************************************************//// The indices of the registers in the HD66410.////****************************************************************************#define LCD_REG_CONTROL1                        0#define LCD_REG_CONTROL2                        1#define LCD_REG_X                               2#define LCD_REG_Y                               3#define LCD_REG_DATA                            4#define LCD_REG_START                           5#define LCD_REG_BLINK1                          6#define LCD_REG_BLINK2                          7#define LCD_REG_BLINK_START                     8#define LCD_REG_BLINK_END                       9#define LCD_REG_ANNUNCIATOR1                    16#define LCD_REG_ANNUNCIATOR2                    17#define LCD_REG_ANNUNCIATOR3                    18#define LCD_REG_ANNUNCIATOR4                    19#define LCD_REG_ANNUNCIATOR5                    20#define LCD_REG_ANNUNCIATOR6                    21#define LCD_REG_ANNUNCIATOR7                    22#define LCD_REG_ANNUNCIATOR8                    23#define LCD_REG_ANNUNCIATOR9                    24#define LCD_REG_ANNUNCIATOR_BLINK1              25#define LCD_REG_ANNUNCIATOR_BLINK2              26#define LCD_REG_ANNUNCIATOR_BLINK3              27//****************************************************************************//// The various bits in the HD66410 control register one.////****************************************************************************#define LCD_CONTROL1_ADC                        0x01#define LCD_CONTROL1_CNF                        0x02#define LCD_CONTROL1_IDTY                       0x04#define LCD_CONTROL1_OSC                        0x08#define LCD_CONTROL1_PWR                        0x10#define LCD_CONTROL1_STBY                       0x20#define LCD_CONTROL1_DISP                       0x40//****************************************************************************//// The various bits in the HD66410 control register two.////****************************************************************************#define LCD_CONTROL2_BLK                        0x01#define LCD_CONTROL2_INC                        0x02#define LCD_CONTROL2_DDTY                       0x04#define LCD_CONTROL2_RMW                        0x08//****************************************************************************//// The various icons across the top of the LCD panel.////****************************************************************************#define LCD_ANNUNC3_PLAY                        0x01#define LCD_ANNUNC3_LEFT_ARROWCIRCLE            0x02#define LCD_ANNUNC3_RIGHT_ARROWCIRCLE           0x04#define LCD_ANNUNC3_SINGLE                      0x08#define LCD_ANNUNC3_RANDOM                      0x10#define LCD_ANNUNC3_PROGRAM                     0x20#define LCD_ANNUNC3_LEFT_SEMICIRCLE             0x40#define LCD_ANNUNC3_ARROWS                      0x80#define LCD_ANNUNC4_TAPE                        0x02#define LCD_ANNUNC5_BOOK                        0x02#define LCD_ANNUNC5_LOCK                        0x04#define LCD_ANNUNC5_BATTERY_FILL1               0x08#define LCD_ANNUNC5_BATTERY_FILL2               0x10#define LCD_ANNUNC5_BATTERY                     0x20#define LCD_ANNUNC5_BATTERY_FILL3               0x40#define LCD_ANNUNC5_TAPEBOX                     0x80#define LCD_ANNUNC6_RIGHT_SEMICIRCLE            0x80//****************************************************************************//// The image displayed to tell the user that the software needs to be updated.////****************************************************************************const unsigned char pucNeedUpdate[528] ={    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x01,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x1c, 0x3e, 0x3e, 0x36, 0x63, 0x63, 0x63, 0xe3,    0xe3, 0xe3, 0xe3, 0xf7, 0xf7, 0xff, 0xf7, 0xf7,    0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0,    0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x79, 0x45, 0x45, 0x45, 0x79, 0x41, 0x41, 0x41,    0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02,    0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x33, 0x48, 0x79, 0x42,    0x42, 0x39, 0x00, 0x00, 0x10, 0x10, 0x10, 0x97,    0x50, 0x53, 0x54, 0x54, 0x93, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x50, 0xcc,    0x42, 0x42, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00,    0x24, 0xa5, 0xa5, 0xa5, 0xa5, 0x9c, 0x04, 0x38,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x90,    0xf0, 0x80, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00,    0x00, 0xc6, 0x28, 0xe8, 0x08, 0x08, 0xe8, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b,    0x4a, 0x4a, 0x4a, 0x4a, 0x33, 0x02, 0x02, 0x00,    0x00, 0x00, 0x07, 0x08, 0x06, 0x01, 0x01, 0x0e,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02,    0x8e, 0x52, 0x52, 0x52, 0x52, 0x8e, 0x00, 0x00,    0x00, 0x01, 0x01, 0x33, 0x49, 0x49, 0x49, 0x49,    0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,    0x02, 0xe7, 0x12, 0x72, 0x92, 0x92, 0x71, 0x00,    0x00, 0x80, 0x10, 0x10, 0xba, 0x12, 0x12, 0x12,    0x13, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x30, 0x48, 0x78, 0x40, 0x40, 0x38,    0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xa1, 0xa7,    0xa9, 0x69, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x02, 0x12, 0x12, 0x3b, 0x12, 0x12, 0x12, 0x12,    0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x44,    0x47, 0x44, 0x44, 0x43, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x8c, 0x52, 0x5e, 0x50,    0x50, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,    0x01, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e,    0x36, 0x63, 0x63, 0x63, 0xe3, 0xe3, 0xe3, 0xe3,    0xf7, 0xf7, 0xff, 0xf7, 0xf7, 0xff, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80,    0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xc0, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};//****************************************************************************//// The image displayed to tell the user that the software is being updated.////****************************************************************************const unsigned char pucUpdating[528] ={    0x88, 0x88, 0x88, 0x8b, 0x8a, 0x8a, 0x8a, 0x8a,    0x73, 0x02, 0x02, 0x00, 0x00, 0x00, 0x1f, 0x10,    0x17, 0x14, 0x14, 0x15, 0x14, 0x14, 0x14, 0x14,    0x15, 0x14, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f,    0x00, 0x02, 0x02, 0x02, 0x8e, 0x52, 0x52, 0x52,    0x52, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,    0x00, 0xf3, 0x12, 0x52, 0x12, 0x13, 0x90, 0x10,    0x50, 0x10, 0x10, 0x90, 0x11, 0x11, 0xf0, 0x00,    0xff, 0x00, 0x00, 0x02, 0x02, 0xe7, 0x12, 0x72,    0x92, 0x92, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00,    0xff, 0x00, 0xb8, 0xa8, 0xa9, 0xa9, 0xb8, 0x00,    0x19, 0x19, 0x00, 0x00, 0x01, 0x81, 0x80, 0x00,    0x00, 0xff, 0x00, 0x00, 0x40, 0x00, 0x5c, 0x52,    0x52, 0x52, 0x52, 0x52, 0x00, 0x00, 0x00, 0x00,    0x00, 0xff, 0x00, 0x00, 0x00, 0x81, 0x81, 0x00,    0x00, 0x99, 0x99, 0x00, 0x00, 0x81, 0x81, 0x00,    0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x60,    0x90, 0x90, 0x90, 0x96, 0x76, 0x10, 0xe0, 0x00,    0x00, 0x00, 0xff, 0x00, 0x10, 0x07, 0x95, 0x85,    0x15, 0x07, 0x90, 0x80, 0x16, 0x06, 0x90, 0x80,    0x16, 0x06, 0x10, 0xff, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0xd8, 0xd8, 0x00, 0x00,    0x00, 0x00, 0x00, 0xfc, 0x04, 0x74, 0x54, 0x54,    0x54, 0x54, 0x54, 0x74, 0x04, 0x77, 0x54, 0x57,    0x54, 0x54, 0x74, 0x04, 0xfc, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,    0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,    0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,    0xfc, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0xff, 0x00, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,    0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x3f, 0x30, 0x28, 0x27, 0x24, 0x25,    0x25, 0x25, 0x24, 0x25, 0x25, 0x25, 0x24, 0x24,    0x24, 0xe4, 0x24, 0xe4, 0x24, 0x24, 0x24, 0x24,    0x24, 0x24, 0x14, 0x0c, 0x07, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0xf8, 0x04, 0x02, 0xff, 0x01,    0xfd, 0x05, 0xfd, 0x01, 0xfd, 0x05, 0xfd, 0x01,    0x01, 0x01, 0x01, 0x0d, 0x0d, 0x01, 0x09, 0x01,    0x09, 0x01, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0x1f, 0x30, 0x28, 0x27,    0x26, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25,    0x25, 0x25, 0x25, 0x15, 0x0e, 0x07, 0x3f, 0x30,    0x28, 0x17, 0x0c, 0x07, 0x00, 0x00, 0x0f, 0x0c,    0x06, 0x03, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00,    0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,    0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xf0,    0x10, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff,    0x00, 0x55, 0x00, 0xff, 0xff, 0x00, 0xfc, 0x02,    0x01, 0xff, 0x01, 0xf8, 0x08, 0x08, 0x08, 0x08,    0x08, 0x0a, 0x08, 0x0a, 0x08, 0xf8, 0x01, 0xff,    0xfc, 0x82, 0x01, 0xff, 0x00, 0xff, 0x00, 0x00,    0xff, 0x00, 0x55, 0x00, 0xff, 0xff, 0x00, 0x00,    0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,    0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,    0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00,    0x00, 0xe0, 0x10, 0x48, 0x04, 0xfe, 0xfe, 0x00};//****************************************************************************//// The last value written to the LCD controller latch.////****************************************************************************unsigned long ulLCDValue;//****************************************************************************//// LCDWriteIndex writes the given register value to the index register of the// HD66410.////****************************************************************************static voidLCDWriteIndex(unsigned long ulIndex){    volatile unsigned long *pulPtr = (unsigned long *)HwLCDAddress;    unsigned long ulLoop;    //    // Assert nCS, set RS low, and write the index value.    //    ulLCDValue &= ~(HwLCD_nCS | HwLCD_RS | HwLCD_Data);    ulLCDValue |= ulIndex;    *pulPtr = ulLCDValue;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -