diff --git a/.gitmodules b/.gitmodules
index d699c7b..af903c9 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -16,3 +16,6 @@
[submodule "CS303 Artificial Intelligence/Project"]
path = CS303 Artificial Intelligence/Project
url = git@github.com:chanbengz/SUSTech_CS303_Project_2024F.git
+[submodule "CS323 Compiler Principles/Project"]
+ path = CS323 Compiler Principles/Project
+ url = git@github.com:chanbengz/SUSTech_CS323_Project_Incredibuild.git
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice1/.settings/language.settings.xml b/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice1/.settings/language.settings.xml
index 3071deb..d2198bf 100644
--- a/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice1/.settings/language.settings.xml
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice1/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice1/practice1.cfg b/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice1/practice1.cfg
new file mode 100644
index 0000000..f2658fa
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice1/practice1.cfg
@@ -0,0 +1,44 @@
+# This is an genericBoard board with a single STM32F103RCTx chip
+#
+# Generated by STM32CubeIDE
+# Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s)
+
+source [find interface/stlink-dap.cfg]
+
+
+set WORKAREASIZE 0x8000
+
+transport select "dapdirect_swd"
+
+set CHIPNAME STM32F103RCTx
+set BOARDNAME genericBoard
+
+# Enable debug when in low power modes
+set ENABLE_LOW_POWER 1
+
+# Stop Watchdog counters when halt
+set STOP_WATCHDOG 1
+
+# STlink Debug clock frequency
+set CLOCK_FREQ 8000
+
+# Reset configuration
+# use hardware reset, connect under reset
+# connect_assert_srst needed if low power mode application running (WFI...)
+reset_config srst_only srst_nogate connect_assert_srst
+set CONNECT_UNDER_RESET 1
+set CORE_RESET 0
+
+# ACCESS PORT NUMBER
+set AP_NUM 0
+# GDB PORT
+set GDB_PORT 3333
+
+
+
+
+
+# BCTM CPU variables
+
+source [find target/stm32f1x.cfg]
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice1/practice1.launch b/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice1/practice1.launch
index 3178de4..b54d121 100644
--- a/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice1/practice1.launch
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice1/practice1.launch
@@ -29,17 +29,31 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -65,9 +79,9 @@
-
+
-
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice2/.settings/language.settings.xml b/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice2/.settings/language.settings.xml
index b3e48c9..0cc4523 100644
--- a/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice2/.settings/language.settings.xml
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice2/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice2/practice2.cfg b/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice2/practice2.cfg
new file mode 100644
index 0000000..f2658fa
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice2/practice2.cfg
@@ -0,0 +1,44 @@
+# This is an genericBoard board with a single STM32F103RCTx chip
+#
+# Generated by STM32CubeIDE
+# Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s)
+
+source [find interface/stlink-dap.cfg]
+
+
+set WORKAREASIZE 0x8000
+
+transport select "dapdirect_swd"
+
+set CHIPNAME STM32F103RCTx
+set BOARDNAME genericBoard
+
+# Enable debug when in low power modes
+set ENABLE_LOW_POWER 1
+
+# Stop Watchdog counters when halt
+set STOP_WATCHDOG 1
+
+# STlink Debug clock frequency
+set CLOCK_FREQ 8000
+
+# Reset configuration
+# use hardware reset, connect under reset
+# connect_assert_srst needed if low power mode application running (WFI...)
+reset_config srst_only srst_nogate connect_assert_srst
+set CONNECT_UNDER_RESET 1
+set CORE_RESET 0
+
+# ACCESS PORT NUMBER
+set AP_NUM 0
+# GDB PORT
+set GDB_PORT 3333
+
+
+
+
+
+# BCTM CPU variables
+
+source [find target/stm32f1x.cfg]
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice2/practice2.launch b/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice2/practice2.launch
index 6605ead..12a356b 100644
--- a/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice2/practice2.launch
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab2/practice2/practice2.launch
@@ -29,17 +29,32 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -55,6 +70,7 @@
+
@@ -65,9 +81,9 @@
-
+
-
+
@@ -92,5 +108,6 @@
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/CS301-2024fall-lab3-TFTLCD.pdf b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/CS301-2024fall-lab3-TFTLCD.pdf
index e1f6b4d..8b61432 100644
Binary files a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/CS301-2024fall-lab3-TFTLCD.pdf and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/CS301-2024fall-lab3-TFTLCD.pdf differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.cproject b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.cproject
new file mode 100644
index 0000000..53ef170
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.cproject
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.mxproject b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.mxproject
new file mode 100644
index 0000000..a69f0d0
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.mxproject
@@ -0,0 +1,27 @@
+[PreviousGenFiles]
+AdvancedFolderStructure=true
+HeaderFileListSize=4
+HeaderFiles#0=../Core/Inc/gpio.h
+HeaderFiles#1=../Core/Inc/stm32f1xx_it.h
+HeaderFiles#2=../Core/Inc/stm32f1xx_hal_conf.h
+HeaderFiles#3=../Core/Inc/main.h
+HeaderFolderListSize=1
+HeaderPath#0=../Core/Inc
+HeaderFiles=;
+SourceFileListSize=4
+SourceFiles#0=../Core/Src/gpio.c
+SourceFiles#1=../Core/Src/stm32f1xx_it.c
+SourceFiles#2=../Core/Src/stm32f1xx_hal_msp.c
+SourceFiles#3=../Core/Src/main.c
+SourceFolderListSize=1
+SourcePath#0=../Core/Src
+SourceFiles=;
+
+[PreviousLibFiles]
+LibFiles=Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/tz_context.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_armv8mbl.h;
+
+[PreviousUsedCubeIDEFiles]
+SourceFiles=Core/Src/main.c;Core/Src/gpio.c;Core/Src/stm32f1xx_it.c;Core/Src/stm32f1xx_hal_msp.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;Core/Src/system_stm32f1xx.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;Core/Src/system_stm32f1xx.c;;;
+HeaderPath=Drivers/STM32F1xx_HAL_Driver/Inc;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;Drivers/CMSIS/Device/ST/STM32F1xx/Include;Drivers/CMSIS/Include;Core/Inc;
+CDefines=USE_HAL_DRIVER;STM32F103xE;USE_HAL_DRIVER;USE_HAL_DRIVER;
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.project b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.project
new file mode 100644
index 0000000..94bd123
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.project
@@ -0,0 +1,32 @@
+
+
+ lcd
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+ clean,full,incremental,
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+ full,incremental,
+
+
+
+
+
+ com.st.stm32cube.ide.mcu.MCUProjectNature
+ com.st.stm32cube.ide.mcu.MCUCubeProjectNature
+ org.eclipse.cdt.core.cnature
+ com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature
+ com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature
+ com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature
+ com.st.stm32cube.ide.mcu.MCURootProjectNature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.settings/language.settings.xml b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.settings/language.settings.xml
new file mode 100644
index 0000000..d7b6c66
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.settings/language.settings.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/.settings/org.eclipse.core.resources.prefs b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/.settings/org.eclipse.core.resources.prefs
rename to CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.settings/org.eclipse.core.resources.prefs
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.settings/stm32cubeide.project.prefs b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.settings/stm32cubeide.project.prefs
new file mode 100644
index 0000000..f6a2b63
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/.settings/stm32cubeide.project.prefs
@@ -0,0 +1,4 @@
+66BE74F758C12D739921AEA421D593D3=0
+8DF89ED150041C4CBC7CB9A9CAA90856=E2A120DE50F7E236F2845900B7AD282A
+DC22A860405A8BF2F2C095E5B6529F12=E2A120DE50F7E236F2845900B7AD282A
+eclipse.preferences.version=1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/font.h b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/font.h
new file mode 100644
index 0000000..0db68bb
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/font.h
@@ -0,0 +1,455 @@
+/**
+ ****************************************************************************************************
+ * @file lcdfont.h
+ * @author ÕýµãÔ×ÓÍŶÓ(ALIENTEK)
+ * @version V1.1
+ * @date 2021-04-06
+ * @brief °üº¬12*12,16*16,24*24,32*32 ËÄÖÖLCDÓÃASCII×ÖÌå
+ * @license Copyright (c) 2020-2032, ¹ãÖÝÊÐÐÇÒíµç×ӿƼ¼ÓÐÏÞ¹«Ë¾
+ ****************************************************************************************************
+ * @attention
+ *
+ * ʵÑéƽ̨:ÕýµãÔ×Ó STM32F103¿ª·¢°å
+ * ÔÚÏßÊÓƵ:www.yuanzige.com
+ * ¼¼ÊõÂÛ̳:www.openedv.com
+ * ¹«Ë¾ÍøÖ·:www.alientek.com
+ * ¹ºÂòµØÖ·:openedv.taobao.com
+ *
+ * ÐÞ¸Ä˵Ã÷
+ * V1.0 20200421
+ * µÚÒ»´Î·¢²¼
+ * V1.1 20210406
+ * ÐÞÕýasc2_3216´óС¶¨Ò壬¼õÉÙflashÕ¼ÓÃ
+ *
+ ****************************************************************************************************
+ */
+
+#ifndef __LCDFONT_H
+#define __LCDFONT_H
+
+/* ³£ÓÃASCII±í
+ * Æ«ÒÆÁ¿32
+ * ASCII×Ö·û¼¯: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
+ * PC2LCD2002È¡Ä£·½Ê½ÉèÖãºÒõÂë+ÖðÁÐʽ+˳Ïò+C51¸ñʽ
+ * ×ܹ²£º4¸ö×Ö·û¼¯£¨12*12¡¢16*16¡¢24*24ºÍ32*32£©£¬Óû§¿ÉÒÔ×ÔÐÐÐÂÔöÆäËû·Ö±æÂʵÄ×Ö·û¼¯¡£
+ * ÿ¸ö×Ö·ûËùÕ¼ÓõÄ×Ö½ÚÊýΪ:(size/8+((size%8)?1:0))*(size/2),ÆäÖÐsize:ÊÇ×Ö¿âÉú³ÉʱµÄµãÕó´óС(12/16/24/32...)
+ */
+
+/* 12*12 ASCII×Ö·û¼¯µãÕó */
+const unsigned char asc2_1206[95][12]={
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
+{0x00,0x00,0x00,0x00,0x3F,0x40,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
+{0x00,0x00,0x30,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x00,0x00},/*""",2*/
+{0x09,0x00,0x0B,0xC0,0x3D,0x00,0x0B,0xC0,0x3D,0x00,0x09,0x00},/*"#",3*/
+{0x18,0xC0,0x24,0x40,0x7F,0xE0,0x22,0x40,0x31,0x80,0x00,0x00},/*"$",4*/
+{0x18,0x00,0x24,0xC0,0x1B,0x00,0x0D,0x80,0x32,0x40,0x01,0x80},/*"%",5*/
+{0x03,0x80,0x1C,0x40,0x27,0x40,0x1C,0x80,0x07,0x40,0x00,0x40},/*"&",6*/
+{0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x20,0x40,0x40,0x20},/*"(",8*/
+{0x00,0x00,0x40,0x20,0x20,0x40,0x1F,0x80,0x00,0x00,0x00,0x00},/*")",9*/
+{0x09,0x00,0x06,0x00,0x1F,0x80,0x06,0x00,0x09,0x00,0x00,0x00},/*"*",10*/
+{0x04,0x00,0x04,0x00,0x3F,0x80,0x04,0x00,0x04,0x00,0x00,0x00},/*"+",11*/
+{0x00,0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
+{0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00},/*"-",13*/
+{0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
+{0x00,0x20,0x01,0xC0,0x06,0x00,0x38,0x00,0x40,0x00,0x00,0x00},/*"/",15*/
+{0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00},/*"0",16*/
+{0x00,0x00,0x10,0x40,0x3F,0xC0,0x00,0x40,0x00,0x00,0x00,0x00},/*"1",17*/
+{0x18,0xC0,0x21,0x40,0x22,0x40,0x24,0x40,0x18,0x40,0x00,0x00},/*"2",18*/
+{0x10,0x80,0x20,0x40,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00},/*"3",19*/
+{0x02,0x00,0x0D,0x00,0x11,0x00,0x3F,0xC0,0x01,0x40,0x00,0x00},/*"4",20*/
+{0x3C,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x23,0x80,0x00,0x00},/*"5",21*/
+{0x1F,0x80,0x24,0x40,0x24,0x40,0x34,0x40,0x03,0x80,0x00,0x00},/*"6",22*/
+{0x30,0x00,0x20,0x00,0x27,0xC0,0x38,0x00,0x20,0x00,0x00,0x00},/*"7",23*/
+{0x1B,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00},/*"8",24*/
+{0x1C,0x00,0x22,0xC0,0x22,0x40,0x22,0x40,0x1F,0x80,0x00,0x00},/*"9",25*/
+{0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/
+{0x00,0x00,0x00,0x00,0x04,0x60,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/
+{0x00,0x00,0x04,0x00,0x0A,0x00,0x11,0x00,0x20,0x80,0x40,0x40},/*"<",28*/
+{0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x00,0x00},/*"=",29*/
+{0x00,0x00,0x40,0x40,0x20,0x80,0x11,0x00,0x0A,0x00,0x04,0x00},/*">",30*/
+{0x18,0x00,0x20,0x00,0x23,0x40,0x24,0x00,0x18,0x00,0x00,0x00},/*"?",31*/
+{0x1F,0x80,0x20,0x40,0x27,0x40,0x29,0x40,0x1F,0x40,0x00,0x00},/*"@",32*/
+{0x00,0x40,0x07,0xC0,0x39,0x00,0x0F,0x00,0x01,0xC0,0x00,0x40},/*"A",33*/
+{0x20,0x40,0x3F,0xC0,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00},/*"B",34*/
+{0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x30,0x80,0x00,0x00},/*"C",35*/
+{0x20,0x40,0x3F,0xC0,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00},/*"D",36*/
+{0x20,0x40,0x3F,0xC0,0x24,0x40,0x2E,0x40,0x30,0xC0,0x00,0x00},/*"E",37*/
+{0x20,0x40,0x3F,0xC0,0x24,0x40,0x2E,0x00,0x30,0x00,0x00,0x00},/*"F",38*/
+{0x0F,0x00,0x10,0x80,0x20,0x40,0x22,0x40,0x33,0x80,0x02,0x00},/*"G",39*/
+{0x20,0x40,0x3F,0xC0,0x04,0x00,0x04,0x00,0x3F,0xC0,0x20,0x40},/*"H",40*/
+{0x20,0x40,0x20,0x40,0x3F,0xC0,0x20,0x40,0x20,0x40,0x00,0x00},/*"I",41*/
+{0x00,0x60,0x20,0x20,0x20,0x20,0x3F,0xC0,0x20,0x00,0x20,0x00},/*"J",42*/
+{0x20,0x40,0x3F,0xC0,0x24,0x40,0x0B,0x00,0x30,0xC0,0x20,0x40},/*"K",43*/
+{0x20,0x40,0x3F,0xC0,0x20,0x40,0x00,0x40,0x00,0x40,0x00,0xC0},/*"L",44*/
+{0x3F,0xC0,0x3C,0x00,0x03,0xC0,0x3C,0x00,0x3F,0xC0,0x00,0x00},/*"M",45*/
+{0x20,0x40,0x3F,0xC0,0x0C,0x40,0x23,0x00,0x3F,0xC0,0x20,0x00},/*"N",46*/
+{0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00},/*"O",47*/
+{0x20,0x40,0x3F,0xC0,0x24,0x40,0x24,0x00,0x18,0x00,0x00,0x00},/*"P",48*/
+{0x1F,0x80,0x21,0x40,0x21,0x40,0x20,0xE0,0x1F,0xA0,0x00,0x00},/*"Q",49*/
+{0x20,0x40,0x3F,0xC0,0x24,0x40,0x26,0x00,0x19,0xC0,0x00,0x40},/*"R",50*/
+{0x18,0xC0,0x24,0x40,0x24,0x40,0x22,0x40,0x31,0x80,0x00,0x00},/*"S",51*/
+{0x30,0x00,0x20,0x40,0x3F,0xC0,0x20,0x40,0x30,0x00,0x00,0x00},/*"T",52*/
+{0x20,0x00,0x3F,0x80,0x00,0x40,0x00,0x40,0x3F,0x80,0x20,0x00},/*"U",53*/
+{0x20,0x00,0x3E,0x00,0x01,0xC0,0x07,0x00,0x38,0x00,0x20,0x00},/*"V",54*/
+{0x38,0x00,0x07,0xC0,0x3C,0x00,0x07,0xC0,0x38,0x00,0x00,0x00},/*"W",55*/
+{0x20,0x40,0x39,0xC0,0x06,0x00,0x39,0xC0,0x20,0x40,0x00,0x00},/*"X",56*/
+{0x20,0x00,0x38,0x40,0x07,0xC0,0x38,0x40,0x20,0x00,0x00,0x00},/*"Y",57*/
+{0x30,0x40,0x21,0xC0,0x26,0x40,0x38,0x40,0x20,0xC0,0x00,0x00},/*"Z",58*/
+{0x00,0x00,0x00,0x00,0x7F,0xE0,0x40,0x20,0x40,0x20,0x00,0x00},/*"[",59*/
+{0x00,0x00,0x70,0x00,0x0C,0x00,0x03,0x80,0x00,0x40,0x00,0x00},/*"\",60*/
+{0x00,0x00,0x40,0x20,0x40,0x20,0x7F,0xE0,0x00,0x00,0x00,0x00},/*"]",61*/
+{0x00,0x00,0x20,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
+{0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10},/*"_",63*/
+{0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
+{0x00,0x00,0x02,0x80,0x05,0x40,0x05,0x40,0x03,0xC0,0x00,0x40},/*"a",65*/
+{0x20,0x00,0x3F,0xC0,0x04,0x40,0x04,0x40,0x03,0x80,0x00,0x00},/*"b",66*/
+{0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x40,0x06,0x40,0x00,0x00},/*"c",67*/
+{0x00,0x00,0x03,0x80,0x04,0x40,0x24,0x40,0x3F,0xC0,0x00,0x40},/*"d",68*/
+{0x00,0x00,0x03,0x80,0x05,0x40,0x05,0x40,0x03,0x40,0x00,0x00},/*"e",69*/
+{0x00,0x00,0x04,0x40,0x1F,0xC0,0x24,0x40,0x24,0x40,0x20,0x00},/*"f",70*/
+{0x00,0x00,0x02,0xE0,0x05,0x50,0x05,0x50,0x06,0x50,0x04,0x20},/*"g",71*/
+{0x20,0x40,0x3F,0xC0,0x04,0x40,0x04,0x00,0x03,0xC0,0x00,0x40},/*"h",72*/
+{0x00,0x00,0x04,0x40,0x27,0xC0,0x00,0x40,0x00,0x00,0x00,0x00},/*"i",73*/
+{0x00,0x10,0x00,0x10,0x04,0x10,0x27,0xE0,0x00,0x00,0x00,0x00},/*"j",74*/
+{0x20,0x40,0x3F,0xC0,0x01,0x40,0x07,0x00,0x04,0xC0,0x04,0x40},/*"k",75*/
+{0x20,0x40,0x20,0x40,0x3F,0xC0,0x00,0x40,0x00,0x40,0x00,0x00},/*"l",76*/
+{0x07,0xC0,0x04,0x00,0x07,0xC0,0x04,0x00,0x03,0xC0,0x00,0x00},/*"m",77*/
+{0x04,0x40,0x07,0xC0,0x04,0x40,0x04,0x00,0x03,0xC0,0x00,0x40},/*"n",78*/
+{0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x40,0x03,0x80,0x00,0x00},/*"o",79*/
+{0x04,0x10,0x07,0xF0,0x04,0x50,0x04,0x40,0x03,0x80,0x00,0x00},/*"p",80*/
+{0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x50,0x07,0xF0,0x00,0x10},/*"q",81*/
+{0x04,0x40,0x07,0xC0,0x02,0x40,0x04,0x00,0x04,0x00,0x00,0x00},/*"r",82*/
+{0x00,0x00,0x06,0x40,0x05,0x40,0x05,0x40,0x04,0xC0,0x00,0x00},/*"s",83*/
+{0x00,0x00,0x04,0x00,0x1F,0x80,0x04,0x40,0x00,0x40,0x00,0x00},/*"t",84*/
+{0x04,0x00,0x07,0x80,0x00,0x40,0x04,0x40,0x07,0xC0,0x00,0x40},/*"u",85*/
+{0x04,0x00,0x07,0x00,0x04,0xC0,0x01,0x80,0x06,0x00,0x04,0x00},/*"v",86*/
+{0x06,0x00,0x01,0xC0,0x07,0x00,0x01,0xC0,0x06,0x00,0x00,0x00},/*"w",87*/
+{0x04,0x40,0x06,0xC0,0x01,0x00,0x06,0xC0,0x04,0x40,0x00,0x00},/*"x",88*/
+{0x04,0x10,0x07,0x10,0x04,0xE0,0x01,0x80,0x06,0x00,0x04,0x00},/*"y",89*/
+{0x00,0x00,0x04,0x40,0x05,0xC0,0x06,0x40,0x04,0x40,0x00,0x00},/*"z",90*/
+{0x00,0x00,0x00,0x00,0x04,0x00,0x7B,0xE0,0x40,0x20,0x00,0x00},/*"{",91*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF0,0x00,0x00,0x00,0x00},/*"|",92*/
+{0x00,0x00,0x40,0x20,0x7B,0xE0,0x04,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
+{0x40,0x00,0x80,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x40,0x00},/*"~",94*/
+};
+
+/* 16*16 ASCII×Ö·û¼¯µãÕó */
+const unsigned char asc2_1608[95][16]={
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xCC,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
+{0x00,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x00,0x00},/*""",2*/
+{0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x00,0x00},/*"#",3*/
+{0x00,0x00,0x0E,0x18,0x11,0x04,0x3F,0xFF,0x10,0x84,0x0C,0x78,0x00,0x00,0x00,0x00},/*"$",4*/
+{0x0F,0x00,0x10,0x84,0x0F,0x38,0x00,0xC0,0x07,0x78,0x18,0x84,0x00,0x78,0x00,0x00},/*"%",5*/
+{0x00,0x78,0x0F,0x84,0x10,0xC4,0x11,0x24,0x0E,0x98,0x00,0xE4,0x00,0x84,0x00,0x08},/*"&",6*/
+{0x08,0x00,0x68,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x18,0x18,0x20,0x04,0x40,0x02,0x00,0x00},/*"(",8*/
+{0x00,0x00,0x40,0x02,0x20,0x04,0x18,0x18,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/
+{0x02,0x40,0x02,0x40,0x01,0x80,0x0F,0xF0,0x01,0x80,0x02,0x40,0x02,0x40,0x00,0x00},/*"*",10*/
+{0x00,0x80,0x00,0x80,0x00,0x80,0x0F,0xF8,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00},/*"+",11*/
+{0x00,0x01,0x00,0x0D,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
+{0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80},/*"-",13*/
+{0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
+{0x00,0x00,0x00,0x06,0x00,0x18,0x00,0x60,0x01,0x80,0x06,0x00,0x18,0x00,0x20,0x00},/*"/",15*/
+{0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"0",16*/
+{0x00,0x00,0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00},/*"1",17*/
+{0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00},/*"2",18*/
+{0x00,0x00,0x0C,0x18,0x10,0x04,0x11,0x04,0x11,0x04,0x12,0x88,0x0C,0x70,0x00,0x00},/*"3",19*/
+{0x00,0x00,0x00,0xE0,0x03,0x20,0x04,0x24,0x08,0x24,0x1F,0xFC,0x00,0x24,0x00,0x00},/*"4",20*/
+{0x00,0x00,0x1F,0x98,0x10,0x84,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00},/*"5",21*/
+{0x00,0x00,0x07,0xF0,0x08,0x88,0x11,0x04,0x11,0x04,0x18,0x88,0x00,0x70,0x00,0x00},/*"6",22*/
+{0x00,0x00,0x1C,0x00,0x10,0x00,0x10,0xFC,0x13,0x00,0x1C,0x00,0x10,0x00,0x00,0x00},/*"7",23*/
+{0x00,0x00,0x0E,0x38,0x11,0x44,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00},/*"8",24*/
+{0x00,0x00,0x07,0x00,0x08,0x8C,0x10,0x44,0x10,0x44,0x08,0x88,0x07,0xF0,0x00,0x00},/*"9",25*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0C,0x03,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/
+{0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/
+{0x00,0x00,0x00,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x08,0x10,0x04,0x00,0x00},/*"<",28*/
+{0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x00,0x00},/*"=",29*/
+{0x00,0x00,0x10,0x04,0x08,0x08,0x04,0x10,0x02,0x20,0x01,0x40,0x00,0x80,0x00,0x00},/*">",30*/
+{0x00,0x00,0x0E,0x00,0x12,0x00,0x10,0x0C,0x10,0x6C,0x10,0x80,0x0F,0x00,0x00,0x00},/*"?",31*/
+{0x03,0xE0,0x0C,0x18,0x13,0xE4,0x14,0x24,0x17,0xC4,0x08,0x28,0x07,0xD0,0x00,0x00},/*"@",32*/
+{0x00,0x04,0x00,0x3C,0x03,0xC4,0x1C,0x40,0x07,0x40,0x00,0xE4,0x00,0x1C,0x00,0x04},/*"A",33*/
+{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x11,0x04,0x0E,0x88,0x00,0x70,0x00,0x00},/*"B",34*/
+{0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x08,0x1C,0x10,0x00,0x00},/*"C",35*/
+{0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"D",36*/
+{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x17,0xC4,0x10,0x04,0x08,0x18,0x00,0x00},/*"E",37*/
+{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x17,0xC0,0x10,0x00,0x08,0x00,0x00,0x00},/*"F",38*/
+{0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x44,0x1C,0x78,0x00,0x40,0x00,0x00},/*"G",39*/
+{0x10,0x04,0x1F,0xFC,0x10,0x84,0x00,0x80,0x00,0x80,0x10,0x84,0x1F,0xFC,0x10,0x04},/*"H",40*/
+{0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x00,0x00,0x00,0x00},/*"I",41*/
+{0x00,0x03,0x00,0x01,0x10,0x01,0x10,0x01,0x1F,0xFE,0x10,0x00,0x10,0x00,0x00,0x00},/*"J",42*/
+{0x10,0x04,0x1F,0xFC,0x11,0x04,0x03,0x80,0x14,0x64,0x18,0x1C,0x10,0x04,0x00,0x00},/*"K",43*/
+{0x10,0x04,0x1F,0xFC,0x10,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x0C,0x00,0x00},/*"L",44*/
+{0x10,0x04,0x1F,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x1F,0xFC,0x10,0x04,0x00,0x00},/*"M",45*/
+{0x10,0x04,0x1F,0xFC,0x0C,0x04,0x03,0x00,0x00,0xE0,0x10,0x18,0x1F,0xFC,0x10,0x00},/*"N",46*/
+{0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"O",47*/
+{0x10,0x04,0x1F,0xFC,0x10,0x84,0x10,0x80,0x10,0x80,0x10,0x80,0x0F,0x00,0x00,0x00},/*"P",48*/
+{0x07,0xF0,0x08,0x18,0x10,0x24,0x10,0x24,0x10,0x1C,0x08,0x0A,0x07,0xF2,0x00,0x00},/*"Q",49*/
+{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x11,0xC0,0x11,0x30,0x0E,0x0C,0x00,0x04},/*"R",50*/
+{0x00,0x00,0x0E,0x1C,0x11,0x04,0x10,0x84,0x10,0x84,0x10,0x44,0x1C,0x38,0x00,0x00},/*"S",51*/
+{0x18,0x00,0x10,0x00,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x00,0x18,0x00,0x00,0x00},/*"T",52*/
+{0x10,0x00,0x1F,0xF8,0x10,0x04,0x00,0x04,0x00,0x04,0x10,0x04,0x1F,0xF8,0x10,0x00},/*"U",53*/
+{0x10,0x00,0x1E,0x00,0x11,0xE0,0x00,0x1C,0x00,0x70,0x13,0x80,0x1C,0x00,0x10,0x00},/*"V",54*/
+{0x1F,0xC0,0x10,0x3C,0x00,0xE0,0x1F,0x00,0x00,0xE0,0x10,0x3C,0x1F,0xC0,0x00,0x00},/*"W",55*/
+{0x10,0x04,0x18,0x0C,0x16,0x34,0x01,0xC0,0x01,0xC0,0x16,0x34,0x18,0x0C,0x10,0x04},/*"X",56*/
+{0x10,0x00,0x1C,0x00,0x13,0x04,0x00,0xFC,0x13,0x04,0x1C,0x00,0x10,0x00,0x00,0x00},/*"Y",57*/
+{0x08,0x04,0x10,0x1C,0x10,0x64,0x10,0x84,0x13,0x04,0x1C,0x04,0x10,0x18,0x00,0x00},/*"Z",58*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x40,0x02,0x40,0x02,0x40,0x02,0x00,0x00},/*"[",59*/
+{0x00,0x00,0x30,0x00,0x0C,0x00,0x03,0x80,0x00,0x60,0x00,0x1C,0x00,0x03,0x00,0x00},/*"\",60*/
+{0x00,0x00,0x40,0x02,0x40,0x02,0x40,0x02,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00},/*"]",61*/
+{0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00},/*"^",62*/
+{0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01},/*"_",63*/
+{0x00,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
+{0x00,0x00,0x00,0x98,0x01,0x24,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xFC,0x00,0x04},/*"a",65*/
+{0x10,0x00,0x1F,0xFC,0x00,0x88,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00},/*"b",66*/
+{0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x00},/*"c",67*/
+{0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x11,0x08,0x1F,0xFC,0x00,0x04},/*"d",68*/
+{0x00,0x00,0x00,0xF8,0x01,0x44,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xC8,0x00,0x00},/*"e",69*/
+{0x00,0x00,0x01,0x04,0x01,0x04,0x0F,0xFC,0x11,0x04,0x11,0x04,0x11,0x00,0x18,0x00},/*"f",70*/
+{0x00,0x00,0x00,0xD6,0x01,0x29,0x01,0x29,0x01,0x29,0x01,0xC9,0x01,0x06,0x00,0x00},/*"g",71*/
+{0x10,0x04,0x1F,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04},/*"h",72*/
+{0x00,0x00,0x01,0x04,0x19,0x04,0x19,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00},/*"i",73*/
+{0x00,0x00,0x00,0x03,0x00,0x01,0x01,0x01,0x19,0x01,0x19,0xFE,0x00,0x00,0x00,0x00},/*"j",74*/
+{0x10,0x04,0x1F,0xFC,0x00,0x24,0x00,0x40,0x01,0xB4,0x01,0x0C,0x01,0x04,0x00,0x00},/*"k",75*/
+{0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00},/*"l",76*/
+{0x01,0x04,0x01,0xFC,0x01,0x04,0x01,0x00,0x01,0xFC,0x01,0x04,0x01,0x00,0x00,0xFC},/*"m",77*/
+{0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04},/*"n",78*/
+{0x00,0x00,0x00,0xF8,0x01,0x04,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0xF8,0x00,0x00},/*"o",79*/
+{0x01,0x01,0x01,0xFF,0x00,0x85,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00},/*"p",80*/
+{0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0xFF,0x00,0x01},/*"q",81*/
+{0x01,0x04,0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x04,0x01,0x00,0x01,0x80,0x00,0x00},/*"r",82*/
+{0x00,0x00,0x00,0xCC,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x98,0x00,0x00},/*"s",83*/
+{0x00,0x00,0x01,0x00,0x01,0x00,0x07,0xF8,0x01,0x04,0x01,0x04,0x00,0x00,0x00,0x00},/*"t",84*/
+{0x01,0x00,0x01,0xF8,0x00,0x04,0x00,0x04,0x00,0x04,0x01,0x08,0x01,0xFC,0x00,0x04},/*"u",85*/
+{0x01,0x00,0x01,0x80,0x01,0x70,0x00,0x0C,0x00,0x10,0x01,0x60,0x01,0x80,0x01,0x00},/*"v",86*/
+{0x01,0xF0,0x01,0x0C,0x00,0x30,0x01,0xC0,0x00,0x30,0x01,0x0C,0x01,0xF0,0x01,0x00},/*"w",87*/
+{0x00,0x00,0x01,0x04,0x01,0x8C,0x00,0x74,0x01,0x70,0x01,0x8C,0x01,0x04,0x00,0x00},/*"x",88*/
+{0x01,0x01,0x01,0x81,0x01,0x71,0x00,0x0E,0x00,0x18,0x01,0x60,0x01,0x80,0x01,0x00},/*"y",89*/
+{0x00,0x00,0x01,0x84,0x01,0x0C,0x01,0x34,0x01,0x44,0x01,0x84,0x01,0x0C,0x00,0x00},/*"z",90*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x3E,0xFC,0x40,0x02,0x40,0x02},/*"{",91*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/
+{0x00,0x00,0x40,0x02,0x40,0x02,0x3E,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
+{0x00,0x00,0x60,0x00,0x80,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00},/*"~",94*/
+};
+
+/* 24*24 ASICII×Ö·û¼¯µãÕó */
+const unsigned char asc2_2412[95][36]={
+{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,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x38,0x0F,0xFE,0x38,0x0F,0x80,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x06,0x00,0x00,0x0C,0x00,0x00,0x38,0x00,0x00,0x31,0x00,0x00,0x06,0x00,0x00,0x0C,0x00,0x00,0x38,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00},/*""",2*/
+{0x00,0x00,0x00,0x00,0x61,0x80,0x00,0x67,0xF8,0x07,0xF9,0x80,0x00,0x61,0x80,0x00,0x61,0x80,0x00,0x61,0x80,0x00,0x61,0x80,0x00,0x67,0xF8,0x07,0xF9,0x80,0x00,0x61,0x80,0x00,0x00,0x00},/*"#",3*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0xE0,0x03,0xE0,0xF0,0x06,0x30,0x08,0x04,0x18,0x08,0x1F,0xFF,0xFE,0x04,0x0E,0x08,0x07,0x87,0xF0,0x03,0x81,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*"$",4*/
+{0x01,0xF0,0x00,0x06,0x0C,0x00,0x04,0x04,0x08,0x06,0x0C,0x70,0x01,0xF9,0xC0,0x00,0x0E,0x00,0x00,0x3B,0xE0,0x00,0xEC,0x18,0x07,0x08,0x08,0x04,0x0C,0x18,0x00,0x03,0xE0,0x00,0x00,0x00},/*"%",5*/
+{0x00,0x01,0xE0,0x00,0x07,0xF0,0x03,0xF8,0x18,0x04,0x1C,0x08,0x04,0x17,0x08,0x07,0xE1,0xD0,0x03,0xC0,0xE0,0x00,0x23,0xB0,0x00,0x3C,0x08,0x00,0x20,0x08,0x00,0x00,0x10,0x00,0x00,0x00},/*"&",6*/
+{0x00,0x00,0x00,0x01,0x00,0x00,0x31,0x00,0x00,0x32,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x01,0xFF,0xC0,0x07,0x80,0xF0,0x0C,0x00,0x18,0x10,0x00,0x04,0x20,0x00,0x02,0x00,0x00,0x00},/*"(",8*/
+{0x00,0x00,0x00,0x20,0x00,0x02,0x10,0x00,0x04,0x0C,0x00,0x18,0x07,0x80,0xF0,0x01,0xFF,0xC0,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/
+{0x00,0x00,0x00,0x00,0x42,0x00,0x00,0x66,0x00,0x00,0x66,0x00,0x00,0x3C,0x00,0x00,0x18,0x00,0x03,0xFF,0xC0,0x00,0x18,0x00,0x00,0x3C,0x00,0x00,0x66,0x00,0x00,0x66,0x00,0x00,0x42,0x00},/*"*",10*/
+{0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x01,0xFF,0xC0,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00},/*"+",11*/
+{0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x31,0x00,0x00,0x32,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
+{0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00},/*"-",13*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
+{0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x1C,0x00,0x00,0x70,0x00,0x01,0x80,0x00,0x0E,0x00,0x00,0x38,0x00,0x00,0xC0,0x00,0x07,0x00,0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00},/*"/",15*/
+{0x00,0x00,0x00,0x00,0x7F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x06,0x00,0x18,0x04,0x00,0x08,0x04,0x00,0x08,0x06,0x00,0x18,0x03,0x80,0x70,0x01,0xFF,0xE0,0x00,0x7F,0x80,0x00,0x00,0x00},/*"0",16*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x08,0x01,0x00,0x08,0x01,0x00,0x08,0x03,0xFF,0xF8,0x07,0xFF,0xF8,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",17*/
+{0x00,0x00,0x00,0x01,0xC0,0x38,0x02,0xC0,0x58,0x04,0x00,0x98,0x04,0x01,0x18,0x04,0x02,0x18,0x04,0x04,0x18,0x06,0x1C,0x18,0x03,0xF8,0x18,0x01,0xE0,0xF8,0x00,0x00,0x00,0x00,0x00,0x00},/*"2",18*/
+{0x00,0x00,0x00,0x01,0xC0,0xE0,0x03,0xC0,0xF0,0x04,0x00,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x06,0x18,0x08,0x03,0xF4,0x18,0x01,0xE7,0xF0,0x00,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*"3",19*/
+{0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x0D,0x00,0x00,0x11,0x00,0x00,0x61,0x00,0x00,0x81,0x08,0x03,0x01,0x08,0x07,0xFF,0xF8,0x0F,0xFF,0xF8,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x00,0x00},/*"4",20*/
+{0x00,0x00,0x00,0x00,0x00,0xE0,0x07,0xFC,0xD0,0x06,0x08,0x08,0x06,0x10,0x08,0x06,0x10,0x08,0x06,0x10,0x08,0x06,0x18,0x38,0x06,0x0F,0xF0,0x06,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00},/*"5",21*/
+{0x00,0x00,0x00,0x00,0x3F,0x80,0x01,0xFF,0xE0,0x03,0x84,0x30,0x02,0x08,0x18,0x04,0x10,0x08,0x04,0x10,0x08,0x04,0x10,0x08,0x07,0x18,0x10,0x03,0x0F,0xF0,0x00,0x07,0xC0,0x00,0x00,0x00},/*"6",22*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0xF8,0x06,0x07,0xF8,0x06,0x18,0x00,0x06,0xE0,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00},/*"7",23*/
+{0x00,0x00,0x00,0x01,0xE1,0xE0,0x03,0xF7,0xF0,0x06,0x34,0x10,0x04,0x18,0x08,0x04,0x18,0x08,0x04,0x0C,0x08,0x04,0x0C,0x08,0x06,0x16,0x18,0x03,0xF3,0xF0,0x01,0xC1,0xE0,0x00,0x00,0x00},/*"8",24*/
+{0x00,0x00,0x00,0x00,0xF8,0x00,0x03,0xFC,0x30,0x03,0x06,0x38,0x04,0x02,0x08,0x04,0x02,0x08,0x04,0x02,0x08,0x04,0x04,0x10,0x03,0x08,0xF0,0x01,0xFF,0xC0,0x00,0x7F,0x00,0x00,0x00,0x00},/*"9",25*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x38,0x00,0x70,0x38,0x00,0x70,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x1A,0x00,0x30,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x14,0x00,0x00,0x22,0x00,0x00,0x41,0x00,0x00,0x80,0x80,0x01,0x00,0x40,0x02,0x00,0x20,0x04,0x00,0x10,0x08,0x00,0x08,0x00,0x00,0x00},/*"<",28*/
+{0x00,0x00,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x00,0x00},/*"=",29*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x04,0x00,0x10,0x02,0x00,0x20,0x01,0x00,0x40,0x00,0x80,0x80,0x00,0x41,0x00,0x00,0x22,0x00,0x00,0x14,0x00,0x00,0x08,0x00,0x00,0x00,0x00},/*">",30*/
+{0x00,0x00,0x00,0x03,0xC0,0x00,0x04,0xC0,0x00,0x04,0x00,0x00,0x08,0x00,0x38,0x08,0x0F,0x38,0x08,0x08,0x38,0x08,0x10,0x00,0x0C,0x30,0x00,0x07,0xE0,0x00,0x03,0xC0,0x00,0x00,0x00,0x00},/*"?",31*/
+{0x00,0x00,0x00,0x00,0x3F,0x80,0x00,0xFF,0xE0,0x03,0x80,0x70,0x02,0x0F,0x10,0x06,0x70,0x88,0x04,0xC0,0x88,0x04,0x83,0x08,0x04,0x7F,0x88,0x02,0xC0,0x90,0x03,0x01,0x20,0x00,0xFE,0x40},/*"@",32*/
+{0x00,0x00,0x08,0x00,0x00,0x18,0x00,0x01,0xF8,0x00,0x3E,0x08,0x01,0xC2,0x00,0x07,0x02,0x00,0x07,0xE2,0x00,0x00,0xFE,0x00,0x00,0x1F,0xC8,0x00,0x01,0xF8,0x00,0x00,0x38,0x00,0x00,0x08},/*"A",33*/
+{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x06,0x18,0x08,0x03,0xF4,0x18,0x01,0xE7,0xF0,0x00,0x01,0xE0,0x00,0x00,0x00},/*"B",34*/
+{0x00,0x00,0x00,0x00,0x3F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x02,0x00,0x18,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x10,0x06,0x00,0x20,0x07,0x80,0xC0,0x00,0x00,0x00},/*"C",35*/
+{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x18,0x02,0x00,0x10,0x03,0x80,0x70,0x01,0xFF,0xE0,0x00,0x7F,0x80,0x00,0x00,0x00},/*"D",36*/
+{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x3E,0x08,0x04,0x00,0x08,0x06,0x00,0x18,0x01,0x00,0x60,0x00,0x00,0x00},/*"E",37*/
+{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x3E,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00},/*"F",38*/
+{0x00,0x00,0x00,0x00,0x3F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x06,0x00,0x18,0x04,0x00,0x08,0x04,0x02,0x08,0x04,0x02,0x08,0x02,0x03,0xF0,0x07,0x83,0xF0,0x00,0x02,0x00,0x00,0x02,0x00},/*"G",39*/
+{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x04,0x08,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08},/*"H",40*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},/*"I",41*/
+{0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x01,0x04,0x00,0x01,0x04,0x00,0x01,0x04,0x00,0x03,0x07,0xFF,0xFE,0x07,0xFF,0xFC,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00},/*"J",42*/
+{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x0C,0x08,0x00,0x18,0x00,0x00,0x3E,0x00,0x04,0xC7,0x80,0x05,0x03,0xC8,0x06,0x00,0xF8,0x04,0x00,0x38,0x04,0x00,0x18,0x00,0x00,0x08},/*"K",43*/
+{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x18,0x00,0x00,0x60,0x00,0x00,0x00},/*"L",44*/
+{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0x80,0x08,0x07,0xFC,0x00,0x00,0x7F,0xC0,0x00,0x03,0xF8,0x00,0x07,0xC0,0x00,0x78,0x00,0x07,0x80,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08},/*"M",45*/
+{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0x00,0x08,0x03,0xC0,0x00,0x00,0xE0,0x00,0x00,0x38,0x00,0x00,0x1E,0x00,0x00,0x07,0x00,0x00,0x01,0xC0,0x04,0x00,0xF0,0x07,0xFF,0xF8,0x04,0x00,0x00},/*"N",46*/
+{0x00,0x00,0x00,0x00,0x7F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x06,0x00,0x18,0x04,0x00,0x08,0x04,0x00,0x08,0x06,0x00,0x18,0x03,0x00,0x30,0x01,0xFF,0xE0,0x00,0x7F,0x80,0x00,0x00,0x00},/*"O",47*/
+{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x04,0x08,0x04,0x04,0x00,0x04,0x04,0x00,0x04,0x04,0x00,0x04,0x04,0x00,0x06,0x0C,0x00,0x03,0xF8,0x00,0x01,0xF0,0x00,0x00,0x00,0x00},/*"P",48*/
+{0x00,0x00,0x00,0x00,0x7F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x06,0x00,0x88,0x04,0x00,0x88,0x04,0x00,0xC8,0x06,0x00,0x3C,0x03,0x00,0x3E,0x01,0xFF,0xE6,0x00,0x7F,0x84,0x00,0x00,0x00},/*"Q",49*/
+{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x04,0x08,0x00,0x04,0x0C,0x00,0x04,0x0F,0x00,0x04,0x0B,0xC0,0x06,0x10,0xF0,0x03,0xF0,0x38,0x01,0xE0,0x08,0x00,0x00,0x08},/*"R",50*/
+{0x00,0x00,0x00,0x01,0xE0,0xF8,0x03,0xF0,0x30,0x06,0x30,0x10,0x04,0x18,0x08,0x04,0x18,0x08,0x04,0x0C,0x08,0x04,0x0C,0x08,0x02,0x06,0x18,0x02,0x07,0xF0,0x07,0x81,0xE0,0x00,0x00,0x00},/*"S",51*/
+{0x01,0x80,0x00,0x06,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08,0x04,0x00,0x00,0x04,0x00,0x00,0x06,0x00,0x00,0x01,0x80,0x00},/*"T",52*/
+{0x04,0x00,0x00,0x07,0xFF,0xE0,0x07,0xFF,0xF0,0x04,0x00,0x18,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x04,0x00,0x10,0x07,0xFF,0xE0,0x04,0x00,0x00},/*"U",53*/
+{0x04,0x00,0x00,0x06,0x00,0x00,0x07,0xE0,0x00,0x07,0xFE,0x00,0x04,0x1F,0xE0,0x00,0x01,0xF8,0x00,0x00,0x38,0x00,0x01,0xE0,0x04,0x3E,0x00,0x07,0xC0,0x00,0x06,0x00,0x00,0x04,0x00,0x00},/*"V",54*/
+{0x04,0x00,0x00,0x07,0xE0,0x00,0x07,0xFF,0xC0,0x04,0x1F,0xF8,0x00,0x07,0xC0,0x07,0xF8,0x00,0x07,0xFF,0x80,0x04,0x3F,0xF8,0x00,0x07,0xC0,0x04,0xF8,0x00,0x07,0x00,0x00,0x04,0x00,0x00},/*"W",55*/
+{0x00,0x00,0x00,0x04,0x00,0x08,0x06,0x00,0x18,0x07,0xC0,0x78,0x05,0xF1,0xC8,0x00,0x3E,0x00,0x00,0x1F,0x80,0x04,0x63,0xE8,0x07,0x80,0xF8,0x06,0x00,0x18,0x04,0x00,0x08,0x00,0x00,0x00},/*"X",56*/
+{0x04,0x00,0x00,0x06,0x00,0x00,0x07,0x80,0x00,0x07,0xE0,0x08,0x04,0x7C,0x08,0x00,0x1F,0xF8,0x00,0x07,0xF8,0x00,0x18,0x08,0x04,0xE0,0x08,0x07,0x00,0x00,0x06,0x00,0x00,0x04,0x00,0x00},/*"Y",57*/
+{0x00,0x00,0x00,0x01,0x00,0x08,0x06,0x00,0x38,0x04,0x00,0xF8,0x04,0x03,0xE8,0x04,0x0F,0x08,0x04,0x7C,0x08,0x05,0xF0,0x08,0x07,0xC0,0x08,0x07,0x00,0x18,0x04,0x00,0x60,0x00,0x00,0x00},/*"Z",58*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFE,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x00,0x00,0x00},/*"[",59*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x00,0xC0,0x00,0x00,0x38,0x00,0x00,0x06,0x00,0x00,0x01,0xC0,0x00,0x00,0x30,0x00,0x00,0x0E,0x00,0x00,0x01,0x00,0x00,0x00},/*"\",60*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x3F,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"]",61*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x00,0x30,0x00,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x10,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
+{0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01},/*"_",63*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
+{0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x19,0xF8,0x00,0x1B,0x18,0x00,0x22,0x08,0x00,0x26,0x08,0x00,0x24,0x08,0x00,0x24,0x10,0x00,0x3F,0xF8,0x00,0x1F,0xF8,0x00,0x00,0x08,0x00,0x00,0x18},/*"a",65*/
+{0x00,0x00,0x00,0x04,0x00,0x00,0x07,0xFF,0xF8,0x0F,0xFF,0xF0,0x00,0x18,0x18,0x00,0x10,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x30,0x18,0x00,0x1F,0xF0,0x00,0x0F,0xC0,0x00,0x00,0x00},/*"b",66*/
+{0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x1F,0xF0,0x00,0x18,0x30,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x3C,0x08,0x00,0x1C,0x10,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00},/*"c",67*/
+{0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x1F,0xF0,0x00,0x38,0x18,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x04,0x10,0x10,0x07,0xFF,0xF8,0x0F,0xFF,0xF0,0x00,0x00,0x10,0x00,0x00,0x00},/*"d",68*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x1F,0xF0,0x00,0x12,0x30,0x00,0x22,0x18,0x00,0x22,0x08,0x00,0x22,0x08,0x00,0x32,0x08,0x00,0x1E,0x10,0x00,0x0E,0x20,0x00,0x00,0x00},/*"e",69*/
+{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x08,0x00,0x20,0x08,0x01,0xFF,0xF8,0x03,0xFF,0xF8,0x06,0x20,0x08,0x04,0x20,0x08,0x04,0x20,0x08,0x07,0x20,0x00,0x03,0x00,0x00,0x00,0x00,0x00},/*"f",70*/
+{0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x0E,0x6E,0x00,0x1F,0xF3,0x00,0x31,0xB1,0x00,0x20,0xB1,0x00,0x20,0xB1,0x00,0x31,0x91,0x00,0x1F,0x13,0x00,0x2E,0x1E,0x00,0x20,0x0E,0x00,0x30,0x00},/*"g",71*/
+{0x00,0x00,0x00,0x04,0x00,0x08,0x07,0xFF,0xF8,0x0F,0xFF,0xF8,0x00,0x10,0x08,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x1F,0xF8,0x00,0x00,0x08,0x00,0x00,0x00},/*"h",72*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x06,0x3F,0xF8,0x06,0x3F,0xF8,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},/*"i",73*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x20,0x01,0x00,0x20,0x01,0x00,0x20,0x03,0x06,0x3F,0xFE,0x06,0x3F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"j",74*/
+{0x00,0x00,0x00,0x04,0x00,0x08,0x07,0xFF,0xF8,0x0F,0xFF,0xF8,0x00,0x01,0x88,0x00,0x03,0x00,0x00,0x2F,0xC0,0x00,0x38,0xF8,0x00,0x20,0x38,0x00,0x20,0x08,0x00,0x00,0x08,0x00,0x00,0x00},/*"k",75*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x07,0xFF,0xF8,0x0F,0xFF,0xF8,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},/*"l",76*/
+{0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x10,0x08,0x00,0x20,0x00,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x10,0x08,0x00,0x20,0x00,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x00,0x08},/*"m",77*/
+{0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x10,0x08,0x00,0x10,0x00,0x00,0x20,0x00,0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x1F,0xF8,0x00,0x00,0x08,0x00,0x00,0x00},/*"n",78*/
+{0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x0F,0xF0,0x00,0x18,0x30,0x00,0x30,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x30,0x08,0x00,0x18,0x30,0x00,0x0F,0xF0,0x00,0x07,0xC0,0x00,0x00,0x00},/*"o",79*/
+{0x00,0x00,0x00,0x00,0x20,0x01,0x00,0x3F,0xFF,0x00,0x3F,0xFF,0x00,0x10,0x11,0x00,0x20,0x09,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x30,0x38,0x00,0x1F,0xF0,0x00,0x0F,0xC0,0x00,0x00,0x00},/*"p",80*/
+{0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x1F,0xF0,0x00,0x38,0x18,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x09,0x00,0x10,0x11,0x00,0x1F,0xFF,0x00,0x3F,0xFF,0x00,0x00,0x01,0x00,0x00,0x00},/*"q",81*/
+{0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x08,0x08,0x00,0x10,0x08,0x00,0x20,0x08,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x00,0x00},/*"r",82*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x78,0x00,0x1E,0x18,0x00,0x33,0x08,0x00,0x23,0x08,0x00,0x21,0x08,0x00,0x21,0x88,0x00,0x21,0x98,0x00,0x30,0xF0,0x00,0x38,0x60,0x00,0x00,0x00},/*"s",83*/
+{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0xFF,0xF0,0x03,0xFF,0xF8,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00},/*"t",84*/
+{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x3F,0xF0,0x00,0x7F,0xF8,0x00,0x00,0x18,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x20,0x10,0x00,0x3F,0xF8,0x00,0x7F,0xF0,0x00,0x00,0x10,0x00,0x00,0x00},/*"u",85*/
+{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x3C,0x00,0x00,0x3F,0x80,0x00,0x23,0xF0,0x00,0x00,0x78,0x00,0x00,0x70,0x00,0x23,0x80,0x00,0x3C,0x00,0x00,0x30,0x00,0x00,0x20,0x00},/*"v",86*/
+{0x00,0x20,0x00,0x00,0x3C,0x00,0x00,0x3F,0xE0,0x00,0x23,0xF8,0x00,0x00,0xE0,0x00,0x27,0x00,0x00,0x3E,0x00,0x00,0x3F,0xE0,0x00,0x21,0xF8,0x00,0x01,0xE0,0x00,0x3E,0x00,0x00,0x20,0x00},/*"w",87*/
+{0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x38,0x38,0x00,0x3E,0x68,0x00,0x27,0x80,0x00,0x03,0xC8,0x00,0x2C,0xF8,0x00,0x38,0x38,0x00,0x20,0x18,0x00,0x20,0x08,0x00,0x00,0x00},/*"x",88*/
+{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x30,0x03,0x00,0x3C,0x01,0x00,0x3F,0x83,0x00,0x23,0xEC,0x00,0x00,0x70,0x00,0x23,0x80,0x00,0x3C,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"y",89*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x08,0x00,0x20,0x38,0x00,0x20,0xF8,0x00,0x23,0xE8,0x00,0x2F,0x88,0x00,0x3E,0x08,0x00,0x38,0x08,0x00,0x20,0x18,0x00,0x00,0x70,0x00,0x00,0x00},/*"z",90*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x14,0x00,0x1F,0xF7,0xFC,0x30,0x00,0x06,0x20,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00},/*"{",91*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x02,0x30,0x00,0x06,0x1F,0xF7,0xFC,0x00,0x14,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
+{0x00,0x00,0x00,0x18,0x00,0x00,0x60,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x00,0x10,0x00,0x00,0x08,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x0C,0x00,0x00,0x10,0x00,0x00},/*"~",94*/
+};
+
+/* 32*32 ASCII×Ö·û¼¯µãÕó */
+const unsigned char asc2_3216[95][64]={
+{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,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,0x00,0x00,0x00,0x00},/*" ",0*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0xC0,0x07,0xFF,0xE1,0xE0,0x07,0xF0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x01,0xC0,0x00,0x00,0x07,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x1C,0x20,0x00,0x00,0x01,0xC0,0x00,0x00,0x07,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/
+{0x00,0x00,0x00,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0F,0xE0,0x00,0x1F,0xFC,0x00,0x03,0xF8,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0F,0xE0,0x00,0x1F,0xFC,0x00,0x03,0xF8,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x18,0x0C,0x00,0x00,0x00,0x00,0x00},/*"#",3*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x78,0x07,0xC0,0x00,0xFC,0x06,0x40,0x01,0x0E,0x00,0x20,0x03,0x07,0x00,0x20,0x02,0x03,0x80,0x20,0x0F,0xFF,0xFF,0xFC,0x02,0x01,0xC0,0x20,0x02,0x00,0xE0,0x60,0x01,0x30,0x70,0x40,0x01,0xF0,0x3F,0x80,0x00,0xF0,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"$",4*/
+{0x00,0xFE,0x00,0x00,0x01,0xFF,0x00,0x00,0x03,0x01,0x80,0x00,0x02,0x00,0x80,0x60,0x03,0x01,0x81,0xC0,0x01,0xFF,0x07,0x00,0x00,0xFE,0x18,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0xBF,0x00,0x00,0x0C,0xFF,0xC0,0x00,0x71,0x80,0x60,0x01,0xC1,0x00,0x20,0x03,0x01,0x80,0x60,0x00,0x00,0xFF,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00},/*"%",5*/
+{0x00,0x00,0x1F,0x00,0x00,0x00,0x7F,0xC0,0x00,0xFC,0xC0,0xC0,0x01,0xFF,0x80,0x60,0x03,0x03,0xE0,0x20,0x02,0x02,0x78,0x20,0x02,0x06,0x1E,0x20,0x03,0xFC,0x07,0x40,0x01,0xF0,0x03,0x80,0x00,0x01,0x03,0xC0,0x00,0x01,0x1C,0x60,0x00,0x01,0xE0,0x20,0x00,0x01,0x00,0x20,0x00,0x01,0x00,0x40,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00},/*"&",6*/
+{0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x1C,0x60,0x00,0x00,0x1C,0x40,0x00,0x00,0x1F,0x80,0x00,0x00,0x0F,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
+{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,0x07,0xF8,0x00,0x00,0x3F,0xFF,0x00,0x00,0x78,0x07,0xC0,0x01,0xC0,0x00,0xE0,0x03,0x00,0x00,0x30,0x04,0x00,0x00,0x08,0x08,0x00,0x00,0x04,0x10,0x00,0x00,0x02,0x00,0x00,0x00,0x00},/*"(",8*/
+{0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x02,0x08,0x00,0x00,0x04,0x04,0x00,0x00,0x08,0x03,0x00,0x00,0x30,0x01,0xC0,0x00,0xE0,0x00,0x78,0x07,0xC0,0x00,0x3F,0xFF,0x00,0x00,0x07,0xF8,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},/*")",9*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x18,0x00,0x00,0x0E,0x38,0x00,0x00,0x0E,0x38,0x00,0x00,0x06,0x30,0x00,0x00,0x03,0x60,0x00,0x00,0x61,0x43,0x80,0x00,0xFF,0xFF,0x80,0x00,0x61,0x43,0x00,0x00,0x03,0x60,0x00,0x00,0x06,0x30,0x00,0x00,0x0E,0x38,0x00,0x00,0x0E,0x38,0x00,0x00,0x0C,0x18,0x00,0x00,0x00,0x00,0x00},/*"*",10*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x7F,0xFF,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00},/*"+",11*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xE3,0x00,0x00,0x00,0xE2,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x78,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00},/*"-",13*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x01,0xE0,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0xC0,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x0E,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x0E,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x0E,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"/",15*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF8,0x00,0x00,0x7F,0xFF,0x00,0x00,0xF0,0x07,0x80,0x01,0x80,0x00,0xC0,0x03,0x00,0x00,0x60,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0x00,0x00,0x60,0x01,0x80,0x00,0xC0,0x00,0xE0,0x03,0x80,0x00,0x7F,0xFF,0x00,0x00,0x0F,0xF8,0x00,0x00,0x00,0x00,0x00},/*"0",16*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x20,0x00,0x80,0x00,0x20,0x00,0x80,0x00,0x20,0x00,0x80,0x00,0x60,0x01,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",17*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0xE0,0x00,0x98,0x01,0x60,0x01,0x00,0x02,0x60,0x02,0x00,0x04,0x60,0x02,0x00,0x08,0x60,0x02,0x00,0x10,0x60,0x02,0x00,0x20,0x60,0x02,0x00,0x40,0x60,0x03,0x00,0x80,0x60,0x01,0x83,0x00,0x60,0x01,0xFE,0x00,0xE0,0x00,0x7C,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"2",18*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x07,0x80,0x01,0xF0,0x07,0xC0,0x01,0x00,0x00,0x40,0x02,0x00,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x03,0x03,0x80,0x20,0x01,0x86,0x80,0x40,0x01,0xFC,0xC0,0xC0,0x00,0x78,0x7F,0x80,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"3",19*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x48,0x00,0x00,0x01,0x88,0x00,0x00,0x06,0x08,0x00,0x00,0x0C,0x08,0x10,0x00,0x30,0x08,0x10,0x00,0x40,0x08,0x10,0x01,0xFF,0xFF,0xF0,0x03,0xFF,0xFF,0xF0,0x03,0xFF,0xFF,0xF0,0x00,0x00,0x08,0x10,0x00,0x00,0x08,0x10,0x00,0x00,0x08,0x10,0x00,0x00,0x00,0x00},/*"4",20*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x1F,0x86,0x40,0x03,0xE1,0x00,0x20,0x03,0x02,0x00,0x20,0x03,0x04,0x00,0x20,0x03,0x04,0x00,0x20,0x03,0x04,0x00,0x20,0x03,0x04,0x00,0x20,0x03,0x06,0x00,0x40,0x03,0x03,0x01,0xC0,0x03,0x01,0xFF,0x80,0x03,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"5",21*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,0x00,0x00,0x3F,0xFF,0x00,0x00,0x70,0xC3,0x80,0x00,0x81,0x80,0xC0,0x01,0x01,0x00,0x60,0x03,0x02,0x00,0x20,0x02,0x02,0x00,0x20,0x02,0x02,0x00,0x20,0x02,0x02,0x00,0x20,0x02,0x03,0x00,0x40,0x01,0xC1,0x80,0xC0,0x00,0xC0,0xFF,0x80,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00},/*"6",22*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x07,0xE0,0x03,0x00,0x3F,0xE0,0x03,0x01,0xC0,0x00,0x03,0x06,0x00,0x00,0x03,0x18,0x00,0x00,0x03,0x60,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"7",23*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x78,0x3F,0x80,0x00,0xFC,0x60,0xC0,0x01,0x8E,0xC0,0x40,0x03,0x07,0x80,0x20,0x02,0x03,0x00,0x20,0x02,0x01,0x80,0x20,0x02,0x01,0x80,0x20,0x02,0x01,0xC0,0x20,0x03,0x01,0xE0,0x40,0x01,0x86,0x70,0xC0,0x00,0xFC,0x3F,0x80,0x00,0x78,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"8",24*/
+{0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0xFF,0x81,0xC0,0x01,0xC0,0xC1,0xC0,0x01,0x00,0x60,0x20,0x02,0x00,0x20,0x20,0x02,0x00,0x20,0x20,0x02,0x00,0x20,0x20,0x02,0x00,0x20,0x60,0x02,0x00,0x40,0xC0,0x01,0x00,0xC1,0x80,0x00,0xC1,0x8F,0x00,0x00,0x7F,0xFE,0x00,0x00,0x1F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"9",25*/
+{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,0x03,0x00,0xC0,0x00,0x07,0x81,0xE0,0x00,0x07,0x81,0xE0,0x00,0x03,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/
+{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,0x06,0x00,0x66,0x00,0x06,0x00,0x78,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,0x00,0x00},/*";",27*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x01,0xC0,0x00,0x00,0x03,0x60,0x00,0x00,0x06,0x30,0x00,0x00,0x0C,0x18,0x00,0x00,0x18,0x0C,0x00,0x00,0x30,0x06,0x00,0x00,0x60,0x03,0x00,0x00,0xC0,0x01,0x80,0x01,0x00,0x00,0x40,0x02,0x00,0x00,0x20,0x04,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"<",28*/
+{0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x00,0x00,0x00},/*"=",29*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x10,0x02,0x00,0x00,0x20,0x01,0x00,0x00,0x40,0x00,0xC0,0x01,0x80,0x00,0x60,0x03,0x00,0x00,0x30,0x06,0x00,0x00,0x18,0x0C,0x00,0x00,0x0C,0x18,0x00,0x00,0x06,0x30,0x00,0x00,0x03,0x60,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*">",30*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x01,0xF8,0x00,0x00,0x02,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0xC0,0x04,0x00,0x79,0xE0,0x04,0x00,0x81,0xE0,0x04,0x01,0x00,0xC0,0x04,0x03,0x00,0x00,0x02,0x02,0x00,0x00,0x03,0x06,0x00,0x00,0x01,0xFC,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00},/*"?",31*/
+{0x00,0x00,0x00,0x00,0x00,0x0F,0xF8,0x00,0x00,0x3F,0xFE,0x00,0x00,0x70,0x07,0x80,0x00,0xC0,0x00,0xC0,0x01,0x01,0xF8,0x40,0x03,0x07,0xFC,0x20,0x02,0x1E,0x04,0x20,0x02,0x30,0x08,0x20,0x02,0x20,0x30,0x20,0x02,0x3F,0xFC,0x20,0x01,0x3F,0x04,0x40,0x01,0x80,0x0C,0xC0,0x00,0xE0,0x31,0x80,0x00,0x1F,0xC2,0x00,0x00,0x00,0x00,0x00},/*"@",32*/
+{0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x60,0x00,0x00,0x03,0xE0,0x00,0x00,0x3E,0x20,0x00,0x03,0xE0,0x20,0x00,0x3E,0x20,0x00,0x03,0xE0,0x20,0x00,0x03,0x80,0x20,0x00,0x07,0xFC,0x20,0x00,0x00,0x3F,0xE0,0x00,0x00,0x03,0xFE,0x20,0x00,0x00,0x3F,0xE0,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"A",33*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x03,0x03,0x00,0x20,0x01,0x86,0x80,0x60,0x01,0xFC,0xC0,0xC0,0x00,0xF8,0x7F,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00},/*"B",34*/
+{0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,0x3F,0xFF,0x00,0x00,0x70,0x07,0x80,0x00,0xC0,0x00,0xC0,0x01,0x00,0x00,0x40,0x03,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x01,0x00,0x00,0x40,0x01,0x80,0x00,0xC0,0x03,0xC0,0x01,0x80,0x00,0x30,0x06,0x00,0x00,0x00,0x00,0x00},/*"C",35*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0x00,0x00,0x60,0x01,0x00,0x00,0x40,0x01,0x80,0x00,0xC0,0x00,0xF0,0x07,0x80,0x00,0x7F,0xFE,0x00,0x00,0x0F,0xF8,0x00,0x00,0x00,0x00,0x00},/*"D",36*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x03,0x80,0x20,0x02,0x0F,0xE0,0x20,0x03,0x00,0x00,0x60,0x03,0xC0,0x00,0xE0,0x00,0x60,0x03,0x00,0x00,0x00,0x00,0x00},/*"E",37*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x02,0x03,0x80,0x00,0x03,0x0F,0xE0,0x00,0x03,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x60,0x00,0x00},/*"F",38*/
+{0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,0x3F,0xFE,0x00,0x00,0x70,0x07,0x80,0x01,0xC0,0x01,0xC0,0x01,0x00,0x00,0x40,0x03,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x01,0x00,0x20,0x20,0x01,0x00,0x20,0x40,0x03,0xC0,0x3F,0x80,0x00,0x30,0x3F,0x80,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00},/*"G",39*/
+{0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x80,0x20,0x02,0x00,0x80,0x20,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x02,0x00,0x80,0x20,0x02,0x00,0x80,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"H",40*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"I",41*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x06,0x03,0xFF,0xFF,0xFC,0x03,0xFF,0xFF,0xF8,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"J",42*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0xC0,0x20,0x02,0x01,0x00,0x20,0x00,0x07,0x80,0x00,0x00,0x0F,0xE0,0x00,0x00,0x30,0xF8,0x00,0x02,0x60,0x3E,0x20,0x03,0x80,0x0F,0x20,0x03,0x00,0x03,0xE0,0x02,0x00,0x00,0xE0,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x20},/*"K",43*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00},/*"L",44*/
+{0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xE0,0x00,0x20,0x03,0xFF,0x00,0x20,0x00,0x1F,0xF0,0x00,0x00,0x01,0xFF,0x80,0x00,0x00,0x0F,0xE0,0x00,0x00,0x1E,0x00,0x00,0x03,0xE0,0x00,0x00,0x3E,0x00,0x20,0x03,0xE0,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20},/*"M",45*/
+{0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0x80,0x00,0x20,0x03,0xF0,0x00,0x20,0x00,0xFC,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0x7C,0x00,0x02,0x00,0x1F,0x80,0x02,0x00,0x07,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"N",46*/
+{0x00,0x00,0x00,0x00,0x00,0x0F,0xF8,0x00,0x00,0x3F,0xFE,0x00,0x00,0xF0,0x07,0x80,0x01,0x80,0x00,0xC0,0x01,0x00,0x00,0x40,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x01,0x00,0x00,0x40,0x01,0x80,0x00,0xC0,0x00,0xF0,0x03,0x80,0x00,0x3F,0xFE,0x00,0x00,0x0F,0xF8,0x00,0x00,0x00,0x00,0x00},/*"O",47*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x80,0x20,0x02,0x00,0x80,0x20,0x02,0x00,0x80,0x00,0x02,0x00,0x80,0x00,0x02,0x00,0x80,0x00,0x02,0x00,0x80,0x00,0x03,0x01,0x80,0x00,0x01,0x83,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00},/*"P",48*/
+{0x00,0x00,0x00,0x00,0x00,0x0F,0xF8,0x00,0x00,0x7F,0xFF,0x00,0x00,0xF0,0x03,0x80,0x01,0x80,0x01,0xC0,0x01,0x00,0x06,0x40,0x02,0x00,0x04,0x20,0x02,0x00,0x04,0x20,0x02,0x00,0x06,0x20,0x02,0x00,0x03,0xE0,0x01,0x00,0x00,0xF8,0x01,0x80,0x00,0x5C,0x00,0xE0,0x03,0x8C,0x00,0x3F,0xFF,0x0C,0x00,0x0F,0xFC,0x18,0x00,0x00,0x00,0x00},/*"Q",49*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x01,0x00,0x20,0x02,0x01,0x00,0x20,0x02,0x01,0x80,0x00,0x02,0x01,0xE0,0x00,0x02,0x01,0xFC,0x00,0x03,0x03,0x3F,0x80,0x01,0x86,0x07,0xE0,0x01,0xFC,0x00,0xE0,0x00,0xF8,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"R",50*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x06,0x00,0x00,0xFE,0x01,0xE0,0x01,0x86,0x00,0xC0,0x03,0x03,0x00,0x40,0x02,0x03,0x00,0x20,0x02,0x01,0x80,0x20,0x02,0x01,0x80,0x20,0x02,0x01,0xC0,0x20,0x02,0x00,0xC0,0x20,0x01,0x00,0xE0,0x60,0x01,0x80,0x70,0xC0,0x03,0xE0,0x3F,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00},/*"S",51*/
+{0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xE0,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*"T",52*/
+{0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0xC0,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x60,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x40,0x02,0x00,0x00,0x80,0x03,0xFF,0xFF,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"U",53*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xFC,0x00,0x00,0x02,0x3F,0xC0,0x00,0x00,0x03,0xF8,0x00,0x00,0x00,0x7F,0x80,0x00,0x00,0x07,0xE0,0x00,0x00,0x07,0x80,0x00,0x00,0x78,0x00,0x02,0x03,0xC0,0x00,0x02,0x3C,0x00,0x00,0x03,0xC0,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00},/*"V",54*/
+{0x02,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xFF,0x80,0x00,0x02,0x3F,0xFE,0x00,0x02,0x00,0x7F,0xE0,0x00,0x00,0x0F,0x00,0x02,0x00,0xF0,0x00,0x03,0xEF,0x00,0x00,0x03,0xFF,0x80,0x00,0x02,0x0F,0xFE,0x00,0x00,0x00,0x3F,0xE0,0x00,0x00,0x1F,0x00,0x02,0x07,0xE0,0x00,0x03,0xF8,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00},/*"W",55*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0x80,0x00,0xE0,0x03,0xF0,0x03,0x20,0x02,0xFC,0x0C,0x20,0x02,0x1F,0x30,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xF0,0x00,0x02,0x18,0x7C,0x00,0x02,0x60,0x1F,0x20,0x03,0x80,0x03,0xE0,0x02,0x00,0x00,0xE0,0x02,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"X",56*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xF8,0x00,0x00,0x02,0x3E,0x00,0x20,0x02,0x0F,0xC0,0x20,0x00,0x01,0xFF,0xE0,0x00,0x00,0x7F,0xE0,0x00,0x03,0x80,0x20,0x02,0x1C,0x00,0x20,0x02,0x70,0x00,0x00,0x03,0x80,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"Y",57*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x60,0x00,0xE0,0x03,0x80,0x03,0xE0,0x03,0x00,0x0F,0xA0,0x02,0x00,0x3E,0x20,0x02,0x00,0xF8,0x20,0x02,0x03,0xE0,0x20,0x02,0x0F,0x80,0x20,0x02,0x3E,0x00,0x20,0x02,0x78,0x00,0x20,0x03,0xE0,0x00,0x60,0x03,0x80,0x00,0xE0,0x02,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"Z",58*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFC,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"[",59*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"\",60*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x1F,0xFF,0xFF,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},/*"]",61*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
+{0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01},/*"_",63*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,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,0x00},/*"`",64*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x01,0x8F,0xC0,0x00,0x03,0x8C,0x60,0x00,0x06,0x18,0x20,0x00,0x04,0x10,0x20,0x00,0x04,0x10,0x20,0x00,0x04,0x20,0x20,0x00,0x04,0x20,0x40,0x00,0x06,0x20,0x40,0x00,0x03,0xFF,0xC0,0x00,0x01,0xFF,0xE0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00},/*"a",65*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xC0,0x00,0x01,0x80,0xC0,0x00,0x02,0x00,0x60,0x00,0x02,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x06,0x00,0x40,0x00,0x03,0x00,0xC0,0x00,0x01,0xFF,0x80,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00},/*"b",66*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x01,0xFF,0x80,0x00,0x03,0x81,0xC0,0x00,0x02,0x00,0x40,0x00,0x06,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x06,0x00,0x20,0x00,0x03,0xC0,0x40,0x00,0x01,0xC0,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"c",67*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x01,0xFF,0x80,0x00,0x03,0x80,0xC0,0x00,0x06,0x00,0x60,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x02,0x04,0x00,0x40,0x02,0x02,0x00,0x80,0x03,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00},/*"d",68*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x01,0xFF,0x80,0x00,0x03,0x11,0xC0,0x00,0x02,0x10,0x40,0x00,0x04,0x10,0x60,0x00,0x04,0x10,0x20,0x00,0x04,0x10,0x20,0x00,0x04,0x10,0x20,0x00,0x06,0x10,0x20,0x00,0x03,0x10,0x40,0x00,0x01,0xF0,0xC0,0x00,0x00,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"e",69*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x7F,0xFF,0xE0,0x01,0xFF,0xFF,0xE0,0x01,0x04,0x00,0x20,0x03,0x04,0x00,0x20,0x02,0x04,0x00,0x20,0x02,0x04,0x00,0x20,0x02,0x04,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x01,0xC0,0x00,0x00},/*"f",70*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0xE3,0x3E,0x00,0x03,0xFF,0xC2,0x00,0x02,0x0C,0xC3,0x00,0x04,0x04,0xC1,0x00,0x04,0x04,0xC1,0x00,0x04,0x04,0xC1,0x00,0x04,0x04,0xC1,0x00,0x06,0x0C,0xC1,0x00,0x03,0xF8,0xC3,0x00,0x05,0xF0,0x62,0x00,0x06,0x00,0x7E,0x00,0x06,0x00,0x3C,0x00,0x00,0x00,0x00},/*"g",71*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xE0,0x00,0x01,0x00,0x20,0x00,0x02,0x00,0x20,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x06,0x00,0x20,0x00,0x03,0xFF,0xE0,0x00,0x01,0xFF,0xE0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20},/*"h",72*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x03,0x87,0xFF,0xE0,0x03,0x8F,0xFF,0xE0,0x03,0x80,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"i",73*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x03,0x00,0x04,0x00,0x06,0x03,0x87,0xFF,0xFC,0x03,0x8F,0xFF,0xF8,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"j",74*/
+{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xE0,0x00,0x00,0x08,0x20,0x00,0x00,0x10,0x20,0x00,0x00,0x30,0x00,0x00,0x00,0xFC,0x00,0x00,0x05,0x8E,0x00,0x00,0x07,0x07,0xA0,0x00,0x06,0x01,0xE0,0x00,0x04,0x00,0xE0,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"k",75*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x02,0x00,0x00,0x20,0x03,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"l",76*/
+{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x07,0xFF,0xE0,0x00,0x0F,0xFF,0xE0,0x00,0x02,0x00,0x20,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x07,0xFF,0xE0,0x00,0x03,0xFF,0xE0,0x00,0x02,0x00,0x20,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x07,0xFF,0xE0,0x00,0x03,0xFF,0xE0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"m",77*/
+{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x07,0xFF,0xE0,0x00,0x0F,0xFF,0xE0,0x00,0x01,0x00,0x20,0x00,0x02,0x00,0x20,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x06,0x00,0x20,0x00,0x03,0xFF,0xE0,0x00,0x01,0xFF,0xE0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20},/*"n",78*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0xFF,0x80,0x00,0x03,0x81,0xC0,0x00,0x02,0x00,0x40,0x00,0x06,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x06,0x00,0x20,0x00,0x02,0x00,0x40,0x00,0x03,0x81,0xC0,0x00,0x01,0xFF,0x80,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00},/*"o",79*/
+{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x07,0xFF,0xFF,0x00,0x0F,0xFF,0xFF,0x00,0x01,0x00,0xC1,0x00,0x02,0x00,0x41,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x06,0x00,0x40,0x00,0x03,0x01,0xC0,0x00,0x01,0xFF,0x80,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00},/*"p",80*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x01,0xFF,0x80,0x00,0x03,0x80,0xC0,0x00,0x02,0x00,0x60,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x02,0x00,0x41,0x00,0x03,0x00,0xC1,0x00,0x03,0xFF,0xFF,0x00,0x07,0xFF,0xFF,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01},/*"q",81*/
+{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x0F,0xFF,0xE0,0x00,0x0F,0xFF,0xE0,0x00,0x00,0xC0,0x20,0x00,0x01,0x00,0x20,0x00,0x02,0x00,0x20,0x00,0x06,0x00,0x20,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00},/*"r",82*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xE0,0x00,0x01,0xC0,0xE0,0x00,0x03,0xE0,0x40,0x00,0x06,0x30,0x20,0x00,0x04,0x30,0x20,0x00,0x04,0x18,0x20,0x00,0x04,0x18,0x20,0x00,0x04,0x18,0x20,0x00,0x04,0x0C,0x20,0x00,0x02,0x0C,0x60,0x00,0x03,0x07,0xC0,0x00,0x07,0x83,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"s",83*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x1F,0xFF,0x80,0x00,0xFF,0xFF,0xC0,0x00,0x04,0x00,0x60,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x40,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"t",84*/
+{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0xFF,0x80,0x00,0x0F,0xFF,0xC0,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x40,0x00,0x04,0x00,0x80,0x00,0x07,0xFF,0xE0,0x00,0x0F,0xFF,0xC0,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40},/*"u",85*/
+{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x07,0xF0,0x00,0x00,0x04,0xFE,0x00,0x00,0x04,0x1F,0xC0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x1C,0x00,0x00,0x04,0x60,0x00,0x00,0x07,0x80,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"v",86*/
+{0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xFC,0x00,0x00,0x04,0x3F,0x80,0x00,0x00,0x03,0xE0,0x00,0x04,0x0F,0x80,0x00,0x06,0xF0,0x00,0x00,0x07,0xF0,0x00,0x00,0x07,0xFF,0x80,0x00,0x04,0x0F,0xE0,0x00,0x00,0x03,0x80,0x00,0x04,0x3C,0x00,0x00,0x07,0xC0,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00},/*"w",87*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x20,0x00,0x04,0x00,0x60,0x00,0x07,0x00,0xE0,0x00,0x07,0x83,0x20,0x00,0x07,0xE6,0x00,0x00,0x04,0xF8,0x00,0x00,0x00,0x3C,0x00,0x00,0x04,0x5E,0x20,0x00,0x05,0x87,0xA0,0x00,0x06,0x01,0xE0,0x00,0x04,0x00,0x60,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"x",88*/
+{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x03,0x00,0x07,0x00,0x03,0x00,0x07,0xE0,0x01,0x00,0x04,0xF8,0x01,0x00,0x04,0x1F,0x02,0x00,0x00,0x07,0xFC,0x00,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0x04,0x38,0x00,0x00,0x07,0xC0,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00},/*"y",89*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x60,0x00,0x06,0x00,0xE0,0x00,0x04,0x03,0xE0,0x00,0x04,0x07,0xA0,0x00,0x04,0x0E,0x20,0x00,0x04,0x3C,0x20,0x00,0x04,0x70,0x20,0x00,0x05,0xE0,0x20,0x00,0x07,0x80,0x20,0x00,0x07,0x00,0x60,0x00,0x04,0x00,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"z",90*/
+{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,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x01,0x40,0x00,0x07,0xFE,0x3F,0xF8,0x08,0x00,0x00,0x04,0x10,0x00,0x00,0x02,0x10,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"{",91*/
+{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,0x00,0x00,0xFF,0xFF,0xFF,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},/*"|",92*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x02,0x10,0x00,0x00,0x02,0x08,0x00,0x00,0x04,0x07,0xFE,0x3F,0xF8,0x00,0x01,0x40,0x00,0x00,0x00,0x80,0x00,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,0x00,0x00,0x00,0x00},/*"}",93*/
+{0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",94*/
+};
+
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Inc/gpio.h b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/gpio.h
similarity index 100%
rename from CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Inc/gpio.h
rename to CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/gpio.h
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/lcd.h b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/lcd.h
new file mode 100644
index 0000000..87b064d
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/lcd.h
@@ -0,0 +1,238 @@
+/**
+ ****************************************************************************************************
+ * @file lcd.h
+ * @author ����Ô���Ŷ�(ALIENTEK)
+ * @version V1.2
+ * @date 2023-05-31
+ * @brief 2.8��/3.5��/4.3��/7�� TFTLCD(MCU��) ��������
+ * ֧������IC�ͺŰ���:ILI9341/NT35310/NT35510/SSD1963/ST7789/ST7796/ILI9806 ��
+ *
+ * @license Copyright (c) 2020-2032, ������������ӿƼ����޹�˾
+ ****************************************************************************************************
+ * @attention
+ *
+ * ʵ��ƽ̨:����Ô�� STM32F103������
+ * ������Ƶ:www.yuanzige.com
+ * ������̳:www.openedv.com
+ * ��˾��ַ:www.alientek.com
+ * �����ַ:openedv.taobao.com
+ *
+ * �޸�˵��
+ * V1.0 20200530
+ * ��һ�η���
+ * V1.1 20200607
+ * ����lcd_wr_xdata����, ����lcd_ex.c, ��ʱ�任�ռ併��lcd�����Ĵ�����
+ * V1.2 20230531
+ * 1��������ST7796��ILI9806 IC֧��
+ *
+ ****************************************************************************************************
+ */
+
+#ifndef __LCD_H
+#define __LCD_H
+
+#include "stdlib.h"
+#include "main.h"
+//#include "./SYSTEM/sys/sys.h"
+
+
+/******************************************************************************************/
+/* LCD RST/WR/RD/BL/CS/RS ���� ����
+ * LCD_D0~D15,��������̫��,�Ͳ������ﶨ����,ֱ����lcd_init�����޸�.��������ֲ��ʱ��,���˸�
+ * ��6��IO��, ���ø�LCD_Init�����D0~D15���ڵ�IO��.
+ */
+
+/* RESET ��ϵͳ��λ�Ź��� �������ﲻ�ö��� RESET���� */
+//#define LCD_RST_GPIO_PORT GPIOx
+//#define LCD_RST_GPIO_PIN GPIO_PIN_x
+//#define LCD_RST_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOx_CLK_ENABLE(); }while(0) /* ����IO��ʱ��ʹ�� */
+
+#define LCD_BL_GPIO_PORT GPIOC
+#define LCD_BL_GPIO_PIN GPIO_PIN_10
+#define LCD_BL_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOC_CLK_ENABLE(); }while(0) /* ����IO��ʱ��ʹ�� */
+
+#define LCD_WR_GPIO_PORT GPIOC
+#define LCD_WR_GPIO_PIN GPIO_PIN_7
+#define LCD_WR_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOC_CLK_ENABLE(); }while(0) /* ����IO��ʱ��ʹ�� */
+
+#define LCD_RD_GPIO_PORT GPIOC
+#define LCD_RD_GPIO_PIN GPIO_PIN_6
+#define LCD_RD_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOC_CLK_ENABLE(); }while(0) /* ����IO��ʱ��ʹ�� */
+
+
+#define LCD_CS_GPIO_PORT GPIOC
+#define LCD_CS_GPIO_PIN GPIO_PIN_9
+#define LCD_CS_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOC_CLK_ENABLE(); }while(0) /* ����IO��ʱ��ʹ�� */
+
+#define LCD_RS_GPIO_PORT GPIOC
+#define LCD_RS_GPIO_PIN GPIO_PIN_8
+#define LCD_RS_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOC_CLK_ENABLE(); }while(0) /* ����IO��ʱ��ʹ�� */
+
+#define LCD_DATA_GPIO_PORT GPIOB
+#define LCD_DATA_GPIO_PIN GPIO_PIN_All /* 16��IO���õ� */
+#define LCD_DATA_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOB_CLK_ENABLE(); }while(0) /* ����IO��ʱ��ʹ�� */
+
+/* LCD �˿ڿ��ƺ������� */
+/* ���ò����Ĵ����ķ�ʽ����IO���������Ļ��ˢ���� */
+#define LCD_BL(x) LCD_BL_GPIO_PORT->BSRR = LCD_BL_GPIO_PIN << (16 * (!x)) /* ����BL���� */
+
+#define LCD_WR(x) LCD_WR_GPIO_PORT->BSRR = LCD_WR_GPIO_PIN << (16 * (!x)) /* ����WR���� */
+#define LCD_RD(x) LCD_RD_GPIO_PORT->BSRR = LCD_RD_GPIO_PIN << (16 * (!x)) /* ����RD���� */
+#define LCD_CS(x) LCD_CS_GPIO_PORT->BSRR = LCD_CS_GPIO_PIN << (16 * (!x)) /* ����CS���� */
+#define LCD_RS(x) LCD_RS_GPIO_PORT->BSRR = LCD_RS_GPIO_PIN << (16 * (!x)) /* ����RS���� */
+
+
+#define LCD_DATA_OUT(x) LCD_DATA_GPIO_PORT->ODR = x /* дB0~B15���� */
+#define LCD_DATA_IN LCD_DATA_GPIO_PORT->IDR /* ��B0~B15���� */
+
+/******************************************************************************************/
+
+/* LCD��Ҫ������ */
+typedef struct
+{
+ uint16_t width; /* LCD ��� */
+ uint16_t height; /* LCD �߶� */
+ uint16_t id; /* LCD ID */
+ uint8_t dir; /* ���������������ƣ�0��������1�������� */
+ uint16_t wramcmd; /* ��ʼдgramָ�� */
+ uint16_t setxcmd; /* ����x����ָ�� */
+ uint16_t setycmd; /* ����y����ָ�� */
+} _lcd_dev;
+
+/* LCD���� */
+extern _lcd_dev lcddev; /* ����LCD��Ҫ���� */
+
+/* LCD�Ļ�����ɫ�ͱ���ɫ */
+extern uint32_t g_point_color; /* Ĭ�Ϻ�ɫ */
+extern uint32_t g_back_color; /* ������ɫ.Ĭ��Ϊ��ɫ */
+
+/******************************************************************************************/
+/* LCDɨ�跽�����ɫ ���� */
+
+/* ɨ�跽���� */
+#define L2R_U2D 0 /* ������,���ϵ��� */
+#define L2R_D2U 1 /* ������,���µ��� */
+#define R2L_U2D 2 /* ���ҵ���,���ϵ��� */
+#define R2L_D2U 3 /* ���ҵ���,���µ��� */
+
+#define U2D_L2R 4 /* ���ϵ���,������ */
+#define U2D_R2L 5 /* ���ϵ���,���ҵ��� */
+#define D2U_L2R 6 /* ���µ���,������ */
+#define D2U_R2L 7 /* ���µ���,���ҵ��� */
+
+#define DFT_SCAN_DIR L2R_U2D /* Ĭ�ϵ�ɨ�跽�� */
+
+/* ���û�����ɫ */
+#define WHITE 0xFFFF /* ��ɫ */
+#define BLACK 0x0000 /* ��ɫ */
+#define RED 0xF800 /* ��ɫ */
+#define GREEN 0x07E0 /* ��ɫ */
+#define BLUE 0x001F /* ��ɫ */
+#define MAGENTA 0XF81F /* Ʒ��ɫ/�Ϻ�ɫ = BLUE + RED */
+#define YELLOW 0XFFE0 /* ��ɫ = GREEN + RED */
+#define CYAN 0X07FF /* ��ɫ = GREEN + BLUE */
+
+/* �dz�����ɫ */
+#define BROWN 0XBC40 /* ��ɫ */
+#define BRRED 0XFC07 /* �غ�ɫ */
+#define GRAY 0X8430 /* ��ɫ */
+#define DARKBLUE 0X01CF /* ����ɫ */
+#define LIGHTBLUE 0X7D7C /* dz��ɫ */
+#define GRAYBLUE 0X5458 /* ����ɫ */
+#define LIGHTGREEN 0X841F /* dz��ɫ */
+#define LGRAY 0XC618 /* dz��ɫ(PANNEL),���屳��ɫ */
+#define LGRAYBLUE 0XA651 /* dz����ɫ(�м����ɫ) */
+#define LBBLUE 0X2B12 /* dz����ɫ(ѡ����Ŀ�ķ�ɫ) */
+
+/******************************************************************************************/
+/* SSD1963������ò���(һ�㲻�ø�) */
+
+/* LCD�ֱ������� */
+#define SSD_HOR_RESOLUTION 800 /* LCDˮƽ�ֱ��� */
+#define SSD_VER_RESOLUTION 480 /* LCD��ֱ�ֱ��� */
+
+/* LCD������������ */
+#define SSD_HOR_PULSE_WIDTH 1 /* ˮƽ���� */
+#define SSD_HOR_BACK_PORCH 46 /* ˮƽǰ�� */
+#define SSD_HOR_FRONT_PORCH 210 /* ˮƽ���� */
+
+#define SSD_VER_PULSE_WIDTH 1 /* ��ֱ���� */
+#define SSD_VER_BACK_PORCH 23 /* ��ֱǰ�� */
+#define SSD_VER_FRONT_PORCH 22 /* ��ֱǰ�� */
+
+/* ���¼����������Զ����� */
+#define SSD_HT (SSD_HOR_RESOLUTION + SSD_HOR_BACK_PORCH + SSD_HOR_FRONT_PORCH)
+#define SSD_HPS (SSD_HOR_BACK_PORCH)
+#define SSD_VT (SSD_VER_RESOLUTION + SSD_VER_BACK_PORCH + SSD_VER_FRONT_PORCH)
+#define SSD_VPS (SSD_VER_BACK_PORCH)
+
+/******************************************************************************************/
+/* �������� */
+
+/* LCDд����, �������ijɺ궨�庯��, �Դﵽ����ٶ�
+ * -O2�Ż�ʱ, ���lcd_wr_dataʹ����ͨ��������, ֻ�ܵ�15֡ˢ��
+ * -O2�Ż�ʱ, ���lcd_wr_dataʹ��__forceinline��������, �ܵ�39֡ˢ��
+ * -O2�Ż�ʱ, ���lcd_wr_dataʹ�ú궨�庯��, �ܵ�51֡ˢ��
+ */
+#define lcd_wr_data(data)\
+ {\
+ LCD_RS(1);\
+ LCD_CS(0);\
+ LCD_DATA_OUT(data);\
+ LCD_WR(0);\
+ LCD_WR(1);\
+ LCD_CS(1);\
+ }
+
+void lcd_wr_xdata(uint16_t data); /* LCDд����, �ú���ͬ lcd_wr_data �����Ĺ���һģһ�� */
+void lcd_wr_regno(volatile uint16_t regno); /* LCDд�Ĵ������/��ַ */
+void lcd_write_reg(uint16_t regno, uint16_t data); /* LCDд�Ĵ�����ֵ */
+
+
+void lcd_init(void); /* ��ʼ��LCD */
+void lcd_display_on(void); /* ����ʾ */
+void lcd_display_off(void); /* ����ʾ */
+void lcd_scan_dir(uint8_t dir); /* ������ɨ�跽�� */
+void lcd_display_dir(uint8_t dir); /* ������Ļ��ʾ���� */
+void lcd_ssd_backlight_set(uint8_t pwm); /* SSD1963 ������� */
+
+void lcd_write_ram_prepare(void); /* ׼��ЩGRAM */
+void lcd_set_cursor(uint16_t x, uint16_t y); /* ���ù�� */
+uint32_t lcd_read_point(uint16_t x, uint16_t y); /* ����(32λ��ɫ,����LTDC) */
+void lcd_draw_point(uint16_t x, uint16_t y, uint32_t color);/* ����(32λ��ɫ,����LTDC) */
+
+void lcd_clear(uint16_t color); /* LCD���� */
+void lcd_fill_circle(uint16_t x, uint16_t y, uint16_t r, uint16_t color); /* ���ʵ��Բ */
+void lcd_draw_circle(uint16_t x0, uint16_t y0, uint8_t r, uint16_t color); /* ��Բ */
+void lcd_draw_hline(uint16_t x, uint16_t y, uint16_t len, uint16_t color); /* ��ˮƽ�� */
+void lcd_set_window(uint16_t sx, uint16_t sy, uint16_t width, uint16_t height); /* ���� */
+void lcd_fill(uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey, uint32_t color); /* ��ɫ������(32λ��ɫ,����LTDC) */
+void lcd_color_fill(uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey, uint16_t *color); /* ��ɫ������ */
+void lcd_draw_line(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color); /* ��ֱ�� */
+void lcd_draw_rectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color);/* ������ */
+
+
+void lcd_show_char(uint16_t x, uint16_t y, char chr, uint8_t size, uint8_t mode, uint16_t color); /* ��ʾһ���ַ� */
+void lcd_show_num(uint16_t x, uint16_t y, uint32_t num, uint8_t len, uint8_t size, uint16_t color); /* ��ʾ���� */
+void lcd_show_xnum(uint16_t x, uint16_t y, uint32_t num, uint8_t len, uint8_t size, uint8_t mode, uint16_t color); /* ��չ��ʾ���� */
+void lcd_show_string(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint8_t size, char *p, uint16_t color); /* ��ʾ�ַ��� */
+
+
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Inc/main.h b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/main.h
similarity index 100%
rename from CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Inc/main.h
rename to CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/main.h
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/stm32f1xx_hal_conf.h b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/stm32f1xx_hal_conf.h
new file mode 100644
index 0000000..77d5aa1
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/stm32f1xx_hal_conf.h
@@ -0,0 +1,391 @@
+/**
+ ******************************************************************************
+ * @file stm32f1xx_hal_conf.h
+ * @brief HAL configuration file.
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2017 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software component is licensed by ST under BSD 3-Clause license,
+ * the "License"; You may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ * opensource.org/licenses/BSD-3-Clause
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F1xx_HAL_CONF_H
+#define __STM32F1xx_HAL_CONF_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+
+/* ########################## Module Selection ############################## */
+/**
+ * @brief This is the list of modules to be used in the HAL driver
+ */
+
+#define HAL_MODULE_ENABLED
+ /*#define HAL_ADC_MODULE_ENABLED */
+/*#define HAL_CRYP_MODULE_ENABLED */
+/*#define HAL_CAN_MODULE_ENABLED */
+/*#define HAL_CAN_LEGACY_MODULE_ENABLED */
+/*#define HAL_CEC_MODULE_ENABLED */
+/*#define HAL_CORTEX_MODULE_ENABLED */
+/*#define HAL_CRC_MODULE_ENABLED */
+/*#define HAL_DAC_MODULE_ENABLED */
+/*#define HAL_DMA_MODULE_ENABLED */
+/*#define HAL_ETH_MODULE_ENABLED */
+/*#define HAL_FLASH_MODULE_ENABLED */
+#define HAL_GPIO_MODULE_ENABLED
+/*#define HAL_I2C_MODULE_ENABLED */
+/*#define HAL_I2S_MODULE_ENABLED */
+/*#define HAL_IRDA_MODULE_ENABLED */
+/*#define HAL_IWDG_MODULE_ENABLED */
+/*#define HAL_NOR_MODULE_ENABLED */
+/*#define HAL_NAND_MODULE_ENABLED */
+/*#define HAL_PCCARD_MODULE_ENABLED */
+/*#define HAL_PCD_MODULE_ENABLED */
+/*#define HAL_HCD_MODULE_ENABLED */
+/*#define HAL_PWR_MODULE_ENABLED */
+/*#define HAL_RCC_MODULE_ENABLED */
+/*#define HAL_RTC_MODULE_ENABLED */
+/*#define HAL_SD_MODULE_ENABLED */
+/*#define HAL_MMC_MODULE_ENABLED */
+/*#define HAL_SDRAM_MODULE_ENABLED */
+/*#define HAL_SMARTCARD_MODULE_ENABLED */
+/*#define HAL_SPI_MODULE_ENABLED */
+/*#define HAL_SRAM_MODULE_ENABLED */
+/*#define HAL_TIM_MODULE_ENABLED */
+/*#define HAL_UART_MODULE_ENABLED */
+/*#define HAL_USART_MODULE_ENABLED */
+/*#define HAL_WWDG_MODULE_ENABLED */
+
+#define HAL_CORTEX_MODULE_ENABLED
+#define HAL_DMA_MODULE_ENABLED
+#define HAL_FLASH_MODULE_ENABLED
+#define HAL_EXTI_MODULE_ENABLED
+#define HAL_GPIO_MODULE_ENABLED
+#define HAL_PWR_MODULE_ENABLED
+#define HAL_RCC_MODULE_ENABLED
+
+/* ########################## Oscillator Values adaptation ####################*/
+/**
+ * @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
+ * This value is used by the RCC HAL module to compute the system frequency
+ * (when HSE is used as system clock source, directly or through the PLL).
+ */
+#if !defined (HSE_VALUE)
+ #define HSE_VALUE 8000000U /*!< Value of the External oscillator in Hz */
+#endif /* HSE_VALUE */
+
+#if !defined (HSE_STARTUP_TIMEOUT)
+ #define HSE_STARTUP_TIMEOUT 100U /*!< Time out for HSE start up, in ms */
+#endif /* HSE_STARTUP_TIMEOUT */
+
+/**
+ * @brief Internal High Speed oscillator (HSI) value.
+ * This value is used by the RCC HAL module to compute the system frequency
+ * (when HSI is used as system clock source, directly or through the PLL).
+ */
+#if !defined (HSI_VALUE)
+ #define HSI_VALUE 8000000U /*!< Value of the Internal oscillator in Hz*/
+#endif /* HSI_VALUE */
+
+/**
+ * @brief Internal Low Speed oscillator (LSI) value.
+ */
+#if !defined (LSI_VALUE)
+ #define LSI_VALUE 40000U /*!< LSI Typical Value in Hz */
+#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz
+ The real value may vary depending on the variations
+ in voltage and temperature. */
+
+/**
+ * @brief External Low Speed oscillator (LSE) value.
+ * This value is used by the UART, RTC HAL module to compute the system frequency
+ */
+#if !defined (LSE_VALUE)
+ #define LSE_VALUE 32768U /*!< Value of the External oscillator in Hz*/
+#endif /* LSE_VALUE */
+
+#if !defined (LSE_STARTUP_TIMEOUT)
+ #define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */
+#endif /* LSE_STARTUP_TIMEOUT */
+
+/* Tip: To avoid modifying this file each time you need to use different HSE,
+ === you can define the HSE value in your toolchain compiler preprocessor. */
+
+/* ########################### System Configuration ######################### */
+/**
+ * @brief This is the HAL system configuration section
+ */
+#define VDD_VALUE 3300U /*!< Value of VDD in mv */
+#define TICK_INT_PRIORITY 15U /*!< tick interrupt priority (lowest by default) */
+#define USE_RTOS 0U
+#define PREFETCH_ENABLE 1U
+
+#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */
+#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */
+#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */
+#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */
+#define USE_HAL_ETH_REGISTER_CALLBACKS 0U /* ETH register callback disabled */
+#define USE_HAL_HCD_REGISTER_CALLBACKS 0U /* HCD register callback disabled */
+#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */
+#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */
+#define USE_HAL_MMC_REGISTER_CALLBACKS 0U /* MMC register callback disabled */
+#define USE_HAL_NAND_REGISTER_CALLBACKS 0U /* NAND register callback disabled */
+#define USE_HAL_NOR_REGISTER_CALLBACKS 0U /* NOR register callback disabled */
+#define USE_HAL_PCCARD_REGISTER_CALLBACKS 0U /* PCCARD register callback disabled */
+#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */
+#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */
+#define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */
+#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */
+#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */
+#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */
+#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */
+#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */
+#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */
+#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */
+#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */
+
+/* ########################## Assert Selection ############################## */
+/**
+ * @brief Uncomment the line below to expanse the "assert_param" macro in the
+ * HAL drivers code
+ */
+/* #define USE_FULL_ASSERT 1U */
+
+/* ################## Ethernet peripheral configuration ##################### */
+
+/* Section 1 : Ethernet peripheral configuration */
+
+/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */
+#define MAC_ADDR0 2U
+#define MAC_ADDR1 0U
+#define MAC_ADDR2 0U
+#define MAC_ADDR3 0U
+#define MAC_ADDR4 0U
+#define MAC_ADDR5 0U
+
+/* Definition of the Ethernet driver buffers size and count */
+#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */
+#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */
+#define ETH_RXBUFNB 8U /* 4 Rx buffers of size ETH_RX_BUF_SIZE */
+#define ETH_TXBUFNB 4U /* 4 Tx buffers of size ETH_TX_BUF_SIZE */
+
+/* Section 2: PHY configuration section */
+
+/* DP83848_PHY_ADDRESS Address*/
+#define DP83848_PHY_ADDRESS 0x01U
+/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/
+#define PHY_RESET_DELAY 0x000000FFU
+/* PHY Configuration delay */
+#define PHY_CONFIG_DELAY 0x00000FFFU
+
+#define PHY_READ_TO 0x0000FFFFU
+#define PHY_WRITE_TO 0x0000FFFFU
+
+/* Section 3: Common PHY Registers */
+
+#define PHY_BCR ((uint16_t)0x00) /*!< Transceiver Basic Control Register */
+#define PHY_BSR ((uint16_t)0x01) /*!< Transceiver Basic Status Register */
+
+#define PHY_RESET ((uint16_t)0x8000) /*!< PHY Reset */
+#define PHY_LOOPBACK ((uint16_t)0x4000) /*!< Select loop-back mode */
+#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100) /*!< Set the full-duplex mode at 100 Mb/s */
+#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000) /*!< Set the half-duplex mode at 100 Mb/s */
+#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100) /*!< Set the full-duplex mode at 10 Mb/s */
+#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000) /*!< Set the half-duplex mode at 10 Mb/s */
+#define PHY_AUTONEGOTIATION ((uint16_t)0x1000) /*!< Enable auto-negotiation function */
+#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200) /*!< Restart auto-negotiation function */
+#define PHY_POWERDOWN ((uint16_t)0x0800) /*!< Select the power down mode */
+#define PHY_ISOLATE ((uint16_t)0x0400) /*!< Isolate PHY from MII */
+
+#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020) /*!< Auto-Negotiation process completed */
+#define PHY_LINKED_STATUS ((uint16_t)0x0004) /*!< Valid link established */
+#define PHY_JABBER_DETECTION ((uint16_t)0x0002) /*!< Jabber condition detected */
+
+/* Section 4: Extended PHY Registers */
+#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */
+
+#define PHY_SPEED_STATUS ((uint16_t)0x0002U) /*!< PHY Speed mask */
+#define PHY_DUPLEX_STATUS ((uint16_t)0x0004U) /*!< PHY Duplex mask */
+
+/* ################## SPI peripheral configuration ########################## */
+
+/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
+* Activated: CRC code is present inside driver
+* Deactivated: CRC code cleaned from driver
+*/
+
+#define USE_SPI_CRC 0U
+
+/* Includes ------------------------------------------------------------------*/
+/**
+ * @brief Include module's header file
+ */
+
+#ifdef HAL_RCC_MODULE_ENABLED
+#include "stm32f1xx_hal_rcc.h"
+#endif /* HAL_RCC_MODULE_ENABLED */
+
+#ifdef HAL_GPIO_MODULE_ENABLED
+#include "stm32f1xx_hal_gpio.h"
+#endif /* HAL_GPIO_MODULE_ENABLED */
+
+#ifdef HAL_EXTI_MODULE_ENABLED
+#include "stm32f1xx_hal_exti.h"
+#endif /* HAL_EXTI_MODULE_ENABLED */
+
+#ifdef HAL_DMA_MODULE_ENABLED
+#include "stm32f1xx_hal_dma.h"
+#endif /* HAL_DMA_MODULE_ENABLED */
+
+#ifdef HAL_ETH_MODULE_ENABLED
+#include "stm32f1xx_hal_eth.h"
+#endif /* HAL_ETH_MODULE_ENABLED */
+
+#ifdef HAL_CAN_MODULE_ENABLED
+#include "stm32f1xx_hal_can.h"
+#endif /* HAL_CAN_MODULE_ENABLED */
+
+#ifdef HAL_CAN_LEGACY_MODULE_ENABLED
+ #include "Legacy/stm32f1xx_hal_can_legacy.h"
+#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */
+
+#ifdef HAL_CEC_MODULE_ENABLED
+#include "stm32f1xx_hal_cec.h"
+#endif /* HAL_CEC_MODULE_ENABLED */
+
+#ifdef HAL_CORTEX_MODULE_ENABLED
+#include "stm32f1xx_hal_cortex.h"
+#endif /* HAL_CORTEX_MODULE_ENABLED */
+
+#ifdef HAL_ADC_MODULE_ENABLED
+#include "stm32f1xx_hal_adc.h"
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+#ifdef HAL_CRC_MODULE_ENABLED
+#include "stm32f1xx_hal_crc.h"
+#endif /* HAL_CRC_MODULE_ENABLED */
+
+#ifdef HAL_DAC_MODULE_ENABLED
+#include "stm32f1xx_hal_dac.h"
+#endif /* HAL_DAC_MODULE_ENABLED */
+
+#ifdef HAL_FLASH_MODULE_ENABLED
+#include "stm32f1xx_hal_flash.h"
+#endif /* HAL_FLASH_MODULE_ENABLED */
+
+#ifdef HAL_SRAM_MODULE_ENABLED
+#include "stm32f1xx_hal_sram.h"
+#endif /* HAL_SRAM_MODULE_ENABLED */
+
+#ifdef HAL_NOR_MODULE_ENABLED
+#include "stm32f1xx_hal_nor.h"
+#endif /* HAL_NOR_MODULE_ENABLED */
+
+#ifdef HAL_I2C_MODULE_ENABLED
+#include "stm32f1xx_hal_i2c.h"
+#endif /* HAL_I2C_MODULE_ENABLED */
+
+#ifdef HAL_I2S_MODULE_ENABLED
+#include "stm32f1xx_hal_i2s.h"
+#endif /* HAL_I2S_MODULE_ENABLED */
+
+#ifdef HAL_IWDG_MODULE_ENABLED
+#include "stm32f1xx_hal_iwdg.h"
+#endif /* HAL_IWDG_MODULE_ENABLED */
+
+#ifdef HAL_PWR_MODULE_ENABLED
+#include "stm32f1xx_hal_pwr.h"
+#endif /* HAL_PWR_MODULE_ENABLED */
+
+#ifdef HAL_RTC_MODULE_ENABLED
+#include "stm32f1xx_hal_rtc.h"
+#endif /* HAL_RTC_MODULE_ENABLED */
+
+#ifdef HAL_PCCARD_MODULE_ENABLED
+#include "stm32f1xx_hal_pccard.h"
+#endif /* HAL_PCCARD_MODULE_ENABLED */
+
+#ifdef HAL_SD_MODULE_ENABLED
+#include "stm32f1xx_hal_sd.h"
+#endif /* HAL_SD_MODULE_ENABLED */
+
+#ifdef HAL_NAND_MODULE_ENABLED
+#include "stm32f1xx_hal_nand.h"
+#endif /* HAL_NAND_MODULE_ENABLED */
+
+#ifdef HAL_SPI_MODULE_ENABLED
+#include "stm32f1xx_hal_spi.h"
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+#ifdef HAL_TIM_MODULE_ENABLED
+#include "stm32f1xx_hal_tim.h"
+#endif /* HAL_TIM_MODULE_ENABLED */
+
+#ifdef HAL_UART_MODULE_ENABLED
+#include "stm32f1xx_hal_uart.h"
+#endif /* HAL_UART_MODULE_ENABLED */
+
+#ifdef HAL_USART_MODULE_ENABLED
+#include "stm32f1xx_hal_usart.h"
+#endif /* HAL_USART_MODULE_ENABLED */
+
+#ifdef HAL_IRDA_MODULE_ENABLED
+#include "stm32f1xx_hal_irda.h"
+#endif /* HAL_IRDA_MODULE_ENABLED */
+
+#ifdef HAL_SMARTCARD_MODULE_ENABLED
+#include "stm32f1xx_hal_smartcard.h"
+#endif /* HAL_SMARTCARD_MODULE_ENABLED */
+
+#ifdef HAL_WWDG_MODULE_ENABLED
+#include "stm32f1xx_hal_wwdg.h"
+#endif /* HAL_WWDG_MODULE_ENABLED */
+
+#ifdef HAL_PCD_MODULE_ENABLED
+#include "stm32f1xx_hal_pcd.h"
+#endif /* HAL_PCD_MODULE_ENABLED */
+
+#ifdef HAL_HCD_MODULE_ENABLED
+#include "stm32f1xx_hal_hcd.h"
+#endif /* HAL_HCD_MODULE_ENABLED */
+
+#ifdef HAL_MMC_MODULE_ENABLED
+#include "stm32f1xx_hal_mmc.h"
+#endif /* HAL_MMC_MODULE_ENABLED */
+
+/* Exported macro ------------------------------------------------------------*/
+#ifdef USE_FULL_ASSERT
+/**
+ * @brief The assert_param macro is used for function's parameters check.
+ * @param expr If expr is false, it calls assert_failed function
+ * which reports the name of the source file and the source
+ * line number of the call that failed.
+ * If expr is true, it returns no value.
+ * @retval None
+ */
+#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
+/* Exported functions ------------------------------------------------------- */
+void assert_failed(uint8_t* file, uint32_t line);
+#else
+#define assert_param(expr) ((void)0U)
+#endif /* USE_FULL_ASSERT */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32F1xx_HAL_CONF_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Inc/stm32f1xx_it.h b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/stm32f1xx_it.h
similarity index 100%
rename from CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Inc/stm32f1xx_it.h
rename to CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Inc/stm32f1xx_it.h
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Src/gpio.c b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/gpio.c
similarity index 100%
rename from CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Src/gpio.c
rename to CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/gpio.c
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/lcd.c b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/lcd.c
new file mode 100644
index 0000000..44d6c8b
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/lcd.c
@@ -0,0 +1,2841 @@
+/**
+ ****************************************************************************************************
+ * @file lcd.c
+ * @author ����Ô���Ŷ�(ALIENTEK)
+ * @version V1.2
+ * @date 2023-05-31
+ * @brief 2.8��/3.5��/4.3��/7�� TFTLCD(MCU��) ��������
+ * ֧������IC�ͺŰ���:ILI9341/NT35310/NT35510/SSD1963/ST7789/ST7796/ILI9806 ��
+ *
+ * @license Copyright (c) 2020-2032, ������������ӿƼ����޹�˾
+ ****************************************************************************************************
+ * @attention
+ *
+ * ʵ��ƽ̨:����Ô�� STM32F103������
+ * ������Ƶ:www.yuanzige.com
+ * ������̳:www.openedv.com
+ * ��˾��ַ:www.alientek.com
+ * �����ַ:openedv.taobao.com
+ *
+ * �޸�˵��
+ * V1.0 20200530
+ * ��һ�η���
+ * V1.1 20200607
+ * ����lcd_wr_xdata����, ����lcd_ex.c, ��ʱ�任�ռ併��lcd�����Ĵ�����
+ * V1.2 20230531
+ * 1��������ST7796��ILI9806 IC֧��
+ *
+ ****************************************************************************************************
+ */
+
+#include "stdlib.h"
+#include "lcd.h"
+#include "font.h"
+//#include "./SYSTEM/usart/usart.h"
+
+
+/* lcd_ex.c��Ÿ���LCD����IC�ļĴ�����ʼ�����ִ���,�Լ�lcd.c,��.c�ļ�
+ * ��ֱ�Ӽ��뵽��������,ֻ��lcd.c���õ�,����ͨ��include����ʽ���.(��Ҫ��
+ * �����ļ��ٰ�����.c�ļ�!!����ᱨ��!)
+ */
+//#include "lcd_ex.c"
+
+
+/* LCD�Ļ�����ɫ�ͱ���ɫ */
+uint32_t g_point_color = 0XF800; /* ������ɫ */
+uint32_t g_back_color = 0XFFFF; /* ����ɫ */
+
+/* ����LCD��Ҫ���� */
+_lcd_dev lcddev;
+
+
+/**
+ * @brief LCD���
+ * @note �ú����Ĺ��ܺ� lcd_wr_data ��ȫһģһ��
+ * lcd_wr_data ���ÿռ任ʱ��, �ú�������ʱ�任�ռ�
+ * �ú�������LCD��ʼ��, ���� lcd_ex.c �������, �Խ�
+ * ʡ����ռ�.
+ * @param data : Ҫд�������
+ * @retval ��
+ */
+void lcd_wr_xdata(uint16_t data)
+{
+ LCD_RS(1);
+ LCD_CS(0);
+ LCD_DATA_OUT(data);
+ LCD_WR(0);
+ LCD_WR(1);
+ LCD_CS(1);
+}
+
+/**
+ * @brief LCDд�Ĵ������/��ַ����
+ * @param regno: �Ĵ������/��ַ
+ * @retval ��
+ */
+__attribute__((always_inline)) void lcd_wr_regno(volatile uint16_t regno)
+{
+ LCD_RS(0); /* RS=0,��ʾд�Ĵ��� */
+ LCD_CS(0);
+ LCD_DATA_OUT(regno); /* д��Ҫд�ļĴ������ */
+ LCD_WR(0);
+ LCD_WR(1);
+ LCD_CS(1);
+}
+
+/**
+ * @brief LCDд�Ĵ���
+ * @param regno:�Ĵ������/��ַ
+ * @param data:Ҫд�������
+ * @retval ��
+ */
+void lcd_write_reg(uint16_t regno, uint16_t data)
+{
+ lcd_wr_regno(regno); /* д��Ҫд�ļĴ������ */
+ lcd_wr_data(data); /* ����� */
+}
+
+
+/**
+ * @brief LCD��ʱ����,�����ڲ�����mdk -O1ʱ���Ż�ʱ��Ҫ���õĵط�
+ * @param t:��ʱ����ֵ
+ * @retval ��
+ */
+static void lcd_opt_delay(uint32_t i)
+{
+ while (i--);
+}
+
+/**
+ * @brief LCD������
+ * @param ��
+ * @retval ��ȡ��������
+ */
+static uint16_t lcd_rd_data(void)
+{
+ volatile uint16_t ram; /* ��ֹ���Ż� */
+
+ GPIO_InitTypeDef gpio_init_struct;
+ /* LCD_DATA ����ģʽ����, ��������, ׼���������� */
+ gpio_init_struct.Pin = LCD_DATA_GPIO_PIN;
+ gpio_init_struct.Mode = GPIO_MODE_INPUT;
+ gpio_init_struct.Pull = GPIO_PULLUP;
+ gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;
+ HAL_GPIO_Init(LCD_DATA_GPIO_PORT, &gpio_init_struct);
+
+ LCD_RS(1); /* RS=1,��ʾ�������� */
+ LCD_CS(0);
+ LCD_RD(0);
+ lcd_opt_delay(2);
+ ram = LCD_DATA_IN; /* ��ȡ���� */
+ LCD_RD(1);
+ LCD_CS(1);
+
+ /* LCD_DATA ����ģʽ����, �������, �ָ����״̬ */
+ gpio_init_struct.Pin = LCD_DATA_GPIO_PIN;
+ gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;
+ gpio_init_struct.Pull = GPIO_PULLUP;
+ gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;
+ HAL_GPIO_Init(LCD_DATA_GPIO_PORT, &gpio_init_struct);
+
+ return ram;
+}
+
+/**
+ * @brief ׼��дGRAM
+ * @param ��
+ * @retval ��
+ */
+__attribute__((always_inline)) void lcd_write_ram_prepare(void)
+{
+ lcd_wr_regno(lcddev.wramcmd);
+}
+
+/**
+ * @brief ��ȡ��ij�����ɫֵ
+ * @param x,y:����
+ * @retval �˵����ɫ(32λ��ɫ,�������LTDC)
+ */
+uint32_t lcd_read_point(uint16_t x, uint16_t y)
+{
+ uint16_t r = 0, g = 0, b = 0;
+
+ if (x >= lcddev.width || y >= lcddev.height)return 0; /* �����˷�Χ,ֱ�ӷ��� */
+
+ lcd_set_cursor(x, y); /* �������� */
+
+ if (lcddev.id == 0X5510)
+ {
+ lcd_wr_regno(0X2E00); /* 5510 ���Ͷ�GRAMָ�� */
+ }
+ else
+ {
+ lcd_wr_regno(0X2E); /* 9341/5310/1963/7789/7796/9806 �ȷ��Ͷ�GRAMָ�� */
+ }
+
+ r = lcd_rd_data(); /* �ٶ�(dummy read) */
+
+ if (lcddev.id == 0x1963)
+ {
+ return r; /* 1963ֱ�Ӷ��Ϳ��� */
+ }
+
+ r = lcd_rd_data(); /* ʵ��������ɫ */
+
+ if (lcddev.id == 0x7796) /* 7796 һ�ζ�ȡһ������ֵ */
+ {
+ return r;
+ }
+
+ /* ILI9341/NT35310/NT35510/ST7789/ILI9806 Ҫ��2�ζ��� */
+ b = lcd_rd_data();
+ g = r & 0XFF; /* ���� 9341/5310/5510/7789/9806, ��һ�ζ�ȡ����RG��ֵ,R��ǰ,G�ں�,��ռ8λ */
+ g <<= 8;
+ return (((r >> 11) << 11) | ((g >> 10) << 5) | (b >> 11)); /* 9341/5310/5510/7789/9806 ��Ҫ��ʽת��һ�� */
+}
+
+/**
+ * @brief LCD������ʾ
+ * @param ��
+ * @retval ��
+ */
+void lcd_display_on(void)
+{
+ if (lcddev.id == 0X5510)
+ {
+ lcd_wr_regno(0X2900); /* ������ʾ */
+ }
+ else /* 9341/5310/1963/7789/7796/9806 �ȷ��Ϳ�����ʾָ�� */
+ {
+ lcd_wr_regno(0X29); /* ������ʾ */
+ }
+}
+
+/**
+ * @brief LCD�ر���ʾ
+ * @param ��
+ * @retval ��
+ */
+void lcd_display_off(void)
+{
+ if (lcddev.id == 0X5510)
+ {
+ lcd_wr_regno(0X2800); /* �ر���ʾ */
+ }
+ else /* 9341/5310/1963/7789/7796/9806 �ȷ��͹ر���ʾָ�� */
+ {
+ lcd_wr_regno(0X28); /* �ر���ʾ */
+ }
+}
+
+/**
+ * @brief ���ù��λ��(��RGB����Ч)
+ * @param x,y: ����
+ * @retval ��
+ */
+void lcd_set_cursor(uint16_t x, uint16_t y)
+{
+ if (lcddev.id == 0X1963)
+ {
+ if (lcddev.dir == 0) /* ����ģʽ, x������Ҫ�任 */
+ {
+ x = lcddev.width - 1 - x;
+ lcd_wr_regno(lcddev.setxcmd);
+ lcd_wr_data(0);
+ lcd_wr_data(0);
+ lcd_wr_data(x >> 8);
+ lcd_wr_data(x & 0XFF);
+ }
+ else /* ����ģʽ */
+ {
+ lcd_wr_regno(lcddev.setxcmd);
+ lcd_wr_data(x >> 8);
+ lcd_wr_data(x & 0XFF);
+ lcd_wr_data((lcddev.width - 1) >> 8);
+ lcd_wr_data((lcddev.width - 1) & 0XFF);
+ }
+
+ lcd_wr_regno(lcddev.setycmd);
+ lcd_wr_data(y >> 8);
+ lcd_wr_data(y & 0XFF);
+ lcd_wr_data((lcddev.height - 1) >> 8);
+ lcd_wr_data((lcddev.height - 1) & 0XFF);
+
+ }
+ else if (lcddev.id == 0X5510)
+ {
+ lcd_wr_regno(lcddev.setxcmd);
+ lcd_wr_data(x >> 8);
+ lcd_wr_regno(lcddev.setxcmd + 1);
+ lcd_wr_data(x & 0XFF);
+ lcd_wr_regno(lcddev.setycmd);
+ lcd_wr_data(y >> 8);
+ lcd_wr_regno(lcddev.setycmd + 1);
+ lcd_wr_data(y & 0XFF);
+ }
+ else /* 9341/5310/7789/7796/9806 �� �������� */
+ {
+ lcd_wr_regno(lcddev.setxcmd);
+ lcd_wr_data(x >> 8);
+ lcd_wr_data(x & 0XFF);
+ lcd_wr_regno(lcddev.setycmd);
+ lcd_wr_data(y >> 8);
+ lcd_wr_data(y & 0XFF);
+ }
+}
+
+/**
+ * @brief ����LCD���Զ�ɨ�跽��(��RGB����Ч)
+ * @note
+ * 9341/5310/5510/1963/7789/7796/9806��IC�Ѿ�ʵ�ʲ���
+ * ע��:�����������ܻ��ܵ��˺������õ�Ӱ��(������9341),
+ * ����,һ������ΪL2R_U2D����,�������Ϊ����ɨ�跽ʽ,���ܵ�����ʾ������.
+ *
+ * @param dir:0~7,����8������(���嶨���lcd.h)
+ * @retval ��
+ */
+void lcd_scan_dir(uint8_t dir)
+{
+ uint16_t regval = 0;
+ uint16_t dirreg = 0;
+ uint16_t temp;
+
+ /* ����ʱ����1963���ı�ɨ�跽��, ����IC�ı�ɨ�跽������ʱ1963�ı䷽��, ����IC���ı�ɨ�跽�� */
+ if ((lcddev.dir == 1 && lcddev.id != 0X1963) || (lcddev.dir == 0 && lcddev.id == 0X1963))
+ {
+ switch (dir) /* ����ת�� */
+ {
+ case 0:
+ dir = 6;
+ break;
+
+ case 1:
+ dir = 7;
+ break;
+
+ case 2:
+ dir = 4;
+ break;
+
+ case 3:
+ dir = 5;
+ break;
+
+ case 4:
+ dir = 1;
+ break;
+
+ case 5:
+ dir = 0;
+ break;
+
+ case 6:
+ dir = 3;
+ break;
+
+ case 7:
+ dir = 2;
+ break;
+ }
+ }
+
+ /* ����ɨ�跽ʽ ���� 0X36/0X3600 �Ĵ��� bit 5,6,7 λ��ֵ */
+ switch (dir)
+ {
+ case L2R_U2D:/* ������,���ϵ��� */
+ regval |= (0 << 7) | (0 << 6) | (0 << 5);
+ break;
+
+ case L2R_D2U:/* ������,���µ��� */
+ regval |= (1 << 7) | (0 << 6) | (0 << 5);
+ break;
+
+ case R2L_U2D:/* ���ҵ���,���ϵ��� */
+ regval |= (0 << 7) | (1 << 6) | (0 << 5);
+ break;
+
+ case R2L_D2U:/* ���ҵ���,���µ��� */
+ regval |= (1 << 7) | (1 << 6) | (0 << 5);
+ break;
+
+ case U2D_L2R:/* ���ϵ���,������ */
+ regval |= (0 << 7) | (0 << 6) | (1 << 5);
+ break;
+
+ case U2D_R2L:/* ���ϵ���,���ҵ��� */
+ regval |= (0 << 7) | (1 << 6) | (1 << 5);
+ break;
+
+ case D2U_L2R:/* ���µ���,������ */
+ regval |= (1 << 7) | (0 << 6) | (1 << 5);
+ break;
+
+ case D2U_R2L:/* ���µ���,���ҵ��� */
+ regval |= (1 << 7) | (1 << 6) | (1 << 5);
+ break;
+ }
+
+ dirreg = 0X36; /* �Ծ��󲿷�����IC, ��0X36�Ĵ������� */
+
+ if (lcddev.id == 0X5510)
+ {
+ dirreg = 0X3600; /* ����5510, ����������ic�ļĴ����в��� */
+ }
+
+ /* 9341 & 7789 & 7796 Ҫ����BGRλ */
+ if (lcddev.id == 0X9341 || lcddev.id == 0X7789 || lcddev.id == 0x7796)
+ {
+ regval |= 0X08;
+ }
+
+ lcd_write_reg(dirreg, regval);
+
+ if (lcddev.id != 0X1963) /* 1963�������괦�� */
+ {
+ if (regval & 0X20)
+ {
+ if (lcddev.width < lcddev.height) /* ����X,Y */
+ {
+ temp = lcddev.width;
+ lcddev.width = lcddev.height;
+ lcddev.height = temp;
+ }
+ }
+ else
+ {
+ if (lcddev.width > lcddev.height) /* ����X,Y */
+ {
+ temp = lcddev.width;
+ lcddev.width = lcddev.height;
+ lcddev.height = temp;
+ }
+ }
+ }
+
+ /* ������ʾ����(����)��С */
+ if (lcddev.id == 0X5510)
+ {
+ lcd_wr_regno(lcddev.setxcmd);
+ lcd_wr_data(0);
+ lcd_wr_regno(lcddev.setxcmd + 1);
+ lcd_wr_data(0);
+ lcd_wr_regno(lcddev.setxcmd + 2);
+ lcd_wr_data((lcddev.width - 1) >> 8);
+ lcd_wr_regno(lcddev.setxcmd + 3);
+ lcd_wr_data((lcddev.width - 1) & 0XFF);
+ lcd_wr_regno(lcddev.setycmd);
+ lcd_wr_data(0);
+ lcd_wr_regno(lcddev.setycmd + 1);
+ lcd_wr_data(0);
+ lcd_wr_regno(lcddev.setycmd + 2);
+ lcd_wr_data((lcddev.height - 1) >> 8);
+ lcd_wr_regno(lcddev.setycmd + 3);
+ lcd_wr_data((lcddev.height - 1) & 0XFF);
+ }
+ else
+ {
+ lcd_wr_regno(lcddev.setxcmd);
+ lcd_wr_data(0);
+ lcd_wr_data(0);
+ lcd_wr_data((lcddev.width - 1) >> 8);
+ lcd_wr_data((lcddev.width - 1) & 0XFF);
+ lcd_wr_regno(lcddev.setycmd);
+ lcd_wr_data(0);
+ lcd_wr_data(0);
+ lcd_wr_data((lcddev.height - 1) >> 8);
+ lcd_wr_data((lcddev.height - 1) & 0XFF);
+ }
+}
+
+/**
+ * @brief ����
+ * @param x,y: ����
+ * @param color: �����ɫ(32λ��ɫ,�������LTDC)
+ * @retval ��
+ */
+void lcd_draw_point(uint16_t x, uint16_t y, uint32_t color)
+{
+ lcd_set_cursor(x, y); /* ���ù��λ�� */
+ lcd_write_ram_prepare(); /* ��ʼд��GRAM */
+ lcd_wr_data(color);
+}
+
+/**
+ * @brief SSD1963�����������ú���
+ * @param pwm: ����ȼ�,0~100.Խ��Խ��.
+ * @retval ��
+ */
+void lcd_ssd_backlight_set(uint8_t pwm)
+{
+ lcd_wr_regno(0xBE); /* ����PWM��� */
+ lcd_wr_data(0x05); /* 1����PWMƵ�� */
+ lcd_wr_data(pwm * 2.55); /* 2����PWMռ�ձ� */
+ lcd_wr_data(0x01); /* 3����C */
+ lcd_wr_data(0xFF); /* 4����D */
+ lcd_wr_data(0x00); /* 5����E */
+ lcd_wr_data(0x00); /* 6����F */
+}
+
+/**
+ * @brief ����LCD��ʾ����
+ * @param dir:0,����; 1,����
+ * @retval ��
+ */
+void lcd_display_dir(uint8_t dir)
+{
+ lcddev.dir = dir; /* ����/���� */
+
+ if (dir == 0) /* ���� */
+ {
+ lcddev.width = 240;
+ lcddev.height = 320;
+
+ if (lcddev.id == 0x5510)
+ {
+ lcddev.wramcmd = 0X2C00;
+ lcddev.setxcmd = 0X2A00;
+ lcddev.setycmd = 0X2B00;
+ lcddev.width = 480;
+ lcddev.height = 800;
+ }
+ else if (lcddev.id == 0X1963)
+ {
+ lcddev.wramcmd = 0X2C; /* ����д��GRAM��ָ�� */
+ lcddev.setxcmd = 0X2B; /* ����дX����ָ�� */
+ lcddev.setycmd = 0X2A; /* ����дY����ָ�� */
+ lcddev.width = 480; /* ���ÿ��480 */
+ lcddev.height = 800; /* ���ø߶�800 */
+ }
+ else /* ����IC, ����: 9341 / 5310 / 7789 / 7796 / 9806 ��IC */
+ {
+ lcddev.wramcmd = 0X2C;
+ lcddev.setxcmd = 0X2A;
+ lcddev.setycmd = 0X2B;
+ }
+
+ if (lcddev.id == 0X5310 || lcddev.id == 0x7796) /* �����5310/7796 ���ʾ�� 320*480�ֱ��� */
+ {
+ lcddev.width = 320;
+ lcddev.height = 480;
+ }
+
+ if (lcddev.id == 0X9806) /* �����9806 ���ʾ�� 480*800 �ֱ��� */
+ {
+ lcddev.width = 480;
+ lcddev.height = 800;
+ }
+ }
+ else /* ���� */
+ {
+ lcddev.width = 320; /* Ĭ�Ͽ�� */
+ lcddev.height = 240; /* Ĭ�ϸ߶� */
+
+ if (lcddev.id == 0x5510)
+ {
+ lcddev.wramcmd = 0X2C00;
+ lcddev.setxcmd = 0X2A00;
+ lcddev.setycmd = 0X2B00;
+ lcddev.width = 800;
+ lcddev.height = 480;
+ }
+ else if (lcddev.id == 0X1963 || lcddev.id == 0x9806)
+ {
+ lcddev.wramcmd = 0X2C; /* ����д��GRAM��ָ�� */
+ lcddev.setxcmd = 0X2A; /* ����дX����ָ�� */
+ lcddev.setycmd = 0X2B; /* ����дY����ָ�� */
+ lcddev.width = 800; /* ���ÿ��800 */
+ lcddev.height = 480; /* ���ø߶�480 */
+ }
+ else /* ����IC, ����: 9341 / 5310 / 7789 / 7796 ��IC */
+ {
+ lcddev.wramcmd = 0X2C;
+ lcddev.setxcmd = 0X2A;
+ lcddev.setycmd = 0X2B;
+ }
+
+ if (lcddev.id == 0X5310 || lcddev.id == 0x7796) /* �����5310/7796 ���ʾ�� 320*480�ֱ��� */
+ {
+ lcddev.width = 480;
+ lcddev.height = 320;
+ }
+ }
+
+ lcd_scan_dir(DFT_SCAN_DIR); /* Ĭ��ɨ�跽�� */
+}
+
+/**
+ * @brief ���ô���(��RGB����Ч),���Զ����û������굽�������Ͻ�(sx,sy).
+ * @param sx,sy:������ʼ����(���Ͻ�)
+ * @param width,height:���ڿ�Ⱥ͸߶�,�������0!!
+ * @note �����С:width*height.
+ *
+ * @retval ��
+ */
+void lcd_set_window(uint16_t sx, uint16_t sy, uint16_t width, uint16_t height)
+{
+ uint16_t twidth, theight;
+ twidth = sx + width - 1;
+ theight = sy + height - 1;
+
+ if (lcddev.id == 0X1963 && lcddev.dir != 1) /* 1963�������⴦�� */
+ {
+ sx = lcddev.width - width - sx;
+ height = sy + height - 1;
+ lcd_wr_regno(lcddev.setxcmd);
+ lcd_wr_data(sx >> 8);
+ lcd_wr_data(sx & 0XFF);
+ lcd_wr_data((sx + width - 1) >> 8);
+ lcd_wr_data((sx + width - 1) & 0XFF);
+ lcd_wr_regno(lcddev.setycmd);
+ lcd_wr_data(sy >> 8);
+ lcd_wr_data(sy & 0XFF);
+ lcd_wr_data(height >> 8);
+ lcd_wr_data(height & 0XFF);
+ }
+ else if (lcddev.id == 0X5510)
+ {
+ lcd_wr_regno(lcddev.setxcmd);
+ lcd_wr_data(sx >> 8);
+ lcd_wr_regno(lcddev.setxcmd + 1);
+ lcd_wr_data(sx & 0XFF);
+ lcd_wr_regno(lcddev.setxcmd + 2);
+ lcd_wr_data(twidth >> 8);
+ lcd_wr_regno(lcddev.setxcmd + 3);
+ lcd_wr_data(twidth & 0XFF);
+ lcd_wr_regno(lcddev.setycmd);
+ lcd_wr_data(sy >> 8);
+ lcd_wr_regno(lcddev.setycmd + 1);
+ lcd_wr_data(sy & 0XFF);
+ lcd_wr_regno(lcddev.setycmd + 2);
+ lcd_wr_data(theight >> 8);
+ lcd_wr_regno(lcddev.setycmd + 3);
+ lcd_wr_data(theight & 0XFF);
+ }
+ else /* 9341/5310/7789/1963/7796/9806���� �� ���� */
+ {
+ lcd_wr_regno(lcddev.setxcmd);
+ lcd_wr_data(sx >> 8);
+ lcd_wr_data(sx & 0XFF);
+ lcd_wr_data(twidth >> 8);
+ lcd_wr_data(twidth & 0XFF);
+ lcd_wr_regno(lcddev.setycmd);
+ lcd_wr_data(sy >> 8);
+ lcd_wr_data(sy & 0XFF);
+ lcd_wr_data(theight >> 8);
+ lcd_wr_data(theight & 0XFF);
+ }
+}
+
+/**
+ * @brief ��ʼ��LCD
+ * @note �ó�ʼ���������Գ�ʼ�������ͺŵ�LCD(�����.c�ļ���ǰ�������)
+ *
+ * @param ��
+ * @retval ��
+ */
+void lcd_init(void)
+{
+ GPIO_InitTypeDef gpio_init_struct;
+
+ LCD_BL_GPIO_CLK_ENABLE(); /* LCD_BL��ʱ��ʹ�� */
+ LCD_CS_GPIO_CLK_ENABLE(); /* LCD_CS��ʱ��ʹ�� */
+ LCD_WR_GPIO_CLK_ENABLE(); /* LCD_WR��ʱ��ʹ�� */
+ LCD_RD_GPIO_CLK_ENABLE(); /* LCD_RD��ʱ��ʹ�� */
+ LCD_RS_GPIO_CLK_ENABLE(); /* LCD_RS��ʱ��ʹ�� */
+ LCD_DATA_GPIO_CLK_ENABLE(); /* LCD_DATA��ʱ��ʹ�� */
+ __HAL_RCC_AFIO_CLK_ENABLE();
+ __HAL_AFIO_REMAP_SWJ_NOJTAG(); /* ��ֹJTAG, ʹ��SWD, �ͷ�PB3,PB4������������ͨIO�� */
+
+ gpio_init_struct.Pin = LCD_BL_GPIO_PIN;
+ gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;
+ gpio_init_struct.Pull = GPIO_PULLUP;
+ gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;
+ HAL_GPIO_Init(LCD_BL_GPIO_PORT, &gpio_init_struct); /* LCD_BL����ģʽ����(�������) */
+
+ gpio_init_struct.Pin = LCD_CS_GPIO_PIN;
+ gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP; /* ���츴�� */
+ gpio_init_struct.Pull = GPIO_PULLUP; /* ���� */
+ gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH; /* ���� */
+ HAL_GPIO_Init(LCD_CS_GPIO_PORT, &gpio_init_struct); /* ��ʼ��LCD_CS���� */
+
+ gpio_init_struct.Pin = LCD_WR_GPIO_PIN;
+ HAL_GPIO_Init(LCD_WR_GPIO_PORT, &gpio_init_struct); /* ��ʼ��LCD_WR���� */
+
+ gpio_init_struct.Pin = LCD_RD_GPIO_PIN;
+ HAL_GPIO_Init(LCD_RD_GPIO_PORT, &gpio_init_struct); /* ��ʼ��LCD_RD���� */
+
+ gpio_init_struct.Pin = LCD_RS_GPIO_PIN;
+ HAL_GPIO_Init(LCD_RS_GPIO_PORT, &gpio_init_struct); /* ��ʼ��LCD_RS���� */
+
+ gpio_init_struct.Pin = LCD_DATA_GPIO_PIN;
+ gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP; /* ������� */
+ HAL_GPIO_Init(LCD_DATA_GPIO_PORT, &gpio_init_struct); /* LCD_DATA����ģʽ���� */
+ LCD_WR(1); /* WR Ĭ�ϸߵ�ƽ */
+ LCD_RD(1); /* RD Ĭ�ϸߵ�ƽ */
+ LCD_CS(1); /* CS Ĭ�ϸߵ�ƽ */
+ LCD_RS(1); /* RS Ĭ�ϸߵ�ƽ */
+ LCD_DATA_OUT(0XFFFF); /* DATA Ĭ�ϸߵ�ƽ */
+
+ lcd_opt_delay(0X1FFFF);
+
+ /* ����9341 ID�Ķ�ȡ */
+ lcd_wr_regno(0XD3);
+ lcddev.id = lcd_rd_data(); /* dummy read */
+ lcddev.id = lcd_rd_data(); /* ����0X00 */
+ lcddev.id = lcd_rd_data(); /* ��ȡ0X93 */
+ lcddev.id <<= 8;
+ lcddev.id |= lcd_rd_data(); /* ��ȡ0X41 */
+
+ if (lcddev.id != 0X9341) /* ���� 9341 , ���Կ����Dz��� ST7789 */
+ {
+ lcd_wr_regno(0X04);
+ lcddev.id = lcd_rd_data(); /* dummy read */
+ lcddev.id = lcd_rd_data(); /* ����0X85 */
+ lcddev.id = lcd_rd_data(); /* ��ȡ0X85 */
+ lcddev.id <<= 8;
+ lcddev.id |= lcd_rd_data(); /* ��ȡ0X52 */
+
+ if (lcddev.id == 0X8552) /* ��8552��IDת����7789 */
+ {
+ lcddev.id = 0x7789;
+ }
+
+ if (lcddev.id != 0x7789) /* Ҳ����ST7789, �����Dz��� NT35310 */
+ {
+ lcd_wr_regno(0xD4);
+ lcddev.id = lcd_rd_data(); /* dummy read */
+ lcddev.id = lcd_rd_data(); /* ����0x01 */
+ lcddev.id = lcd_rd_data(); /* ����0x53 */
+ lcddev.id <<= 8;
+ lcddev.id |= lcd_rd_data(); /* �������0x10 */
+
+ if (lcddev.id != 0x5310) /* Ҳ����NT35310,���Կ����Dz���ST7796 */
+ {
+ lcd_wr_regno(0XD3);
+ lcddev.id = lcd_rd_data(); /* dummy read */
+ lcddev.id = lcd_rd_data(); /* ����0X00 */
+ lcddev.id = lcd_rd_data(); /* ��ȡ0X77 */
+ lcddev.id <<= 8;
+ lcddev.id |= lcd_rd_data(); /* ��ȡ0X96 */
+
+ if (lcddev.id != 0x7796) /* Ҳ����ST7796,���Կ����Dz���NT35510 */
+ {
+ /* ������Կ�������ṩ�� */
+ lcd_write_reg(0xF000, 0x0055);
+ lcd_write_reg(0xF001, 0x00AA);
+ lcd_write_reg(0xF002, 0x0052);
+ lcd_write_reg(0xF003, 0x0008);
+ lcd_write_reg(0xF004, 0x0001);
+
+ lcd_wr_regno(0xC500); /* ��ȡID�Ͱ�λ */
+ lcddev.id = lcd_rd_data(); /* ����0x55 */
+ lcddev.id <<= 8;
+
+ lcd_wr_regno(0xC501); /* ��ȡID�߰�λ */
+ lcddev.id |= lcd_rd_data(); /* ����0x10 */
+
+ //delay_ms(5); /* �ȴ�5ms, ��Ϊ0XC501ָ���1963��˵���������λָ��, �ȴ�5ms��1963��λ����ٲ��� */
+
+ if (lcddev.id != 0x5510) /* Ҳ����NT5510,���Կ����Dz���ILI9806 */
+ {
+ lcd_wr_regno(0XD3);
+ lcddev.id = lcd_rd_data(); /* dummy read */
+ lcddev.id = lcd_rd_data(); /* ����0X00 */
+ lcddev.id = lcd_rd_data(); /* ����0X98 */
+ lcddev.id <<= 8;
+ lcddev.id |= lcd_rd_data(); /* ����0X06 */
+
+ if (lcddev.id != 0x9806) /* Ҳ����ILI9806,���Կ����Dz���SSD1963 */
+ {
+ lcd_wr_regno(0xA1);
+ lcddev.id = lcd_rd_data();
+ lcddev.id = lcd_rd_data(); /* ����0x57 */
+ lcddev.id <<= 8;
+ lcddev.id |= lcd_rd_data(); /* ����0x61 */
+
+ if (lcddev.id == 0x5761) lcddev.id = 0x1963; /* SSD1963���ص�ID��5761H,Ϊ��������,����ǿ������Ϊ1963 */
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /* �ر�ע��, �����main�����������δ���1��ʼ��, ��Ῠ����printf
+ * ����(������f_putc����), ����, �����ʼ������1, �������ε�����
+ * ���� printf ��� !!!!!!!
+ */
+ //printf("LCD ID:%x\r\n", lcddev.id); /* ��ӡLCD ID */
+
+ if (lcddev.id == 0X7789)
+ {
+ //lcd_ex_st7789_reginit(); /* ִ��ST7789��ʼ�� */
+ lcd_wr_regno(0x11);
+
+ HAL_Delay(120);
+
+ lcd_wr_regno(0x36);
+ lcd_wr_xdata(0x00);
+
+
+ lcd_wr_regno(0x3A);
+ lcd_wr_xdata(0X05);
+
+ lcd_wr_regno(0xB2);
+ lcd_wr_xdata(0x0C);
+ lcd_wr_xdata(0x0C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x33);
+ lcd_wr_xdata(0x33);
+
+ lcd_wr_regno(0xB7);
+ lcd_wr_xdata(0x35);
+
+ lcd_wr_regno(0xBB); /* vcom */
+ lcd_wr_xdata(0x32); /* 30 */
+
+ lcd_wr_regno(0xC0);
+ lcd_wr_xdata(0x0C);
+
+ lcd_wr_regno(0xC2);
+ lcd_wr_xdata(0x01);
+
+ lcd_wr_regno(0xC3); /* vrh */
+ lcd_wr_xdata(0x10); /* 17 0D */
+
+ lcd_wr_regno(0xC4); /* vdv */
+ lcd_wr_xdata(0x20); /* 20 */
+
+ lcd_wr_regno(0xC6);
+ lcd_wr_xdata(0x0f);
+
+ lcd_wr_regno(0xD0);
+ lcd_wr_xdata(0xA4);
+ lcd_wr_xdata(0xA1);
+
+ lcd_wr_regno(0xE0); /* Set Gamma */
+ lcd_wr_xdata(0xd0);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x02);
+ lcd_wr_xdata(0x07);
+ lcd_wr_xdata(0x0a);
+ lcd_wr_xdata(0x28);
+ lcd_wr_xdata(0x32);
+ lcd_wr_xdata(0X44);
+ lcd_wr_xdata(0x42);
+ lcd_wr_xdata(0x06);
+ lcd_wr_xdata(0x0e);
+ lcd_wr_xdata(0x12);
+ lcd_wr_xdata(0x14);
+ lcd_wr_xdata(0x17);
+
+
+ lcd_wr_regno(0XE1); /* Set Gamma */
+ lcd_wr_xdata(0xd0);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x02);
+ lcd_wr_xdata(0x07);
+ lcd_wr_xdata(0x0a);
+ lcd_wr_xdata(0x28);
+ lcd_wr_xdata(0x31);
+ lcd_wr_xdata(0x54);
+ lcd_wr_xdata(0x47);
+ lcd_wr_xdata(0x0e);
+ lcd_wr_xdata(0x1c);
+ lcd_wr_xdata(0x17);
+ lcd_wr_xdata(0x1b);
+ lcd_wr_xdata(0x1e);
+
+
+ lcd_wr_regno(0x2A);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xef);
+
+ lcd_wr_regno(0x2B);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x3f);
+
+ lcd_wr_regno(0x29); /* display on */
+ }
+ else if (lcddev.id == 0X9341)
+ {
+ //lcd_ex_ili9341_reginit(); /* ִ��ILI9341��ʼ�� */
+ lcd_wr_regno(0xCF);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xC1);
+ lcd_wr_xdata(0X30);
+ lcd_wr_regno(0xED);
+ lcd_wr_xdata(0x64);
+ lcd_wr_xdata(0x03);
+ lcd_wr_xdata(0X12);
+ lcd_wr_xdata(0X81);
+ lcd_wr_regno(0xE8);
+ lcd_wr_xdata(0x85);
+ lcd_wr_xdata(0x10);
+ lcd_wr_xdata(0x7A);
+ lcd_wr_regno(0xCB);
+ lcd_wr_xdata(0x39);
+ lcd_wr_xdata(0x2C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x34);
+ lcd_wr_xdata(0x02);
+ lcd_wr_regno(0xF7);
+ lcd_wr_xdata(0x20);
+ lcd_wr_regno(0xEA);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_regno(0xC0); /* Power control */
+ lcd_wr_xdata(0x1B); /* VRH[5:0] */
+ lcd_wr_regno(0xC1); /* Power control */
+ lcd_wr_xdata(0x01); /* SAP[2:0];BT[3:0] */
+ lcd_wr_regno(0xC5); /* VCM control */
+ lcd_wr_xdata(0x30); /* 3F */
+ lcd_wr_xdata(0x30); /* 3C */
+ lcd_wr_regno(0xC7); /* VCM control2 */
+ lcd_wr_xdata(0XB7);
+ lcd_wr_regno(0x36); /* Memory Access Control */
+ lcd_wr_xdata(0x48);
+ lcd_wr_regno(0x3A);
+ lcd_wr_xdata(0x55);
+ lcd_wr_regno(0xB1);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x1A);
+ lcd_wr_regno(0xB6); /* Display Function Control */
+ lcd_wr_xdata(0x0A);
+ lcd_wr_xdata(0xA2);
+ lcd_wr_regno(0xF2); /* 3Gamma Function Disable */
+ lcd_wr_xdata(0x00);
+ lcd_wr_regno(0x26); /* Gamma curve selected */
+ lcd_wr_xdata(0x01);
+ lcd_wr_regno(0xE0); /* Set Gamma */
+ lcd_wr_xdata(0x0F);
+ lcd_wr_xdata(0x2A);
+ lcd_wr_xdata(0x28);
+ lcd_wr_xdata(0x08);
+ lcd_wr_xdata(0x0E);
+ lcd_wr_xdata(0x08);
+ lcd_wr_xdata(0x54);
+ lcd_wr_xdata(0XA9);
+ lcd_wr_xdata(0x43);
+ lcd_wr_xdata(0x0A);
+ lcd_wr_xdata(0x0F);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_regno(0XE1); /* Set Gamma */
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x15);
+ lcd_wr_xdata(0x17);
+ lcd_wr_xdata(0x07);
+ lcd_wr_xdata(0x11);
+ lcd_wr_xdata(0x06);
+ lcd_wr_xdata(0x2B);
+ lcd_wr_xdata(0x56);
+ lcd_wr_xdata(0x3C);
+ lcd_wr_xdata(0x05);
+ lcd_wr_xdata(0x10);
+ lcd_wr_xdata(0x0F);
+ lcd_wr_xdata(0x3F);
+ lcd_wr_xdata(0x3F);
+ lcd_wr_xdata(0x0F);
+ lcd_wr_regno(0x2B);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x3f);
+ lcd_wr_regno(0x2A);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xef);
+ lcd_wr_regno(0x11); /* Exit Sleep */
+ HAL_Delay(120);
+ lcd_wr_regno(0x29); /* display on */
+ }
+ else if (lcddev.id == 0x5310)
+ {
+ //lcd_ex_nt35310_reginit(); /* ִ��NT35310��ʼ�� */
+ lcd_wr_regno(0xED);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0xFE);
+
+ lcd_wr_regno(0xEE);
+ lcd_wr_xdata(0xDE);
+ lcd_wr_xdata(0x21);
+
+ lcd_wr_regno(0xF1);
+ lcd_wr_xdata(0x01);
+ lcd_wr_regno(0xDF);
+ lcd_wr_xdata(0x10);
+
+ /* VCOMvoltage */
+ lcd_wr_regno(0xC4);
+ lcd_wr_xdata(0x8F); /* 5f */
+
+ lcd_wr_regno(0xC6);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xE2);
+ lcd_wr_xdata(0xE2);
+ lcd_wr_xdata(0xE2);
+ lcd_wr_regno(0xBF);
+ lcd_wr_xdata(0xAA);
+
+ lcd_wr_regno(0xB0);
+ lcd_wr_xdata(0x0D);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x0D);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x11);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x19);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x21);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x2D);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x3D);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x5D);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x5D);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xB1);
+ lcd_wr_xdata(0x80);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x8B);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x96);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xB2);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x02);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x03);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xB3);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xB4);
+ lcd_wr_xdata(0x8B);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x96);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xA1);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xB5);
+ lcd_wr_xdata(0x02);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x03);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x04);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xB6);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xB7);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x3F);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x5E);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x64);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x8C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xAC);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xDC);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x70);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x90);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xEB);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xDC);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xB8);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xBA);
+ lcd_wr_xdata(0x24);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xC1);
+ lcd_wr_xdata(0x20);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x54);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xFF);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xC2);
+ lcd_wr_xdata(0x0A);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x04);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xC3);
+ lcd_wr_xdata(0x3C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x3A);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x39);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x37);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x3C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x36);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x32);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x2F);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x2C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x29);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x26);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x24);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x24);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x23);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x3C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x36);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x32);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x2F);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x2C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x29);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x26);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x24);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x24);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x23);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xC4);
+ lcd_wr_xdata(0x62);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x05);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x84);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xF0);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x18);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xA4);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x18);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x50);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x0C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x17);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x95);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xF3);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xE6);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xC5);
+ lcd_wr_xdata(0x32);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x44);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x65);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x76);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x88);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xC6);
+ lcd_wr_xdata(0x20);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x17);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xC7);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xC8);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xC9);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xE0);
+ lcd_wr_xdata(0x16);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x1C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x21);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x36);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x46);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x52);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x64);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x7A);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x8B);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x99);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xA8);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xB9);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xC4);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xCA);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xD2);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xD9);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xE0);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xF3);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xE1);
+ lcd_wr_xdata(0x16);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x1C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x22);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x36);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x45);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x52);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x64);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x7A);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x8B);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x99);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xA8);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xB9);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xC4);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xCA);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xD2);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xD8);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xE0);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xF3);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xE2);
+ lcd_wr_xdata(0x05);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x0B);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x1B);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x34);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x44);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x4F);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x61);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x79);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x88);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x97);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xA6);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xB7);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xC2);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xC7);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xD1);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xD6);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xDD);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xF3);
+ lcd_wr_xdata(0x00);
+ lcd_wr_regno(0xE3);
+ lcd_wr_xdata(0x05);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xA);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x1C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x33);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x44);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x50);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x62);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x78);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x88);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x97);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xA6);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xB7);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xC2);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xC7);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xD1);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xD5);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xDD);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xF3);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xE4);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x02);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x2A);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x3C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x4B);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x5D);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x74);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x84);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x93);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xA2);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xB3);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xBE);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xC4);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xCD);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xD3);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xDD);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xF3);
+ lcd_wr_xdata(0x00);
+ lcd_wr_regno(0xE5);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x02);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x29);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x3C);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x4B);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x5D);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x74);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x84);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x93);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xA2);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xB3);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xBE);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xC4);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xCD);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xD3);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xDC);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xF3);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xE6);
+ lcd_wr_xdata(0x11);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x34);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x56);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x76);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x77);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x66);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x88);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x99);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xBB);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x99);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x66);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x55);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x55);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x45);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x43);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x44);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xE7);
+ lcd_wr_xdata(0x32);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x55);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x76);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x66);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x67);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x67);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x87);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x99);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xBB);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x99);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x77);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x44);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x56);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x23);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x33);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x45);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xE8);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x99);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x87);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x88);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x77);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x66);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x88);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xAA);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xBB);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x99);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x66);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x55);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x55);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x44);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x44);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x55);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xE9);
+ lcd_wr_xdata(0xAA);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0x00);
+ lcd_wr_xdata(0xAA);
+
+ lcd_wr_regno(0xCF);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xF0);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x50);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xF3);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xF9);
+ lcd_wr_xdata(0x06);
+ lcd_wr_xdata(0x10);
+ lcd_wr_xdata(0x29);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0x3A);
+ lcd_wr_xdata(0x55); /* 66 */
+
+ lcd_wr_regno(0x11);
+ HAL_Delay(100);
+ lcd_wr_regno(0x29);
+ lcd_wr_regno(0x35);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0x51);
+ lcd_wr_xdata(0xFF);
+ lcd_wr_regno(0x53);
+ lcd_wr_xdata(0x2C);
+ lcd_wr_regno(0x55);
+ lcd_wr_xdata(0x82);
+ lcd_wr_regno(0x2c);
+ }
+ else if (lcddev.id == 0x7796)
+ {
+ // lcd_ex_st7796_reginit(); /* ִ��ST7796��ʼ�� */
+ lcd_wr_regno(0x11);
+
+ HAL_Delay(120);
+
+ lcd_wr_regno(0x36); /* Memory Data Access Control MY,MX~~ */
+ lcd_wr_xdata(0x48);
+
+ lcd_wr_regno(0x3A);
+ lcd_wr_xdata(0x55);
+
+ lcd_wr_regno(0xF0);
+ lcd_wr_xdata(0xC3);
+
+ lcd_wr_regno(0xF0);
+ lcd_wr_xdata(0x96);
+
+ lcd_wr_regno(0xB4);
+ lcd_wr_xdata(0x01);
+
+ lcd_wr_regno(0xB6); /* Display Function Control */
+ lcd_wr_xdata(0x0A);
+ lcd_wr_xdata(0xA2);
+
+ lcd_wr_regno(0xB7);
+ lcd_wr_xdata(0xC6);
+
+ lcd_wr_regno(0xB9);
+ lcd_wr_xdata(0x02);
+ lcd_wr_xdata(0xE0);
+
+ lcd_wr_regno(0xC0);
+ lcd_wr_xdata(0x80);
+ lcd_wr_xdata(0x16);
+
+ lcd_wr_regno(0xC1);
+ lcd_wr_xdata(0x19);
+
+ lcd_wr_regno(0xC2);
+ lcd_wr_xdata(0xA7);
+
+ lcd_wr_regno(0xC5);
+ lcd_wr_xdata(0x16);
+
+ lcd_wr_regno(0xE8);
+ lcd_wr_xdata(0x40);
+ lcd_wr_xdata(0x8A);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x29);
+ lcd_wr_xdata(0x19);
+ lcd_wr_xdata(0xA5);
+ lcd_wr_xdata(0x33);
+
+ lcd_wr_regno(0xE0);
+ lcd_wr_xdata(0xF0);
+ lcd_wr_xdata(0x07);
+ lcd_wr_xdata(0x0D);
+ lcd_wr_xdata(0x04);
+ lcd_wr_xdata(0x05);
+ lcd_wr_xdata(0x14);
+ lcd_wr_xdata(0x36);
+ lcd_wr_xdata(0x54);
+ lcd_wr_xdata(0x4C);
+ lcd_wr_xdata(0x38);
+ lcd_wr_xdata(0x13);
+ lcd_wr_xdata(0x14);
+ lcd_wr_xdata(0x2E);
+ lcd_wr_xdata(0x34);
+
+ lcd_wr_regno(0xE1);
+ lcd_wr_xdata(0xF0);
+ lcd_wr_xdata(0x10);
+ lcd_wr_xdata(0x14);
+ lcd_wr_xdata(0x0E);
+ lcd_wr_xdata(0x0C);
+ lcd_wr_xdata(0x08);
+ lcd_wr_xdata(0x35);
+ lcd_wr_xdata(0x44);
+ lcd_wr_xdata(0x4C);
+ lcd_wr_xdata(0x26);
+ lcd_wr_xdata(0x10);
+ lcd_wr_xdata(0x12);
+ lcd_wr_xdata(0x2C);
+ lcd_wr_xdata(0x32);
+
+ lcd_wr_regno(0xF0);
+ lcd_wr_xdata(0x3C);
+
+ lcd_wr_regno(0xF0);
+ lcd_wr_xdata(0x69);
+
+ HAL_Delay(120);
+
+ lcd_wr_regno(0x21);
+ lcd_wr_regno(0x29);
+ }
+ else if (lcddev.id == 0x5510)
+ {
+ //lcd_ex_nt35510_reginit(); /* ִ��NT35510��ʼ�� */
+
+ lcd_write_reg(0xF000, 0x55);
+ lcd_write_reg(0xF001, 0xAA);
+ lcd_write_reg(0xF002, 0x52);
+ lcd_write_reg(0xF003, 0x08);
+ lcd_write_reg(0xF004, 0x01);
+ /* AVDD Set AVDD 5.2V */
+ lcd_write_reg(0xB000, 0x0D);
+ lcd_write_reg(0xB001, 0x0D);
+ lcd_write_reg(0xB002, 0x0D);
+ /* AVDD ratio */
+ lcd_write_reg(0xB600, 0x34);
+ lcd_write_reg(0xB601, 0x34);
+ lcd_write_reg(0xB602, 0x34);
+ /* AVEE -5.2V */
+ lcd_write_reg(0xB100, 0x0D);
+ lcd_write_reg(0xB101, 0x0D);
+ lcd_write_reg(0xB102, 0x0D);
+ /* AVEE ratio */
+ lcd_write_reg(0xB700, 0x34);
+ lcd_write_reg(0xB701, 0x34);
+ lcd_write_reg(0xB702, 0x34);
+ /* VCL -2.5V */
+ lcd_write_reg(0xB200, 0x00);
+ lcd_write_reg(0xB201, 0x00);
+ lcd_write_reg(0xB202, 0x00);
+ /* VCL ratio */
+ lcd_write_reg(0xB800, 0x24);
+ lcd_write_reg(0xB801, 0x24);
+ lcd_write_reg(0xB802, 0x24);
+ /* VGH 15V (Free pump) */
+ lcd_write_reg(0xBF00, 0x01);
+ lcd_write_reg(0xB300, 0x0F);
+ lcd_write_reg(0xB301, 0x0F);
+ lcd_write_reg(0xB302, 0x0F);
+ /* VGH ratio */
+ lcd_write_reg(0xB900, 0x34);
+ lcd_write_reg(0xB901, 0x34);
+ lcd_write_reg(0xB902, 0x34);
+ /* VGL_REG -10V */
+ lcd_write_reg(0xB500, 0x08);
+ lcd_write_reg(0xB501, 0x08);
+ lcd_write_reg(0xB502, 0x08);
+ lcd_write_reg(0xC200, 0x03);
+ /* VGLX ratio */
+ lcd_write_reg(0xBA00, 0x24);
+ lcd_write_reg(0xBA01, 0x24);
+ lcd_write_reg(0xBA02, 0x24);
+ /* VGMP/VGSP 4.5V/0V */
+ lcd_write_reg(0xBC00, 0x00);
+ lcd_write_reg(0xBC01, 0x78);
+ lcd_write_reg(0xBC02, 0x00);
+ /* VGMN/VGSN -4.5V/0V */
+ lcd_write_reg(0xBD00, 0x00);
+ lcd_write_reg(0xBD01, 0x78);
+ lcd_write_reg(0xBD02, 0x00);
+ /* VCOM */
+ lcd_write_reg(0xBE00, 0x00);
+ lcd_write_reg(0xBE01, 0x64);
+ /* Gamma Setting */
+ lcd_write_reg(0xD100, 0x00);
+ lcd_write_reg(0xD101, 0x33);
+ lcd_write_reg(0xD102, 0x00);
+ lcd_write_reg(0xD103, 0x34);
+ lcd_write_reg(0xD104, 0x00);
+ lcd_write_reg(0xD105, 0x3A);
+ lcd_write_reg(0xD106, 0x00);
+ lcd_write_reg(0xD107, 0x4A);
+ lcd_write_reg(0xD108, 0x00);
+ lcd_write_reg(0xD109, 0x5C);
+ lcd_write_reg(0xD10A, 0x00);
+ lcd_write_reg(0xD10B, 0x81);
+ lcd_write_reg(0xD10C, 0x00);
+ lcd_write_reg(0xD10D, 0xA6);
+ lcd_write_reg(0xD10E, 0x00);
+ lcd_write_reg(0xD10F, 0xE5);
+ lcd_write_reg(0xD110, 0x01);
+ lcd_write_reg(0xD111, 0x13);
+ lcd_write_reg(0xD112, 0x01);
+ lcd_write_reg(0xD113, 0x54);
+ lcd_write_reg(0xD114, 0x01);
+ lcd_write_reg(0xD115, 0x82);
+ lcd_write_reg(0xD116, 0x01);
+ lcd_write_reg(0xD117, 0xCA);
+ lcd_write_reg(0xD118, 0x02);
+ lcd_write_reg(0xD119, 0x00);
+ lcd_write_reg(0xD11A, 0x02);
+ lcd_write_reg(0xD11B, 0x01);
+ lcd_write_reg(0xD11C, 0x02);
+ lcd_write_reg(0xD11D, 0x34);
+ lcd_write_reg(0xD11E, 0x02);
+ lcd_write_reg(0xD11F, 0x67);
+ lcd_write_reg(0xD120, 0x02);
+ lcd_write_reg(0xD121, 0x84);
+ lcd_write_reg(0xD122, 0x02);
+ lcd_write_reg(0xD123, 0xA4);
+ lcd_write_reg(0xD124, 0x02);
+ lcd_write_reg(0xD125, 0xB7);
+ lcd_write_reg(0xD126, 0x02);
+ lcd_write_reg(0xD127, 0xCF);
+ lcd_write_reg(0xD128, 0x02);
+ lcd_write_reg(0xD129, 0xDE);
+ lcd_write_reg(0xD12A, 0x02);
+ lcd_write_reg(0xD12B, 0xF2);
+ lcd_write_reg(0xD12C, 0x02);
+ lcd_write_reg(0xD12D, 0xFE);
+ lcd_write_reg(0xD12E, 0x03);
+ lcd_write_reg(0xD12F, 0x10);
+ lcd_write_reg(0xD130, 0x03);
+ lcd_write_reg(0xD131, 0x33);
+ lcd_write_reg(0xD132, 0x03);
+ lcd_write_reg(0xD133, 0x6D);
+ lcd_write_reg(0xD200, 0x00);
+ lcd_write_reg(0xD201, 0x33);
+ lcd_write_reg(0xD202, 0x00);
+ lcd_write_reg(0xD203, 0x34);
+ lcd_write_reg(0xD204, 0x00);
+ lcd_write_reg(0xD205, 0x3A);
+ lcd_write_reg(0xD206, 0x00);
+ lcd_write_reg(0xD207, 0x4A);
+ lcd_write_reg(0xD208, 0x00);
+ lcd_write_reg(0xD209, 0x5C);
+ lcd_write_reg(0xD20A, 0x00);
+
+ lcd_write_reg(0xD20B, 0x81);
+ lcd_write_reg(0xD20C, 0x00);
+ lcd_write_reg(0xD20D, 0xA6);
+ lcd_write_reg(0xD20E, 0x00);
+ lcd_write_reg(0xD20F, 0xE5);
+ lcd_write_reg(0xD210, 0x01);
+ lcd_write_reg(0xD211, 0x13);
+ lcd_write_reg(0xD212, 0x01);
+ lcd_write_reg(0xD213, 0x54);
+ lcd_write_reg(0xD214, 0x01);
+ lcd_write_reg(0xD215, 0x82);
+ lcd_write_reg(0xD216, 0x01);
+ lcd_write_reg(0xD217, 0xCA);
+ lcd_write_reg(0xD218, 0x02);
+ lcd_write_reg(0xD219, 0x00);
+ lcd_write_reg(0xD21A, 0x02);
+ lcd_write_reg(0xD21B, 0x01);
+ lcd_write_reg(0xD21C, 0x02);
+ lcd_write_reg(0xD21D, 0x34);
+ lcd_write_reg(0xD21E, 0x02);
+ lcd_write_reg(0xD21F, 0x67);
+ lcd_write_reg(0xD220, 0x02);
+ lcd_write_reg(0xD221, 0x84);
+ lcd_write_reg(0xD222, 0x02);
+ lcd_write_reg(0xD223, 0xA4);
+ lcd_write_reg(0xD224, 0x02);
+ lcd_write_reg(0xD225, 0xB7);
+ lcd_write_reg(0xD226, 0x02);
+ lcd_write_reg(0xD227, 0xCF);
+ lcd_write_reg(0xD228, 0x02);
+ lcd_write_reg(0xD229, 0xDE);
+ lcd_write_reg(0xD22A, 0x02);
+ lcd_write_reg(0xD22B, 0xF2);
+ lcd_write_reg(0xD22C, 0x02);
+ lcd_write_reg(0xD22D, 0xFE);
+ lcd_write_reg(0xD22E, 0x03);
+ lcd_write_reg(0xD22F, 0x10);
+ lcd_write_reg(0xD230, 0x03);
+ lcd_write_reg(0xD231, 0x33);
+ lcd_write_reg(0xD232, 0x03);
+ lcd_write_reg(0xD233, 0x6D);
+ lcd_write_reg(0xD300, 0x00);
+ lcd_write_reg(0xD301, 0x33);
+ lcd_write_reg(0xD302, 0x00);
+ lcd_write_reg(0xD303, 0x34);
+ lcd_write_reg(0xD304, 0x00);
+ lcd_write_reg(0xD305, 0x3A);
+ lcd_write_reg(0xD306, 0x00);
+ lcd_write_reg(0xD307, 0x4A);
+ lcd_write_reg(0xD308, 0x00);
+ lcd_write_reg(0xD309, 0x5C);
+ lcd_write_reg(0xD30A, 0x00);
+
+ lcd_write_reg(0xD30B, 0x81);
+ lcd_write_reg(0xD30C, 0x00);
+ lcd_write_reg(0xD30D, 0xA6);
+ lcd_write_reg(0xD30E, 0x00);
+ lcd_write_reg(0xD30F, 0xE5);
+ lcd_write_reg(0xD310, 0x01);
+ lcd_write_reg(0xD311, 0x13);
+ lcd_write_reg(0xD312, 0x01);
+ lcd_write_reg(0xD313, 0x54);
+ lcd_write_reg(0xD314, 0x01);
+ lcd_write_reg(0xD315, 0x82);
+ lcd_write_reg(0xD316, 0x01);
+ lcd_write_reg(0xD317, 0xCA);
+ lcd_write_reg(0xD318, 0x02);
+ lcd_write_reg(0xD319, 0x00);
+ lcd_write_reg(0xD31A, 0x02);
+ lcd_write_reg(0xD31B, 0x01);
+ lcd_write_reg(0xD31C, 0x02);
+ lcd_write_reg(0xD31D, 0x34);
+ lcd_write_reg(0xD31E, 0x02);
+ lcd_write_reg(0xD31F, 0x67);
+ lcd_write_reg(0xD320, 0x02);
+ lcd_write_reg(0xD321, 0x84);
+ lcd_write_reg(0xD322, 0x02);
+ lcd_write_reg(0xD323, 0xA4);
+ lcd_write_reg(0xD324, 0x02);
+ lcd_write_reg(0xD325, 0xB7);
+ lcd_write_reg(0xD326, 0x02);
+ lcd_write_reg(0xD327, 0xCF);
+ lcd_write_reg(0xD328, 0x02);
+ lcd_write_reg(0xD329, 0xDE);
+ lcd_write_reg(0xD32A, 0x02);
+ lcd_write_reg(0xD32B, 0xF2);
+ lcd_write_reg(0xD32C, 0x02);
+ lcd_write_reg(0xD32D, 0xFE);
+ lcd_write_reg(0xD32E, 0x03);
+ lcd_write_reg(0xD32F, 0x10);
+ lcd_write_reg(0xD330, 0x03);
+ lcd_write_reg(0xD331, 0x33);
+ lcd_write_reg(0xD332, 0x03);
+ lcd_write_reg(0xD333, 0x6D);
+ lcd_write_reg(0xD400, 0x00);
+ lcd_write_reg(0xD401, 0x33);
+ lcd_write_reg(0xD402, 0x00);
+ lcd_write_reg(0xD403, 0x34);
+ lcd_write_reg(0xD404, 0x00);
+ lcd_write_reg(0xD405, 0x3A);
+ lcd_write_reg(0xD406, 0x00);
+ lcd_write_reg(0xD407, 0x4A);
+ lcd_write_reg(0xD408, 0x00);
+ lcd_write_reg(0xD409, 0x5C);
+ lcd_write_reg(0xD40A, 0x00);
+ lcd_write_reg(0xD40B, 0x81);
+
+ lcd_write_reg(0xD40C, 0x00);
+ lcd_write_reg(0xD40D, 0xA6);
+ lcd_write_reg(0xD40E, 0x00);
+ lcd_write_reg(0xD40F, 0xE5);
+ lcd_write_reg(0xD410, 0x01);
+ lcd_write_reg(0xD411, 0x13);
+ lcd_write_reg(0xD412, 0x01);
+ lcd_write_reg(0xD413, 0x54);
+ lcd_write_reg(0xD414, 0x01);
+ lcd_write_reg(0xD415, 0x82);
+ lcd_write_reg(0xD416, 0x01);
+ lcd_write_reg(0xD417, 0xCA);
+ lcd_write_reg(0xD418, 0x02);
+ lcd_write_reg(0xD419, 0x00);
+ lcd_write_reg(0xD41A, 0x02);
+ lcd_write_reg(0xD41B, 0x01);
+ lcd_write_reg(0xD41C, 0x02);
+ lcd_write_reg(0xD41D, 0x34);
+ lcd_write_reg(0xD41E, 0x02);
+ lcd_write_reg(0xD41F, 0x67);
+ lcd_write_reg(0xD420, 0x02);
+ lcd_write_reg(0xD421, 0x84);
+ lcd_write_reg(0xD422, 0x02);
+ lcd_write_reg(0xD423, 0xA4);
+ lcd_write_reg(0xD424, 0x02);
+ lcd_write_reg(0xD425, 0xB7);
+ lcd_write_reg(0xD426, 0x02);
+ lcd_write_reg(0xD427, 0xCF);
+ lcd_write_reg(0xD428, 0x02);
+ lcd_write_reg(0xD429, 0xDE);
+ lcd_write_reg(0xD42A, 0x02);
+ lcd_write_reg(0xD42B, 0xF2);
+ lcd_write_reg(0xD42C, 0x02);
+ lcd_write_reg(0xD42D, 0xFE);
+ lcd_write_reg(0xD42E, 0x03);
+ lcd_write_reg(0xD42F, 0x10);
+ lcd_write_reg(0xD430, 0x03);
+ lcd_write_reg(0xD431, 0x33);
+ lcd_write_reg(0xD432, 0x03);
+ lcd_write_reg(0xD433, 0x6D);
+ lcd_write_reg(0xD500, 0x00);
+ lcd_write_reg(0xD501, 0x33);
+ lcd_write_reg(0xD502, 0x00);
+ lcd_write_reg(0xD503, 0x34);
+ lcd_write_reg(0xD504, 0x00);
+ lcd_write_reg(0xD505, 0x3A);
+ lcd_write_reg(0xD506, 0x00);
+ lcd_write_reg(0xD507, 0x4A);
+ lcd_write_reg(0xD508, 0x00);
+ lcd_write_reg(0xD509, 0x5C);
+ lcd_write_reg(0xD50A, 0x00);
+ lcd_write_reg(0xD50B, 0x81);
+
+ lcd_write_reg(0xD50C, 0x00);
+ lcd_write_reg(0xD50D, 0xA6);
+ lcd_write_reg(0xD50E, 0x00);
+ lcd_write_reg(0xD50F, 0xE5);
+ lcd_write_reg(0xD510, 0x01);
+ lcd_write_reg(0xD511, 0x13);
+ lcd_write_reg(0xD512, 0x01);
+ lcd_write_reg(0xD513, 0x54);
+ lcd_write_reg(0xD514, 0x01);
+ lcd_write_reg(0xD515, 0x82);
+ lcd_write_reg(0xD516, 0x01);
+ lcd_write_reg(0xD517, 0xCA);
+ lcd_write_reg(0xD518, 0x02);
+ lcd_write_reg(0xD519, 0x00);
+ lcd_write_reg(0xD51A, 0x02);
+ lcd_write_reg(0xD51B, 0x01);
+ lcd_write_reg(0xD51C, 0x02);
+ lcd_write_reg(0xD51D, 0x34);
+ lcd_write_reg(0xD51E, 0x02);
+ lcd_write_reg(0xD51F, 0x67);
+ lcd_write_reg(0xD520, 0x02);
+ lcd_write_reg(0xD521, 0x84);
+ lcd_write_reg(0xD522, 0x02);
+ lcd_write_reg(0xD523, 0xA4);
+ lcd_write_reg(0xD524, 0x02);
+ lcd_write_reg(0xD525, 0xB7);
+ lcd_write_reg(0xD526, 0x02);
+ lcd_write_reg(0xD527, 0xCF);
+ lcd_write_reg(0xD528, 0x02);
+ lcd_write_reg(0xD529, 0xDE);
+ lcd_write_reg(0xD52A, 0x02);
+ lcd_write_reg(0xD52B, 0xF2);
+ lcd_write_reg(0xD52C, 0x02);
+ lcd_write_reg(0xD52D, 0xFE);
+ lcd_write_reg(0xD52E, 0x03);
+ lcd_write_reg(0xD52F, 0x10);
+ lcd_write_reg(0xD530, 0x03);
+ lcd_write_reg(0xD531, 0x33);
+ lcd_write_reg(0xD532, 0x03);
+ lcd_write_reg(0xD533, 0x6D);
+ lcd_write_reg(0xD600, 0x00);
+ lcd_write_reg(0xD601, 0x33);
+ lcd_write_reg(0xD602, 0x00);
+ lcd_write_reg(0xD603, 0x34);
+ lcd_write_reg(0xD604, 0x00);
+ lcd_write_reg(0xD605, 0x3A);
+ lcd_write_reg(0xD606, 0x00);
+ lcd_write_reg(0xD607, 0x4A);
+ lcd_write_reg(0xD608, 0x00);
+ lcd_write_reg(0xD609, 0x5C);
+ lcd_write_reg(0xD60A, 0x00);
+ lcd_write_reg(0xD60B, 0x81);
+
+ lcd_write_reg(0xD60C, 0x00);
+ lcd_write_reg(0xD60D, 0xA6);
+ lcd_write_reg(0xD60E, 0x00);
+ lcd_write_reg(0xD60F, 0xE5);
+ lcd_write_reg(0xD610, 0x01);
+ lcd_write_reg(0xD611, 0x13);
+ lcd_write_reg(0xD612, 0x01);
+ lcd_write_reg(0xD613, 0x54);
+ lcd_write_reg(0xD614, 0x01);
+ lcd_write_reg(0xD615, 0x82);
+ lcd_write_reg(0xD616, 0x01);
+ lcd_write_reg(0xD617, 0xCA);
+ lcd_write_reg(0xD618, 0x02);
+ lcd_write_reg(0xD619, 0x00);
+ lcd_write_reg(0xD61A, 0x02);
+ lcd_write_reg(0xD61B, 0x01);
+ lcd_write_reg(0xD61C, 0x02);
+ lcd_write_reg(0xD61D, 0x34);
+ lcd_write_reg(0xD61E, 0x02);
+ lcd_write_reg(0xD61F, 0x67);
+ lcd_write_reg(0xD620, 0x02);
+ lcd_write_reg(0xD621, 0x84);
+ lcd_write_reg(0xD622, 0x02);
+ lcd_write_reg(0xD623, 0xA4);
+ lcd_write_reg(0xD624, 0x02);
+ lcd_write_reg(0xD625, 0xB7);
+ lcd_write_reg(0xD626, 0x02);
+ lcd_write_reg(0xD627, 0xCF);
+ lcd_write_reg(0xD628, 0x02);
+ lcd_write_reg(0xD629, 0xDE);
+ lcd_write_reg(0xD62A, 0x02);
+ lcd_write_reg(0xD62B, 0xF2);
+ lcd_write_reg(0xD62C, 0x02);
+ lcd_write_reg(0xD62D, 0xFE);
+ lcd_write_reg(0xD62E, 0x03);
+ lcd_write_reg(0xD62F, 0x10);
+ lcd_write_reg(0xD630, 0x03);
+ lcd_write_reg(0xD631, 0x33);
+ lcd_write_reg(0xD632, 0x03);
+ lcd_write_reg(0xD633, 0x6D);
+ /* LV2 Page 0 enable */
+ lcd_write_reg(0xF000, 0x55);
+ lcd_write_reg(0xF001, 0xAA);
+ lcd_write_reg(0xF002, 0x52);
+ lcd_write_reg(0xF003, 0x08);
+ lcd_write_reg(0xF004, 0x00);
+ /* Display control */
+ lcd_write_reg(0xB100, 0xCC);
+ lcd_write_reg(0xB101, 0x00);
+ /* Source hold time */
+ lcd_write_reg(0xB600, 0x05);
+ /* Gate EQ control */
+ lcd_write_reg(0xB700, 0x70);
+ lcd_write_reg(0xB701, 0x70);
+ /* Source EQ control (Mode 2) */
+ lcd_write_reg(0xB800, 0x01);
+ lcd_write_reg(0xB801, 0x03);
+ lcd_write_reg(0xB802, 0x03);
+ lcd_write_reg(0xB803, 0x03);
+ /* Inversion mode (2-dot) */
+ lcd_write_reg(0xBC00, 0x02);
+ lcd_write_reg(0xBC01, 0x00);
+ lcd_write_reg(0xBC02, 0x00);
+ /* Timing control 4H w/ 4-delay */
+ lcd_write_reg(0xC900, 0xD0);
+ lcd_write_reg(0xC901, 0x02);
+ lcd_write_reg(0xC902, 0x50);
+ lcd_write_reg(0xC903, 0x50);
+ lcd_write_reg(0xC904, 0x50);
+ lcd_write_reg(0x3500, 0x00);
+ lcd_write_reg(0x3A00, 0x55); /* 16-bit/pixel */
+ lcd_wr_regno(0x1100);
+ //delay_us(120);
+ lcd_wr_regno(0x2900);
+ }
+ else if (lcddev.id == 0x9806)
+ {
+ // lcd_ex_ili9806_reginit(); /* ִ��ILI9806��ʼ�� */
+ lcd_wr_regno(0xFF); /* EXTC Command Set enable register */
+ lcd_wr_xdata(0xFF);
+ lcd_wr_xdata(0x98);
+ lcd_wr_xdata(0x06);
+
+ lcd_wr_regno(0xBC); /* GIP 1 */
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x0F);
+ lcd_wr_xdata(0x61);
+ lcd_wr_xdata(0xFF);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x0B);
+ lcd_wr_xdata(0x10);
+ lcd_wr_xdata(0x37);
+ lcd_wr_xdata(0x63);
+ lcd_wr_xdata(0xFF);
+ lcd_wr_xdata(0xFF);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0xFF);
+ lcd_wr_xdata(0x52);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x40);
+
+ lcd_wr_regno(0xBD); /* GIP 2 */
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x23);
+ lcd_wr_xdata(0x45);
+ lcd_wr_xdata(0x67);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0x23);
+ lcd_wr_xdata(0x45);
+ lcd_wr_xdata(0x67);
+
+ lcd_wr_regno(0xBE); /* GIP 3 */
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0xAB);
+ lcd_wr_xdata(0x60);
+ lcd_wr_xdata(0x22);
+ lcd_wr_xdata(0x22);
+ lcd_wr_xdata(0x22);
+ lcd_wr_xdata(0x22);
+ lcd_wr_xdata(0x22);
+
+ lcd_wr_regno(0xC7); /* VCOM Control */
+ lcd_wr_xdata(0x36);
+
+ lcd_wr_regno(0xED); /* EN_volt_reg VGMP / VGMN /VGSP / VGSN voltage to output */
+ lcd_wr_xdata(0x7F);
+ lcd_wr_xdata(0x0F);
+
+ lcd_wr_regno(0XC0); /* Power Control 1 Setting AVDD / AVEE / VGH / VGL */
+ lcd_wr_xdata(0x0F);
+ lcd_wr_xdata(0x0B);
+ lcd_wr_xdata(0x0A); /* VGH 15V,VGLO-10V */
+
+ lcd_wr_regno(0XFC); /* AVDD / AVEE generated by internal pumping. */
+ lcd_wr_xdata(0x08);
+
+ lcd_wr_regno(0XDF);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x20);
+
+ lcd_wr_regno(0XF3); /* DVDD Voltage Setting */
+ lcd_wr_xdata(0x74);
+
+ lcd_wr_regno(0xB4); /* Inversion Type */
+ lcd_wr_xdata(0x00); /* 02 */
+ lcd_wr_xdata(0x00); /* 02 */
+ lcd_wr_xdata(0x00); /* 02 */
+
+ lcd_wr_regno(0xF7); /* Resolution Control */
+ lcd_wr_xdata(0x82); /* 480*800 */
+
+ lcd_wr_regno(0xB1); /* FRAME RATE Setting */
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x13);
+ lcd_wr_xdata(0x13);
+
+ lcd_wr_regno(0XF2); /* CR_EQ_PC_SDT #C0,06,40,28 */
+ lcd_wr_xdata(0x80);
+ lcd_wr_xdata(0x04);
+ lcd_wr_xdata(0x40);
+ lcd_wr_xdata(0x28);
+
+ lcd_wr_regno(0XC1); /* Power Control 2 SD OP Bias_VRH1_VRH2_EXT_CPCK_SEL */
+ lcd_wr_xdata(0x17);
+ lcd_wr_xdata(0x88); /* VGMP */
+ lcd_wr_xdata(0x88); /* VGMN */
+ lcd_wr_xdata(0x20);
+
+ lcd_wr_regno(0xE0); /* Positive Gamma Control */
+ lcd_wr_xdata(0x00); /* P1 */
+ lcd_wr_xdata(0x0A); /* P2 */
+ lcd_wr_xdata(0x12); /* P3 */
+ lcd_wr_xdata(0x10); /* P4 */
+ lcd_wr_xdata(0x0E); /* P5 */
+ lcd_wr_xdata(0x20); /* P6 */
+ lcd_wr_xdata(0xCC); /* P7 */
+ lcd_wr_xdata(0x07); /* P8 */
+ lcd_wr_xdata(0x06); /* P9 */
+ lcd_wr_xdata(0x0B); /* P10 */
+ lcd_wr_xdata(0x0E); /* P11 */
+ lcd_wr_xdata(0x0F); /* P12 */
+ lcd_wr_xdata(0x0D); /* P13 */
+ lcd_wr_xdata(0x15); /* P14 */
+ lcd_wr_xdata(0x10); /* P15 */
+ lcd_wr_xdata(0x00); /* P16 */
+
+ lcd_wr_regno(0xE1); /* Negative Gamma Correction */
+ lcd_wr_xdata(0x00); /* P1 */
+ lcd_wr_xdata(0x0B); /* P2 */
+ lcd_wr_xdata(0x13); /* P3 */
+ lcd_wr_xdata(0x0D); /* P4 */
+ lcd_wr_xdata(0x0E); /* P5 */
+ lcd_wr_xdata(0x1B); /* P6 */
+ lcd_wr_xdata(0x71); /* P7 */
+ lcd_wr_xdata(0x06); /* P8 */
+ lcd_wr_xdata(0x06); /* P9 */
+ lcd_wr_xdata(0x0A); /* P10 */
+ lcd_wr_xdata(0x0F); /* P11 */
+ lcd_wr_xdata(0x0E); /* P12 */
+ lcd_wr_xdata(0x0F); /* P13 */
+ lcd_wr_xdata(0x15); /* P14 */
+ lcd_wr_xdata(0x0C); /* P15 */
+ lcd_wr_xdata(0x00); /* P16 */
+
+ lcd_wr_regno(0x2a);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x01);
+ lcd_wr_xdata(0xdf);
+
+ lcd_wr_regno(0x2b);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x03);
+ lcd_wr_xdata(0x1f);
+
+ lcd_wr_regno(0x3A); /* Pixel Format */
+ lcd_wr_xdata(0x55);
+
+ lcd_wr_regno(0x36); /* Memory Access Control */
+ lcd_wr_xdata(0x00); /* 02-180 */
+
+ lcd_wr_regno(0x11);
+ HAL_Delay(120);
+ lcd_wr_regno(0x29);
+ HAL_Delay(20);
+ lcd_wr_regno(0x2C);
+ }
+ else if (lcddev.id == 0x1963)
+ {
+ //lcd_ex_ssd1963_reginit(); /* ִ��SSD1963��ʼ�� */
+ lcd_wr_regno(0xE2); /* Set PLL with OSC = 10MHz (hardware), Multiplier N = 35, 250MHz < VCO < 800MHz = OSC*(N+1), VCO = 300MHz */
+ lcd_wr_xdata(0x1D); /* ����1 */
+ lcd_wr_xdata(0x02); /* ����2 Divider M = 2, PLL = 300/(M+1) = 100MHz */
+ lcd_wr_xdata(0x04); /* ����3 Validate M and N values */
+ //delay_us(100);
+ lcd_wr_regno(0xE0); /* Start PLL command */
+ lcd_wr_xdata(0x01); /* enable PLL */
+ HAL_Delay(10);
+ lcd_wr_regno(0xE0); /* Start PLL command again */
+ lcd_wr_xdata(0x03); /* now, use PLL output as system clock */
+ HAL_Delay(12);
+ lcd_wr_regno(0x01); /* ��λ */
+ HAL_Delay(10);
+
+ lcd_wr_regno(0xE6); /* ��������Ƶ��,33Mhz */
+ lcd_wr_xdata(0x2F);
+ lcd_wr_xdata(0xFF);
+ lcd_wr_xdata(0xFF);
+
+ lcd_wr_regno(0xB0); /* ����LCDģʽ */
+ lcd_wr_xdata(0x20); /* 24λģʽ */
+ lcd_wr_xdata(0x00); /* TFT ģʽ */
+
+ lcd_wr_xdata((SSD_HOR_RESOLUTION - 1) >> 8); /* ����LCDˮƽ���� */
+ lcd_wr_xdata(SSD_HOR_RESOLUTION - 1);
+ lcd_wr_xdata((SSD_VER_RESOLUTION - 1) >> 8); /* ����LCD��ֱ���� */
+ lcd_wr_xdata(SSD_VER_RESOLUTION - 1);
+ lcd_wr_xdata(0x00); /* RGB���� */
+
+ lcd_wr_regno(0xB4); /* Set horizontal period */
+ lcd_wr_xdata((SSD_HT - 1) >> 8);
+ lcd_wr_xdata(SSD_HT - 1);
+ lcd_wr_xdata(SSD_HPS >> 8);
+ lcd_wr_xdata(SSD_HPS);
+ lcd_wr_xdata(SSD_HOR_PULSE_WIDTH - 1);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+ lcd_wr_regno(0xB6); /* Set vertical perio */
+ lcd_wr_xdata((SSD_VT - 1) >> 8);
+ lcd_wr_xdata(SSD_VT - 1);
+ lcd_wr_xdata(SSD_VPS >> 8);
+ lcd_wr_xdata(SSD_VPS);
+ lcd_wr_xdata(SSD_VER_FRONT_PORCH - 1);
+ lcd_wr_xdata(0x00);
+ lcd_wr_xdata(0x00);
+
+ lcd_wr_regno(0xF0); /* ����SSD1963��CPU�ӿ�Ϊ16bit */
+ lcd_wr_xdata(0x03); /* 16-bit(565 format) data for 16bpp */
+
+ lcd_wr_regno(0x29); /* ������ʾ */
+ /* ����PWM��� ����ͨ��ռ�ձȿɵ� */
+ lcd_wr_regno(0xD0); /* �����Զ���ƽ��DBC */
+ lcd_wr_xdata(0x00); /* disable */
+
+ lcd_wr_regno(0xBE); /* ����PWM��� */
+ lcd_wr_xdata(0x05); /* 1����PWMƵ�� */
+ lcd_wr_xdata(0xFE); /* 2����PWMռ�ձ� */
+ lcd_wr_xdata(0x01); /* 3����C */
+ lcd_wr_xdata(0x00); /* 4����D */
+ lcd_wr_xdata(0x00); /* 5����E */
+ lcd_wr_xdata(0x00); /* 6����F */
+
+ lcd_wr_regno(0xB8); /* ����GPIO���� */
+ lcd_wr_xdata(0x03); /* 2��IO������� */
+ lcd_wr_xdata(0x01); /* GPIOʹ��������IO���� */
+ lcd_wr_regno(0xBA);
+ lcd_wr_xdata(0X01); /* GPIO[1:0]=01,����LCD���� */
+ lcd_ssd_backlight_set(100); /* ������������ */
+ }
+
+ lcd_display_dir(0); /* Ĭ��Ϊ���� */
+ LCD_BL(1); /* �������� */
+ lcd_clear(WHITE);
+}
+
+/**
+ * @brief ��������
+ * @param color: Ҫ��������ɫ
+ * @retval ��
+ */
+void lcd_clear(uint16_t color)
+{
+ uint32_t index = 0;
+ uint32_t totalpoint = lcddev.width;
+ totalpoint *= lcddev.height; /* �õ��ܵ��� */
+ lcd_set_cursor(0x00, 0x0000); /* ���ù��λ�� */
+ lcd_write_ram_prepare(); /* ��ʼд��GRAM */
+
+ /* Ϊ�����д���ٶ�, ��lcd_wr_data�������в��, �����ظ�����
+ * RS, CS�IJ���, �Ӷ������ٶ�, ��51֡��ߵ�78֡����, ���50%
+ * ��������: -O2�Ż�, ��ˢ��
+ * �����ٶ�Ҫ���ʱ��, ���Լ����Ż�: lcd_fill, lcd_color_fill,
+ * lcd_set_cursor �� lcd_draw_point �Ⱥ���, ��ҿ��������Ż�
+ */
+ LCD_RS(1); /* RS=1,��ʾд���� */
+ LCD_CS(0);
+
+ for (index = 0; index < totalpoint; index++)
+ {
+ LCD_DATA_OUT(color); /* д��Ҫд������ */
+ LCD_WR(0);
+ LCD_WR(1);
+ }
+
+ LCD_CS(1);
+}
+
+/**
+ * @brief ��ָ����������䵥����ɫ
+ * @param (sx,sy),(ex,ey):�����ζԽ�����,�����СΪ:(ex - sx + 1) * (ey - sy + 1)
+ * @param color: Ҫ������ɫ(32λ��ɫ,�������LTDC)
+ * @retval ��
+ */
+void lcd_fill(uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey, uint32_t color)
+{
+ uint16_t i, j;
+ uint16_t xlen = 0;
+ xlen = ex - sx + 1;
+
+ for (i = sy; i <= ey; i++)
+ {
+ lcd_set_cursor(sx, i); /* ���ù��λ�� */
+ lcd_write_ram_prepare(); /* ��ʼд��GRAM */
+
+ for (j = 0; j < xlen; j++)
+ {
+ lcd_wr_data(color); /* ����� */
+ }
+ }
+}
+
+/**
+ * @brief ��ָ�����������ָ����ɫ��
+ * @param (sx,sy),(ex,ey):�����ζԽ�����,�����СΪ:(ex - sx + 1) * (ey - sy + 1)
+ * @param color: Ҫ������ɫ�����׵�ַ
+ * @retval ��
+ */
+void lcd_color_fill(uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey, uint16_t *color)
+{
+ uint16_t height, width;
+ uint16_t i, j;
+ width = ex - sx + 1; /* �õ����Ŀ�� */
+ height = ey - sy + 1; /* �߶� */
+
+ for (i = 0; i < height; i++)
+ {
+ lcd_set_cursor(sx, sy + i); /* ���ù��λ�� */
+ lcd_write_ram_prepare(); /* ��ʼд��GRAM */
+
+ for (j = 0; j < width; j++)
+ {
+ lcd_wr_data(color[i * width + j]); /* ����� */
+ }
+ }
+}
+
+/**
+ * @brief ����
+ * @param x1,y1: �������
+ * @param x2,y2: �յ�����
+ * @param color: �ߵ���ɫ
+ * @retval ��
+ */
+void lcd_draw_line(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color)
+{
+ uint16_t t;
+ int xerr = 0, yerr = 0, delta_x, delta_y, distance;
+ int incx, incy, row, col;
+ delta_x = x2 - x1; /* ������������ */
+ delta_y = y2 - y1;
+ row = x1;
+ col = y1;
+
+ if (delta_x > 0)incx = 1; /* ���õ������� */
+ else if (delta_x == 0)incx = 0; /* ��ֱ�� */
+ else
+ {
+ incx = -1;
+ delta_x = -delta_x;
+ }
+
+ if (delta_y > 0)incy = 1;
+ else if (delta_y == 0)incy = 0; /* ˮƽ�� */
+ else
+ {
+ incy = -1;
+ delta_y = -delta_y;
+ }
+
+ if ( delta_x > delta_y)distance = delta_x; /* ѡȡ�������������� */
+ else distance = delta_y;
+
+ for (t = 0; t <= distance + 1; t++ ) /* ������� */
+ {
+ lcd_draw_point(row, col, color); /* ���� */
+ xerr += delta_x ;
+ yerr += delta_y ;
+
+ if (xerr > distance)
+ {
+ xerr -= distance;
+ row += incx;
+ }
+
+ if (yerr > distance)
+ {
+ yerr -= distance;
+ col += incy;
+ }
+ }
+}
+
+/**
+ * @brief ��ˮƽ��
+ * @param x,y: �������
+ * @param len : �߳���
+ * @param color: ���ε���ɫ
+ * @retval ��
+ */
+void lcd_draw_hline(uint16_t x, uint16_t y, uint16_t len, uint16_t color)
+{
+ if ((len == 0) || (x > lcddev.width) || (y > lcddev.height))return;
+
+ lcd_fill(x, y, x + len - 1, y, color);
+}
+
+/**
+ * @brief ������
+ * @param x1,y1: �������
+ * @param x2,y2: �յ�����
+ * @param color: ���ε���ɫ
+ * @retval ��
+ */
+void lcd_draw_rectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color)
+{
+ lcd_draw_line(x1, y1, x2, y1, color);
+ lcd_draw_line(x1, y1, x1, y2, color);
+ lcd_draw_line(x1, y2, x2, y2, color);
+ lcd_draw_line(x2, y1, x2, y2, color);
+}
+
+/**
+ * @brief ��Բ
+ * @param x,y : Բ��������
+ * @param r : �뾶
+ * @param color: Բ����ɫ
+ * @retval ��
+ */
+void lcd_draw_circle(uint16_t x0, uint16_t y0, uint8_t r, uint16_t color)
+{
+ int a, b;
+ int di;
+ a = 0;
+ b = r;
+ di = 3 - (r << 1); /* �ж��¸���λ�õı�־ */
+
+ while (a <= b)
+ {
+ lcd_draw_point(x0 + a, y0 - b, color); /* 5 */
+ lcd_draw_point(x0 + b, y0 - a, color); /* 0 */
+ lcd_draw_point(x0 + b, y0 + a, color); /* 4 */
+ lcd_draw_point(x0 + a, y0 + b, color); /* 6 */
+ lcd_draw_point(x0 - a, y0 + b, color); /* 1 */
+ lcd_draw_point(x0 - b, y0 + a, color);
+ lcd_draw_point(x0 - a, y0 - b, color); /* 2 */
+ lcd_draw_point(x0 - b, y0 - a, color); /* 7 */
+ a++;
+
+ /* ʹ��Bresenham�㷨��Բ */
+ if (di < 0)
+ {
+ di += 4 * a + 6;
+ }
+ else
+ {
+ di += 10 + 4 * (a - b);
+ b--;
+ }
+ }
+}
+
+/**
+ * @brief ���ʵ��Բ
+ * @param x,y: Բ��������
+ * @param r : �뾶
+ * @param color: Բ����ɫ
+ * @retval ��
+ */
+void lcd_fill_circle(uint16_t x, uint16_t y, uint16_t r, uint16_t color)
+{
+ uint32_t i;
+ uint32_t imax = ((uint32_t)r * 707) / 1000 + 1;
+ uint32_t sqmax = (uint32_t)r * (uint32_t)r + (uint32_t)r / 2;
+ uint32_t xr = r;
+
+ lcd_draw_hline(x - r, y, 2 * r, color);
+
+ for (i = 1; i <= imax; i++)
+ {
+ if ((i * i + xr * xr) > sqmax)
+ {
+ /* draw lines from outside */
+ if (xr > imax)
+ {
+ lcd_draw_hline (x - i + 1, y + xr, 2 * (i - 1), color);
+ lcd_draw_hline (x - i + 1, y - xr, 2 * (i - 1), color);
+ }
+
+ xr--;
+ }
+
+ /* draw lines from inside (center) */
+ lcd_draw_hline(x - xr, y + i, 2 * xr, color);
+ lcd_draw_hline(x - xr, y - i, 2 * xr, color);
+ }
+}
+
+/**
+ * @brief ��ָ��λ����ʾһ���ַ�
+ * @param x,y : ����
+ * @param chr : Ҫ��ʾ���ַ�:" "--->"~"
+ * @param size : �����С 12/16/24/32
+ * @param mode : ���ӷ�ʽ(1); �ǵ��ӷ�ʽ(0);
+ * @param color : �ַ�����ɫ;
+ * @retval ��
+ */
+void lcd_show_char(uint16_t x, uint16_t y, char chr, uint8_t size, uint8_t mode, uint16_t color)
+{
+ uint8_t temp, t1, t;
+ uint16_t y0 = y;
+ uint8_t csize = 0;
+ uint8_t *pfont = 0;
+
+ csize = (size / 8 + ((size % 8) ? 1 : 0)) * (size / 2); /* �õ�����һ���ַ���Ӧ������ռ���ֽ��� */
+ chr = chr - ' '; /* �õ�ƫ�ƺ��ֵ��ASCII�ֿ��Ǵӿո�ʼȡģ������-' '���Ƕ�Ӧ�ַ����ֿ⣩ */
+
+ switch (size)
+ {
+ case 12:
+ pfont = (uint8_t *)asc2_1206[chr]; /* ����1206���� */
+ break;
+
+ case 16:
+ pfont = (uint8_t *)asc2_1608[chr]; /* ����1608���� */
+ break;
+
+ case 24:
+ pfont = (uint8_t *)asc2_2412[chr]; /* ����2412���� */
+ break;
+
+ case 32:
+ pfont = (uint8_t *)asc2_3216[chr]; /* ����3216���� */
+ break;
+
+ default:
+ return ;
+ }
+
+ for (t = 0; t < csize; t++)
+ {
+ temp = pfont[t]; /* ��ȡ�ַ��ĵ������� */
+
+ for (t1 = 0; t1 < 8; t1++) /* һ���ֽ�8���� */
+ {
+ if (temp & 0x80) /* ��Ч��,��Ҫ��ʾ */
+ {
+ lcd_draw_point(x, y, color); /* �������,Ҫ��ʾ����� */
+ }
+ else if (mode == 0) /* ��Ч��,����ʾ */
+ {
+ lcd_draw_point(x, y, g_back_color); /* ������ɫ,�൱������㲻��ʾ(ע�ⱳ��ɫ��ȫ�ֱ�������) */
+ }
+
+ temp <<= 1; /* ��λ, �Ա��ȡ��һ��λ��״̬ */
+ y++;
+
+ if (y >= lcddev.height)return; /* �������� */
+
+ if ((y - y0) == size) /* ��ʾ��һ����? */
+ {
+ y = y0; /* y���긴λ */
+ x++; /* x������� */
+
+ if (x >= lcddev.width)return; /* x���곬������ */
+
+ break;
+ }
+ }
+ }
+}
+
+/**
+ * @brief ƽ������, m^n
+ * @param m: ����
+ * @param n: ָ��
+ * @retval m��n�η�
+ */
+static uint32_t lcd_pow(uint8_t m, uint8_t n)
+{
+ uint32_t result = 1;
+
+ while (n--)result *= m;
+
+ return result;
+}
+
+/**
+ * @brief ��ʾlen������
+ * @param x,y : ��ʼ����
+ * @param num : ��ֵ(0 ~ 2^32)
+ * @param len : ��ʾ���ֵ�λ��
+ * @param size: ѡ������ 12/16/24/32
+ * @param color : ���ֵ���ɫ;
+ * @retval ��
+ */
+void lcd_show_num(uint16_t x, uint16_t y, uint32_t num, uint8_t len, uint8_t size, uint16_t color)
+{
+ uint8_t t, temp;
+ uint8_t enshow = 0;
+
+ for (t = 0; t < len; t++) /* ������ʾλ��Ñ�� */
+ {
+ temp = (num / lcd_pow(10, len - t - 1)) % 10; /* ��ȡ��Ӧλ������ */
+
+ if (enshow == 0 && t < (len - 1)) /* û��ʹ����ʾ,�һ���λҪ��ʾ */
+ {
+ if (temp == 0)
+ {
+ lcd_show_char(x + (size / 2)*t, y, ' ', size, 0, color);/* ��ʾ�ո�,ռλ */
+ continue; /* �����¸�һλ */
+ }
+ else
+ {
+ enshow = 1; /* ʹ����ʾ */
+ }
+
+ }
+
+ lcd_show_char(x + (size / 2)*t, y, temp + '0', size, 0, color); /* ��ʾ�ַ� */
+ }
+}
+
+/**
+ * @brief ��չ��ʾlen������(��λ��0Ҳ��ʾ)
+ * @param x,y : ��ʼ����
+ * @param num : ��ֵ(0 ~ 2^32)
+ * @param len : ��ʾ���ֵ�λ��
+ * @param size: ѡ������ 12/16/24/32
+ * @param mode: ��ʾģʽ
+ * [7]:0,�����;1,���0.
+ * [6:1]:����
+ * [0]:0,�ǵ�����ʾ;1,������ʾ.
+ * @param color : ���ֵ���ɫ;
+ * @retval ��
+ */
+void lcd_show_xnum(uint16_t x, uint16_t y, uint32_t num, uint8_t len, uint8_t size, uint8_t mode, uint16_t color)
+{
+ uint8_t t, temp;
+ uint8_t enshow = 0;
+
+ for (t = 0; t < len; t++) /* ������ʾλ��Ñ�� */
+ {
+ temp = (num / lcd_pow(10, len - t - 1)) % 10; /* ��ȡ��Ӧλ������ */
+
+ if (enshow == 0 && t < (len - 1)) /* û��ʹ����ʾ,�һ���λҪ��ʾ */
+ {
+ if (temp == 0)
+ {
+ if (mode & 0X80) /* ��λ��Ҫ���0 */
+ {
+ lcd_show_char(x + (size / 2)*t, y, '0', size, mode & 0X01, color); /* ��0ռλ */
+ }
+ else
+ {
+ lcd_show_char(x + (size / 2)*t, y, ' ', size, mode & 0X01, color); /* �ÿո�ռλ */
+ }
+
+ continue;
+ }
+ else
+ {
+ enshow = 1; /* ʹ����ʾ */
+ }
+
+ }
+
+ lcd_show_char(x + (size / 2)*t, y, temp + '0', size, mode & 0X01, color);
+ }
+}
+
+/**
+ * @brief ��ʾ�ַ���
+ * @param x,y : ��ʼ����
+ * @param width,height: �����С
+ * @param size : ѡ������ 12/16/24/32
+ * @param p : �ַ����׵�ַ
+ * @param color : �ַ�������ɫ;
+ * @retval ��
+ */
+void lcd_show_string(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint8_t size, char *p, uint16_t color)
+{
+ uint8_t x0 = x;
+ width += x;
+ height += y;
+
+ while ((*p <= '~') && (*p >= ' ')) /* �ж��Dz��ǷǷ��ַ�! */
+ {
+ if (x >= width)
+ {
+ x = x0;
+ y += size;
+ }
+
+ if (y >= height)break; /* �˳� */
+
+ lcd_show_char(x, y, *p, size, 0, color);
+ x += size / 2;
+ p++;
+ }
+}
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/main.c b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/main.c
new file mode 100644
index 0000000..0b69d90
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/main.c
@@ -0,0 +1,217 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2024 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software component is licensed by ST under BSD 3-Clause license,
+ * the "License"; You may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ * opensource.org/licenses/BSD-3-Clause
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+#include "gpio.h"
+#include "lcd.h"
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+/* Private typedef -----------------------------------------------------------*/
+/* USER CODE BEGIN PTD */
+
+/* USER CODE END PTD */
+
+/* Private define ------------------------------------------------------------*/
+/* USER CODE BEGIN PD */
+/* USER CODE END PD */
+
+/* Private macro -------------------------------------------------------------*/
+/* USER CODE BEGIN PM */
+
+/* USER CODE END PM */
+
+/* Private variables ---------------------------------------------------------*/
+
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+/* USER CODE BEGIN PFP */
+
+/* USER CODE END PFP */
+
+/* Private user code ---------------------------------------------------------*/
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+/**
+ * @brief The application entry point.
+ * @retval int
+ */
+int main(void)
+{
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ lcd_init();
+ uint8_t x = 0;
+ while (1)
+ {
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ switch (x) {
+ case 0: lcd_clear(WHITE); g_back_color = WHITE; break;
+ case 1: lcd_clear(BLACK); g_back_color = BLACK; break;
+ case 2: lcd_clear(BLUE); g_back_color = BLUE; break;
+ case 3: lcd_clear(RED); g_back_color = RED; break;
+ case 4: lcd_clear(MAGENTA); g_back_color = MAGENTA; break;
+ case 5: lcd_clear(GREEN); g_back_color = GREEN; break;
+ case 6: lcd_clear(CYAN); g_back_color = CYAN; break;
+ case 7: lcd_clear(YELLOW); g_back_color = YELLOW; break;
+ case 8: lcd_clear(BRRED); g_back_color = BRRED; break;
+ case 9: lcd_clear(GRAY); g_back_color = GRAY; break;
+ case 10: lcd_clear(LGRAY); g_back_color = LGRAY; break;
+ case 11: lcd_clear(BROWN); g_back_color = BROWN; break;
+ }//end of switch
+
+ lcd_show_string(30, 40, 200, 24, 24, "Mini STM32 ^_^", RED);
+ lcd_show_string(30, 70, 200, 16, 16, "TFTLCD TEST", RED);
+ /* Code of showing address of GPIOA->CRL (represented in hexadecimal) BEGIN */
+ // lcd_show_string(30, 90, 200, 16, 16, "addr = 0x", RED);
+ lcd_show_string(30, 90, 100, 16, 16, "addr = 0x", RED);
+ char hex[17] = "0123456789ABCDEF";
+ int i = 7, x = (uint32_t) &GPIOA->CRL;
+ char num[i + 2];
+ while (i >= 0) {
+ num[i--] = hex[x & 0xF];
+ x = x >> 4;
+ }
+ lcd_show_string(102, 90, 60, 16, 16, num, RED);
+ /* Code of showing address of GPIOA->CRL (represented in hexadecimal) END */
+
+ lcd_draw_rectangle(30, 150, 210, 190, BLACK);
+ lcd_fill(31, 151, 209, 189, YELLOW);
+
+ x++;
+ if (x == 12)
+ x = 0;
+
+ HAL_Delay(2000);
+ }
+ /* USER CODE END 3 */
+}
+
+/**
+ * @brief System Clock Configuration
+ * @retval None
+ */
+void SystemClock_Config(void)
+{
+ RCC_OscInitTypeDef RCC_OscInitStruct = {0};
+ RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
+
+ /** Initializes the RCC Oscillators according to the specified parameters
+ * in the RCC_OscInitTypeDef structure.
+ */
+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
+ RCC_OscInitStruct.HSIState = RCC_HSI_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
+ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /** Initializes the CPU, AHB and APB buses clocks
+ */
+ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
+ |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
+ RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
+ RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/**
+ * @brief This function is executed in case of error occurrence.
+ * @retval None
+ */
+void Error_Handler(void)
+{
+ /* USER CODE BEGIN Error_Handler_Debug */
+ /* User can add his own implementation to report the HAL error return state */
+ __disable_irq();
+ while (1)
+ {
+ }
+ /* USER CODE END Error_Handler_Debug */
+}
+
+#ifdef USE_FULL_ASSERT
+/**
+ * @brief Reports the name of the source file and the source line number
+ * where the assert_param error has occurred.
+ * @param file: pointer to the source file name
+ * @param line: assert_param error line source number
+ * @retval None
+ */
+void assert_failed(uint8_t *file, uint32_t line)
+{
+ /* USER CODE BEGIN 6 */
+ /* User can add his own implementation to report the file name and line number,
+ ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
+ /* USER CODE END 6 */
+}
+#endif /* USE_FULL_ASSERT */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Src/stm32f1xx_hal_msp.c b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/stm32f1xx_hal_msp.c
similarity index 100%
rename from CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Src/stm32f1xx_hal_msp.c
rename to CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/stm32f1xx_hal_msp.c
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Src/stm32f1xx_it.c b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/stm32f1xx_it.c
similarity index 100%
rename from CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Src/stm32f1xx_it.c
rename to CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/stm32f1xx_it.c
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Src/syscalls.c b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/syscalls.c
similarity index 100%
rename from CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Src/syscalls.c
rename to CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/syscalls.c
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Src/sysmem.c b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/sysmem.c
similarity index 100%
rename from CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Src/sysmem.c
rename to CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/sysmem.c
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Src/system_stm32f1xx.c b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/system_stm32f1xx.c
similarity index 100%
rename from CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Src/system_stm32f1xx.c
rename to CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Src/system_stm32f1xx.c
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Startup/startup_stm32f103rctx.s b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Startup/startup_stm32f103rctx.s
similarity index 100%
rename from CS301 Embedded System and Microcomputer Principle/Lab/lab3/uart/Core/Startup/startup_stm32f103rctx.s
rename to CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Core/Startup/startup_stm32f103rctx.s
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/gpio.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/gpio.cyclo
new file mode 100644
index 0000000..1a0fdbe
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/gpio.cyclo
@@ -0,0 +1 @@
+../Core/Src/gpio.c:41:6:MX_GPIO_Init 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/gpio.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/gpio.d
new file mode 100644
index 0000000..2087e9e
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/gpio.d
@@ -0,0 +1,47 @@
+Core/Src/gpio.o: ../Core/Src/gpio.c ../Core/Inc/gpio.h ../Core/Inc/main.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Core/Inc/gpio.h:
+../Core/Inc/main.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/gpio.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/gpio.o
new file mode 100644
index 0000000..96dd9cc
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/gpio.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/gpio.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/gpio.su
new file mode 100644
index 0000000..a589913
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/gpio.su
@@ -0,0 +1 @@
+../Core/Src/gpio.c:41:6:MX_GPIO_Init 40 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/lcd.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/lcd.cyclo
new file mode 100644
index 0000000..77ecef4
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/lcd.cyclo
@@ -0,0 +1,29 @@
+../Core/Src/lcd.c:61:6:lcd_wr_xdata 1
+../Core/Src/lcd.c:76:37:lcd_wr_regno 1
+../Core/Src/lcd.c:92:6:lcd_write_reg 1
+../Core/Src/lcd.c:104:13:lcd_opt_delay 2
+../Core/Src/lcd.c:114:17:lcd_rd_data 1
+../Core/Src/lcd.c:149:37:lcd_write_ram_prepare 1
+../Core/Src/lcd.c:159:10:lcd_read_point 6
+../Core/Src/lcd.c:202:6:lcd_display_on 2
+../Core/Src/lcd.c:219:6:lcd_display_off 2
+../Core/Src/lcd.c:236:6:lcd_set_cursor 4
+../Core/Src/lcd.c:297:6:lcd_scan_dir 29
+../Core/Src/lcd.c:456:6:lcd_draw_point 1
+../Core/Src/lcd.c:468:6:lcd_ssd_backlight_set 1
+../Core/Src/lcd.c:484:6:lcd_display_dir 12
+../Core/Src/lcd.c:574:6:lcd_set_window 4
+../Core/Src/lcd.c:636:6:lcd_init 16
+../Core/Src/lcd.c:2402:6:lcd_clear 2
+../Core/Src/lcd.c:2435:6:lcd_fill 3
+../Core/Src/lcd.c:2459:6:lcd_color_fill 3
+../Core/Src/lcd.c:2485:6:lcd_draw_line 9
+../Core/Src/lcd.c:2541:6:lcd_draw_hline 4
+../Core/Src/lcd.c:2555:6:lcd_draw_rectangle 1
+../Core/Src/lcd.c:2570:6:lcd_draw_circle 3
+../Core/Src/lcd.c:2610:6:lcd_fill_circle 4
+../Core/Src/lcd.c:2648:6:lcd_show_char 12
+../Core/Src/lcd.c:2719:17:lcd_pow 2
+../Core/Src/lcd.c:2737:6:lcd_show_num 5
+../Core/Src/lcd.c:2777:6:lcd_show_xnum 6
+../Core/Src/lcd.c:2821:6:lcd_show_string 5
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/lcd.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/lcd.d
new file mode 100644
index 0000000..1259ad4
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/lcd.d
@@ -0,0 +1,49 @@
+Core/Src/lcd.o: ../Core/Src/lcd.c ../Core/Inc/lcd.h ../Core/Inc/main.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h \
+ ../Core/Inc/font.h
+../Core/Inc/lcd.h:
+../Core/Inc/main.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
+../Core/Inc/font.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/lcd.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/lcd.o
new file mode 100644
index 0000000..07fe74a
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/lcd.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/lcd.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/lcd.su
new file mode 100644
index 0000000..ffa92f6
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/lcd.su
@@ -0,0 +1,29 @@
+../Core/Src/lcd.c:61:6:lcd_wr_xdata 16 static
+../Core/Src/lcd.c:76:37:lcd_wr_regno 16 static
+../Core/Src/lcd.c:92:6:lcd_write_reg 24 static
+../Core/Src/lcd.c:104:13:lcd_opt_delay 16 static
+../Core/Src/lcd.c:114:17:lcd_rd_data 32 static
+../Core/Src/lcd.c:149:37:lcd_write_ram_prepare 16 static
+../Core/Src/lcd.c:159:10:lcd_read_point 32 static
+../Core/Src/lcd.c:202:6:lcd_display_on 16 static
+../Core/Src/lcd.c:219:6:lcd_display_off 16 static
+../Core/Src/lcd.c:236:6:lcd_set_cursor 40 static
+../Core/Src/lcd.c:297:6:lcd_scan_dir 48 static
+../Core/Src/lcd.c:456:6:lcd_draw_point 24 static
+../Core/Src/lcd.c:468:6:lcd_ssd_backlight_set 32 static
+../Core/Src/lcd.c:484:6:lcd_display_dir 16 static
+../Core/Src/lcd.c:574:6:lcd_set_window 48 static
+../Core/Src/lcd.c:636:6:lcd_init 368 static
+../Core/Src/lcd.c:2402:6:lcd_clear 32 static
+../Core/Src/lcd.c:2435:6:lcd_fill 32 static
+../Core/Src/lcd.c:2459:6:lcd_color_fill 40 static
+../Core/Src/lcd.c:2485:6:lcd_draw_line 64 static
+../Core/Src/lcd.c:2541:6:lcd_draw_hline 32 static
+../Core/Src/lcd.c:2555:6:lcd_draw_rectangle 32 static
+../Core/Src/lcd.c:2570:6:lcd_draw_circle 40 static
+../Core/Src/lcd.c:2610:6:lcd_fill_circle 40 static
+../Core/Src/lcd.c:2648:6:lcd_show_char 40 static
+../Core/Src/lcd.c:2719:17:lcd_pow 24 static
+../Core/Src/lcd.c:2737:6:lcd_show_num 48 static
+../Core/Src/lcd.c:2777:6:lcd_show_xnum 48 static
+../Core/Src/lcd.c:2821:6:lcd_show_string 40 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/main.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/main.cyclo
new file mode 100644
index 0000000..419a3dc
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/main.cyclo
@@ -0,0 +1,3 @@
+../Core/Src/main.c:64:5:main 15
+../Core/Src/main.c:147:6:SystemClock_Config 3
+../Core/Src/main.c:189:6:Error_Handler 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/main.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/main.d
new file mode 100644
index 0000000..8c9debc
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/main.d
@@ -0,0 +1,50 @@
+Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h \
+ ../Core/Inc/gpio.h ../Core/Inc/main.h ../Core/Inc/lcd.h
+../Core/Inc/main.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
+../Core/Inc/gpio.h:
+../Core/Inc/main.h:
+../Core/Inc/lcd.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/main.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/main.o
new file mode 100644
index 0000000..92e7c44
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/main.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/main.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/main.su
new file mode 100644
index 0000000..09a9f3d
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/main.su
@@ -0,0 +1,3 @@
+../Core/Src/main.c:64:5:main 88 dynamic
+../Core/Src/main.c:147:6:SystemClock_Config 72 static
+../Core/Src/main.c:189:6:Error_Handler 4 static,ignoring_inline_asm
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_hal_msp.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_hal_msp.cyclo
new file mode 100644
index 0000000..75659d6
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_hal_msp.cyclo
@@ -0,0 +1 @@
+../Core/Src/stm32f1xx_hal_msp.c:64:6:HAL_MspInit 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_hal_msp.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_hal_msp.d
new file mode 100644
index 0000000..83d84fe
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_hal_msp.d
@@ -0,0 +1,46 @@
+Core/Src/stm32f1xx_hal_msp.o: ../Core/Src/stm32f1xx_hal_msp.c \
+ ../Core/Inc/main.h ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Core/Inc/main.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_hal_msp.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_hal_msp.o
new file mode 100644
index 0000000..3f80c5f
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_hal_msp.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_hal_msp.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_hal_msp.su
new file mode 100644
index 0000000..92a88c0
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_hal_msp.su
@@ -0,0 +1 @@
+../Core/Src/stm32f1xx_hal_msp.c:64:6:HAL_MspInit 24 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_it.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_it.cyclo
new file mode 100644
index 0000000..06f19c3
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_it.cyclo
@@ -0,0 +1,9 @@
+../Core/Src/stm32f1xx_it.c:70:6:NMI_Handler 1
+../Core/Src/stm32f1xx_it.c:85:6:HardFault_Handler 1
+../Core/Src/stm32f1xx_it.c:100:6:MemManage_Handler 1
+../Core/Src/stm32f1xx_it.c:115:6:BusFault_Handler 1
+../Core/Src/stm32f1xx_it.c:130:6:UsageFault_Handler 1
+../Core/Src/stm32f1xx_it.c:145:6:SVC_Handler 1
+../Core/Src/stm32f1xx_it.c:158:6:DebugMon_Handler 1
+../Core/Src/stm32f1xx_it.c:171:6:PendSV_Handler 1
+../Core/Src/stm32f1xx_it.c:184:6:SysTick_Handler 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_it.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_it.d
new file mode 100644
index 0000000..1046bce
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_it.d
@@ -0,0 +1,48 @@
+Core/Src/stm32f1xx_it.o: ../Core/Src/stm32f1xx_it.c ../Core/Inc/main.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h \
+ ../Core/Inc/stm32f1xx_it.h
+../Core/Inc/main.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
+../Core/Inc/stm32f1xx_it.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_it.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_it.o
new file mode 100644
index 0000000..b7f6938
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_it.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_it.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_it.su
new file mode 100644
index 0000000..94b0ba7
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/stm32f1xx_it.su
@@ -0,0 +1,9 @@
+../Core/Src/stm32f1xx_it.c:70:6:NMI_Handler 4 static
+../Core/Src/stm32f1xx_it.c:85:6:HardFault_Handler 4 static
+../Core/Src/stm32f1xx_it.c:100:6:MemManage_Handler 4 static
+../Core/Src/stm32f1xx_it.c:115:6:BusFault_Handler 4 static
+../Core/Src/stm32f1xx_it.c:130:6:UsageFault_Handler 4 static
+../Core/Src/stm32f1xx_it.c:145:6:SVC_Handler 4 static
+../Core/Src/stm32f1xx_it.c:158:6:DebugMon_Handler 4 static
+../Core/Src/stm32f1xx_it.c:171:6:PendSV_Handler 4 static
+../Core/Src/stm32f1xx_it.c:184:6:SysTick_Handler 8 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/subdir.mk b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/subdir.mk
new file mode 100644
index 0000000..71e1f12
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/subdir.mk
@@ -0,0 +1,48 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Core/Src/gpio.c \
+../Core/Src/lcd.c \
+../Core/Src/main.c \
+../Core/Src/stm32f1xx_hal_msp.c \
+../Core/Src/stm32f1xx_it.c \
+../Core/Src/syscalls.c \
+../Core/Src/sysmem.c \
+../Core/Src/system_stm32f1xx.c
+
+OBJS += \
+./Core/Src/gpio.o \
+./Core/Src/lcd.o \
+./Core/Src/main.o \
+./Core/Src/stm32f1xx_hal_msp.o \
+./Core/Src/stm32f1xx_it.o \
+./Core/Src/syscalls.o \
+./Core/Src/sysmem.o \
+./Core/Src/system_stm32f1xx.o
+
+C_DEPS += \
+./Core/Src/gpio.d \
+./Core/Src/lcd.d \
+./Core/Src/main.d \
+./Core/Src/stm32f1xx_hal_msp.d \
+./Core/Src/stm32f1xx_it.d \
+./Core/Src/syscalls.d \
+./Core/Src/sysmem.d \
+./Core/Src/system_stm32f1xx.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Core/Src/%.o Core/Src/%.su Core/Src/%.cyclo: ../Core/Src/%.c Core/Src/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-Core-2f-Src
+
+clean-Core-2f-Src:
+ -$(RM) ./Core/Src/gpio.cyclo ./Core/Src/gpio.d ./Core/Src/gpio.o ./Core/Src/gpio.su ./Core/Src/lcd.cyclo ./Core/Src/lcd.d ./Core/Src/lcd.o ./Core/Src/lcd.su ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/stm32f1xx_hal_msp.cyclo ./Core/Src/stm32f1xx_hal_msp.d ./Core/Src/stm32f1xx_hal_msp.o ./Core/Src/stm32f1xx_hal_msp.su ./Core/Src/stm32f1xx_it.cyclo ./Core/Src/stm32f1xx_it.d ./Core/Src/stm32f1xx_it.o ./Core/Src/stm32f1xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32f1xx.cyclo ./Core/Src/system_stm32f1xx.d ./Core/Src/system_stm32f1xx.o ./Core/Src/system_stm32f1xx.su
+
+.PHONY: clean-Core-2f-Src
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/syscalls.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/syscalls.cyclo
new file mode 100644
index 0000000..6cbfdd0
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/syscalls.cyclo
@@ -0,0 +1,18 @@
+../Core/Src/syscalls.c:44:6:initialise_monitor_handles 1
+../Core/Src/syscalls.c:48:5:_getpid 1
+../Core/Src/syscalls.c:53:5:_kill 1
+../Core/Src/syscalls.c:61:6:_exit 1
+../Core/Src/syscalls.c:67:27:_read 2
+../Core/Src/syscalls.c:80:27:_write 2
+../Core/Src/syscalls.c:92:5:_close 1
+../Core/Src/syscalls.c:99:5:_fstat 1
+../Core/Src/syscalls.c:106:5:_isatty 1
+../Core/Src/syscalls.c:112:5:_lseek 1
+../Core/Src/syscalls.c:120:5:_open 1
+../Core/Src/syscalls.c:128:5:_wait 1
+../Core/Src/syscalls.c:135:5:_unlink 1
+../Core/Src/syscalls.c:142:5:_times 1
+../Core/Src/syscalls.c:148:5:_stat 1
+../Core/Src/syscalls.c:155:5:_link 1
+../Core/Src/syscalls.c:163:5:_fork 1
+../Core/Src/syscalls.c:169:5:_execve 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/syscalls.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/syscalls.d
new file mode 100644
index 0000000..8667c70
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/syscalls.d
@@ -0,0 +1 @@
+Core/Src/syscalls.o: ../Core/Src/syscalls.c
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/syscalls.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/syscalls.o
new file mode 100644
index 0000000..91123e2
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/syscalls.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/syscalls.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/syscalls.su
new file mode 100644
index 0000000..50b547a
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/syscalls.su
@@ -0,0 +1,18 @@
+../Core/Src/syscalls.c:44:6:initialise_monitor_handles 4 static
+../Core/Src/syscalls.c:48:5:_getpid 4 static
+../Core/Src/syscalls.c:53:5:_kill 16 static
+../Core/Src/syscalls.c:61:6:_exit 16 static
+../Core/Src/syscalls.c:67:27:_read 32 static
+../Core/Src/syscalls.c:80:27:_write 32 static
+../Core/Src/syscalls.c:92:5:_close 16 static
+../Core/Src/syscalls.c:99:5:_fstat 16 static
+../Core/Src/syscalls.c:106:5:_isatty 16 static
+../Core/Src/syscalls.c:112:5:_lseek 24 static
+../Core/Src/syscalls.c:120:5:_open 12 static
+../Core/Src/syscalls.c:128:5:_wait 16 static
+../Core/Src/syscalls.c:135:5:_unlink 16 static
+../Core/Src/syscalls.c:142:5:_times 16 static
+../Core/Src/syscalls.c:148:5:_stat 16 static
+../Core/Src/syscalls.c:155:5:_link 16 static
+../Core/Src/syscalls.c:163:5:_fork 8 static
+../Core/Src/syscalls.c:169:5:_execve 24 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/sysmem.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/sysmem.cyclo
new file mode 100644
index 0000000..0090c10
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/sysmem.cyclo
@@ -0,0 +1 @@
+../Core/Src/sysmem.c:53:7:_sbrk 3
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/sysmem.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/sysmem.d
new file mode 100644
index 0000000..74fecf9
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/sysmem.d
@@ -0,0 +1 @@
+Core/Src/sysmem.o: ../Core/Src/sysmem.c
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/sysmem.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/sysmem.o
new file mode 100644
index 0000000..bc3cce2
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/sysmem.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/sysmem.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/sysmem.su
new file mode 100644
index 0000000..12d5f17
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/sysmem.su
@@ -0,0 +1 @@
+../Core/Src/sysmem.c:53:7:_sbrk 32 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/system_stm32f1xx.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/system_stm32f1xx.cyclo
new file mode 100644
index 0000000..5896fc0
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/system_stm32f1xx.cyclo
@@ -0,0 +1,2 @@
+../Core/Src/system_stm32f1xx.c:176:6:SystemInit 1
+../Core/Src/system_stm32f1xx.c:225:6:SystemCoreClockUpdate 7
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/system_stm32f1xx.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/system_stm32f1xx.d
new file mode 100644
index 0000000..c83ad1e
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/system_stm32f1xx.d
@@ -0,0 +1,45 @@
+Core/Src/system_stm32f1xx.o: ../Core/Src/system_stm32f1xx.c \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/system_stm32f1xx.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/system_stm32f1xx.o
new file mode 100644
index 0000000..3ec3508
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/system_stm32f1xx.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/system_stm32f1xx.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/system_stm32f1xx.su
new file mode 100644
index 0000000..6a600c8
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Src/system_stm32f1xx.su
@@ -0,0 +1,2 @@
+../Core/Src/system_stm32f1xx.c:176:6:SystemInit 4 static
+../Core/Src/system_stm32f1xx.c:225:6:SystemCoreClockUpdate 24 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Startup/startup_stm32f103rctx.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Startup/startup_stm32f103rctx.d
new file mode 100644
index 0000000..4c76db5
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Startup/startup_stm32f103rctx.d
@@ -0,0 +1,2 @@
+Core/Startup/startup_stm32f103rctx.o: \
+ ../Core/Startup/startup_stm32f103rctx.s
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Startup/startup_stm32f103rctx.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Startup/startup_stm32f103rctx.o
new file mode 100644
index 0000000..b47b985
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Startup/startup_stm32f103rctx.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Startup/subdir.mk b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Startup/subdir.mk
new file mode 100644
index 0000000..0bf8bd0
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Core/Startup/subdir.mk
@@ -0,0 +1,27 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+S_SRCS += \
+../Core/Startup/startup_stm32f103rctx.s
+
+OBJS += \
+./Core/Startup/startup_stm32f103rctx.o
+
+S_DEPS += \
+./Core/Startup/startup_stm32f103rctx.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Core/Startup/%.o: ../Core/Startup/%.s Core/Startup/subdir.mk
+ arm-none-eabi-gcc -mcpu=cortex-m3 -g3 -DDEBUG -c -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" "$<"
+
+clean: clean-Core-2f-Startup
+
+clean-Core-2f-Startup:
+ -$(RM) ./Core/Startup/startup_stm32f103rctx.d ./Core/Startup/startup_stm32f103rctx.o
+
+.PHONY: clean-Core-2f-Startup
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.cyclo
new file mode 100644
index 0000000..9570d3e
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.cyclo
@@ -0,0 +1,25 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:142:19:HAL_Init 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:175:19:HAL_DeInit 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:200:13:HAL_MspInit 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:211:13:HAL_MspDeInit 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:234:26:HAL_InitTick 3
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:293:13:HAL_IncTick 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:304:17:HAL_GetTick 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:313:10:HAL_GetTickPrio 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:322:19:HAL_SetTickFreq 3
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:354:21:HAL_GetTickFreq 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:370:13:HAL_Delay 3
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:396:13:HAL_SuspendTick 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:412:13:HAL_ResumeTick 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:422:10:HAL_GetHalVersion 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:438:10:HAL_GetREVID 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:454:10:HAL_GetDEVID 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:463:10:HAL_GetUIDw0 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:472:10:HAL_GetUIDw1 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:481:10:HAL_GetUIDw2 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:490:6:HAL_DBGMCU_EnableDBGSleepMode 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:506:6:HAL_DBGMCU_DisableDBGSleepMode 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:536:6:HAL_DBGMCU_EnableDBGStopMode 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:552:6:HAL_DBGMCU_DisableDBGStopMode 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:568:6:HAL_DBGMCU_EnableDBGStandbyMode 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:584:6:HAL_DBGMCU_DisableDBGStandbyMode 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d
new file mode 100644
index 0000000..bec8f2f
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o
new file mode 100644
index 0000000..e35ca70
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su
new file mode 100644
index 0000000..e86124f
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su
@@ -0,0 +1,25 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:142:19:HAL_Init 8 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:175:19:HAL_DeInit 8 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:200:13:HAL_MspInit 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:211:13:HAL_MspDeInit 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:234:26:HAL_InitTick 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:293:13:HAL_IncTick 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:304:17:HAL_GetTick 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:313:10:HAL_GetTickPrio 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:322:19:HAL_SetTickFreq 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:354:21:HAL_GetTickFreq 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:370:13:HAL_Delay 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:396:13:HAL_SuspendTick 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:412:13:HAL_ResumeTick 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:422:10:HAL_GetHalVersion 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:438:10:HAL_GetREVID 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:454:10:HAL_GetDEVID 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:463:10:HAL_GetUIDw0 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:472:10:HAL_GetUIDw1 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:481:10:HAL_GetUIDw2 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:490:6:HAL_DBGMCU_EnableDBGSleepMode 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:506:6:HAL_DBGMCU_DisableDBGSleepMode 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:536:6:HAL_DBGMCU_EnableDBGStopMode 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:552:6:HAL_DBGMCU_DisableDBGStopMode 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:568:6:HAL_DBGMCU_EnableDBGStandbyMode 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:584:6:HAL_DBGMCU_DisableDBGStandbyMode 4 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.cyclo
new file mode 100644
index 0000000..1957771
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.cyclo
@@ -0,0 +1,29 @@
+../Drivers/CMSIS/Include/core_cm3.h:1480:22:__NVIC_SetPriorityGrouping 1
+../Drivers/CMSIS/Include/core_cm3.h:1499:26:__NVIC_GetPriorityGrouping 1
+../Drivers/CMSIS/Include/core_cm3.h:1511:22:__NVIC_EnableIRQ 2
+../Drivers/CMSIS/Include/core_cm3.h:1547:22:__NVIC_DisableIRQ 2
+../Drivers/CMSIS/Include/core_cm3.h:1566:26:__NVIC_GetPendingIRQ 2
+../Drivers/CMSIS/Include/core_cm3.h:1585:22:__NVIC_SetPendingIRQ 2
+../Drivers/CMSIS/Include/core_cm3.h:1600:22:__NVIC_ClearPendingIRQ 2
+../Drivers/CMSIS/Include/core_cm3.h:1617:26:__NVIC_GetActive 2
+../Drivers/CMSIS/Include/core_cm3.h:1639:22:__NVIC_SetPriority 2
+../Drivers/CMSIS/Include/core_cm3.h:1661:26:__NVIC_GetPriority 2
+../Drivers/CMSIS/Include/core_cm3.h:1686:26:NVIC_EncodePriority 2
+../Drivers/CMSIS/Include/core_cm3.h:1713:22:NVIC_DecodePriority 2
+../Drivers/CMSIS/Include/core_cm3.h:1762:34:__NVIC_SystemReset 1
+../Drivers/CMSIS/Include/core_cm3.h:1834:26:SysTick_Config 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:143:6:HAL_NVIC_SetPriorityGrouping 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:165:6:HAL_NVIC_SetPriority 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:187:6:HAL_NVIC_EnableIRQ 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:203:6:HAL_NVIC_DisableIRQ 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:216:6:HAL_NVIC_SystemReset 0
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:229:10:HAL_SYSTICK_Config 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:344:10:HAL_NVIC_GetPriorityGrouping 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:371:6:HAL_NVIC_GetPriority 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:386:6:HAL_NVIC_SetPendingIRQ 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:404:10:HAL_NVIC_GetPendingIRQ 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:420:6:HAL_NVIC_ClearPendingIRQ 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:437:10:HAL_NVIC_GetActive 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:454:6:HAL_SYSTICK_CLKSourceConfig 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:472:6:HAL_SYSTICK_IRQHandler 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:481:13:HAL_SYSTICK_Callback 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d
new file mode 100644
index 0000000..a884edc
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o
new file mode 100644
index 0000000..711dc5f
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.su
new file mode 100644
index 0000000..cb0488b
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.su
@@ -0,0 +1,29 @@
+../Drivers/CMSIS/Include/core_cm3.h:1480:22:__NVIC_SetPriorityGrouping 24 static
+../Drivers/CMSIS/Include/core_cm3.h:1499:26:__NVIC_GetPriorityGrouping 4 static
+../Drivers/CMSIS/Include/core_cm3.h:1511:22:__NVIC_EnableIRQ 16 static
+../Drivers/CMSIS/Include/core_cm3.h:1547:22:__NVIC_DisableIRQ 16 static,ignoring_inline_asm
+../Drivers/CMSIS/Include/core_cm3.h:1566:26:__NVIC_GetPendingIRQ 16 static
+../Drivers/CMSIS/Include/core_cm3.h:1585:22:__NVIC_SetPendingIRQ 16 static
+../Drivers/CMSIS/Include/core_cm3.h:1600:22:__NVIC_ClearPendingIRQ 16 static
+../Drivers/CMSIS/Include/core_cm3.h:1617:26:__NVIC_GetActive 16 static
+../Drivers/CMSIS/Include/core_cm3.h:1639:22:__NVIC_SetPriority 16 static
+../Drivers/CMSIS/Include/core_cm3.h:1661:26:__NVIC_GetPriority 16 static
+../Drivers/CMSIS/Include/core_cm3.h:1686:26:NVIC_EncodePriority 40 static
+../Drivers/CMSIS/Include/core_cm3.h:1713:22:NVIC_DecodePriority 40 static
+../Drivers/CMSIS/Include/core_cm3.h:1762:34:__NVIC_SystemReset 4 static,ignoring_inline_asm
+../Drivers/CMSIS/Include/core_cm3.h:1834:26:SysTick_Config 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:143:6:HAL_NVIC_SetPriorityGrouping 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:165:6:HAL_NVIC_SetPriority 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:187:6:HAL_NVIC_EnableIRQ 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:203:6:HAL_NVIC_DisableIRQ 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:216:6:HAL_NVIC_SystemReset 8 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:229:10:HAL_SYSTICK_Config 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:344:10:HAL_NVIC_GetPriorityGrouping 8 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:371:6:HAL_NVIC_GetPriority 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:386:6:HAL_NVIC_SetPendingIRQ 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:404:10:HAL_NVIC_GetPendingIRQ 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:420:6:HAL_NVIC_ClearPendingIRQ 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:437:10:HAL_NVIC_GetActive 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:454:6:HAL_SYSTICK_CLKSourceConfig 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:472:6:HAL_SYSTICK_IRQHandler 8 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:481:13:HAL_SYSTICK_Callback 4 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.cyclo
new file mode 100644
index 0000000..a9560f9
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.cyclo
@@ -0,0 +1,13 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:143:19:HAL_DMA_Init 3
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:220:19:HAL_DMA_DeInit 3
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:319:19:HAL_DMA_Start 3
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:362:19:HAL_DMA_Start_IT 4
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:416:19:HAL_DMA_Abort 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:457:19:HAL_DMA_Abort_IT 26
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:502:19:HAL_DMA_PollForTransfer 102
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:603:6:HAL_DMA_IRQHandler 58
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:693:19:HAL_DMA_RegisterCallback 7
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:744:19:HAL_DMA_UnRegisterCallback 8
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:820:22:HAL_DMA_GetState 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:832:10:HAL_DMA_GetError 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:858:13:DMA_SetConfig 2
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d
new file mode 100644
index 0000000..6e26c6b
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o
new file mode 100644
index 0000000..243492b
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.su
new file mode 100644
index 0000000..63b0da8
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.su
@@ -0,0 +1,13 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:143:19:HAL_DMA_Init 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:220:19:HAL_DMA_DeInit 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:319:19:HAL_DMA_Start 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:362:19:HAL_DMA_Start_IT 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:416:19:HAL_DMA_Abort 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:457:19:HAL_DMA_Abort_IT 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:502:19:HAL_DMA_PollForTransfer 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:603:6:HAL_DMA_IRQHandler 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:693:19:HAL_DMA_RegisterCallback 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:744:19:HAL_DMA_UnRegisterCallback 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:820:22:HAL_DMA_GetState 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:832:10:HAL_DMA_GetError 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:858:13:DMA_SetConfig 24 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.cyclo
new file mode 100644
index 0000000..cf51798
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.cyclo
@@ -0,0 +1,9 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:143:19:HAL_EXTI_SetConfigLine 9
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:238:19:HAL_EXTI_GetConfigLine 9
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:317:19:HAL_EXTI_ClearConfigLine 4
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:370:19:HAL_EXTI_RegisterCallback 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:395:19:HAL_EXTI_GetHandle 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:435:6:HAL_EXTI_IRQHandler 3
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:467:10:HAL_EXTI_GetPending 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:499:6:HAL_EXTI_ClearPending 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:523:6:HAL_EXTI_GenerateSWI 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d
new file mode 100644
index 0000000..fd1378a
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o
new file mode 100644
index 0000000..b9db55c
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.su
new file mode 100644
index 0000000..337023f
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.su
@@ -0,0 +1,9 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:143:19:HAL_EXTI_SetConfigLine 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:238:19:HAL_EXTI_GetConfigLine 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:317:19:HAL_EXTI_ClearConfigLine 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:370:19:HAL_EXTI_RegisterCallback 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:395:19:HAL_EXTI_GetHandle 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:435:6:HAL_EXTI_IRQHandler 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:467:10:HAL_EXTI_GetPending 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:499:6:HAL_EXTI_ClearPending 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:523:6:HAL_EXTI_GenerateSWI 24 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.cyclo
new file mode 100644
index 0000000..b79e62a
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.cyclo
@@ -0,0 +1,14 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:168:19:HAL_FLASH_Program 7
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:267:19:HAL_FLASH_Program_IT 4
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:332:6:HAL_FLASH_IRQHandler 12
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:606:13:HAL_FLASH_EndOfOperationCallback 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:624:13:HAL_FLASH_OperationErrorCallback 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:657:19:HAL_FLASH_Unlock 3
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:695:19:HAL_FLASH_Lock 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:712:19:HAL_FLASH_OB_Unlock 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:732:19:HAL_FLASH_OB_Lock 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:745:6:HAL_FLASH_OB_Launch 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:774:10:HAL_FLASH_GetError 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:797:13:FLASH_Program_HalfWord 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:826:19:FLASH_WaitForLastOperation 9
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:914:13:FLASH_SetErrorCode 5
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d
new file mode 100644
index 0000000..1976d5e
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o
new file mode 100644
index 0000000..572fd9d
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.su
new file mode 100644
index 0000000..f62a64d
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.su
@@ -0,0 +1,14 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:168:19:HAL_FLASH_Program 48 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:267:19:HAL_FLASH_Program_IT 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:332:6:HAL_FLASH_IRQHandler 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:606:13:HAL_FLASH_EndOfOperationCallback 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:624:13:HAL_FLASH_OperationErrorCallback 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:657:19:HAL_FLASH_Unlock 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:695:19:HAL_FLASH_Lock 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:712:19:HAL_FLASH_OB_Unlock 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:732:19:HAL_FLASH_OB_Lock 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:745:6:HAL_FLASH_OB_Launch 8 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:774:10:HAL_FLASH_GetError 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:797:13:FLASH_Program_HalfWord 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:826:19:FLASH_WaitForLastOperation 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:914:13:FLASH_SetErrorCode 16 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.cyclo
new file mode 100644
index 0000000..07d971c
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.cyclo
@@ -0,0 +1,16 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:159:19:HAL_FLASHEx_Erase 7
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:319:19:HAL_FLASHEx_Erase_IT 4
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:397:19:HAL_FLASHEx_OBErase 3
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:446:19:HAL_FLASHEx_OBProgram 11
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:527:6:HAL_FLASHEx_OBGetConfig 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:549:10:HAL_FLASHEx_OBGetUserData 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:595:13:FLASH_MassErase 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:644:26:FLASH_OB_EnableWRP 10
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:767:26:FLASH_OB_DisableWRP 10
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:886:26:FLASH_OB_RDP_LevelConfig 3
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:937:26:FLASH_OB_UserConfig 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:988:26:FLASH_OB_ProgramData 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:1021:17:FLASH_OB_GetWRP 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:1034:17:FLASH_OB_GetRDP 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:1060:16:FLASH_OB_GetUser 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:1089:6:FLASH_PageErase 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d
new file mode 100644
index 0000000..c36d1ff
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o
new file mode 100644
index 0000000..6630e40
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.su
new file mode 100644
index 0000000..9963995
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.su
@@ -0,0 +1,16 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:159:19:HAL_FLASHEx_Erase 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:319:19:HAL_FLASHEx_Erase_IT 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:397:19:HAL_FLASHEx_OBErase 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:446:19:HAL_FLASHEx_OBProgram 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:527:6:HAL_FLASHEx_OBGetConfig 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:549:10:HAL_FLASHEx_OBGetUserData 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:595:13:FLASH_MassErase 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:644:26:FLASH_OB_EnableWRP 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:767:26:FLASH_OB_DisableWRP 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:886:26:FLASH_OB_RDP_LevelConfig 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:937:26:FLASH_OB_UserConfig 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:988:26:FLASH_OB_ProgramData 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:1021:17:FLASH_OB_GetWRP 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:1034:17:FLASH_OB_GetRDP 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:1060:16:FLASH_OB_GetUser 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:1089:6:FLASH_PageErase 16 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.cyclo
new file mode 100644
index 0000000..f5572d0
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.cyclo
@@ -0,0 +1,8 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:178:6:HAL_GPIO_Init 36
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:351:6:HAL_GPIO_DeInit 12
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:431:15:HAL_GPIO_ReadPin 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:465:6:HAL_GPIO_WritePin 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:487:6:HAL_GPIO_TogglePin 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:511:19:HAL_GPIO_LockPin 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:546:6:HAL_GPIO_EXTI_IRQHandler 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:561:13:HAL_GPIO_EXTI_Callback 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d
new file mode 100644
index 0000000..a7c5a10
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o
new file mode 100644
index 0000000..686f36e
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.su
new file mode 100644
index 0000000..9e46e34
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.su
@@ -0,0 +1,8 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:178:6:HAL_GPIO_Init 48 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:351:6:HAL_GPIO_DeInit 40 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:431:15:HAL_GPIO_ReadPin 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:465:6:HAL_GPIO_WritePin 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:487:6:HAL_GPIO_TogglePin 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:511:19:HAL_GPIO_LockPin 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:546:6:HAL_GPIO_EXTI_IRQHandler 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:561:13:HAL_GPIO_EXTI_Callback 16 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.cyclo
new file mode 100644
index 0000000..8b9bf69
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.cyclo
@@ -0,0 +1,3 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c:81:6:HAL_GPIOEx_ConfigEventout 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c:95:6:HAL_GPIOEx_EnableEventout 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c:104:6:HAL_GPIOEx_DisableEventout 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.d
new file mode 100644
index 0000000..49331ce
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o
new file mode 100644
index 0000000..2282fbf
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.su
new file mode 100644
index 0000000..d484009
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.su
@@ -0,0 +1,3 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c:81:6:HAL_GPIOEx_ConfigEventout 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c:95:6:HAL_GPIOEx_EnableEventout 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c:104:6:HAL_GPIOEx_DisableEventout 4 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.cyclo
new file mode 100644
index 0000000..eac00c4
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.cyclo
@@ -0,0 +1,18 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:117:13:PWR_OverloadWfe 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:156:6:HAL_PWR_DeInit 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:169:6:HAL_PWR_EnableBkUpAccess 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:182:6:HAL_PWR_DisableBkUpAccess 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:316:6:HAL_PWR_ConfigPVD 5
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:359:6:HAL_PWR_EnablePVD 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:369:6:HAL_PWR_DisablePVD 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:382:6:HAL_PWR_EnableWakeUpPin 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:397:6:HAL_PWR_DisableWakeUpPin 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:417:6:HAL_PWR_EnterSLEEPMode 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:463:6:HAL_PWR_EnterSTOPMode 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:503:6:HAL_PWR_EnterSTANDBYMode 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:528:6:HAL_PWR_EnableSleepOnExit 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:541:6:HAL_PWR_DisableSleepOnExit 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:554:6:HAL_PWR_EnableSEVOnPend 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:567:6:HAL_PWR_DisableSEVOnPend 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:580:6:HAL_PWR_PVD_IRQHandler 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:597:13:HAL_PWR_PVDCallback 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d
new file mode 100644
index 0000000..0ce5acf
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o
new file mode 100644
index 0000000..e22b4ad
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.su
new file mode 100644
index 0000000..2ef22d2
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.su
@@ -0,0 +1,18 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:117:13:PWR_OverloadWfe 4 static,ignoring_inline_asm
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:156:6:HAL_PWR_DeInit 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:169:6:HAL_PWR_EnableBkUpAccess 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:182:6:HAL_PWR_DisableBkUpAccess 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:316:6:HAL_PWR_ConfigPVD 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:359:6:HAL_PWR_EnablePVD 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:369:6:HAL_PWR_DisablePVD 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:382:6:HAL_PWR_EnableWakeUpPin 24 static,ignoring_inline_asm
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:397:6:HAL_PWR_DisableWakeUpPin 24 static,ignoring_inline_asm
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:417:6:HAL_PWR_EnterSLEEPMode 16 static,ignoring_inline_asm
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:463:6:HAL_PWR_EnterSTOPMode 16 static,ignoring_inline_asm
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:503:6:HAL_PWR_EnterSTANDBYMode 4 static,ignoring_inline_asm
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:528:6:HAL_PWR_EnableSleepOnExit 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:541:6:HAL_PWR_DisableSleepOnExit 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:554:6:HAL_PWR_EnableSEVOnPend 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:567:6:HAL_PWR_DisableSEVOnPend 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:580:6:HAL_PWR_PVD_IRQHandler 8 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:597:13:HAL_PWR_PVDCallback 4 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.cyclo
new file mode 100644
index 0000000..100f2bb
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.cyclo
@@ -0,0 +1,15 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:202:19:HAL_RCC_DeInit 10
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:347:19:HAL_RCC_OscConfig 60
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:813:19:HAL_RCC_ClockConfig 19
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1002:6:HAL_RCC_MCOConfig 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1039:6:HAL_RCC_EnableCSS 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1048:6:HAL_RCC_DisableCSS 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1082:10:HAL_RCC_GetSysClockFreq 4
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1176:10:HAL_RCC_GetHCLKFreq 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1187:10:HAL_RCC_GetPCLK1Freq 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1199:10:HAL_RCC_GetPCLK2Freq 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1212:6:HAL_RCC_GetOscConfig 8
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1312:6:HAL_RCC_GetClockConfig 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1347:6:HAL_RCC_NMI_IRQHandler 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1365:13:RCC_Delay 2
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1379:13:HAL_RCC_CSSCallback 1
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d
new file mode 100644
index 0000000..39ecb7d
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o
new file mode 100644
index 0000000..5eb4626
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.su
new file mode 100644
index 0000000..c276a75
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.su
@@ -0,0 +1,15 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:202:19:HAL_RCC_DeInit 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:347:19:HAL_RCC_OscConfig 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:813:19:HAL_RCC_ClockConfig 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1002:6:HAL_RCC_MCOConfig 48 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1039:6:HAL_RCC_EnableCSS 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1048:6:HAL_RCC_DisableCSS 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1082:10:HAL_RCC_GetSysClockFreq 48 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1176:10:HAL_RCC_GetHCLKFreq 4 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1187:10:HAL_RCC_GetPCLK1Freq 8 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1199:10:HAL_RCC_GetPCLK2Freq 8 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1212:6:HAL_RCC_GetOscConfig 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1312:6:HAL_RCC_GetClockConfig 16 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1347:6:HAL_RCC_NMI_IRQHandler 8 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1365:13:RCC_Delay 24 static,ignoring_inline_asm
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1379:13:HAL_RCC_CSSCallback 4 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.cyclo
new file mode 100644
index 0000000..7b9bb77
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.cyclo
@@ -0,0 +1,3 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:100:19:HAL_RCCEx_PeriphCLKConfig 14
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:294:6:HAL_RCCEx_GetPeriphCLKConfig 1
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:387:10:HAL_RCCEx_GetPeriphCLKFreq 16
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d
new file mode 100644
index 0000000..4f4631e
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o
new file mode 100644
index 0000000..21c9954
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.su
new file mode 100644
index 0000000..8be4cb9
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.su
@@ -0,0 +1,3 @@
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:100:19:HAL_RCCEx_PeriphCLKConfig 32 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:294:6:HAL_RCCEx_GetPeriphCLKConfig 24 static
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:387:10:HAL_RCCEx_GetPeriphCLKFreq 64 static
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.cyclo
new file mode 100644
index 0000000..e69de29
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.d
new file mode 100644
index 0000000..0b0710e
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o
new file mode 100644
index 0000000..9cff9b7
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.su
new file mode 100644
index 0000000..e69de29
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.cyclo b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.cyclo
new file mode 100644
index 0000000..e69de29
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d
new file mode 100644
index 0000000..320400f
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d
@@ -0,0 +1,46 @@
+Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o: \
+ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+../Core/Inc/stm32f1xx_hal_conf.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+../Drivers/CMSIS/Include/core_cm3.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o
new file mode 100644
index 0000000..bf258ac
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.su b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.su
new file mode 100644
index 0000000..e69de29
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk
new file mode 100644
index 0000000..b8bfc65
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk
@@ -0,0 +1,63 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \
+../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c
+
+OBJS += \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o
+
+C_DEPS += \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.d \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.d \
+./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Drivers/STM32F1xx_HAL_Driver/Src/%.o Drivers/STM32F1xx_HAL_Driver/Src/%.su Drivers/STM32F1xx_HAL_Driver/Src/%.cyclo: ../Drivers/STM32F1xx_HAL_Driver/Src/%.c Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-Drivers-2f-STM32F1xx_HAL_Driver-2f-Src
+
+clean-Drivers-2f-STM32F1xx_HAL_Driver-2f-Src:
+ -$(RM) ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.su
+
+.PHONY: clean-Drivers-2f-STM32F1xx_HAL_Driver-2f-Src
+
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/lcd.elf b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/lcd.elf
new file mode 100755
index 0000000..103d602
Binary files /dev/null and b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/lcd.elf differ
diff --git a/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/lcd.list b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/lcd.list
new file mode 100644
index 0000000..2ae0641
--- /dev/null
+++ b/CS301 Embedded System and Microcomputer Principle/Lab/lab3/lcd/Debug/lcd.list
@@ -0,0 +1,17462 @@
+
+lcd.elf: file format elf32-littlearm
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .isr_vector 000001e4 08000000 08000000 00001000 2**0
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 1 .text 00008078 080001e8 080001e8 000011e8 2**3
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .rodata 00002fdc 08008260 08008260 00009260 2**2
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 3 .ARM.extab 00000000 0800b23c 0800b23c 0000d010 2**0
+ CONTENTS
+ 4 .ARM 00000000 0800b23c 0800b23c 0000d010 2**0
+ CONTENTS
+ 5 .preinit_array 00000000 0800b23c 0800b23c 0000d010 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 6 .init_array 00000004 0800b23c 0800b23c 0000c23c 2**2
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 7 .fini_array 00000004 0800b240 0800b240 0000c240 2**2
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 8 .data 00000010 20000000 0800b244 0000d000 2**2
+ CONTENTS, ALLOC, LOAD, DATA
+ 9 .bss 00000030 20000010 0800b254 0000d010 2**2
+ ALLOC
+ 10 ._user_heap_stack 00000600 20000040 0800b254 0000d040 2**0
+ ALLOC
+ 11 .ARM.attributes 00000029 00000000 00000000 0000d010 2**0
+ CONTENTS, READONLY
+ 12 .debug_info 0000527d 00000000 00000000 0000d039 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 13 .debug_abbrev 000012da 00000000 00000000 000122b6 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 14 .debug_aranges 000004e8 00000000 00000000 00013590 2**3
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 15 .debug_rnglists 00000399 00000000 00000000 00013a78 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 16 .debug_macro 00018ae7 00000000 00000000 00013e11 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 17 .debug_line 000075c5 00000000 00000000 0002c8f8 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 18 .debug_str 0008dac0 00000000 00000000 00033ebd 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 19 .comment 00000043 00000000 00000000 000c197d 2**0
+ CONTENTS, READONLY
+ 20 .debug_frame 000012dc 00000000 00000000 000c19c0 2**2
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 21 .debug_line_str 00000095 00000000 00000000 000c2c9c 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+
+Disassembly of section .text:
+
+080001e8 <__do_global_dtors_aux>:
+ 80001e8: b510 push {r4, lr}
+ 80001ea: 4c05 ldr r4, [pc, #20] @ (8000200 <__do_global_dtors_aux+0x18>)
+ 80001ec: 7823 ldrb r3, [r4, #0]
+ 80001ee: b933 cbnz r3, 80001fe <__do_global_dtors_aux+0x16>
+ 80001f0: 4b04 ldr r3, [pc, #16] @ (8000204 <__do_global_dtors_aux+0x1c>)
+ 80001f2: b113 cbz r3, 80001fa <__do_global_dtors_aux+0x12>
+ 80001f4: 4804 ldr r0, [pc, #16] @ (8000208 <__do_global_dtors_aux+0x20>)
+ 80001f6: f3af 8000 nop.w
+ 80001fa: 2301 movs r3, #1
+ 80001fc: 7023 strb r3, [r4, #0]
+ 80001fe: bd10 pop {r4, pc}
+ 8000200: 20000010 .word 0x20000010
+ 8000204: 00000000 .word 0x00000000
+ 8000208: 08008248 .word 0x08008248
+
+0800020c :
+ 800020c: b508 push {r3, lr}
+ 800020e: 4b03 ldr r3, [pc, #12] @ (800021c )
+ 8000210: b11b cbz r3, 800021a
+ 8000212: 4903 ldr r1, [pc, #12] @ (8000220 )
+ 8000214: 4803 ldr r0, [pc, #12] @ (8000224 )
+ 8000216: f3af 8000 nop.w
+ 800021a: bd08 pop {r3, pc}
+ 800021c: 00000000 .word 0x00000000
+ 8000220: 20000014 .word 0x20000014
+ 8000224: 08008248 .word 0x08008248
+
+08000228 <__aeabi_dmul>:
+ 8000228: b570 push {r4, r5, r6, lr}
+ 800022a: f04f 0cff mov.w ip, #255 @ 0xff
+ 800022e: f44c 6ce0 orr.w ip, ip, #1792 @ 0x700
+ 8000232: ea1c 5411 ands.w r4, ip, r1, lsr #20
+ 8000236: bf1d ittte ne
+ 8000238: ea1c 5513 andsne.w r5, ip, r3, lsr #20
+ 800023c: ea94 0f0c teqne r4, ip
+ 8000240: ea95 0f0c teqne r5, ip
+ 8000244: f000 f8de bleq 8000404 <__aeabi_dmul+0x1dc>
+ 8000248: 442c add r4, r5
+ 800024a: ea81 0603 eor.w r6, r1, r3
+ 800024e: ea21 514c bic.w r1, r1, ip, lsl #21
+ 8000252: ea23 534c bic.w r3, r3, ip, lsl #21
+ 8000256: ea50 3501 orrs.w r5, r0, r1, lsl #12
+ 800025a: bf18 it ne
+ 800025c: ea52 3503 orrsne.w r5, r2, r3, lsl #12
+ 8000260: f441 1180 orr.w r1, r1, #1048576 @ 0x100000
+ 8000264: f443 1380 orr.w r3, r3, #1048576 @ 0x100000
+ 8000268: d038 beq.n 80002dc <__aeabi_dmul+0xb4>
+ 800026a: fba0 ce02 umull ip, lr, r0, r2
+ 800026e: f04f 0500 mov.w r5, #0
+ 8000272: fbe1 e502 umlal lr, r5, r1, r2
+ 8000276: f006 4200 and.w r2, r6, #2147483648 @ 0x80000000
+ 800027a: fbe0 e503 umlal lr, r5, r0, r3
+ 800027e: f04f 0600 mov.w r6, #0
+ 8000282: fbe1 5603 umlal r5, r6, r1, r3
+ 8000286: f09c 0f00 teq ip, #0
+ 800028a: bf18 it ne
+ 800028c: f04e 0e01 orrne.w lr, lr, #1
+ 8000290: f1a4 04ff sub.w r4, r4, #255 @ 0xff
+ 8000294: f5b6 7f00 cmp.w r6, #512 @ 0x200
+ 8000298: f564 7440 sbc.w r4, r4, #768 @ 0x300
+ 800029c: d204 bcs.n 80002a8 <__aeabi_dmul+0x80>
+ 800029e: ea5f 0e4e movs.w lr, lr, lsl #1
+ 80002a2: 416d adcs r5, r5
+ 80002a4: eb46 0606 adc.w r6, r6, r6
+ 80002a8: ea42 21c6 orr.w r1, r2, r6, lsl #11
+ 80002ac: ea41 5155 orr.w r1, r1, r5, lsr #21
+ 80002b0: ea4f 20c5 mov.w r0, r5, lsl #11
+ 80002b4: ea40 505e orr.w r0, r0, lr, lsr #21
+ 80002b8: ea4f 2ece mov.w lr, lr, lsl #11
+ 80002bc: f1b4 0cfd subs.w ip, r4, #253 @ 0xfd
+ 80002c0: bf88 it hi
+ 80002c2: f5bc 6fe0 cmphi.w ip, #1792 @ 0x700
+ 80002c6: d81e bhi.n 8000306 <__aeabi_dmul+0xde>
+ 80002c8: f1be 4f00 cmp.w lr, #2147483648 @ 0x80000000
+ 80002cc: bf08 it eq
+ 80002ce: ea5f 0e50 movseq.w lr, r0, lsr #1
+ 80002d2: f150 0000 adcs.w r0, r0, #0
+ 80002d6: eb41 5104 adc.w r1, r1, r4, lsl #20
+ 80002da: bd70 pop {r4, r5, r6, pc}
+ 80002dc: f006 4600 and.w r6, r6, #2147483648 @ 0x80000000
+ 80002e0: ea46 0101 orr.w r1, r6, r1
+ 80002e4: ea40 0002 orr.w r0, r0, r2
+ 80002e8: ea81 0103 eor.w r1, r1, r3
+ 80002ec: ebb4 045c subs.w r4, r4, ip, lsr #1
+ 80002f0: bfc2 ittt gt
+ 80002f2: ebd4 050c rsbsgt r5, r4, ip
+ 80002f6: ea41 5104 orrgt.w r1, r1, r4, lsl #20
+ 80002fa: bd70 popgt {r4, r5, r6, pc}
+ 80002fc: f441 1180 orr.w r1, r1, #1048576 @ 0x100000
+ 8000300: f04f 0e00 mov.w lr, #0
+ 8000304: 3c01 subs r4, #1
+ 8000306: f300 80ab bgt.w 8000460 <__aeabi_dmul+0x238>
+ 800030a: f114 0f36 cmn.w r4, #54 @ 0x36
+ 800030e: bfde ittt le
+ 8000310: 2000 movle r0, #0
+ 8000312: f001 4100 andle.w r1, r1, #2147483648 @ 0x80000000
+ 8000316: bd70 pople {r4, r5, r6, pc}
+ 8000318: f1c4 0400 rsb r4, r4, #0
+ 800031c: 3c20 subs r4, #32
+ 800031e: da35 bge.n 800038c <__aeabi_dmul+0x164>
+ 8000320: 340c adds r4, #12
+ 8000322: dc1b bgt.n 800035c <__aeabi_dmul+0x134>
+ 8000324: f104 0414 add.w r4, r4, #20
+ 8000328: f1c4 0520 rsb r5, r4, #32
+ 800032c: fa00 f305 lsl.w r3, r0, r5
+ 8000330: fa20 f004 lsr.w r0, r0, r4
+ 8000334: fa01 f205 lsl.w r2, r1, r5
+ 8000338: ea40 0002 orr.w r0, r0, r2
+ 800033c: f001 4200 and.w r2, r1, #2147483648 @ 0x80000000
+ 8000340: f021 4100 bic.w r1, r1, #2147483648 @ 0x80000000
+ 8000344: eb10 70d3 adds.w r0, r0, r3, lsr #31
+ 8000348: fa21 f604 lsr.w r6, r1, r4
+ 800034c: eb42 0106 adc.w r1, r2, r6
+ 8000350: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
+ 8000354: bf08 it eq
+ 8000356: ea20 70d3 biceq.w r0, r0, r3, lsr #31
+ 800035a: bd70 pop {r4, r5, r6, pc}
+ 800035c: f1c4 040c rsb r4, r4, #12
+ 8000360: f1c4 0520 rsb r5, r4, #32
+ 8000364: fa00 f304 lsl.w r3, r0, r4
+ 8000368: fa20 f005 lsr.w r0, r0, r5
+ 800036c: fa01 f204 lsl.w r2, r1, r4
+ 8000370: ea40 0002 orr.w r0, r0, r2
+ 8000374: f001 4100 and.w r1, r1, #2147483648 @ 0x80000000
+ 8000378: eb10 70d3 adds.w r0, r0, r3, lsr #31
+ 800037c: f141 0100 adc.w r1, r1, #0
+ 8000380: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
+ 8000384: bf08 it eq
+ 8000386: ea20 70d3 biceq.w r0, r0, r3, lsr #31
+ 800038a: bd70 pop {r4, r5, r6, pc}
+ 800038c: f1c4 0520 rsb r5, r4, #32
+ 8000390: fa00 f205 lsl.w r2, r0, r5
+ 8000394: ea4e 0e02 orr.w lr, lr, r2
+ 8000398: fa20 f304 lsr.w r3, r0, r4
+ 800039c: fa01 f205 lsl.w r2, r1, r5
+ 80003a0: ea43 0302 orr.w r3, r3, r2
+ 80003a4: fa21 f004 lsr.w r0, r1, r4
+ 80003a8: f001 4100 and.w r1, r1, #2147483648 @ 0x80000000
+ 80003ac: fa21 f204 lsr.w r2, r1, r4
+ 80003b0: ea20 0002 bic.w r0, r0, r2
+ 80003b4: eb00 70d3 add.w r0, r0, r3, lsr #31
+ 80003b8: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
+ 80003bc: bf08 it eq
+ 80003be: ea20 70d3 biceq.w r0, r0, r3, lsr #31
+ 80003c2: bd70 pop {r4, r5, r6, pc}
+ 80003c4: f094 0f00 teq r4, #0
+ 80003c8: d10f bne.n 80003ea <__aeabi_dmul+0x1c2>
+ 80003ca: f001 4600 and.w r6, r1, #2147483648 @ 0x80000000
+ 80003ce: 0040 lsls r0, r0, #1
+ 80003d0: eb41 0101 adc.w r1, r1, r1
+ 80003d4: f411 1f80 tst.w r1, #1048576 @ 0x100000
+ 80003d8: bf08 it eq
+ 80003da: 3c01 subeq r4, #1
+ 80003dc: d0f7 beq.n 80003ce <__aeabi_dmul+0x1a6>
+ 80003de: ea41 0106 orr.w r1, r1, r6
+ 80003e2: f095 0f00 teq r5, #0
+ 80003e6: bf18 it ne
+ 80003e8: 4770 bxne lr
+ 80003ea: f003 4600 and.w r6, r3, #2147483648 @ 0x80000000
+ 80003ee: 0052 lsls r2, r2, #1
+ 80003f0: eb43 0303 adc.w r3, r3, r3
+ 80003f4: f413 1f80 tst.w r3, #1048576 @ 0x100000
+ 80003f8: bf08 it eq
+ 80003fa: 3d01 subeq r5, #1
+ 80003fc: d0f7 beq.n 80003ee <__aeabi_dmul+0x1c6>
+ 80003fe: ea43 0306 orr.w r3, r3, r6
+ 8000402: 4770 bx lr
+ 8000404: ea94 0f0c teq r4, ip
+ 8000408: ea0c 5513 and.w r5, ip, r3, lsr #20
+ 800040c: bf18 it ne
+ 800040e: ea95 0f0c teqne r5, ip
+ 8000412: d00c beq.n 800042e <__aeabi_dmul+0x206>
+ 8000414: ea50 0641 orrs.w r6, r0, r1, lsl #1
+ 8000418: bf18 it ne
+ 800041a: ea52 0643 orrsne.w r6, r2, r3, lsl #1
+ 800041e: d1d1 bne.n 80003c4 <__aeabi_dmul+0x19c>
+ 8000420: ea81 0103 eor.w r1, r1, r3
+ 8000424: f001 4100 and.w r1, r1, #2147483648 @ 0x80000000
+ 8000428: f04f 0000 mov.w r0, #0
+ 800042c: bd70 pop {r4, r5, r6, pc}
+ 800042e: ea50 0641 orrs.w r6, r0, r1, lsl #1
+ 8000432: bf06 itte eq
+ 8000434: 4610 moveq r0, r2
+ 8000436: 4619 moveq r1, r3
+ 8000438: ea52 0643 orrsne.w r6, r2, r3, lsl #1
+ 800043c: d019 beq.n 8000472 <__aeabi_dmul+0x24a>
+ 800043e: ea94 0f0c teq r4, ip
+ 8000442: d102 bne.n 800044a <__aeabi_dmul+0x222>
+ 8000444: ea50 3601 orrs.w r6, r0, r1, lsl #12
+ 8000448: d113 bne.n 8000472 <__aeabi_dmul+0x24a>
+ 800044a: ea95 0f0c teq r5, ip
+ 800044e: d105 bne.n 800045c <__aeabi_dmul+0x234>
+ 8000450: ea52 3603 orrs.w r6, r2, r3, lsl #12
+ 8000454: bf1c itt ne
+ 8000456: 4610 movne r0, r2
+ 8000458: 4619 movne r1, r3
+ 800045a: d10a bne.n 8000472 <__aeabi_dmul+0x24a>
+ 800045c: ea81 0103 eor.w r1, r1, r3
+ 8000460: f001 4100 and.w r1, r1, #2147483648 @ 0x80000000
+ 8000464: f041 41fe orr.w r1, r1, #2130706432 @ 0x7f000000
+ 8000468: f441 0170 orr.w r1, r1, #15728640 @ 0xf00000
+ 800046c: f04f 0000 mov.w r0, #0
+ 8000470: bd70 pop {r4, r5, r6, pc}
+ 8000472: f041 41fe orr.w r1, r1, #2130706432 @ 0x7f000000
+ 8000476: f441 0178 orr.w r1, r1, #16252928 @ 0xf80000
+ 800047a: bd70 pop {r4, r5, r6, pc}
+
+0800047c <__aeabi_drsub>:
+ 800047c: f081 4100 eor.w r1, r1, #2147483648 @ 0x80000000
+ 8000480: e002 b.n 8000488 <__adddf3>
+ 8000482: bf00 nop
+
+08000484 <__aeabi_dsub>:
+ 8000484: f083 4300 eor.w r3, r3, #2147483648 @ 0x80000000
+
+08000488 <__adddf3>:
+ 8000488: b530 push {r4, r5, lr}
+ 800048a: ea4f 0441 mov.w r4, r1, lsl #1
+ 800048e: ea4f 0543 mov.w r5, r3, lsl #1
+ 8000492: ea94 0f05 teq r4, r5
+ 8000496: bf08 it eq
+ 8000498: ea90 0f02 teqeq r0, r2
+ 800049c: bf1f itttt ne
+ 800049e: ea54 0c00 orrsne.w ip, r4, r0
+ 80004a2: ea55 0c02 orrsne.w ip, r5, r2
+ 80004a6: ea7f 5c64 mvnsne.w ip, r4, asr #21
+ 80004aa: ea7f 5c65 mvnsne.w ip, r5, asr #21
+ 80004ae: f000 80e2 beq.w 8000676 <__adddf3+0x1ee>
+ 80004b2: ea4f 5454 mov.w r4, r4, lsr #21
+ 80004b6: ebd4 5555 rsbs r5, r4, r5, lsr #21
+ 80004ba: bfb8 it lt
+ 80004bc: 426d neglt r5, r5
+ 80004be: dd0c ble.n 80004da <__adddf3+0x52>
+ 80004c0: 442c add r4, r5
+ 80004c2: ea80 0202 eor.w r2, r0, r2
+ 80004c6: ea81 0303 eor.w r3, r1, r3
+ 80004ca: ea82 0000 eor.w r0, r2, r0
+ 80004ce: ea83 0101 eor.w r1, r3, r1
+ 80004d2: ea80 0202 eor.w r2, r0, r2
+ 80004d6: ea81 0303 eor.w r3, r1, r3
+ 80004da: 2d36 cmp r5, #54 @ 0x36
+ 80004dc: bf88 it hi
+ 80004de: bd30 pophi {r4, r5, pc}
+ 80004e0: f011 4f00 tst.w r1, #2147483648 @ 0x80000000
+ 80004e4: ea4f 3101 mov.w r1, r1, lsl #12
+ 80004e8: f44f 1c80 mov.w ip, #1048576 @ 0x100000
+ 80004ec: ea4c 3111 orr.w r1, ip, r1, lsr #12
+ 80004f0: d002 beq.n 80004f8 <__adddf3+0x70>
+ 80004f2: 4240 negs r0, r0
+ 80004f4: eb61 0141 sbc.w r1, r1, r1, lsl #1
+ 80004f8: f013 4f00 tst.w r3, #2147483648 @ 0x80000000
+ 80004fc: ea4f 3303 mov.w r3, r3, lsl #12
+ 8000500: ea4c 3313 orr.w r3, ip, r3, lsr #12
+ 8000504: d002 beq.n 800050c <__adddf3+0x84>
+ 8000506: 4252 negs r2, r2
+ 8000508: eb63 0343 sbc.w r3, r3, r3, lsl #1
+ 800050c: ea94 0f05 teq r4, r5
+ 8000510: f000 80a7 beq.w 8000662 <__adddf3+0x1da>
+ 8000514: f1a4 0401 sub.w r4, r4, #1
+ 8000518: f1d5 0e20 rsbs lr, r5, #32
+ 800051c: db0d blt.n 800053a <__adddf3+0xb2>
+ 800051e: fa02 fc0e lsl.w ip, r2, lr
+ 8000522: fa22 f205 lsr.w r2, r2, r5
+ 8000526: 1880 adds r0, r0, r2
+ 8000528: f141 0100 adc.w r1, r1, #0
+ 800052c: fa03 f20e lsl.w r2, r3, lr
+ 8000530: 1880 adds r0, r0, r2
+ 8000532: fa43 f305 asr.w r3, r3, r5
+ 8000536: 4159 adcs r1, r3
+ 8000538: e00e b.n 8000558 <__adddf3+0xd0>
+ 800053a: f1a5 0520 sub.w r5, r5, #32
+ 800053e: f10e 0e20 add.w lr, lr, #32
+ 8000542: 2a01 cmp r2, #1
+ 8000544: fa03 fc0e lsl.w ip, r3, lr
+ 8000548: bf28 it cs
+ 800054a: f04c 0c02 orrcs.w ip, ip, #2
+ 800054e: fa43 f305 asr.w r3, r3, r5
+ 8000552: 18c0 adds r0, r0, r3
+ 8000554: eb51 71e3 adcs.w r1, r1, r3, asr #31
+ 8000558: f001 4500 and.w r5, r1, #2147483648 @ 0x80000000
+ 800055c: d507 bpl.n 800056e <__adddf3+0xe6>
+ 800055e: f04f 0e00 mov.w lr, #0
+ 8000562: f1dc 0c00 rsbs ip, ip, #0
+ 8000566: eb7e 0000 sbcs.w r0, lr, r0
+ 800056a: eb6e 0101 sbc.w r1, lr, r1
+ 800056e: f5b1 1f80 cmp.w r1, #1048576 @ 0x100000
+ 8000572: d31b bcc.n 80005ac <__adddf3+0x124>
+ 8000574: f5b1 1f00 cmp.w r1, #2097152 @ 0x200000
+ 8000578: d30c bcc.n 8000594 <__adddf3+0x10c>
+ 800057a: 0849 lsrs r1, r1, #1
+ 800057c: ea5f 0030 movs.w r0, r0, rrx
+ 8000580: ea4f 0c3c mov.w ip, ip, rrx
+ 8000584: f104 0401 add.w r4, r4, #1
+ 8000588: ea4f 5244 mov.w r2, r4, lsl #21
+ 800058c: f512 0f80 cmn.w r2, #4194304 @ 0x400000
+ 8000590: f080 809a bcs.w 80006c8 <__adddf3+0x240>
+ 8000594: f1bc 4f00 cmp.w ip, #2147483648 @ 0x80000000
+ 8000598: bf08 it eq
+ 800059a: ea5f 0c50 movseq.w ip, r0, lsr #1
+ 800059e: f150 0000 adcs.w r0, r0, #0
+ 80005a2: eb41 5104 adc.w r1, r1, r4, lsl #20
+ 80005a6: ea41 0105 orr.w r1, r1, r5
+ 80005aa: bd30 pop {r4, r5, pc}
+ 80005ac: ea5f 0c4c movs.w ip, ip, lsl #1
+ 80005b0: 4140 adcs r0, r0
+ 80005b2: eb41 0101 adc.w r1, r1, r1
+ 80005b6: 3c01 subs r4, #1
+ 80005b8: bf28 it cs
+ 80005ba: f5b1 1f80 cmpcs.w r1, #1048576 @ 0x100000
+ 80005be: d2e9 bcs.n 8000594 <__adddf3+0x10c>
+ 80005c0: f091 0f00 teq r1, #0
+ 80005c4: bf04 itt eq
+ 80005c6: 4601 moveq r1, r0
+ 80005c8: 2000 moveq r0, #0
+ 80005ca: fab1 f381 clz r3, r1
+ 80005ce: bf08 it eq
+ 80005d0: 3320 addeq r3, #32
+ 80005d2: f1a3 030b sub.w r3, r3, #11
+ 80005d6: f1b3 0220 subs.w r2, r3, #32
+ 80005da: da0c bge.n 80005f6 <__adddf3+0x16e>
+ 80005dc: 320c adds r2, #12
+ 80005de: dd08 ble.n 80005f2 <__adddf3+0x16a>
+ 80005e0: f102 0c14 add.w ip, r2, #20
+ 80005e4: f1c2 020c rsb r2, r2, #12
+ 80005e8: fa01 f00c lsl.w r0, r1, ip
+ 80005ec: fa21 f102 lsr.w r1, r1, r2
+ 80005f0: e00c b.n 800060c <__adddf3+0x184>
+ 80005f2: f102 0214 add.w r2, r2, #20
+ 80005f6: bfd8 it le
+ 80005f8: f1c2 0c20 rsble ip, r2, #32
+ 80005fc: fa01 f102 lsl.w r1, r1, r2
+ 8000600: fa20 fc0c lsr.w ip, r0, ip
+ 8000604: bfdc itt le
+ 8000606: ea41 010c orrle.w r1, r1, ip
+ 800060a: 4090 lslle r0, r2
+ 800060c: 1ae4 subs r4, r4, r3
+ 800060e: bfa2 ittt ge
+ 8000610: eb01 5104 addge.w r1, r1, r4, lsl #20
+ 8000614: 4329 orrge r1, r5
+ 8000616: bd30 popge {r4, r5, pc}
+ 8000618: ea6f 0404 mvn.w r4, r4
+ 800061c: 3c1f subs r4, #31
+ 800061e: da1c bge.n 800065a <__adddf3+0x1d2>
+ 8000620: 340c adds r4, #12
+ 8000622: dc0e bgt.n 8000642 <__adddf3+0x1ba>
+ 8000624: f104 0414 add.w r4, r4, #20
+ 8000628: f1c4 0220 rsb r2, r4, #32
+ 800062c: fa20 f004 lsr.w r0, r0, r4
+ 8000630: fa01 f302 lsl.w r3, r1, r2
+ 8000634: ea40 0003 orr.w r0, r0, r3
+ 8000638: fa21 f304 lsr.w r3, r1, r4
+ 800063c: ea45 0103 orr.w r1, r5, r3
+ 8000640: bd30 pop {r4, r5, pc}
+ 8000642: f1c4 040c rsb r4, r4, #12
+ 8000646: f1c4 0220 rsb r2, r4, #32
+ 800064a: fa20 f002 lsr.w r0, r0, r2
+ 800064e: fa01 f304 lsl.w r3, r1, r4
+ 8000652: ea40 0003 orr.w r0, r0, r3
+ 8000656: 4629 mov r1, r5
+ 8000658: bd30 pop {r4, r5, pc}
+ 800065a: fa21 f004 lsr.w r0, r1, r4
+ 800065e: 4629 mov r1, r5
+ 8000660: bd30 pop {r4, r5, pc}
+ 8000662: f094 0f00 teq r4, #0
+ 8000666: f483 1380 eor.w r3, r3, #1048576 @ 0x100000
+ 800066a: bf06 itte eq
+ 800066c: f481 1180 eoreq.w r1, r1, #1048576 @ 0x100000
+ 8000670: 3401 addeq r4, #1
+ 8000672: 3d01 subne r5, #1
+ 8000674: e74e b.n 8000514 <__adddf3+0x8c>
+ 8000676: ea7f 5c64 mvns.w ip, r4, asr #21
+ 800067a: bf18 it ne
+ 800067c: ea7f 5c65 mvnsne.w ip, r5, asr #21
+ 8000680: d029 beq.n 80006d6 <__adddf3+0x24e>
+ 8000682: ea94 0f05 teq r4, r5
+ 8000686: bf08 it eq
+ 8000688: ea90 0f02 teqeq r0, r2
+ 800068c: d005 beq.n 800069a <__adddf3+0x212>
+ 800068e: ea54 0c00 orrs.w ip, r4, r0
+ 8000692: bf04 itt eq
+ 8000694: 4619 moveq r1, r3
+ 8000696: 4610 moveq r0, r2
+ 8000698: bd30 pop {r4, r5, pc}
+ 800069a: ea91 0f03 teq r1, r3
+ 800069e: bf1e ittt ne
+ 80006a0: 2100 movne r1, #0
+ 80006a2: 2000 movne r0, #0
+ 80006a4: bd30 popne {r4, r5, pc}
+ 80006a6: ea5f 5c54 movs.w ip, r4, lsr #21
+ 80006aa: d105 bne.n 80006b8 <__adddf3+0x230>
+ 80006ac: 0040 lsls r0, r0, #1
+ 80006ae: 4149 adcs r1, r1
+ 80006b0: bf28 it cs
+ 80006b2: f041 4100 orrcs.w r1, r1, #2147483648 @ 0x80000000
+ 80006b6: bd30 pop {r4, r5, pc}
+ 80006b8: f514 0480 adds.w r4, r4, #4194304 @ 0x400000
+ 80006bc: bf3c itt cc
+ 80006be: f501 1180 addcc.w r1, r1, #1048576 @ 0x100000
+ 80006c2: bd30 popcc {r4, r5, pc}
+ 80006c4: f001 4500 and.w r5, r1, #2147483648 @ 0x80000000
+ 80006c8: f045 41fe orr.w r1, r5, #2130706432 @ 0x7f000000
+ 80006cc: f441 0170 orr.w r1, r1, #15728640 @ 0xf00000
+ 80006d0: f04f 0000 mov.w r0, #0
+ 80006d4: bd30 pop {r4, r5, pc}
+ 80006d6: ea7f 5c64 mvns.w ip, r4, asr #21
+ 80006da: bf1a itte ne
+ 80006dc: 4619 movne r1, r3
+ 80006de: 4610 movne r0, r2
+ 80006e0: ea7f 5c65 mvnseq.w ip, r5, asr #21
+ 80006e4: bf1c itt ne
+ 80006e6: 460b movne r3, r1
+ 80006e8: 4602 movne r2, r0
+ 80006ea: ea50 3401 orrs.w r4, r0, r1, lsl #12
+ 80006ee: bf06 itte eq
+ 80006f0: ea52 3503 orrseq.w r5, r2, r3, lsl #12
+ 80006f4: ea91 0f03 teqeq r1, r3
+ 80006f8: f441 2100 orrne.w r1, r1, #524288 @ 0x80000
+ 80006fc: bd30 pop {r4, r5, pc}
+ 80006fe: bf00 nop
+
+08000700 <__aeabi_ui2d>:
+ 8000700: f090 0f00 teq r0, #0
+ 8000704: bf04 itt eq
+ 8000706: 2100 moveq r1, #0
+ 8000708: 4770 bxeq lr
+ 800070a: b530 push {r4, r5, lr}
+ 800070c: f44f 6480 mov.w r4, #1024 @ 0x400
+ 8000710: f104 0432 add.w r4, r4, #50 @ 0x32
+ 8000714: f04f 0500 mov.w r5, #0
+ 8000718: f04f 0100 mov.w r1, #0
+ 800071c: e750 b.n 80005c0 <__adddf3+0x138>
+ 800071e: bf00 nop
+
+08000720 <__aeabi_i2d>:
+ 8000720: f090 0f00 teq r0, #0
+ 8000724: bf04 itt eq
+ 8000726: 2100 moveq r1, #0
+ 8000728: 4770 bxeq lr
+ 800072a: b530 push {r4, r5, lr}
+ 800072c: f44f 6480 mov.w r4, #1024 @ 0x400
+ 8000730: f104 0432 add.w r4, r4, #50 @ 0x32
+ 8000734: f010 4500 ands.w r5, r0, #2147483648 @ 0x80000000
+ 8000738: bf48 it mi
+ 800073a: 4240 negmi r0, r0
+ 800073c: f04f 0100 mov.w r1, #0
+ 8000740: e73e b.n 80005c0 <__adddf3+0x138>
+ 8000742: bf00 nop
+
+08000744 <__aeabi_f2d>:
+ 8000744: 0042 lsls r2, r0, #1
+ 8000746: ea4f 01e2 mov.w r1, r2, asr #3
+ 800074a: ea4f 0131 mov.w r1, r1, rrx
+ 800074e: ea4f 7002 mov.w r0, r2, lsl #28
+ 8000752: bf1f itttt ne
+ 8000754: f012 437f andsne.w r3, r2, #4278190080 @ 0xff000000
+ 8000758: f093 4f7f teqne r3, #4278190080 @ 0xff000000
+ 800075c: f081 5160 eorne.w r1, r1, #939524096 @ 0x38000000
+ 8000760: 4770 bxne lr
+ 8000762: f032 427f bics.w r2, r2, #4278190080 @ 0xff000000
+ 8000766: bf08 it eq
+ 8000768: 4770 bxeq lr
+ 800076a: f093 4f7f teq r3, #4278190080 @ 0xff000000
+ 800076e: bf04 itt eq
+ 8000770: f441 2100 orreq.w r1, r1, #524288 @ 0x80000
+ 8000774: 4770 bxeq lr
+ 8000776: b530 push {r4, r5, lr}
+ 8000778: f44f 7460 mov.w r4, #896 @ 0x380
+ 800077c: f001 4500 and.w r5, r1, #2147483648 @ 0x80000000
+ 8000780: f021 4100 bic.w r1, r1, #2147483648 @ 0x80000000
+ 8000784: e71c b.n 80005c0 <__adddf3+0x138>
+ 8000786: bf00 nop
+
+08000788 <__aeabi_ul2d>:
+ 8000788: ea50 0201 orrs.w r2, r0, r1
+ 800078c: bf08 it eq
+ 800078e: 4770 bxeq lr
+ 8000790: b530 push {r4, r5, lr}
+ 8000792: f04f 0500 mov.w r5, #0
+ 8000796: e00a b.n 80007ae <__aeabi_l2d+0x16>
+
+08000798 <__aeabi_l2d>:
+ 8000798: ea50 0201 orrs.w r2, r0, r1
+ 800079c: bf08 it eq
+ 800079e: 4770 bxeq lr
+ 80007a0: b530 push {r4, r5, lr}
+ 80007a2: f011 4500 ands.w r5, r1, #2147483648 @ 0x80000000
+ 80007a6: d502 bpl.n 80007ae <__aeabi_l2d+0x16>
+ 80007a8: 4240 negs r0, r0
+ 80007aa: eb61 0141 sbc.w r1, r1, r1, lsl #1
+ 80007ae: f44f 6480 mov.w r4, #1024 @ 0x400
+ 80007b2: f104 0432 add.w r4, r4, #50 @ 0x32
+ 80007b6: ea5f 5c91 movs.w ip, r1, lsr #22
+ 80007ba: f43f aed8 beq.w 800056e <__adddf3+0xe6>
+ 80007be: f04f 0203 mov.w r2, #3
+ 80007c2: ea5f 0cdc movs.w ip, ip, lsr #3
+ 80007c6: bf18 it ne
+ 80007c8: 3203 addne r2, #3
+ 80007ca: ea5f 0cdc movs.w ip, ip, lsr #3
+ 80007ce: bf18 it ne
+ 80007d0: 3203 addne r2, #3
+ 80007d2: eb02 02dc add.w r2, r2, ip, lsr #3
+ 80007d6: f1c2 0320 rsb r3, r2, #32
+ 80007da: fa00 fc03 lsl.w ip, r0, r3
+ 80007de: fa20 f002 lsr.w r0, r0, r2
+ 80007e2: fa01 fe03 lsl.w lr, r1, r3
+ 80007e6: ea40 000e orr.w r0, r0, lr
+ 80007ea: fa21 f102 lsr.w r1, r1, r2
+ 80007ee: 4414 add r4, r2
+ 80007f0: e6bd b.n 800056e <__adddf3+0xe6>
+ 80007f2: bf00 nop
+
+080007f4 <__aeabi_d2uiz>:
+ 80007f4: 004a lsls r2, r1, #1
+ 80007f6: d211 bcs.n 800081c <__aeabi_d2uiz+0x28>
+ 80007f8: f512 1200 adds.w r2, r2, #2097152 @ 0x200000
+ 80007fc: d211 bcs.n 8000822 <__aeabi_d2uiz+0x2e>
+ 80007fe: d50d bpl.n 800081c <__aeabi_d2uiz+0x28>
+ 8000800: f46f 7378 mvn.w r3, #992 @ 0x3e0
+ 8000804: ebb3 5262 subs.w r2, r3, r2, asr #21
+ 8000808: d40e bmi.n 8000828 <__aeabi_d2uiz+0x34>
+ 800080a: ea4f 23c1 mov.w r3, r1, lsl #11
+ 800080e: f043 4300 orr.w r3, r3, #2147483648 @ 0x80000000
+ 8000812: ea43 5350 orr.w r3, r3, r0, lsr #21
+ 8000816: fa23 f002 lsr.w r0, r3, r2
+ 800081a: 4770 bx lr
+ 800081c: f04f 0000 mov.w r0, #0
+ 8000820: 4770 bx lr
+ 8000822: ea50 3001 orrs.w r0, r0, r1, lsl #12
+ 8000826: d102 bne.n 800082e <__aeabi_d2uiz+0x3a>
+ 8000828: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff
+ 800082c: 4770 bx lr
+ 800082e: f04f 0000 mov.w r0, #0
+ 8000832: 4770 bx lr
+
+08000834 :
+ * Output
+ * EVENT_OUT
+ * EXTI
+*/
+void MX_GPIO_Init(void)
+{
+ 8000834: b580 push {r7, lr}
+ 8000836: b088 sub sp, #32
+ 8000838: af00 add r7, sp, #0
+
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ 800083a: f107 0310 add.w r3, r7, #16
+ 800083e: 2200 movs r2, #0
+ 8000840: 601a str r2, [r3, #0]
+ 8000842: 605a str r2, [r3, #4]
+ 8000844: 609a str r2, [r3, #8]
+ 8000846: 60da str r2, [r3, #12]
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+ 8000848: 4b34 ldr r3, [pc, #208] @ (800091c )
+ 800084a: 699b ldr r3, [r3, #24]
+ 800084c: 4a33 ldr r2, [pc, #204] @ (800091c )
+ 800084e: f043 0320 orr.w r3, r3, #32
+ 8000852: 6193 str r3, [r2, #24]
+ 8000854: 4b31 ldr r3, [pc, #196] @ (800091c )
+ 8000856: 699b ldr r3, [r3, #24]
+ 8000858: f003 0320 and.w r3, r3, #32
+ 800085c: 60fb str r3, [r7, #12]
+ 800085e: 68fb ldr r3, [r7, #12]
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ 8000860: 4b2e ldr r3, [pc, #184] @ (800091c )
+ 8000862: 699b ldr r3, [r3, #24]
+ 8000864: 4a2d ldr r2, [pc, #180] @ (800091c )
+ 8000866: f043 0310 orr.w r3, r3, #16
+ 800086a: 6193 str r3, [r2, #24]
+ 800086c: 4b2b ldr r3, [pc, #172] @ (800091c )
+ 800086e: 699b ldr r3, [r3, #24]
+ 8000870: f003 0310 and.w r3, r3, #16
+ 8000874: 60bb str r3, [r7, #8]
+ 8000876: 68bb ldr r3, [r7, #8]
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ 8000878: 4b28 ldr r3, [pc, #160] @ (800091c )
+ 800087a: 699b ldr r3, [r3, #24]
+ 800087c: 4a27 ldr r2, [pc, #156] @ (800091c )
+ 800087e: f043 0304 orr.w r3, r3, #4
+ 8000882: 6193 str r3, [r2, #24]
+ 8000884: 4b25 ldr r3, [pc, #148] @ (800091c )
+ 8000886: 699b ldr r3, [r3, #24]
+ 8000888: f003 0304 and.w r3, r3, #4
+ 800088c: 607b str r3, [r7, #4]
+ 800088e: 687b ldr r3, [r7, #4]
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET);
+ 8000890: 2201 movs r2, #1
+ 8000892: f44f 7180 mov.w r1, #256 @ 0x100
+ 8000896: 4822 ldr r0, [pc, #136] @ (8000920 )
+ 8000898: f007 f8aa bl 80079f0
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
+ 800089c: 2201 movs r2, #1
+ 800089e: 2104 movs r1, #4
+ 80008a0: 4820 ldr r0, [pc, #128] @ (8000924 )
+ 80008a2: f007 f8a5 bl 80079f0
+
+ /*Configure GPIO pin : PtPin */
+ GPIO_InitStruct.Pin = KEY0_Pin;
+ 80008a6: 2320 movs r3, #32
+ 80008a8: 613b str r3, [r7, #16]
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ 80008aa: 2300 movs r3, #0
+ 80008ac: 617b str r3, [r7, #20]
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ 80008ae: 2301 movs r3, #1
+ 80008b0: 61bb str r3, [r7, #24]
+ HAL_GPIO_Init(KEY0_GPIO_Port, &GPIO_InitStruct);
+ 80008b2: f107 0310 add.w r3, r7, #16
+ 80008b6: 4619 mov r1, r3
+ 80008b8: 481b ldr r0, [pc, #108] @ (8000928 )
+ 80008ba: f006 ff05 bl 80076c8
+
+ /*Configure GPIO pin : PtPin */
+ GPIO_InitStruct.Pin = LED0_Pin;
+ 80008be: f44f 7380 mov.w r3, #256 @ 0x100
+ 80008c2: 613b str r3, [r7, #16]
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ 80008c4: 2301 movs r3, #1
+ 80008c6: 617b str r3, [r7, #20]
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ 80008c8: 2300 movs r3, #0
+ 80008ca: 61bb str r3, [r7, #24]
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ 80008cc: 2302 movs r3, #2
+ 80008ce: 61fb str r3, [r7, #28]
+ HAL_GPIO_Init(LED0_GPIO_Port, &GPIO_InitStruct);
+ 80008d0: f107 0310 add.w r3, r7, #16
+ 80008d4: 4619 mov r1, r3
+ 80008d6: 4812 ldr r0, [pc, #72] @ (8000920 )
+ 80008d8: f006 fef6 bl 80076c8
+
+ /*Configure GPIO pin : PtPin */
+ GPIO_InitStruct.Pin = KEY1_Pin;
+ 80008dc: f44f 4300 mov.w r3, #32768 @ 0x8000
+ 80008e0: 613b str r3, [r7, #16]
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ 80008e2: 2300 movs r3, #0
+ 80008e4: 617b str r3, [r7, #20]
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ 80008e6: 2301 movs r3, #1
+ 80008e8: 61bb str r3, [r7, #24]
+ HAL_GPIO_Init(KEY1_GPIO_Port, &GPIO_InitStruct);
+ 80008ea: f107 0310 add.w r3, r7, #16
+ 80008ee: 4619 mov r1, r3
+ 80008f0: 480b ldr r0, [pc, #44] @ (8000920 )
+ 80008f2: f006 fee9 bl 80076c8
+
+ /*Configure GPIO pin : PtPin */
+ GPIO_InitStruct.Pin = LED1_Pin;
+ 80008f6: 2304 movs r3, #4
+ 80008f8: 613b str r3, [r7, #16]
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ 80008fa: 2301 movs r3, #1
+ 80008fc: 617b str r3, [r7, #20]
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ 80008fe: 2300 movs r3, #0
+ 8000900: 61bb str r3, [r7, #24]
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ 8000902: 2302 movs r3, #2
+ 8000904: 61fb str r3, [r7, #28]
+ HAL_GPIO_Init(LED1_GPIO_Port, &GPIO_InitStruct);
+ 8000906: f107 0310 add.w r3, r7, #16
+ 800090a: 4619 mov r1, r3
+ 800090c: 4805 ldr r0, [pc, #20] @ (8000924 )
+ 800090e: f006 fedb bl 80076c8
+
+}
+ 8000912: bf00 nop
+ 8000914: 3720 adds r7, #32
+ 8000916: 46bd mov sp, r7
+ 8000918: bd80 pop {r7, pc}
+ 800091a: bf00 nop
+ 800091c: 40021000 .word 0x40021000
+ 8000920: 40010800 .word 0x40010800
+ 8000924: 40011400 .word 0x40011400
+ 8000928: 40011000 .word 0x40011000
+
+0800092c :
+ * ʡ����ռ�.
+ * @param data : Ҫд�������
+ * @retval ��
+ */
+void lcd_wr_xdata(uint16_t data)
+{
+ 800092c: b480 push {r7}
+ 800092e: b083 sub sp, #12
+ 8000930: af00 add r7, sp, #0
+ 8000932: 4603 mov r3, r0
+ 8000934: 80fb strh r3, [r7, #6]
+ LCD_RS(1);
+ 8000936: 4b0d ldr r3, [pc, #52] @ (800096c )
+ 8000938: f44f 7280 mov.w r2, #256 @ 0x100
+ 800093c: 611a str r2, [r3, #16]
+ LCD_CS(0);
+ 800093e: 4b0b ldr r3, [pc, #44] @ (800096c )
+ 8000940: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000944: 611a str r2, [r3, #16]
+ LCD_DATA_OUT(data);
+ 8000946: 4a0a ldr r2, [pc, #40] @ (8000970 )
+ 8000948: 88fb ldrh r3, [r7, #6]
+ 800094a: 60d3 str r3, [r2, #12]
+ LCD_WR(0);
+ 800094c: 4b07 ldr r3, [pc, #28] @ (800096c )
+ 800094e: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000952: 611a str r2, [r3, #16]
+ LCD_WR(1);
+ 8000954: 4b05 ldr r3, [pc, #20] @ (800096c )
+ 8000956: 2280 movs r2, #128 @ 0x80
+ 8000958: 611a str r2, [r3, #16]
+ LCD_CS(1);
+ 800095a: 4b04 ldr r3, [pc, #16] @ (800096c )
+ 800095c: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000960: 611a str r2, [r3, #16]
+}
+ 8000962: bf00 nop
+ 8000964: 370c adds r7, #12
+ 8000966: 46bd mov sp, r7
+ 8000968: bc80 pop {r7}
+ 800096a: 4770 bx lr
+ 800096c: 40011000 .word 0x40011000
+ 8000970: 40010c00 .word 0x40010c00
+
+08000974 :
+ * @param regno:�Ĵ������/��ַ
+ * @param data:Ҫд�������
+ * @retval ��
+ */
+void lcd_write_reg(uint16_t regno, uint16_t data)
+{
+ 8000974: b480 push {r7}
+ 8000976: b085 sub sp, #20
+ 8000978: af00 add r7, sp, #0
+ 800097a: 4603 mov r3, r0
+ 800097c: 460a mov r2, r1
+ 800097e: 80fb strh r3, [r7, #6]
+ 8000980: 4613 mov r3, r2
+ 8000982: 80bb strh r3, [r7, #4]
+ 8000984: 88fb ldrh r3, [r7, #6]
+ 8000986: 81fb strh r3, [r7, #14]
+ LCD_RS(0); /* RS=0,��ʾд�Ĵ��� */
+ 8000988: 4b19 ldr r3, [pc, #100] @ (80009f0 )
+ 800098a: f04f 7280 mov.w r2, #16777216 @ 0x1000000
+ 800098e: 611a str r2, [r3, #16]
+ LCD_CS(0);
+ 8000990: 4b17 ldr r3, [pc, #92] @ (80009f0 )
+ 8000992: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000996: 611a str r2, [r3, #16]
+ LCD_DATA_OUT(regno); /* д��Ҫд�ļĴ������ */
+ 8000998: 89fb ldrh r3, [r7, #14]
+ 800099a: b29a uxth r2, r3
+ 800099c: 4b15 ldr r3, [pc, #84] @ (80009f4 )
+ 800099e: 60da str r2, [r3, #12]
+ LCD_WR(0);
+ 80009a0: 4b13 ldr r3, [pc, #76] @ (80009f0 )
+ 80009a2: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 80009a6: 611a str r2, [r3, #16]
+ LCD_WR(1);
+ 80009a8: 4b11 ldr r3, [pc, #68] @ (80009f0 )
+ 80009aa: 2280 movs r2, #128 @ 0x80
+ 80009ac: 611a str r2, [r3, #16]
+ LCD_CS(1);
+ 80009ae: 4b10 ldr r3, [pc, #64] @ (80009f0 )
+ 80009b0: f44f 7200 mov.w r2, #512 @ 0x200
+ 80009b4: 611a str r2, [r3, #16]
+}
+ 80009b6: bf00 nop
+ lcd_wr_regno(regno); /* д��Ҫд�ļĴ������ */
+ lcd_wr_data(data); /* ����� */
+ 80009b8: 4b0d ldr r3, [pc, #52] @ (80009f0 )
+ 80009ba: f44f 7280 mov.w r2, #256 @ 0x100
+ 80009be: 611a str r2, [r3, #16]
+ 80009c0: 4b0b ldr r3, [pc, #44] @ (80009f0 )
+ 80009c2: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 80009c6: 611a str r2, [r3, #16]
+ 80009c8: 4a0a ldr r2, [pc, #40] @ (80009f4 )
+ 80009ca: 88bb ldrh r3, [r7, #4]
+ 80009cc: 60d3 str r3, [r2, #12]
+ 80009ce: 4b08 ldr r3, [pc, #32] @ (80009f0 )
+ 80009d0: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 80009d4: 611a str r2, [r3, #16]
+ 80009d6: 4b06 ldr r3, [pc, #24] @ (80009f0 )
+ 80009d8: 2280 movs r2, #128 @ 0x80
+ 80009da: 611a str r2, [r3, #16]
+ 80009dc: 4b04 ldr r3, [pc, #16] @ (80009f0 )
+ 80009de: f44f 7200 mov.w r2, #512 @ 0x200
+ 80009e2: 611a str r2, [r3, #16]
+}
+ 80009e4: bf00 nop
+ 80009e6: 3714 adds r7, #20
+ 80009e8: 46bd mov sp, r7
+ 80009ea: bc80 pop {r7}
+ 80009ec: 4770 bx lr
+ 80009ee: bf00 nop
+ 80009f0: 40011000 .word 0x40011000
+ 80009f4: 40010c00 .word 0x40010c00
+
+080009f8 :
+ * @brief LCD��ʱ����,�����ڲ�����mdk -O1ʱ���Ż�ʱ��Ҫ���õĵط�
+ * @param t:��ʱ����ֵ
+ * @retval ��
+ */
+static void lcd_opt_delay(uint32_t i)
+{
+ 80009f8: b480 push {r7}
+ 80009fa: b083 sub sp, #12
+ 80009fc: af00 add r7, sp, #0
+ 80009fe: 6078 str r0, [r7, #4]
+ while (i--);
+ 8000a00: bf00 nop
+ 8000a02: 687b ldr r3, [r7, #4]
+ 8000a04: 1e5a subs r2, r3, #1
+ 8000a06: 607a str r2, [r7, #4]
+ 8000a08: 2b00 cmp r3, #0
+ 8000a0a: d1fa bne.n 8000a02
+}
+ 8000a0c: bf00 nop
+ 8000a0e: bf00 nop
+ 8000a10: 370c adds r7, #12
+ 8000a12: 46bd mov sp, r7
+ 8000a14: bc80 pop {r7}
+ 8000a16: 4770 bx lr
+
+08000a18 :
+ * @brief LCD������
+ * @param ��
+ * @retval ��ȡ��������
+ */
+static uint16_t lcd_rd_data(void)
+{
+ 8000a18: b580 push {r7, lr}
+ 8000a1a: b086 sub sp, #24
+ 8000a1c: af00 add r7, sp, #0
+ volatile uint16_t ram; /* ��ֹ���Ż� */
+
+ GPIO_InitTypeDef gpio_init_struct;
+ /* LCD_DATA ����ģʽ����, ��������, ׼���������� */
+ gpio_init_struct.Pin = LCD_DATA_GPIO_PIN;
+ 8000a1e: f64f 73ff movw r3, #65535 @ 0xffff
+ 8000a22: 607b str r3, [r7, #4]
+ gpio_init_struct.Mode = GPIO_MODE_INPUT;
+ 8000a24: 2300 movs r3, #0
+ 8000a26: 60bb str r3, [r7, #8]
+ gpio_init_struct.Pull = GPIO_PULLUP;
+ 8000a28: 2301 movs r3, #1
+ 8000a2a: 60fb str r3, [r7, #12]
+ gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;
+ 8000a2c: 2303 movs r3, #3
+ 8000a2e: 613b str r3, [r7, #16]
+ HAL_GPIO_Init(LCD_DATA_GPIO_PORT, &gpio_init_struct);
+ 8000a30: 1d3b adds r3, r7, #4
+ 8000a32: 4619 mov r1, r3
+ 8000a34: 4818 ldr r0, [pc, #96] @ (8000a98 )
+ 8000a36: f006 fe47 bl 80076c8
+
+ LCD_RS(1); /* RS=1,��ʾ�������� */
+ 8000a3a: 4b18 ldr r3, [pc, #96] @ (8000a9c )
+ 8000a3c: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000a40: 611a str r2, [r3, #16]
+ LCD_CS(0);
+ 8000a42: 4b16 ldr r3, [pc, #88] @ (8000a9c )
+ 8000a44: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000a48: 611a str r2, [r3, #16]
+ LCD_RD(0);
+ 8000a4a: 4b14 ldr r3, [pc, #80] @ (8000a9c )
+ 8000a4c: f44f 0280 mov.w r2, #4194304 @ 0x400000
+ 8000a50: 611a str r2, [r3, #16]
+ lcd_opt_delay(2);
+ 8000a52: 2002 movs r0, #2
+ 8000a54: f7ff ffd0 bl 80009f8
+ ram = LCD_DATA_IN; /* ��ȡ���� */
+ 8000a58: 4b0f ldr r3, [pc, #60] @ (8000a98 )
+ 8000a5a: 689b ldr r3, [r3, #8]
+ 8000a5c: b29b uxth r3, r3
+ 8000a5e: 82fb strh r3, [r7, #22]
+ LCD_RD(1);
+ 8000a60: 4b0e ldr r3, [pc, #56] @ (8000a9c )
+ 8000a62: 2240 movs r2, #64 @ 0x40
+ 8000a64: 611a str r2, [r3, #16]
+ LCD_CS(1);
+ 8000a66: 4b0d ldr r3, [pc, #52] @ (8000a9c )
+ 8000a68: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000a6c: 611a str r2, [r3, #16]
+
+ /* LCD_DATA ����ģʽ����, �������, �ָ����״̬ */
+ gpio_init_struct.Pin = LCD_DATA_GPIO_PIN;
+ 8000a6e: f64f 73ff movw r3, #65535 @ 0xffff
+ 8000a72: 607b str r3, [r7, #4]
+ gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;
+ 8000a74: 2301 movs r3, #1
+ 8000a76: 60bb str r3, [r7, #8]
+ gpio_init_struct.Pull = GPIO_PULLUP;
+ 8000a78: 2301 movs r3, #1
+ 8000a7a: 60fb str r3, [r7, #12]
+ gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;
+ 8000a7c: 2303 movs r3, #3
+ 8000a7e: 613b str r3, [r7, #16]
+ HAL_GPIO_Init(LCD_DATA_GPIO_PORT, &gpio_init_struct);
+ 8000a80: 1d3b adds r3, r7, #4
+ 8000a82: 4619 mov r1, r3
+ 8000a84: 4804 ldr r0, [pc, #16] @ (8000a98 )
+ 8000a86: f006 fe1f bl 80076c8
+
+ return ram;
+ 8000a8a: 8afb ldrh r3, [r7, #22]
+ 8000a8c: b29b uxth r3, r3
+}
+ 8000a8e: 4618 mov r0, r3
+ 8000a90: 3718 adds r7, #24
+ 8000a92: 46bd mov sp, r7
+ 8000a94: bd80 pop {r7, pc}
+ 8000a96: bf00 nop
+ 8000a98: 40010c00 .word 0x40010c00
+ 8000a9c: 40011000 .word 0x40011000
+
+08000aa0 :
+ * @brief ���ù��λ��(��RGB����Ч)
+ * @param x,y: ����
+ * @retval ��
+ */
+void lcd_set_cursor(uint16_t x, uint16_t y)
+{
+ 8000aa0: b480 push {r7}
+ 8000aa2: b089 sub sp, #36 @ 0x24
+ 8000aa4: af00 add r7, sp, #0
+ 8000aa6: 4603 mov r3, r0
+ 8000aa8: 460a mov r2, r1
+ 8000aaa: 80fb strh r3, [r7, #6]
+ 8000aac: 4613 mov r3, r2
+ 8000aae: 80bb strh r3, [r7, #4]
+ if (lcddev.id == 0X1963)
+ 8000ab0: 4b44 ldr r3, [pc, #272] @ (8000bc4 )
+ 8000ab2: 889b ldrh r3, [r3, #4]
+ 8000ab4: f641 1263 movw r2, #6499 @ 0x1963
+ 8000ab8: 4293 cmp r3, r2
+ 8000aba: f040 8189 bne.w 8000dd0
+ {
+ if (lcddev.dir == 0) /* ����ģʽ, x������Ҫ�任 */
+ 8000abe: 4b41 ldr r3, [pc, #260] @ (8000bc4 )
+ 8000ac0: 799b ldrb r3, [r3, #6]
+ 8000ac2: 2b00 cmp r3, #0
+ 8000ac4: f040 8084 bne.w 8000bd0
+ {
+ x = lcddev.width - 1 - x;
+ 8000ac8: 4b3e ldr r3, [pc, #248] @ (8000bc4 )
+ 8000aca: 881a ldrh r2, [r3, #0]
+ 8000acc: 88fb ldrh r3, [r7, #6]
+ 8000ace: 1ad3 subs r3, r2, r3
+ 8000ad0: b29b uxth r3, r3
+ 8000ad2: 3b01 subs r3, #1
+ 8000ad4: 80fb strh r3, [r7, #6]
+ lcd_wr_regno(lcddev.setxcmd);
+ 8000ad6: 4b3b ldr r3, [pc, #236] @ (8000bc4 )
+ 8000ad8: 895b ldrh r3, [r3, #10]
+ 8000ada: 81fb strh r3, [r7, #14]
+ LCD_RS(0); /* RS=0,��ʾд�Ĵ��� */
+ 8000adc: 4b3a ldr r3, [pc, #232] @ (8000bc8 )
+ 8000ade: f04f 7280 mov.w r2, #16777216 @ 0x1000000
+ 8000ae2: 611a str r2, [r3, #16]
+ LCD_CS(0);
+ 8000ae4: 4b38 ldr r3, [pc, #224] @ (8000bc8 )
+ 8000ae6: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000aea: 611a str r2, [r3, #16]
+ LCD_DATA_OUT(regno); /* д��Ҫд�ļĴ������ */
+ 8000aec: 89fb ldrh r3, [r7, #14]
+ 8000aee: b29a uxth r2, r3
+ 8000af0: 4b36 ldr r3, [pc, #216] @ (8000bcc )
+ 8000af2: 60da str r2, [r3, #12]
+ LCD_WR(0);
+ 8000af4: 4b34 ldr r3, [pc, #208] @ (8000bc8 )
+ 8000af6: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000afa: 611a str r2, [r3, #16]
+ LCD_WR(1);
+ 8000afc: 4b32 ldr r3, [pc, #200] @ (8000bc8 )
+ 8000afe: 2280 movs r2, #128 @ 0x80
+ 8000b00: 611a str r2, [r3, #16]
+ LCD_CS(1);
+ 8000b02: 4b31 ldr r3, [pc, #196] @ (8000bc8 )
+ 8000b04: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000b08: 611a str r2, [r3, #16]
+}
+ 8000b0a: bf00 nop
+ lcd_wr_data(0);
+ 8000b0c: 4b2e ldr r3, [pc, #184] @ (8000bc8 )
+ 8000b0e: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000b12: 611a str r2, [r3, #16]
+ 8000b14: 4b2c ldr r3, [pc, #176] @ (8000bc8 )
+ 8000b16: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000b1a: 611a str r2, [r3, #16]
+ 8000b1c: 4b2b ldr r3, [pc, #172] @ (8000bcc )
+ 8000b1e: 2200 movs r2, #0
+ 8000b20: 60da str r2, [r3, #12]
+ 8000b22: 4b29 ldr r3, [pc, #164] @ (8000bc8 )
+ 8000b24: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000b28: 611a str r2, [r3, #16]
+ 8000b2a: 4b27 ldr r3, [pc, #156] @ (8000bc8 )
+ 8000b2c: 2280 movs r2, #128 @ 0x80
+ 8000b2e: 611a str r2, [r3, #16]
+ 8000b30: 4b25 ldr r3, [pc, #148] @ (8000bc8 )
+ 8000b32: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000b36: 611a str r2, [r3, #16]
+ lcd_wr_data(0);
+ 8000b38: 4b23 ldr r3, [pc, #140] @ (8000bc8 )
+ 8000b3a: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000b3e: 611a str r2, [r3, #16]
+ 8000b40: 4b21 ldr r3, [pc, #132] @ (8000bc8 )
+ 8000b42: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000b46: 611a str r2, [r3, #16]
+ 8000b48: 4b20 ldr r3, [pc, #128] @ (8000bcc )
+ 8000b4a: 2200 movs r2, #0
+ 8000b4c: 60da str r2, [r3, #12]
+ 8000b4e: 4b1e ldr r3, [pc, #120] @ (8000bc8 )
+ 8000b50: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000b54: 611a str r2, [r3, #16]
+ 8000b56: 4b1c ldr r3, [pc, #112] @ (8000bc8 )
+ 8000b58: 2280 movs r2, #128 @ 0x80
+ 8000b5a: 611a str r2, [r3, #16]
+ 8000b5c: 4b1a ldr r3, [pc, #104] @ (8000bc8 )
+ 8000b5e: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000b62: 611a str r2, [r3, #16]
+ lcd_wr_data(x >> 8);
+ 8000b64: 4b18 ldr r3, [pc, #96] @ (8000bc8 )
+ 8000b66: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000b6a: 611a str r2, [r3, #16]
+ 8000b6c: 4b16 ldr r3, [pc, #88] @ (8000bc8 )
+ 8000b6e: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000b72: 611a str r2, [r3, #16]
+ 8000b74: 88fb ldrh r3, [r7, #6]
+ 8000b76: 0a1b lsrs r3, r3, #8
+ 8000b78: b29a uxth r2, r3
+ 8000b7a: 4b14 ldr r3, [pc, #80] @ (8000bcc )
+ 8000b7c: 60da str r2, [r3, #12]
+ 8000b7e: 4b12 ldr r3, [pc, #72] @ (8000bc8 )
+ 8000b80: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000b84: 611a str r2, [r3, #16]
+ 8000b86: 4b10 ldr r3, [pc, #64] @ (8000bc8 )
+ 8000b88: 2280 movs r2, #128 @ 0x80
+ 8000b8a: 611a str r2, [r3, #16]
+ 8000b8c: 4b0e ldr r3, [pc, #56] @ (8000bc8 )
+ 8000b8e: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000b92: 611a str r2, [r3, #16]
+ lcd_wr_data(x & 0XFF);
+ 8000b94: 4b0c ldr r3, [pc, #48] @ (8000bc8 )
+ 8000b96: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000b9a: 611a str r2, [r3, #16]
+ 8000b9c: 4b0a ldr r3, [pc, #40] @ (8000bc8 )
+ 8000b9e: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000ba2: 611a str r2, [r3, #16]
+ 8000ba4: 88fb ldrh r3, [r7, #6]
+ 8000ba6: 4a09 ldr r2, [pc, #36] @ (8000bcc )
+ 8000ba8: b2db uxtb r3, r3
+ 8000baa: 60d3 str r3, [r2, #12]
+ 8000bac: 4b06 ldr r3, [pc, #24] @ (8000bc8 )
+ 8000bae: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000bb2: 611a str r2, [r3, #16]
+ 8000bb4: 4b04 ldr r3, [pc, #16] @ (8000bc8 )
+ 8000bb6: 2280 movs r2, #128 @ 0x80
+ 8000bb8: 611a str r2, [r3, #16]
+ 8000bba: 4b03 ldr r3, [pc, #12] @ (8000bc8 )
+ 8000bbc: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000bc0: 611a str r2, [r3, #16]
+ 8000bc2: e081 b.n 8000cc8
+ 8000bc4: 2000002c .word 0x2000002c
+ 8000bc8: 40011000 .word 0x40011000
+ 8000bcc: 40010c00 .word 0x40010c00
+ }
+ else /* ����ģʽ */
+ {
+ lcd_wr_regno(lcddev.setxcmd);
+ 8000bd0: 4b7c ldr r3, [pc, #496] @ (8000dc4 )
+ 8000bd2: 895b ldrh r3, [r3, #10]
+ 8000bd4: 823b strh r3, [r7, #16]
+ LCD_RS(0); /* RS=0,��ʾд�Ĵ��� */
+ 8000bd6: 4b7c ldr r3, [pc, #496] @ (8000dc8 )
+ 8000bd8: f04f 7280 mov.w r2, #16777216 @ 0x1000000
+ 8000bdc: 611a str r2, [r3, #16]
+ LCD_CS(0);
+ 8000bde: 4b7a ldr r3, [pc, #488] @ (8000dc8 )
+ 8000be0: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000be4: 611a str r2, [r3, #16]
+ LCD_DATA_OUT(regno); /* д��Ҫд�ļĴ������ */
+ 8000be6: 8a3b ldrh r3, [r7, #16]
+ 8000be8: b29a uxth r2, r3
+ 8000bea: 4b78 ldr r3, [pc, #480] @ (8000dcc )
+ 8000bec: 60da str r2, [r3, #12]
+ LCD_WR(0);
+ 8000bee: 4b76 ldr r3, [pc, #472] @ (8000dc8 )
+ 8000bf0: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000bf4: 611a str r2, [r3, #16]
+ LCD_WR(1);
+ 8000bf6: 4b74 ldr r3, [pc, #464] @ (8000dc8 )
+ 8000bf8: 2280 movs r2, #128 @ 0x80
+ 8000bfa: 611a str r2, [r3, #16]
+ LCD_CS(1);
+ 8000bfc: 4b72 ldr r3, [pc, #456] @ (8000dc8 )
+ 8000bfe: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000c02: 611a str r2, [r3, #16]
+}
+ 8000c04: bf00 nop
+ lcd_wr_data(x >> 8);
+ 8000c06: 4b70 ldr r3, [pc, #448] @ (8000dc8 )
+ 8000c08: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000c0c: 611a str r2, [r3, #16]
+ 8000c0e: 4b6e ldr r3, [pc, #440] @ (8000dc8 )
+ 8000c10: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000c14: 611a str r2, [r3, #16]
+ 8000c16: 88fb ldrh r3, [r7, #6]
+ 8000c18: 0a1b lsrs r3, r3, #8
+ 8000c1a: b29a uxth r2, r3
+ 8000c1c: 4b6b ldr r3, [pc, #428] @ (8000dcc )
+ 8000c1e: 60da str r2, [r3, #12]
+ 8000c20: 4b69 ldr r3, [pc, #420] @ (8000dc8 )
+ 8000c22: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000c26: 611a str r2, [r3, #16]
+ 8000c28: 4b67 ldr r3, [pc, #412] @ (8000dc8 )
+ 8000c2a: 2280 movs r2, #128 @ 0x80
+ 8000c2c: 611a str r2, [r3, #16]
+ 8000c2e: 4b66 ldr r3, [pc, #408] @ (8000dc8 )
+ 8000c30: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000c34: 611a str r2, [r3, #16]
+ lcd_wr_data(x & 0XFF);
+ 8000c36: 4b64 ldr r3, [pc, #400] @ (8000dc8 )
+ 8000c38: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000c3c: 611a str r2, [r3, #16]
+ 8000c3e: 4b62 ldr r3, [pc, #392] @ (8000dc8 )
+ 8000c40: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000c44: 611a str r2, [r3, #16]
+ 8000c46: 88fb ldrh r3, [r7, #6]
+ 8000c48: 4a60 ldr r2, [pc, #384] @ (8000dcc )
+ 8000c4a: b2db uxtb r3, r3
+ 8000c4c: 60d3 str r3, [r2, #12]
+ 8000c4e: 4b5e ldr r3, [pc, #376] @ (8000dc8 )
+ 8000c50: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000c54: 611a str r2, [r3, #16]
+ 8000c56: 4b5c ldr r3, [pc, #368] @ (8000dc8 )
+ 8000c58: 2280 movs r2, #128 @ 0x80
+ 8000c5a: 611a str r2, [r3, #16]
+ 8000c5c: 4b5a ldr r3, [pc, #360] @ (8000dc8 )
+ 8000c5e: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000c62: 611a str r2, [r3, #16]
+ lcd_wr_data((lcddev.width - 1) >> 8);
+ 8000c64: 4b58 ldr r3, [pc, #352] @ (8000dc8 )
+ 8000c66: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000c6a: 611a str r2, [r3, #16]
+ 8000c6c: 4b56 ldr r3, [pc, #344] @ (8000dc8 )
+ 8000c6e: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000c72: 611a str r2, [r3, #16]
+ 8000c74: 4b53 ldr r3, [pc, #332] @ (8000dc4 )
+ 8000c76: 881b ldrh r3, [r3, #0]
+ 8000c78: 3b01 subs r3, #1
+ 8000c7a: 121a asrs r2, r3, #8
+ 8000c7c: 4b53 ldr r3, [pc, #332] @ (8000dcc )
+ 8000c7e: 60da str r2, [r3, #12]
+ 8000c80: 4b51 ldr r3, [pc, #324] @ (8000dc8 )
+ 8000c82: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000c86: 611a str r2, [r3, #16]
+ 8000c88: 4b4f ldr r3, [pc, #316] @ (8000dc8 )
+ 8000c8a: 2280 movs r2, #128 @ 0x80
+ 8000c8c: 611a str r2, [r3, #16]
+ 8000c8e: 4b4e ldr r3, [pc, #312] @ (8000dc8 )
+ 8000c90: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000c94: 611a str r2, [r3, #16]
+ lcd_wr_data((lcddev.width - 1) & 0XFF);
+ 8000c96: 4b4c ldr r3, [pc, #304] @ (8000dc8 )
+ 8000c98: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000c9c: 611a str r2, [r3, #16]
+ 8000c9e: 4b4a ldr r3, [pc, #296] @ (8000dc8 )
+ 8000ca0: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000ca4: 611a str r2, [r3, #16]
+ 8000ca6: 4b47 ldr r3, [pc, #284] @ (8000dc4 )
+ 8000ca8: 881b ldrh r3, [r3, #0]
+ 8000caa: 3b01 subs r3, #1
+ 8000cac: 4a47 ldr r2, [pc, #284] @ (8000dcc )
+ 8000cae: b2db uxtb r3, r3
+ 8000cb0: 60d3 str r3, [r2, #12]
+ 8000cb2: 4b45 ldr r3, [pc, #276] @ (8000dc8 )
+ 8000cb4: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000cb8: 611a str r2, [r3, #16]
+ 8000cba: 4b43 ldr r3, [pc, #268] @ (8000dc8 )
+ 8000cbc: 2280 movs r2, #128 @ 0x80
+ 8000cbe: 611a str r2, [r3, #16]
+ 8000cc0: 4b41 ldr r3, [pc, #260] @ (8000dc8 )
+ 8000cc2: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000cc6: 611a str r2, [r3, #16]
+ }
+
+ lcd_wr_regno(lcddev.setycmd);
+ 8000cc8: 4b3e ldr r3, [pc, #248] @ (8000dc4 )
+ 8000cca: 899b ldrh r3, [r3, #12]
+ 8000ccc: 827b strh r3, [r7, #18]
+ LCD_RS(0); /* RS=0,��ʾд�Ĵ��� */
+ 8000cce: 4b3e ldr r3, [pc, #248] @ (8000dc8 )
+ 8000cd0: f04f 7280 mov.w r2, #16777216 @ 0x1000000
+ 8000cd4: 611a str r2, [r3, #16]
+ LCD_CS(0);
+ 8000cd6: 4b3c ldr r3, [pc, #240] @ (8000dc8 )
+ 8000cd8: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000cdc: 611a str r2, [r3, #16]
+ LCD_DATA_OUT(regno); /* д��Ҫд�ļĴ������ */
+ 8000cde: 8a7b ldrh r3, [r7, #18]
+ 8000ce0: b29a uxth r2, r3
+ 8000ce2: 4b3a ldr r3, [pc, #232] @ (8000dcc )
+ 8000ce4: 60da str r2, [r3, #12]
+ LCD_WR(0);
+ 8000ce6: 4b38 ldr r3, [pc, #224] @ (8000dc8 )
+ 8000ce8: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000cec: 611a str r2, [r3, #16]
+ LCD_WR(1);
+ 8000cee: 4b36 ldr r3, [pc, #216] @ (8000dc8 )
+ 8000cf0: 2280 movs r2, #128 @ 0x80
+ 8000cf2: 611a str r2, [r3, #16]
+ LCD_CS(1);
+ 8000cf4: 4b34 ldr r3, [pc, #208] @ (8000dc8 )
+ 8000cf6: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000cfa: 611a str r2, [r3, #16]
+}
+ 8000cfc: bf00 nop
+ lcd_wr_data(y >> 8);
+ 8000cfe: 4b32 ldr r3, [pc, #200] @ (8000dc8 )
+ 8000d00: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000d04: 611a str r2, [r3, #16]
+ 8000d06: 4b30 ldr r3, [pc, #192] @ (8000dc8 )
+ 8000d08: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000d0c: 611a str r2, [r3, #16]
+ 8000d0e: 88bb ldrh r3, [r7, #4]
+ 8000d10: 0a1b lsrs r3, r3, #8
+ 8000d12: b29a uxth r2, r3
+ 8000d14: 4b2d ldr r3, [pc, #180] @ (8000dcc )
+ 8000d16: 60da str r2, [r3, #12]
+ 8000d18: 4b2b ldr r3, [pc, #172] @ (8000dc8 )
+ 8000d1a: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000d1e: 611a str r2, [r3, #16]
+ 8000d20: 4b29 ldr r3, [pc, #164] @ (8000dc8 )
+ 8000d22: 2280 movs r2, #128 @ 0x80
+ 8000d24: 611a str r2, [r3, #16]
+ 8000d26: 4b28 ldr r3, [pc, #160] @ (8000dc8 )
+ 8000d28: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000d2c: 611a str r2, [r3, #16]
+ lcd_wr_data(y & 0XFF);
+ 8000d2e: 4b26 ldr r3, [pc, #152] @ (8000dc8 )
+ 8000d30: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000d34: 611a str r2, [r3, #16]
+ 8000d36: 4b24 ldr r3, [pc, #144] @ (8000dc8 )
+ 8000d38: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000d3c: 611a str r2, [r3, #16]
+ 8000d3e: 88bb ldrh r3, [r7, #4]
+ 8000d40: 4a22 ldr r2, [pc, #136] @ (8000dcc )
+ 8000d42: b2db uxtb r3, r3
+ 8000d44: 60d3 str r3, [r2, #12]
+ 8000d46: 4b20 ldr r3, [pc, #128] @ (8000dc8 )
+ 8000d48: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000d4c: 611a str r2, [r3, #16]
+ 8000d4e: 4b1e ldr r3, [pc, #120] @ (8000dc8 )
+ 8000d50: 2280 movs r2, #128 @ 0x80
+ 8000d52: 611a str r2, [r3, #16]
+ 8000d54: 4b1c ldr r3, [pc, #112] @ (8000dc8 )
+ 8000d56: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000d5a: 611a str r2, [r3, #16]
+ lcd_wr_data((lcddev.height - 1) >> 8);
+ 8000d5c: 4b1a ldr r3, [pc, #104] @ (8000dc8 )
+ 8000d5e: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000d62: 611a str r2, [r3, #16]
+ 8000d64: 4b18 ldr r3, [pc, #96] @ (8000dc8 )
+ 8000d66: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000d6a: 611a str r2, [r3, #16]
+ 8000d6c: 4b15 ldr r3, [pc, #84] @ (8000dc4 )
+ 8000d6e: 885b ldrh r3, [r3, #2]
+ 8000d70: 3b01 subs r3, #1
+ 8000d72: 121a asrs r2, r3, #8
+ 8000d74: 4b15 ldr r3, [pc, #84] @ (8000dcc )
+ 8000d76: 60da str r2, [r3, #12]
+ 8000d78: 4b13 ldr r3, [pc, #76] @ (8000dc8 )
+ 8000d7a: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000d7e: 611a str r2, [r3, #16]
+ 8000d80: 4b11 ldr r3, [pc, #68] @ (8000dc8 )
+ 8000d82: 2280 movs r2, #128 @ 0x80
+ 8000d84: 611a str r2, [r3, #16]
+ 8000d86: 4b10 ldr r3, [pc, #64] @ (8000dc8 )
+ 8000d88: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000d8c: 611a str r2, [r3, #16]
+ lcd_wr_data((lcddev.height - 1) & 0XFF);
+ 8000d8e: 4b0e ldr r3, [pc, #56] @ (8000dc8 )
+ 8000d90: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000d94: 611a str r2, [r3, #16]
+ 8000d96: 4b0c ldr r3, [pc, #48] @ (8000dc8 )
+ 8000d98: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000d9c: 611a str r2, [r3, #16]
+ 8000d9e: 4b09 ldr r3, [pc, #36] @ (8000dc4 )
+ 8000da0: 885b ldrh r3, [r3, #2]
+ 8000da2: 3b01 subs r3, #1
+ 8000da4: 4a09 ldr r2, [pc, #36] @ (8000dcc )
+ 8000da6: b2db uxtb r3, r3
+ 8000da8: 60d3 str r3, [r2, #12]
+ 8000daa: 4b07 ldr r3, [pc, #28] @ (8000dc8 )
+ 8000dac: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000db0: 611a str r2, [r3, #16]
+ 8000db2: 4b05 ldr r3, [pc, #20] @ (8000dc8 )
+ 8000db4: 2280 movs r2, #128 @ 0x80
+ 8000db6: 611a str r2, [r3, #16]
+ 8000db8: 4b03 ldr r3, [pc, #12] @ (8000dc8 )
+ 8000dba: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000dbe: 611a str r2, [r3, #16]
+ lcd_wr_data(x & 0XFF);
+ lcd_wr_regno(lcddev.setycmd);
+ lcd_wr_data(y >> 8);
+ lcd_wr_data(y & 0XFF);
+ }
+}
+ 8000dc0: e176 b.n 80010b0
+ 8000dc2: bf00 nop
+ 8000dc4: 2000002c .word 0x2000002c
+ 8000dc8: 40011000 .word 0x40011000
+ 8000dcc: 40010c00 .word 0x40010c00
+ else if (lcddev.id == 0X5510)
+ 8000dd0: 4b6a ldr r3, [pc, #424] @ (8000f7c )
+ 8000dd2: 889b ldrh r3, [r3, #4]
+ 8000dd4: f245 5210 movw r2, #21776 @ 0x5510
+ 8000dd8: 4293 cmp r3, r2
+ 8000dda: f040 80d5 bne.w 8000f88
+ lcd_wr_regno(lcddev.setxcmd);
+ 8000dde: 4b67 ldr r3, [pc, #412] @ (8000f7c )
+ 8000de0: 895b ldrh r3, [r3, #10]
+ 8000de2: 837b strh r3, [r7, #26]
+ LCD_RS(0); /* RS=0,��ʾд�Ĵ��� */
+ 8000de4: 4b66 ldr r3, [pc, #408] @ (8000f80 )
+ 8000de6: f04f 7280 mov.w r2, #16777216 @ 0x1000000
+ 8000dea: 611a str r2, [r3, #16]
+ LCD_CS(0);
+ 8000dec: 4b64 ldr r3, [pc, #400] @ (8000f80 )
+ 8000dee: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000df2: 611a str r2, [r3, #16]
+ LCD_DATA_OUT(regno); /* д��Ҫд�ļĴ������ */
+ 8000df4: 8b7b ldrh r3, [r7, #26]
+ 8000df6: b29a uxth r2, r3
+ 8000df8: 4b62 ldr r3, [pc, #392] @ (8000f84 )
+ 8000dfa: 60da str r2, [r3, #12]
+ LCD_WR(0);
+ 8000dfc: 4b60 ldr r3, [pc, #384] @ (8000f80 )
+ 8000dfe: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000e02: 611a str r2, [r3, #16]
+ LCD_WR(1);
+ 8000e04: 4b5e ldr r3, [pc, #376] @ (8000f80 )
+ 8000e06: 2280 movs r2, #128 @ 0x80
+ 8000e08: 611a str r2, [r3, #16]
+ LCD_CS(1);
+ 8000e0a: 4b5d ldr r3, [pc, #372] @ (8000f80 )
+ 8000e0c: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000e10: 611a str r2, [r3, #16]
+}
+ 8000e12: bf00 nop
+ lcd_wr_data(x >> 8);
+ 8000e14: 4b5a ldr r3, [pc, #360] @ (8000f80 )
+ 8000e16: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000e1a: 611a str r2, [r3, #16]
+ 8000e1c: 4b58 ldr r3, [pc, #352] @ (8000f80 )
+ 8000e1e: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000e22: 611a str r2, [r3, #16]
+ 8000e24: 88fb ldrh r3, [r7, #6]
+ 8000e26: 0a1b lsrs r3, r3, #8
+ 8000e28: b29a uxth r2, r3
+ 8000e2a: 4b56 ldr r3, [pc, #344] @ (8000f84 )
+ 8000e2c: 60da str r2, [r3, #12]
+ 8000e2e: 4b54 ldr r3, [pc, #336] @ (8000f80 )
+ 8000e30: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000e34: 611a str r2, [r3, #16]
+ 8000e36: 4b52 ldr r3, [pc, #328] @ (8000f80 )
+ 8000e38: 2280 movs r2, #128 @ 0x80
+ 8000e3a: 611a str r2, [r3, #16]
+ 8000e3c: 4b50 ldr r3, [pc, #320] @ (8000f80 )
+ 8000e3e: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000e42: 611a str r2, [r3, #16]
+ lcd_wr_regno(lcddev.setxcmd + 1);
+ 8000e44: 4b4d ldr r3, [pc, #308] @ (8000f7c )
+ 8000e46: 895b ldrh r3, [r3, #10]
+ 8000e48: 3301 adds r3, #1
+ 8000e4a: b29b uxth r3, r3
+ 8000e4c: 833b strh r3, [r7, #24]
+ LCD_RS(0); /* RS=0,��ʾд�Ĵ��� */
+ 8000e4e: 4b4c ldr r3, [pc, #304] @ (8000f80 )
+ 8000e50: f04f 7280 mov.w r2, #16777216 @ 0x1000000
+ 8000e54: 611a str r2, [r3, #16]
+ LCD_CS(0);
+ 8000e56: 4b4a ldr r3, [pc, #296] @ (8000f80 )
+ 8000e58: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000e5c: 611a str r2, [r3, #16]
+ LCD_DATA_OUT(regno); /* д��Ҫд�ļĴ������ */
+ 8000e5e: 8b3b ldrh r3, [r7, #24]
+ 8000e60: b29a uxth r2, r3
+ 8000e62: 4b48 ldr r3, [pc, #288] @ (8000f84 )
+ 8000e64: 60da str r2, [r3, #12]
+ LCD_WR(0);
+ 8000e66: 4b46 ldr r3, [pc, #280] @ (8000f80 )
+ 8000e68: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000e6c: 611a str r2, [r3, #16]
+ LCD_WR(1);
+ 8000e6e: 4b44 ldr r3, [pc, #272] @ (8000f80 )
+ 8000e70: 2280 movs r2, #128 @ 0x80
+ 8000e72: 611a str r2, [r3, #16]
+ LCD_CS(1);
+ 8000e74: 4b42 ldr r3, [pc, #264] @ (8000f80 )
+ 8000e76: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000e7a: 611a str r2, [r3, #16]
+}
+ 8000e7c: bf00 nop
+ lcd_wr_data(x & 0XFF);
+ 8000e7e: 4b40 ldr r3, [pc, #256] @ (8000f80 )
+ 8000e80: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000e84: 611a str r2, [r3, #16]
+ 8000e86: 4b3e ldr r3, [pc, #248] @ (8000f80 )
+ 8000e88: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000e8c: 611a str r2, [r3, #16]
+ 8000e8e: 88fb ldrh r3, [r7, #6]
+ 8000e90: 4a3c ldr r2, [pc, #240] @ (8000f84 )
+ 8000e92: b2db uxtb r3, r3
+ 8000e94: 60d3 str r3, [r2, #12]
+ 8000e96: 4b3a ldr r3, [pc, #232] @ (8000f80 )
+ 8000e98: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000e9c: 611a str r2, [r3, #16]
+ 8000e9e: 4b38 ldr r3, [pc, #224] @ (8000f80 )
+ 8000ea0: 2280 movs r2, #128 @ 0x80
+ 8000ea2: 611a str r2, [r3, #16]
+ 8000ea4: 4b36 ldr r3, [pc, #216] @ (8000f80 )
+ 8000ea6: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000eaa: 611a str r2, [r3, #16]
+ lcd_wr_regno(lcddev.setycmd);
+ 8000eac: 4b33 ldr r3, [pc, #204] @ (8000f7c )
+ 8000eae: 899b ldrh r3, [r3, #12]
+ 8000eb0: 82fb strh r3, [r7, #22]
+ LCD_RS(0); /* RS=0,��ʾд�Ĵ��� */
+ 8000eb2: 4b33 ldr r3, [pc, #204] @ (8000f80 )
+ 8000eb4: f04f 7280 mov.w r2, #16777216 @ 0x1000000
+ 8000eb8: 611a str r2, [r3, #16]
+ LCD_CS(0);
+ 8000eba: 4b31 ldr r3, [pc, #196] @ (8000f80 )
+ 8000ebc: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000ec0: 611a str r2, [r3, #16]
+ LCD_DATA_OUT(regno); /* д��Ҫд�ļĴ������ */
+ 8000ec2: 8afb ldrh r3, [r7, #22]
+ 8000ec4: b29a uxth r2, r3
+ 8000ec6: 4b2f ldr r3, [pc, #188] @ (8000f84 )
+ 8000ec8: 60da str r2, [r3, #12]
+ LCD_WR(0);
+ 8000eca: 4b2d ldr r3, [pc, #180] @ (8000f80 )
+ 8000ecc: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000ed0: 611a str r2, [r3, #16]
+ LCD_WR(1);
+ 8000ed2: 4b2b ldr r3, [pc, #172] @ (8000f80 )
+ 8000ed4: 2280 movs r2, #128 @ 0x80
+ 8000ed6: 611a str r2, [r3, #16]
+ LCD_CS(1);
+ 8000ed8: 4b29 ldr r3, [pc, #164] @ (8000f80 )
+ 8000eda: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000ede: 611a str r2, [r3, #16]
+}
+ 8000ee0: bf00 nop
+ lcd_wr_data(y >> 8);
+ 8000ee2: 4b27 ldr r3, [pc, #156] @ (8000f80 )
+ 8000ee4: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000ee8: 611a str r2, [r3, #16]
+ 8000eea: 4b25 ldr r3, [pc, #148] @ (8000f80 )
+ 8000eec: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000ef0: 611a str r2, [r3, #16]
+ 8000ef2: 88bb ldrh r3, [r7, #4]
+ 8000ef4: 0a1b lsrs r3, r3, #8
+ 8000ef6: b29a uxth r2, r3
+ 8000ef8: 4b22 ldr r3, [pc, #136] @ (8000f84 )
+ 8000efa: 60da str r2, [r3, #12]
+ 8000efc: 4b20 ldr r3, [pc, #128] @ (8000f80 )
+ 8000efe: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000f02: 611a str r2, [r3, #16]
+ 8000f04: 4b1e ldr r3, [pc, #120] @ (8000f80 )
+ 8000f06: 2280 movs r2, #128 @ 0x80
+ 8000f08: 611a str r2, [r3, #16]
+ 8000f0a: 4b1d ldr r3, [pc, #116] @ (8000f80 )
+ 8000f0c: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000f10: 611a str r2, [r3, #16]
+ lcd_wr_regno(lcddev.setycmd + 1);
+ 8000f12: 4b1a ldr r3, [pc, #104] @ (8000f7c )
+ 8000f14: 899b ldrh r3, [r3, #12]
+ 8000f16: 3301 adds r3, #1
+ 8000f18: b29b uxth r3, r3
+ 8000f1a: 82bb strh r3, [r7, #20]
+ LCD_RS(0); /* RS=0,��ʾд�Ĵ��� */
+ 8000f1c: 4b18 ldr r3, [pc, #96] @ (8000f80 )
+ 8000f1e: f04f 7280 mov.w r2, #16777216 @ 0x1000000
+ 8000f22: 611a str r2, [r3, #16]
+ LCD_CS(0);
+ 8000f24: 4b16 ldr r3, [pc, #88] @ (8000f80 )
+ 8000f26: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000f2a: 611a str r2, [r3, #16]
+ LCD_DATA_OUT(regno); /* д��Ҫд�ļĴ������ */
+ 8000f2c: 8abb ldrh r3, [r7, #20]
+ 8000f2e: b29a uxth r2, r3
+ 8000f30: 4b14 ldr r3, [pc, #80] @ (8000f84 )
+ 8000f32: 60da str r2, [r3, #12]
+ LCD_WR(0);
+ 8000f34: 4b12 ldr r3, [pc, #72] @ (8000f80 )
+ 8000f36: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000f3a: 611a str r2, [r3, #16]
+ LCD_WR(1);
+ 8000f3c: 4b10 ldr r3, [pc, #64] @ (8000f80 )
+ 8000f3e: 2280 movs r2, #128 @ 0x80
+ 8000f40: 611a str r2, [r3, #16]
+ LCD_CS(1);
+ 8000f42: 4b0f ldr r3, [pc, #60] @ (8000f80 )
+ 8000f44: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000f48: 611a str r2, [r3, #16]
+}
+ 8000f4a: bf00 nop
+ lcd_wr_data(y & 0XFF);
+ 8000f4c: 4b0c ldr r3, [pc, #48] @ (8000f80 )
+ 8000f4e: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000f52: 611a str r2, [r3, #16]
+ 8000f54: 4b0a ldr r3, [pc, #40] @ (8000f80 )
+ 8000f56: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000f5a: 611a str r2, [r3, #16]
+ 8000f5c: 88bb ldrh r3, [r7, #4]
+ 8000f5e: 4a09 ldr r2, [pc, #36] @ (8000f84 )
+ 8000f60: b2db uxtb r3, r3
+ 8000f62: 60d3 str r3, [r2, #12]
+ 8000f64: 4b06 ldr r3, [pc, #24] @ (8000f80 )
+ 8000f66: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000f6a: 611a str r2, [r3, #16]
+ 8000f6c: 4b04 ldr r3, [pc, #16] @ (8000f80 )
+ 8000f6e: 2280 movs r2, #128 @ 0x80
+ 8000f70: 611a str r2, [r3, #16]
+ 8000f72: 4b03 ldr r3, [pc, #12] @ (8000f80 )
+ 8000f74: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000f78: 611a str r2, [r3, #16]
+}
+ 8000f7a: e099 b.n 80010b0
+ 8000f7c: 2000002c .word 0x2000002c
+ 8000f80: 40011000 .word 0x40011000
+ 8000f84: 40010c00 .word 0x40010c00
+ lcd_wr_regno(lcddev.setxcmd);
+ 8000f88: 4b4c ldr r3, [pc, #304] @ (80010bc )
+ 8000f8a: 895b ldrh r3, [r3, #10]
+ 8000f8c: 83fb strh r3, [r7, #30]
+ LCD_RS(0); /* RS=0,��ʾд�Ĵ��� */
+ 8000f8e: 4b4c ldr r3, [pc, #304] @ (80010c0 )
+ 8000f90: f04f 7280 mov.w r2, #16777216 @ 0x1000000
+ 8000f94: 611a str r2, [r3, #16]
+ LCD_CS(0);
+ 8000f96: 4b4a ldr r3, [pc, #296] @ (80010c0 )
+ 8000f98: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000f9c: 611a str r2, [r3, #16]
+ LCD_DATA_OUT(regno); /* д��Ҫд�ļĴ������ */
+ 8000f9e: 8bfb ldrh r3, [r7, #30]
+ 8000fa0: b29a uxth r2, r3
+ 8000fa2: 4b48 ldr r3, [pc, #288] @ (80010c4 )
+ 8000fa4: 60da str r2, [r3, #12]
+ LCD_WR(0);
+ 8000fa6: 4b46 ldr r3, [pc, #280] @ (80010c0 )
+ 8000fa8: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000fac: 611a str r2, [r3, #16]
+ LCD_WR(1);
+ 8000fae: 4b44 ldr r3, [pc, #272] @ (80010c0 )
+ 8000fb0: 2280 movs r2, #128 @ 0x80
+ 8000fb2: 611a str r2, [r3, #16]
+ LCD_CS(1);
+ 8000fb4: 4b42 ldr r3, [pc, #264] @ (80010c0 )
+ 8000fb6: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000fba: 611a str r2, [r3, #16]
+}
+ 8000fbc: bf00 nop
+ lcd_wr_data(x >> 8);
+ 8000fbe: 4b40 ldr r3, [pc, #256] @ (80010c0 )
+ 8000fc0: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000fc4: 611a str r2, [r3, #16]
+ 8000fc6: 4b3e ldr r3, [pc, #248] @ (80010c0 )
+ 8000fc8: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000fcc: 611a str r2, [r3, #16]
+ 8000fce: 88fb ldrh r3, [r7, #6]
+ 8000fd0: 0a1b lsrs r3, r3, #8
+ 8000fd2: b29a uxth r2, r3
+ 8000fd4: 4b3b ldr r3, [pc, #236] @ (80010c4 )
+ 8000fd6: 60da str r2, [r3, #12]
+ 8000fd8: 4b39 ldr r3, [pc, #228] @ (80010c0 )
+ 8000fda: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8000fde: 611a str r2, [r3, #16]
+ 8000fe0: 4b37 ldr r3, [pc, #220] @ (80010c0 )
+ 8000fe2: 2280 movs r2, #128 @ 0x80
+ 8000fe4: 611a str r2, [r3, #16]
+ 8000fe6: 4b36 ldr r3, [pc, #216] @ (80010c0 )
+ 8000fe8: f44f 7200 mov.w r2, #512 @ 0x200
+ 8000fec: 611a str r2, [r3, #16]
+ lcd_wr_data(x & 0XFF);
+ 8000fee: 4b34 ldr r3, [pc, #208] @ (80010c0 )
+ 8000ff0: f44f 7280 mov.w r2, #256 @ 0x100
+ 8000ff4: 611a str r2, [r3, #16]
+ 8000ff6: 4b32 ldr r3, [pc, #200] @ (80010c0 )
+ 8000ff8: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8000ffc: 611a str r2, [r3, #16]
+ 8000ffe: 88fb ldrh r3, [r7, #6]
+ 8001000: 4a30 ldr r2, [pc, #192] @ (80010c4 )
+ 8001002: b2db uxtb r3, r3
+ 8001004: 60d3 str r3, [r2, #12]
+ 8001006: 4b2e ldr r3, [pc, #184] @ (80010c0 )
+ 8001008: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 800100c: 611a str r2, [r3, #16]
+ 800100e: 4b2c ldr r3, [pc, #176] @ (80010c0 )
+ 8001010: 2280 movs r2, #128 @ 0x80
+ 8001012: 611a str r2, [r3, #16]
+ 8001014: 4b2a ldr r3, [pc, #168] @ (80010c0 )
+ 8001016: f44f 7200 mov.w r2, #512 @ 0x200
+ 800101a: 611a str r2, [r3, #16]
+ lcd_wr_regno(lcddev.setycmd);
+ 800101c: 4b27 ldr r3, [pc, #156] @ (80010bc )
+ 800101e: 899b ldrh r3, [r3, #12]
+ 8001020: 83bb strh r3, [r7, #28]
+ LCD_RS(0); /* RS=0,��ʾд�Ĵ��� */
+ 8001022: 4b27 ldr r3, [pc, #156] @ (80010c0 )
+ 8001024: f04f 7280 mov.w r2, #16777216 @ 0x1000000
+ 8001028: 611a str r2, [r3, #16]
+ LCD_CS(0);
+ 800102a: 4b25 ldr r3, [pc, #148] @ (80010c0 )
+ 800102c: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8001030: 611a str r2, [r3, #16]
+ LCD_DATA_OUT(regno); /* д��Ҫд�ļĴ������ */
+ 8001032: 8bbb ldrh r3, [r7, #28]
+ 8001034: b29a uxth r2, r3
+ 8001036: 4b23 ldr r3, [pc, #140] @ (80010c4 )
+ 8001038: 60da str r2, [r3, #12]
+ LCD_WR(0);
+ 800103a: 4b21 ldr r3, [pc, #132] @ (80010c0 )
+ 800103c: f44f 0200 mov.w r2, #8388608 @ 0x800000
+ 8001040: 611a str r2, [r3, #16]
+ LCD_WR(1);
+ 8001042: 4b1f ldr r3, [pc, #124] @ (80010c0 )
+ 8001044: 2280 movs r2, #128 @ 0x80
+ 8001046: 611a str r2, [r3, #16]
+ LCD_CS(1);
+ 8001048: 4b1d ldr r3, [pc, #116] @ (80010c0 )
+ 800104a: f44f 7200 mov.w r2, #512 @ 0x200
+ 800104e: 611a str r2, [r3, #16]
+}
+ 8001050: bf00 nop
+ lcd_wr_data(y >> 8);
+ 8001052: 4b1b ldr r3, [pc, #108] @ (80010c0 )
+ 8001054: f44f 7280 mov.w r2, #256 @ 0x100
+ 8001058: 611a str r2, [r3, #16]
+ 800105a: 4b19 ldr r3, [pc, #100] @ (80010c0 )
+ 800105c: f04f 7200 mov.w r2, #33554432 @ 0x2000000
+ 8001060: 611a str r2, [r3, #16]
+ 8001062: 88bb ldrh r3, [r7, #4]
+ 8001064: 0a1b lsrs r3, r3, #8
+ 8001066: b29a uxth r2, r3
+ 8001068: 4b16 ldr r3, [pc, #88] @ (80010c4 )
+ 800106a: 60da str r2, [r3, #12]
+ 800106c: 4b14 ldr r3, [pc, #80] @ (80010c0