【MT32F006】MT32F006之HT1628驅動LED

本文最后修改時間:2023年03月30日

一、本節簡介

本文介紹如何使用MT32F006連接HT1628芯片驅動LED。

二、實驗平臺

庫版本:V1.0.0

編譯軟件:MDK5.37

硬件平臺:MT32F006開發板(主芯片MT32F006)

仿真器:JLINK

傳感器:HT1628

三、版權聲明

1)作者:甜甜的大香瓜

2)聲明:喝水不忘挖井人,轉載請注明出處。

3)糾錯/業務合作:897503845@qq.com

4)香瓜嵌入式之STM8/STM32群:164311667

5)本文出處:原創連載資料《簡單粗暴學MT32F006》

6)完整開源資料下載地址(電腦端打開):opengua.taobao.com

四、實驗前提

1、在進行本文步驟前,請先閱讀以下章節:

1)《簡單粗暴學MT32F006》的第一章和第二章章節?

2、在進行本文步驟前,請先實現以下章節:

1)《簡單粗暴學MT32F006》的《MT32F006之定時器延時》。

五、基礎知識

1、什么是HT1628?

答:HT1628的完整型號HT1628BRWZ(封裝SOP-28-300mil),品牌是HTCSEMI(海天芯)。

3.3V~4.2V 電壓、4位*13段或7位*10段的陰極型的LED面板顯示驅動。

打個比方,如果要點亮5個8字的數碼管,一共要5*7=35個led。

方法一:使用mcu來控制,35個IO口對應控制35個led,此方法非常占用mcu的IO口。

方法二:使用mcu來控制,用行與列的方式,5個IO作為行、7個IO作為列,此方法需要5+7=12個IO口,也很占用mcu的IO口。

方法三(推薦):使用mcu+HT1628驅動芯片,mcu只需要3個IO(DIO數據信號、CLK時鐘信號、STB信號是否有效腳)控制HT1628,HT1628再去控制LED。實際占用的是HT1628的IO口。

2、網上很多TM1628的驅動資料,與HT1628通用嗎?

?

答:封裝和引腳一樣,但驅動代碼不通用。

3、HT1628連接LED必須按一定規律順序嗎?

答:有規律會比較方便寫代碼,但是沒規律也可以按獨立的燈來寫。

4、HT1628的操作邏輯是怎么樣的?

1)配置DIO、CLK、STB三個IO。

2)延時等待穩定。

3)發送3條設置指令,主要設置:幾位幾段、地址自動增加模式、設置顯示地址為0開始

4)第3條設置指令后緊跟著一串LED數據:

如上圖,一共14個字節,每個字節又分為HL低字節、HU高字節,這些字節會被存在HT1628的寄存器里,每個位都只對應1個位置(也就是對應1個LED燈)。

例如左上角第一個00HL地址的4個位(4個LED)分別是SG1-DIG1、SG2-DIG1、SG3-DIG1、SG4-DIG1。

注:位digits;段segments。

5)發送第4條設置指令,主要設置:亮度、開啟顯示。

六、硬件原理

1、MCU與HT1628連接

由上圖可知:

HT1628引腳

MT32F006引腳

DIO

PIO1_5

CLK

PIO1_4

STB

PIO1_1

2、HT1628與LED的連接

七、實驗步驟

1、編寫并添加串口驅動

1)編寫驅動GUA_HT1628.c(存放在“……\Projects\MT006_StdPeriph_Templates\GUA”)

//**********************************************************************

//name:???????? GUA_HT1628.c

//introduce:??? LED驅動

//author:?????? 甜甜的大香瓜?????

//email:??????? 897503845@qq.com??

//shop:???????? opengua.taobao.com

//changetime:?? 2023.02.02

//**********************************************************************

#include "mt006.h"

#include "GUA_Delay.h"

#include "GUA_HT1628.h"

#include "string.h"

//SEG Code

//const GUA_U8 LEDseg[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0};

/*********************宏定義************************/

#define GUA_STB_H???????????????? GPIO_WriteBit(GPIO1, GPIO_Pin_1, Bit_SET)

#define GUA_STB_L???????????????? GPIO_WriteBit(GPIO1, GPIO_Pin_1, Bit_RESET)

#define GUA_CLK_H?????????? ????? GPIO_WriteBit(GPIO1, GPIO_Pin_4, Bit_SET)

#define GUA_CLK_L???????????????? GPIO_WriteBit(GPIO1, GPIO_Pin_4, Bit_RESET)

#define GUA_DIO_H???????????????? GPIO_WriteBit(GPIO1, GPIO_Pin_5, Bit_SET)

#define GUA_DIO_L???????????????? GPIO_WriteBit(GPIO1, GPIO_Pin_5, Bit_RESET)

/*********************內部變量************************/

GUA_U8 gGUA_HT1628_Ram[14] = {0};

GUA_HT1628_DISPLAY stGUA_HT1628_Display;

/*********************內部函數聲明************************/

static void GUA_HT1628_DataConvert(void);

static void GUA_HT1628_GPIO_Init(void);

static void GUA_HT1628_SendCMD(GUA_U8 nGUA_CMD);

static void GUA_HT1628_SendData(GUA_U8 nGUA_Data);

//**********************************************************************

//name:???????? GUA_HT1628_DataConvert

//introduce:??? HT1628的GPIO初始化

//parameter:??? none

//return:?????? none

//author:?????? 甜甜的大香瓜

//email:??????? 897503845@qq.com

//shop:???????? opengua.taobao.com

//changetime:?? 2023.02.02

//**********************************************************************

static void GUA_HT1628_DataConvert(void)

{

????? //清空內存緩沖區

????? memset(gGUA_HT1628_Ram, 0, 14);

?????

????? //left_button D1 D2 D3

????? if(stGUA_HT1628_Display.left_button == GUA_LIGHT_PART_ON)

????? {

?????????? //D1 D2 D3: 1 1 1

?????????? gGUA_HT1628_Ram[12] |= (1<<2)|(1<<1)|(1<<0);

????? }

????? else

????? {

?????????? //D1 D2 D3: 0 0 0

?????????? gGUA_HT1628_Ram[12] &= ~(1<<0);?? //D1

?????????? gGUA_HT1628_Ram[12] &= ~(1<<1);?? //D2

?????????? gGUA_HT1628_Ram[12] &= ~(1<<2);?? //D3

????? }

?????

????? //right_button D62 D63 D64

????? if(stGUA_HT1628_Display.right_button == GUA_LIGHT_PART_ON)

????? {

?????????? //D62 D63 D64:1 1 1

?????????? gGUA_HT1628_Ram[0] |= (1<<3)|(1<<2)|(1<<1);

????? }

????? else

????? {

?????????? //D62 D63 D64:0 0 0

?????????? gGUA_HT1628_Ram[0] &= ~(1<<1);??? //D62

?????????? gGUA_HT1628_Ram[0] &= ~(1<<2);??? //D63

?????????? gGUA_HT1628_Ram[0] &= ~(1<<3);??? //D64

????? }????

?????

????? //lb D22

????? if(stGUA_HT1628_Display.lb == GUA_LIGHT_PART_ON)

????? {

?????????? gGUA_HT1628_Ram[8] |= (1<<1);

????? }

????? else

????? {

?????????? gGUA_HT1628_Ram[8] &= ~(1<<1);

????? }?????????

?????

????? //kg D23

????? if(stGUA_HT1628_Display.kg == GUA_LIGHT_PART_ON)

????? {

?????????? gGUA_HT1628_Ram[8] |= (1<<2);

????? }

????? else

????? {

?????????? gGUA_HT1628_Ram[8] &= ~(1<<2);

????? }

????? //oz D60

????? if(stGUA_HT1628_Display.oz == GUA_LIGHT_PART_ON)

????? {

?????????? gGUA_HT1628_Ram[3] |= (1<<1);

????? }

????? else

????? {

?????????? gGUA_HT1628_Ram[3] &= ~(1<<1);

????? }

????? //g D61

????? if(stGUA_HT1628_Display.g == GUA_LIGHT_PART_ON)

????? {

?????????? gGUA_HT1628_Ram[0] |= (1<<0);

????? }

????? else

????? {

?????????? gGUA_HT1628_Ram[0] &= ~(1<<0);

????? }????

?????

????? //point D45

????? if(stGUA_HT1628_Display.point == GUA_LIGHT_PART_ON)

????? {

?????????? gGUA_HT1628_Ram[4] |= (1<<4);

????? }

????? else

????? {

?????????? gGUA_HT1628_Ram[4] &= ~(1<<4);

????? }?????????

?????

????? //num1 D8 D10 D13 D14 D12 D9 D11**********************

????? switch(stGUA_HT1628_Display.num1)

????? {

?????????? //D8 D10 D13 D14 D12 D9 D11:1 1 1 1 1 1 0

?????????? case GUA_LIGHT_NUMBER0:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[12] |= (1<<7);??? //D8

???????????????? gGUA_HT1628_Ram[13] |= (1<<1);??? //D10

???????????????? gGUA_HT1628_Ram[10] |= (1<<2);??? //D13

???????????????? gGUA_HT1628_Ram[10] |= (1<<3);??? //D14

???????????????? gGUA_HT1628_Ram[10] |= (1<<1);??? //D12

???????????????? gGUA_HT1628_Ram[13] |= (1<<0);??? //D9

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<0);?? //D11????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D8 D10 D13 D14 D12 D9 D11:0 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER1:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[12] &= ~(1<<7);?? //D8

???????????????? gGUA_HT1628_Ram[13] |= (1<<1);??? //D10

???????????????? gGUA_HT1628_Ram[10] |= (1<<2);??? //D13

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<3);?? //D14

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<1);?? //D12

???????????????? gGUA_HT1628_Ram[13] &= ~(1<<0);?? //D9

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<0);?? //D11????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D8 D10 D13 D14 D12 D9 D11:1 1 0 1 1 0 1

?????????? case GUA_LIGHT_NUMBER2:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[12] |= (1<<7);??? //D8

???????????????? gGUA_HT1628_Ram[13] |= (1<<1);??? //D10

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<2);?? //D13

???????????????? gGUA_HT1628_Ram[10] |= (1<<3);??? //D14

???????????????? gGUA_HT1628_Ram[10] |= (1<<1);??? //D12

???????????????? gGUA_HT1628_Ram[13] &= ~(1<<0);?? //D9

???????????????? gGUA_HT1628_Ram[10] |= (1<<0);??? //D11????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D8 D10 D13 D14 D12 D9 D11:1 1 1 1 0 0 1

?????????? case GUA_LIGHT_NUMBER3:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[12] |= (1<<7);??? //D8

???????????????? gGUA_HT1628_Ram[13] |= (1<<1);??? //D10

???????????????? gGUA_HT1628_Ram[10] |= (1<<2);??? //D13

???????????????? gGUA_HT1628_Ram[10] |= (1<<3);??? //D14

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<1);?? //D12

???????????????? gGUA_HT1628_Ram[13] &= ~(1<<0);?? //D9

???????????????? gGUA_HT1628_Ram[10] |= (1<<0);??? //D11????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D8 D10 D13 D14 D12 D9 D11:0 1 1 0 0 1 1

?????????? case GUA_LIGHT_NUMBER4:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[12] &= ~(1<<7);?? //D8

???????????????? gGUA_HT1628_Ram[13] |= (1<<1);??? //D10

???????????????? gGUA_HT1628_Ram[10] |= (1<<2);??? //D13

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<3);?? //D14

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<1);?? //D12

???????????????? gGUA_HT1628_Ram[13] |= (1<<0);??? //D9

???????????????? gGUA_HT1628_Ram[10] |= (1<<0);??? //D11????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D8 D10 D13 D14 D12 D9 D11:1 0 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER5:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[12] |= (1<<7);??? //D8

???????????????? gGUA_HT1628_Ram[13] &= ~(1<<1);?? //D10

???????????????? gGUA_HT1628_Ram[10] |= (1<<2);??? //D13

???????????????? gGUA_HT1628_Ram[10] |= (1<<3);??? //D14

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<1);?? //D12

???????????????? gGUA_HT1628_Ram[13] |= (1<<0);??? //D9

???????????????? gGUA_HT1628_Ram[10] |= (1<<0);??? //D11????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D8 D10 D13 D14 D12 D9 D11:1 0 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER6:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[12] |= (1<<7);??? //D8

???????????????? gGUA_HT1628_Ram[13] &= ~(1<<1);?? //D10

???????????????? gGUA_HT1628_Ram[10] |= (1<<2);??? //D13

???????????????? gGUA_HT1628_Ram[10] |= (1<<3);??? //D14

???????????????? gGUA_HT1628_Ram[10] |= (1<<1);??? //D12

???????????????? gGUA_HT1628_Ram[13] |= (1<<0);??? //D9

???????????????? gGUA_HT1628_Ram[10] |= (1<<0);??? //D11????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D8 D10 D13 D14 D12 D9 D11:1 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER7:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[12] |= (1<<7);??? //D8

???????????????? gGUA_HT1628_Ram[13] |= (1<<1);??? //D10

???????????????? gGUA_HT1628_Ram[10] |= (1<<2);??? //D13

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<3);?? //D14

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<1);?? //D12

???????????????? gGUA_HT1628_Ram[13] &= ~(1<<0);?? //D9

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<0);?? //D11????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D8 D10 D13 D14 D12 D9 D11:1 1 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER8:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[12] |= (1<<7);??? //D8

???????????????? gGUA_HT1628_Ram[13] |= (1<<1);??? //D10

???????????????? gGUA_HT1628_Ram[10] |= (1<<2);??? //D13

???????????????? gGUA_HT1628_Ram[10] |= (1<<3);??? //D14

???????????????? gGUA_HT1628_Ram[10] |= (1<<1);??? //D12

???????????????? gGUA_HT1628_Ram[13] |= (1<<0);??? //D9

???????????????? gGUA_HT1628_Ram[10] |= (1<<0);??? //D11????????????????????????????

???????????????? break;???????????????

?????????? }???????????????

??????????

?????????? //D8 D10 D13 D14 D12 D9 D11:1 1 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER9:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[12] |= (1<<7);??? //D8

???????????????? gGUA_HT1628_Ram[13] |= (1<<1);??? //D10

???????????????? gGUA_HT1628_Ram[10] |= (1<<2);??? //D13

???????????????? gGUA_HT1628_Ram[10] |= (1<<3);??? //D14

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<1);?? //D12

???????????????? gGUA_HT1628_Ram[13] |= (1<<0);??? //D9

???????????????? gGUA_HT1628_Ram[10] |= (1<<0);??? //D11????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D8 D10 D13 D14 D12 D9 D11:0 0 0 0 0 0 0

?????????? default:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[12] &= ~(1<<7);?? //D8

???????????????? gGUA_HT1628_Ram[13] &= ~(1<<1);?? //D10

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<2);?? //D13

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<3);?? //D14

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<1);?? //D12

???????????????? gGUA_HT1628_Ram[13] &= ~(1<<0);?? //D9

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<0);?? //D11?????????????????????????????????

???????????????? break;???????????????

?????????? }

????? }

?????

????? //num2 D15 D17 D20 D21 D19 D16 D18**********************

????? switch(stGUA_HT1628_Display.num2)

????? {

?????????? //D15 D17 D20 D21 D19 D16 D18:1 1 1 1 1 1 0

?????????? case GUA_LIGHT_NUMBER0:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[10] |= (1<<4);??? //D15

???????????????? gGUA_HT1628_Ram[10] |= (1<<6);??? //D17

???????????????? gGUA_HT1628_Ram[11] |= (1<<1);??? //D20

???????????????? gGUA_HT1628_Ram[8]? |= (1<<0);??? //D21

???????????????? gGUA_HT1628_Ram[11] |= (1<<0);??? //D19

???????????????? gGUA_HT1628_Ram[10] |= (1<<5);??? //D16

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<7);?? //D18????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D15 D17 D20 D21 D19 D16 D18:0 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER1:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<4);?? //D15

???????????????? gGUA_HT1628_Ram[10] |= (1<<6);??? //D17

???????????????? gGUA_HT1628_Ram[11] |= (1<<1);??? //D20

???????????????? gGUA_HT1628_Ram[8]? &= ~(1<<0);?? //D21

???????????????? gGUA_HT1628_Ram[11] &= ~(1<<0);?? //D19

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<5);?? //D16

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<7);?? //D18????????????????????????????

???????????????? break;????????????????????????????????

?????????? }????

??????????

?????????? //D15 D17 D20 D21 D19 D16 D18:1 1 0 1 1 0 1

?????????? case GUA_LIGHT_NUMBER2:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[10] |= (1<<4);??? //D15

???????????????? gGUA_HT1628_Ram[10] |= (1<<6);??? //D17

???????????????? gGUA_HT1628_Ram[11] &= ~(1<<1);?? //D20

???????????????? gGUA_HT1628_Ram[8]? |= (1<<0);??? //D21

???????????????? gGUA_HT1628_Ram[11] |= (1<<0);??? //D19

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<5);?? //D16

???????????????? gGUA_HT1628_Ram[10] |= (1<<7);??? //D18??????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D15 D17 D20 D21 D19 D16 D18:1 1 1 1 0 0 1

?????????? case GUA_LIGHT_NUMBER3:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[10] |= (1<<4);??? //D15

???????????????? gGUA_HT1628_Ram[10] |= (1<<6);??? //D17

???????????????? gGUA_HT1628_Ram[11] |= (1<<1);??? //D20

???????????????? gGUA_HT1628_Ram[8]? |= (1<<0);??? //D21

???????????????? gGUA_HT1628_Ram[11] &= ~(1<<0);?? //D19

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<5);?? //D16

???????????????? gGUA_HT1628_Ram[10] |= (1<<7);??? //D18????????????????????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D15 D17 D20 D21 D19 D16 D18:0 1 1 0 0 1 1

?????????? case GUA_LIGHT_NUMBER4:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<4);?? //D15

???????????????? gGUA_HT1628_Ram[10] |= (1<<6);??? //D17

???????????????? gGUA_HT1628_Ram[11] |= (1<<1);??? //D20

???????????????? gGUA_HT1628_Ram[8]? &= ~(1<<0);?? //D21

???????????????? gGUA_HT1628_Ram[11] &= ~(1<<0);?? //D19

???????????????? gGUA_HT1628_Ram[10] |= (1<<5);??? //D16

???????????????? gGUA_HT1628_Ram[10] |= (1<<7);??? //D18????????????????????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D15 D17 D20 D21 D19 D16 D18:1 0 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER5:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[10] |= (1<<4);??? //D15

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<6);?? //D17

???????????????? gGUA_HT1628_Ram[11] |= (1<<1);??? //D20

???????????????? gGUA_HT1628_Ram[8]? |= (1<<0);??? //D21

???????????????? gGUA_HT1628_Ram[11] &= ~(1<<0);?? //D19

???????????????? gGUA_HT1628_Ram[10] |= (1<<5);??? //D16

???????????????? gGUA_HT1628_Ram[10] |= (1<<7);??? //D18????????????????????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D15 D17 D20 D21 D19 D16 D18:1 0 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER6:

?????????? {????

???????????????? gGUA_HT1628_Ram[10] |= (1<<4);??? //D15

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<6);?? //D17

???????????????? gGUA_HT1628_Ram[11] |= (1<<1);??? //D20

???????????????? gGUA_HT1628_Ram[8]? |= (1<<0);??? //D21

???????????????? gGUA_HT1628_Ram[11] |= (1<<0);??? //D19

???????????????? gGUA_HT1628_Ram[10] |= (1<<5);??? //D16

???????????????? gGUA_HT1628_Ram[10] |= (1<<7);??? //D18????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D15 D17 D20 D21 D19 D16 D18:1 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER7:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[10] |= (1<<4);??? //D15

???????????????? gGUA_HT1628_Ram[10] |= (1<<6);??? //D17

???????????????? gGUA_HT1628_Ram[11] |= (1<<1);??? //D20

???????????????? gGUA_HT1628_Ram[8]? &= ~(1<<0);?? //D21

???????????????? gGUA_HT1628_Ram[11] &= ~(1<<0);?? //D19

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<5);?? //D16

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<7);?? //D18????????????????????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D15 D17 D20 D21 D19 D16 D18:1 1 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER8:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[10] |= (1<<4);??? //D15

???????????????? gGUA_HT1628_Ram[10] |= (1<<6);??? //D17

???????????????? gGUA_HT1628_Ram[11] |= (1<<1);??? //D20

???????????????? gGUA_HT1628_Ram[8]? |= (1<<0);??? //D21

???????????????? gGUA_HT1628_Ram[11] |= (1<<0);??? //D19

???????????????? gGUA_HT1628_Ram[10] |= (1<<5);??? //D16

???????????????? gGUA_HT1628_Ram[10] |= (1<<7);??? //D18????????????????????????????????????????????

???????????????? break;???????????????

?????????? }???????????????

??????????

?????????? //D15 D17 D20 D21 D19 D16 D18:1 1 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER9:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[10] |= (1<<4);??? //D15

???????????????? gGUA_HT1628_Ram[10] |= (1<<6);??? //D17

???????????????? gGUA_HT1628_Ram[11] |= (1<<1);??? //D20

???????????????? gGUA_HT1628_Ram[8]? |= (1<<0);??? //D21

???????????????? gGUA_HT1628_Ram[11] &= ~(1<<0);?? //D19

???????????????? gGUA_HT1628_Ram[10] |= (1<<5);??? //D16

???????????????? gGUA_HT1628_Ram[10] |= (1<<7);??? //D18????????????????????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D15 D17 D20 D21 D19 D16 D18:0 0 0 0 0 0 0

?????????? default:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<4);?? //D15

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<6);?? //D17

???????????????? gGUA_HT1628_Ram[11] &= ~(1<<1);?? //D20

???????????????? gGUA_HT1628_Ram[8]? &= ~(1<<0);?? //D21

???????????????? gGUA_HT1628_Ram[11] &= ~(1<<0);?? //D19

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<5);?? //D16

???????????????? gGUA_HT1628_Ram[10] &= ~(1<<7);?? //D18??????????????????????????????????????????????????

???????????????? break;???????????????

?????????? }

????? }????

????? //num3 D24 D26 D29 D30 D28 D25 D27**********************

????? switch(stGUA_HT1628_Display.num3)

????? {

?????????? //D24 D26 D29 D30 D28 D25 D27:1 1 1 1 1 1 0

?????????? case GUA_LIGHT_NUMBER0:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[8] |= (1<<3);????????? //D24

???????????????? gGUA_HT1628_Ram[8] |= (1<<5);????????? //D26

???????????????? gGUA_HT1628_Ram[9] |= (1<<0);????????? //D29

???????????????? gGUA_HT1628_Ram[9] |= (1<<1);????????? //D30

???????????????? gGUA_HT1628_Ram[8] |= (1<<7);????????? //D28

???????????????? gGUA_HT1628_Ram[8] |= (1<<4);????????? //D25

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<6);??? //D27????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D24 D26 D29 D30 D28 D25 D27:0 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER1:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<3);??? //D24

???????????????? gGUA_HT1628_Ram[8] |= (1<<5);????????? //D26

???????????????? gGUA_HT1628_Ram[9] |= (1<<0);????????? //D29

???????????????? gGUA_HT1628_Ram[9] &= ~(1<<1);??? //D30

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<7);??? //D28

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<4);??? //D25

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<6);??? //D27????????????????????????????

???????????????? break;????????????????????????????????

?????????? }????

??????????

?????????? //D24 D26 D29 D30 D28 D25 D27:1 1 0 1 1 0 1

?????????? case GUA_LIGHT_NUMBER2:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[8] |= (1<<3);????????? //D24

???????????????? gGUA_HT1628_Ram[8] |= (1<<5);????????? //D26

???????????????? gGUA_HT1628_Ram[9] &= ~(1<<0);??? //D29

???????????????? gGUA_HT1628_Ram[9] |= (1<<1);????????? //D30

???????????????? gGUA_HT1628_Ram[8] |= (1<<7);????????? //D28

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<4);??? //D25

???????????????? gGUA_HT1628_Ram[8] |= (1<<6);????????? //D27?????????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D24 D26 D29 D30 D28 D25 D27:1 1 1 1 0 0 1

?????????? case GUA_LIGHT_NUMBER3:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[8] |= (1<<3);????????? //D24

???????????????? gGUA_HT1628_Ram[8] |= (1<<5);????????? //D26

???????????????? gGUA_HT1628_Ram[9] |= (1<<0);????????? //D29

???????????????? gGUA_HT1628_Ram[9] |= (1<<1);????????? //D30

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<7);??? //D28

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<4);??? //D25

???????????????? gGUA_HT1628_Ram[8] |= (1<<6);????????? //D27???????????????????????????????????????????? ????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D24 D26 D29 D30 D28 D25 D27:0 1 1 0 0 1 1

?????????? case GUA_LIGHT_NUMBER4:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<3);??? //D24

???????????????? gGUA_HT1628_Ram[8] |= (1<<5);????????? //D26

???????????????? gGUA_HT1628_Ram[9] |= (1<<0);????????? //D29

???????????????? gGUA_HT1628_Ram[9] &= ~(1<<1);??? //D30

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<7);??? //D28

???????????????? gGUA_HT1628_Ram[8] |= (1<<4);????????? //D25

???????????????? gGUA_HT1628_Ram[8] |= (1<<6);????????? //D27???????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D24 D26 D29 D30 D28 D25 D27:1 0 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER5:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[8] |= (1<<3);????????? //D24

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<5);??? //D26

???????????????? gGUA_HT1628_Ram[9] |= (1<<0);????????? //D29

???????????????? gGUA_HT1628_Ram[9] |= (1<<1);????????? //D30

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<7);??? //D28

???????????????? gGUA_HT1628_Ram[8] |= (1<<4);????????? //D25

???????????????? gGUA_HT1628_Ram[8] |= (1<<6);????????? //D27???????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D24 D26 D29 D30 D28 D25 D27:1 0 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER6:

?????????? {????

???????????????? gGUA_HT1628_Ram[8] |= (1<<3);????????? //D24

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<5);??? //D26

???????????????? gGUA_HT1628_Ram[9] |= (1<<0);????????? //D29

???????????????? gGUA_HT1628_Ram[9] |= (1<<1);????????? //D30

???????????????? gGUA_HT1628_Ram[8] |= (1<<7);????????? //D28

???????????????? gGUA_HT1628_Ram[8] |= (1<<4);????????? //D25

???????????????? gGUA_HT1628_Ram[8] |= (1<<6);????????? //D27???????????????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D24 D26 D29 D30 D28 D25 D27:1 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER7:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[8] |= (1<<3);????????? //D24

???????????????? gGUA_HT1628_Ram[8] |= (1<<5);????????? //D26

???????????????? gGUA_HT1628_Ram[9] |= (1<<0);????????? //D29

???????????????? gGUA_HT1628_Ram[9] &= ~(1<<1);??? //D30

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<7);??? //D28

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<4);??? //D25

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<6);??? //D27??????????????????????????????????????? ?????????? ?????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D24 D26 D29 D30 D28 D25 D27:1 1 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER8:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[8] |= (1<<3);????????? //D24

???????????????? gGUA_HT1628_Ram[8] |= (1<<5);????????? //D26

???????????????? gGUA_HT1628_Ram[9] |= (1<<0);????????? //D29

???????????????? gGUA_HT1628_Ram[9] |= (1<<1);????????? //D30

???????????????? gGUA_HT1628_Ram[8] |= (1<<7);????????? //D28

???????????????? gGUA_HT1628_Ram[8] |= (1<<4);????????? //D25

???????????????? gGUA_HT1628_Ram[8] |= (1<<6);????????? //D27???????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }???????????????

??????????

?????????? //D24 D26 D29 D30 D28 D25 D27:1 1 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER9:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[8] |= (1<<3);????????? //D24

???????????????? gGUA_HT1628_Ram[8] |= (1<<5);????????? //D26

???????????????? gGUA_HT1628_Ram[9] |= (1<<0);????????? //D29

???????????????? gGUA_HT1628_Ram[9] |= (1<<1);????????? //D30

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<7);??? //D28

???????????????? gGUA_HT1628_Ram[8] |= (1<<4);????????? //D25

???????????????? gGUA_HT1628_Ram[8] |= (1<<6);????????? //D27???????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D24 D26 D29 D30 D28 D25 D27:0 0 0 0 0 0 0

?????????? default:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<3);??? //D24

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<5);??? //D26

???????????????? gGUA_HT1628_Ram[9] &= ~(1<<0);??? //D29

???????????????? gGUA_HT1628_Ram[9] &= ~(1<<1);??? //D30

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<7);??? //D28

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<4);??? //D25

???????????????? gGUA_HT1628_Ram[8] &= ~(1<<6);??? //D27?????????????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }

????? }

????? //num4 D31 D33 D36 D37 D35 D32 D34**********************

????? switch(stGUA_HT1628_Display.num4)

????? {

?????????? //D31 D33 D36 D37 D35 D32 D34:1 1 1 1 1 1 0

?????????? case GUA_LIGHT_NUMBER0:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<0); //D31

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<2); //D33

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<5); //D36

???????????????? gGUA_HT1628_Ram[6]? |= (1<<6);??? //D37

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<4); //D35

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<1); //D32

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<3);????? //D34????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D31 D33 D36 D37 D35 D32 D34:0 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER1:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<0);????? //D31

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<2); //D33

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<5); //D36

???????????????? gGUA_HT1628_Ram[6]? &= ~(1<<6);?? //D37

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<4);????? //D35

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<1);????? //D32

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<3);????? //D34????????????????????????????????????????????

???????????????? break;????????????????????????????????

?????????? }????

??????????

?????????? //D31 D33 D36 D37 D35 D32 D34:1 1 0 1 1 0 1

?????????? case GUA_LIGHT_NUMBER2:

?????????? {?????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<0); //D31

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<2); //D33

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<5);????? //D36

???????????????? gGUA_HT1628_Ram[6]? |= (1<<6);??? //D37

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<4); //D35

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<1);????? //D32

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<3); //D34??????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D31 D33 D36 D37 D35 D32 D34:1 1 1 1 0 0 1

?????????? case GUA_LIGHT_NUMBER3:

?????????? {?????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<0); //D31

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<2); //D33

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<5); //D36

???????????????? gGUA_HT1628_Ram[6]? |= (1<<6);??? //D37

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<4);????? //D35

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<1);????? //D32

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<3); //D34?????????????????????? ?????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D31 D33 D36 D37 D35 D32 D34:0 1 1 0 0 1 1

?????????? case GUA_LIGHT_NUMBER4:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<0);????? //D31

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<2); //D33

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<5); //D36

???????????????? gGUA_HT1628_Ram[6]? &= ~(1<<6);?? //D37

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<4);????? //D35

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<1); //D32

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<3); //D34?????????????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D31 D33 D36 D37 D35 D32 D34:1 0 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER5:

?????????? {?????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<0); //D31

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<2);????? //D33

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<5); //D36

???????????????? gGUA_HT1628_Ram[6]? |= (1<<6);??? //D37

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<4);????? //D35

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<1); //D32

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<3); //D34??????????????????????????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D31 D33 D36 D37 D35 D32 D34:1 0 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER6:

?????????? {????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<0); //D31

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<2);????? //D33

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<5); //D36

???????????????? gGUA_HT1628_Ram[6]? |= (1<<6);??? //D37

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<4); //D35

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<1); //D32

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<3); //D34????????????????????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D31 D33 D36 D37 D35 D32 D34:1 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER7:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<0); //D31

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<2); //D33

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<5); //D36

???????????????? gGUA_HT1628_Ram[6]? &= ~(1<<6);?? //D37

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<4);????? //D35

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<1);????? //D32

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<3);????? //D34???????????????????????????????????????????? ????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D31 D33 D36 D37 D35 D32 D34:1 1 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER8:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<0); //D31

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<2); //D33

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<5); //D36

???????????????? gGUA_HT1628_Ram[6]? |= (1<<6);??? //D37

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<4); //D35

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<1); //D32

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<3); //D34?????????????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }???????????????

??????????

?????????? //D31 D33 D36 D37 D35 D32 D34:1 1 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER9:

?????????? {?????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<0); //D31

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<2); //D33

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<5); //D36

???????????????? gGUA_HT1628_Ram[6]? |= (1<<6);??? //D37

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<4);????? //D35

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<1); //D32

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<3); //D34????????????????????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D31 D33 D36 D37 D35 D32 D34:0 0 0 0 0 0 0

?????????? default:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<0);????? //D31

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<2);????? //D33

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<5);????? //D36

???????????????? gGUA_HT1628_Ram[6]? &= ~(1<<6);?? //D37

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<4);????? //D35

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<1);????? //D32

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<3);????? //D34???????????????????????????????????????????? ???????????????????????????

???????????????? break;???????????????

?????????? }

????? }

????? //num5 D38 D40 D43 D44 D42 D39 D41**********************

????? switch(stGUA_HT1628_Display.num5)

????? {

?????????? //D38 D40 D43 D44 D42 D39 D41:1 1 1 1 1 1 0

?????????? case GUA_LIGHT_NUMBER0:

?????????? {??????????????????????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<7); //D38

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<1); //D40

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<2); //D43

???????????????? gGUA_HT1628_Ram[4]? |= (1<<3);??? //D44

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<1); //D42

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<0); //D39

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<0);????? //D41??????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D38 D40 D43 D44 D42 D39 D41:0 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER1:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<7);????? //D38

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<1); //D40

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<2); //D43

???????????????? gGUA_HT1628_Ram[4]? &= ~(1<<3);?? //D44

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<1);????? //D42

???????????????? gGUA_HT1628_Ram[7] ?? &= ~(1<<0);????? //D39

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<0);????? //D41????????????????????????????????????????????

???????????????? break;????????????????????????????????

?????????? }????

??????????

?????????? //D38 D40 D43 D44 D42 D39 D41:1 1 0 1 1 0 1

?????????? case GUA_LIGHT_NUMBER2:

?????????? {?????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<7); //D38

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<1); //D40

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<2);????? //D43

???????????????? gGUA_HT1628_Ram[4]? |= (1<<3);??? //D44

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<1); //D42

???????????????? gGUA_HT1628_Ram[7] ?? &= ~(1<<0);????? //D39

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<0); //D41????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D38 D40 D43 D44 D42 D39 D41:1 1 1 1 0 0 1

?????????? case GUA_LIGHT_NUMBER3:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<7); //D38

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<1); //D40

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<2); //D43

???????????????? gGUA_HT1628_Ram[4]? |= (1<<3);??? //D44

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<1);????? //D42

???????????????? gGUA_HT1628_Ram[7] ?? &= ~(1<<0);????? //D39

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<0); //D41?????????????????????????????????????????????????? ?????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D38 D40 D43 D44 D42 D39 D41:0 1 1 0 0 1 1

?????????? case GUA_LIGHT_NUMBER4:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<7);????? //D38

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<1); //D40

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<2); //D43

???????????????? gGUA_HT1628_Ram[4]? &= ~(1<<3);?? //D44

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<1);????? //D42

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<0); //D39

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<0); //D41?????????????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D38 D40 D43 D44 D42 D39 D41:1 0 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER5:

?????????? {?????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<7); //D38

???????????????? gGUA_HT1628_Ram[7] ?? &= ~(1<<1);????? //D40

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<2); //D43

???????????????? gGUA_HT1628_Ram[4]? |= (1<<3);??? //D44

????? ?????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<1);????? //D42

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<0); //D39

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<0); //D41???????????????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D38 D40 D43 D44 D42 D39 D41:1 0 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER6:

?????????? {????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<7); //D38

???????????????? gGUA_HT1628_Ram[7] ?? &= ~(1<<1);????? //D40

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<2); //D43

???????????????? gGUA_HT1628_Ram[4]? |= (1<<3);??? //D44

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<1); //D42

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<0); //D39

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<0); //D41???????????????????????????? ??????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D38 D40 D43 D44 D42 D39 D41:1 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER7:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<7); //D38

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<1); //D40

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<2); //D43

???????????????? gGUA_HT1628_Ram[4]? &= ~(1<<3);?? //D44

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<1);????? //D42

???????????????? gGUA_HT1628_Ram[7] ?? &= ~(1<<0);????? //D39

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<0);????? //D41???????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D38 D40 D43 D44 D42 D39 D41:1 1 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER8:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<7); //D38

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<1); //D40

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<2); //D43

???????????????? gGUA_HT1628_Ram[4]? |= (1<<3);??? //D44

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<1); //D42

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<0); //D39

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<0); //D41?????????????????????????????????????????????????? ?????

???????????????? break;???????????????

?????????? }???????????????

??????????

?????????? //D38 D40 D43 D44 D42 D39 D41:1 1 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER9:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[6] ?? |= (1<<7); //D38

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<1); //D40

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<2); //D43

?????????? ????? gGUA_HT1628_Ram[4]? |= (1<<3);??? //D44

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<1);????? //D42

???????????????? gGUA_HT1628_Ram[7] ?? |= (1<<0); //D39

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<0); //D41?????????????????????????????????????????????????? ?????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D38 D40 D43 D44 D42 D39 D41:0 0 0 0 0 0 0

?????????? default:

?????????? {?????????

???????????????? gGUA_HT1628_Ram[6] ?? &= ~(1<<7);????? //D38

???????????????? gGUA_HT1628_Ram[7] ?? &= ~(1<<1);????? //D40

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<2);????? //D43

???????????????? gGUA_HT1628_Ram[4]? &= ~(1<<3);?? //D44

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<1);????? //D42

???????????????? gGUA_HT1628_Ram[7] ?? &= ~(1<<0);????? //D39

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<0);????? //D41????????????????????????????????????????????

???????????????? break;???????????????

?????????? }

????? }

????? //num6 D46 D48 D51 D52 D50 D47 D49**********************

????? switch(stGUA_HT1628_Display.num6)

????? {

?????????? //D46 D48 D51 D52 D50 D47 D49:1 1 1 1 1 1 0

?????????? case GUA_LIGHT_NUMBER0:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<5); //D46

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<7); //D48

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<0); //D51

???????????????? gGUA_HT1628_Ram[2]? |= (1<<1);??? //D52

???????????????? gGUA_HT1628_Ram[5] ?? |= (1<<1); //D50

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<6); //D47

???????????????? gGUA_HT1628_Ram[5] ?? &= ~(1<<0);????? //D49??????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D46 D48 D51 D52 D50 D47 D49:0 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER1:

?????????? {?????????

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<5);????? //D46

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<7); //D48

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<0); //D51

???????????????? gGUA_HT1628_Ram[2]? &= ~(1<<1);?? //D52

???????????????? gGUA_HT1628_Ram[5] ?? &= ~(1<<1);????? //D50

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<6);????? //D47

???????????????? gGUA_HT1628_Ram[5] ?? &= ~(1<<0);????? //D49????????????????????????????

???????????????? break;????????????????????????????????

?????????? }????

??????????

?????????? //D46 D48 D51 D52 D50 D47 D49:1 1 0 1 1 0 1

?????????? case GUA_LIGHT_NUMBER2:

?????????? {????

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<5); //D46

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<7); //D48

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<0);????? //D51

???????????????? gGUA_HT1628_Ram[2]? |= (1<<1);??? //D52

???????????????? gGUA_HT1628_Ram[5] ?? |= (1<<1); //D50

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<6);????? //D47

???????????????? gGUA_HT1628_Ram[5] ?? |= (1<<0); //D49????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D46 D48 D51 D52 D50 D47 D49:1 1 1 1 0 0 1

?????????? case GUA_LIGHT_NUMBER3:

?????????? {?????????

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<5); //D46

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<7); //D48

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<0); //D51

???????????????? gGUA_HT1628_Ram[2]? |= (1<<1);??? //D52

???????????????? gGUA_HT1628_Ram[5] ?? &= ~(1<<1);????? //D50

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<6);????? //D47

???????????????? gGUA_HT1628_Ram[5] ?? |= (1<<0); //D49??????????????????????????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D46 D48 D51 D52 D50 D47 D49:0 1 1 0 0 1 1

?????????? case GUA_LIGHT_NUMBER4:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<5);????? //D46

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<7); //D48

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<0); //D51

???????????????? gGUA_HT1628_Ram[2]? &= ~(1<<1);?? //D52

???????????????? gGUA_HT1628_Ram[5] ?? &= ~(1<<1);????? //D50

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<6); //D47

???????????????? gGUA_HT1628_Ram[5] ?? |= (1<<0); //D49?????????????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D46 D48 D51 D52 D50 D47 D49:1 0 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER5:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<5); //D46

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<7);????? //D48

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<0); //D51

???????????????? gGUA_HT1628_Ram[2]? |= (1<<1);??? //D52

???????????????? gGUA_HT1628_Ram[5] ?? &= ~(1<<1);????? //D50

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<6); //D47

???????????????? gGUA_HT1628_Ram[5] ?? |= (1<<0); //D49?????????????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D46 D48 D51 D52 D50 D47 D49:1 0 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER6:

?????????? {????

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<5); //D46

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<7);????? //D48

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<0); //D51

???????????????? gGUA_HT1628_Ram[2]? |= (1<<1);??? //D52

???????????????? gGUA_HT1628_Ram[5] ?? |= (1<<1); //D50

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<6); //D47

???????????????? gGUA_HT1628_Ram[5] ?? |= (1<<0); //D49????????????????????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D46 D48 D51 D52 D50 D47 D49:1 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER7:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<5); //D46

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<7); //D48

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<0); //D51

???????????????? gGUA_HT1628_Ram[2]? &= ~(1<<1);?? //D52

???????????????? gGUA_HT1628_Ram[5] ?? &= ~(1<<1);????? //D50

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<6);????? //D47

???????????????? gGUA_HT1628_Ram[5] ?? &= ~(1<<0);????? //D49???????????????????????????????????????????? ????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D46 D48 D51 D52 D50 D47 D49:1 1 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER8:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<5); //D46

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<7); //D48

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<0); //D51

???????????????? gGUA_HT1628_Ram[2]? |= (1<<1);??? //D52

???????????????? gGUA_HT1628_Ram[5] ?? |= (1<<1); //D50

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<6); //D47

???????????????? gGUA_HT1628_Ram[5] ?? |= (1<<0); //D49?????????????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }???????????????

??????????

?????????? //D46 D48 D51 D52 D50 D47 D49:1 1 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER9:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<5); //D46

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<7); //D48

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<0); //D51

???????????????? gGUA_HT1628_Ram[2]? |= (1<<1);??? //D52

???????????????? gGUA_HT1628_Ram[5] ?? &= ~(1<<1);????? //D50

???????????????? gGUA_HT1628_Ram[4] ?? |= (1<<6); //D47

???????????????? gGUA_HT1628_Ram[5] ?? |= (1<<0); //D49?????????????????????????????????????????????????? ??????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D46 D48 D51 D52 D50 D47 D49:0 0 0 0 0 0 0

?????????? default:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<5);????? //D46

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<7);????? //D48

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<0);????? //D51

???????????????? gGUA_HT1628_Ram[2]? &= ~(1<<1);?? //D52

???????????????? gGUA_HT1628_Ram[5] ?? &= ~(1<<1);????? //D50

???????????????? gGUA_HT1628_Ram[4] ?? &= ~(1<<6);????? //D47

???????????????? gGUA_HT1628_Ram[5] ?? &= ~(1<<0);????? //D49???????????????????????????????????????????? ???????????????????????????

???????????????? break;???????????????

?????????? }

????? }

????? //num7 D53 D55 D58 D59 D57 D54 D56**********************

????? switch(stGUA_HT1628_Display.num7)

????? {

?????????? //D53 D55 D58 D59 D57 D54 D56:1 1 1 1 1 1 0

?????????? case GUA_LIGHT_NUMBER0:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<2); //D53

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<4); //D55

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<7); //D58

???????????????? gGUA_HT1628_Ram[3]? |= (1<<0);??? //D59

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<6); //D57

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<3); //D54

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<5);????? //D56????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D53 D55 D58 D59 D57 D54 D56:0 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER1:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<2);????? //D53

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<4); //D55

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<7); //D58

???????????????? gGUA_HT1628_Ram[3]? &= ~(1<<0);?? //D59

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<6);????? //D57

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<3);????? //D54

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<5);????? //D56???????????????????????????????????????????? ?????

???????????????? break;????????????????????????????????

?????????? }????

??????????

?????????? //D53 D55 D58 D59 D57 D54 D56:1 1 0 1 1 0 1

?????????? case GUA_LIGHT_NUMBER2:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<2); //D53

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<4); //D55

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<7);????? //D58

???????????????? gGUA_HT1628_Ram[3]? |= (1<<0);??? //D59

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<6); //D57

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<3);????? //D54

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<5); //D56????????????????????????????????????????????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D53 D55 D58 D59 D57 D54 D56:1 1 1 1 0 0 1

?????????? case GUA_LIGHT_NUMBER3:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<2); //D53

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<4); //D55

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<7); //D58

???????????????? gGUA_HT1628_Ram[3]? |= (1<<0);??? //D59

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<6);????? //D57

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<3);????? //D54

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<5); //D56?????????????????????????????????????????????????? ?????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D53 D55 D58 D59 D57 D54 D56:0 1 1 0 0 1 1

?????????? case GUA_LIGHT_NUMBER4:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<2);????? //D53

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<4); //D55

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<7); //D58

???????????????? gGUA_HT1628_Ram[3]? &= ~(1<<0);?? //D59

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<6);????? //D57

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<3); //D54

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<5); //D56?????????????????????????????????????????????????? ?????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D53 D55 D58 D59 D57 D54 D56:1 0 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER5:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<2); //D53

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<4);????? //D55

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<7); //D58

???????????????? gGUA_HT1628_Ram[3]? |= (1<<0);??? //D59

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<6);????? //D57

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<3); //D54

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<5); //D56?????????????????????????????????????????????????? ?????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D53 D55 D58 D59 D57 D54 D56:1 0 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER6:

?????????? {????

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<2); //D53

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<4);????? //D55

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<7); //D58

???????????????? gGUA_HT1628_Ram[3]? |= (1<<0);??? //D59

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<6); //D57

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<3); //D54

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<5); //D56???????????????????????????????????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D53 D55 D58 D59 D57 D54 D56:1 1 1 0 0 0 0

?????????? case GUA_LIGHT_NUMBER7:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<2); //D53

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<4); //D55

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<7); //D58

???????????????? gGUA_HT1628_Ram[3]? &= ~(1<<0);?? //D59

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<6);????? //D57

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<3);????? //D54

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<5);????? //D56???????????????? ??????????????????????????? ??????????

???????????????? break;???????????????

?????????? }????

??????????

?????????? //D53 D55 D58 D59 D57 D54 D56:1 1 1 1 1 1 1

?????????? case GUA_LIGHT_NUMBER8:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<2); //D53

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<4); //D55

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<7); //D58

???????????????? gGUA_HT1628_Ram[3]? |= (1<<0);??? //D59

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<6); //D57

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<3); //D54

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<5); //D56?????????????????????????????????????????????????? ?????

???????????????? break;???????????????

?????????? }???????????????

??????????

?????????? //D53 D55 D58 D59 D57 D54 D56:1 1 1 1 0 1 1

?????????? case GUA_LIGHT_NUMBER9:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<2); //D53

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<4); //D55

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<7); //D58

???????????????? gGUA_HT1628_Ram[3]? |= (1<<0);??? //D59

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<6);????? //D57

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<3); //D54

???????????????? gGUA_HT1628_Ram[2] ?? |= (1<<5); //D56?????????????????????????????????????????????????? ?????

???????????????? break;???????????????

?????????? }

??????????

?????????? //D53 D55 D58 D59 D57 D54 D56:0 0 0 0 0 0 0

?????????? default:

?????????? {???????????????

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<2);????? //D53

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<4);????? //D55

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<7);????? //D58

???????????????? gGUA_HT1628_Ram[3]? &= ~(1<<0);?? //D59

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<6);????? //D57

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<3);????? //D54

???????????????? gGUA_HT1628_Ram[2] ?? &= ~(1<<5);????? //D56???????????????????????????????????????????? ????????????????

???????????????? break;???????????????

?????????? }

????? }????

}

//**********************************************************************

//name:???????? GUA_HT1628_GPIO_Init

//introduce:??? HT1628的GPIO初始化

//parameter:??? none

//return:?????? none

//author:?????? 甜甜的大香瓜

//email:??????? 897503845@qq.com

//shop:???????? opengua.taobao.com

//changetime:?? 2023.02.02

//**********************************************************************

static void GUA_HT1628_GPIO_Init(void)

{

????? GPIO_InitTypeDef GPIO_InitStructure;

????? //PIO1_1 STB,注意不能同時初始化多個IO

????? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;

????? GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_2;

????? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

????? GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

????? GPIO_Init(GPIO1, &GPIO_InitStructure);

?????

????? //PIO1_4 CLK,注意不能同時初始化多個IO

????? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

????? GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_2;

????? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

????? GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

????? GPIO_Init(GPIO1, &GPIO_InitStructure);

?????

????? //PIO1_5 DIO,注意不能同時初始化多個IO

????? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

????? GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_2;

????? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

????? GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

????? GPIO_Init(GPIO1, &GPIO_InitStructure);

????? //初始化io的電平

????? GUA_STB_H;

????? GUA_DIO_H;

????? GUA_CLK_H;

}

//**********************************************************************

//name:???????? GUA_HT1628_SendCMD

//introduce:??? 發送指令函數

//parameter:??? nGUA_CMD:要發送的指令

//return:?????? none

//author:?????? 甜甜的大香瓜

//email:??????? 897503845@qq.com

//shop:???????? opengua.taobao.com

//changetime:?? 2023.02.02

//**********************************************************************

static void GUA_HT1628_SendCMD(GUA_U8 nGUA_CMD)

{

? GUA_U8 i;

????? //拉高

????? GUA_STB_H;

????? GUA_Delay_Us(1);

?????

????? //拉低

????? GUA_STB_L;

????? GUA_Delay_Us(1);

?????

?????

????? //按位寫入

? for(i=0; i<8; i++)

? {???

??? GUA_CLK_L;

?????????? GUA_Delay_Us(1);

??????????

??? if(nGUA_CMD & 0x01)

??? {

????? GUA_DIO_H;

??? }

??? else?

??? {

????? GUA_DIO_L;

??? }?????

??? nGUA_CMD >>= 1;

??????????

??? GUA_CLK_H;

?????????? GUA_Delay_Us(1);

? }

}

//**********************************************************************

//name:???????? GUA_HT1628_SendData

//introduce:??? 發送數據函數

//parameter:??? nGUA_Data:要發送的數據

//return:?????? none

//author:?????? 甜甜的大香瓜

//email:??????? 897503845@qq.com

//shop:?????? ??opengua.taobao.com

//changetime:?? 2023.02.02

//**********************************************************************

static void GUA_HT1628_SendData(GUA_U8 nGUA_Data)

{

? GUA_U8 i;

????? //按位寫入

? for(i=0; i<8; i++)

? {???

??? GUA_CLK_L;

?????????? GUA_Delay_Us(1);

??????????

??? if (nGUA_Data & 0x01)??

??? {

????? GUA_DIO_H;

??? }

??? else?

??? {

????? GUA_DIO_L;

??? }

??? nGUA_Data >>= 1;

??????????

??? GUA_CLK_H;

?????????? GUA_Delay_Us(1);

? }

}

//**********************************************************************

//name:???????? GUA_HT1628_Display

//introduce:??? 將結構體數據對應顯示到led上

//parameter:??? none

//return:?????? none

//author:?????? 甜甜的大香瓜

//email:??????? 897503845@qq.com

//shop:???????? opengua.taobao.com

//changetime:?? 2023.02.02

//**********************************************************************

void GUA_HT1628_Display(void)

{

????? GUA_U8 i = 0;

????? //將結構體數據轉換到數組中

????? GUA_HT1628_DataConvert();

?????

? //3條設置指令

? GUA_HT1628_SendCMD(0x03);?? //指令1 7位10段

? GUA_HT1628_SendCMD(0x40);?? //指令2 地址自動增加模式

? GUA_HT1628_SendCMD(0xC0);?? //指令3 設置顯示地址為00

????? //指令3帶的14個字節數據初始化

????? for(i=0; i<14; i++)

????? {

?????????? GUA_HT1628_SendData(gGUA_HT1628_Ram[i]);????

????? }

?

????? //最后一條設置指令

? GUA_HT1628_SendCMD((0x80|stGUA_HT1628_Display.pulse_width|stGUA_HT1628_Display.onoff));

}

//**********************************************************************

//name:???????? GUA_HT1628_Init

//introduce:??? 初始化函數

//parameter:??? none

//return:?????? none

//author:?????? 甜甜的大香瓜

//email:??????? 897503845@qq.com

//shop:???????? opengua.taobao.com

//changetime:?? 2023.02.02

//**********************************************************************

void GUA_HT1628_Init(void)

{

????? //初始化IO

????? GUA_HT1628_GPIO_Init();

?????

????? //延時,如果不加延時,全速時會寫入不正常

????? GUA_Delay_Ms(1);

?????

????? //填充初始數據

????? stGUA_HT1628_Display.left_button = GUA_LIGHT_PART_ON;

????? stGUA_HT1628_Display.right_button = GUA_LIGHT_PART_ON;

????? stGUA_HT1628_Display.num1 = GUA_LIGHT_NUMBER8;

????? stGUA_HT1628_Display.num2 = GUA_LIGHT_NUMBER8;

????? stGUA_HT1628_Display.num3 = GUA_LIGHT_NUMBER8;

????? stGUA_HT1628_Display.num4 = GUA_LIGHT_NUMBER8;

????? stGUA_HT1628_Display.num5 = GUA_LIGHT_NUMBER8;

????? stGUA_HT1628_Display.num6 = GUA_LIGHT_NUMBER8;

????? stGUA_HT1628_Display.num7 = GUA_LIGHT_NUMBER8;

????? stGUA_HT1628_Display.lb = GUA_LIGHT_PART_ON;

????? stGUA_HT1628_Display.kg = GUA_LIGHT_PART_ON;

????? stGUA_HT1628_Display.oz = GUA_LIGHT_PART_ON;

????? stGUA_HT1628_Display.g = GUA_LIGHT_PART_ON;

????? stGUA_HT1628_Display.point = GUA_LIGHT_PART_ON;

????? stGUA_HT1628_Display.pulse_width = GUA_LIGHT_PULSE_WIDTH_13_16;???

????? stGUA_HT1628_Display.onoff = GUA_LIGHT_ON;??

?????

????? //數據顯示

????? GUA_HT1628_Display();

}

2)編寫驅動頭文件GUA_HT1628.h

(存放在“……\Projects\MT006_StdPeriph_Templates\GUA”)

//**********************************************************************

//name:???????? GUA_HT1628.h

//introduce:??? LED驅動的頭文件

//author:?????? 甜甜的大香瓜?????

//email:??????? 897503845@qq.com??

//shop:???????? opengua.taobao.com

//changetime:?? 2023.02.02

//**********************************************************************

#ifndef _GUA_HT1628_H_

#define _GUA_HT1628_H_

/*********************宏定義************************/

//類型宏

#ifndef GUA_C

typedef char GUA_C;

#endif

#ifndef GUA_U8

typedef unsigned char GUA_U8;

#endif

#ifndef GUA_8

typedef signed char GUA_8;

#endif

#ifndef GUA_U16

typedef unsigned short GUA_U16;

#endif

#ifndef GUA_16

typedef signed short GUA_16;

#endif

#ifndef GUA_U32

typedef unsigned long GUA_U32;

#endif

#ifndef GUA_32

typedef signed long GUA_32;

#endif

//顯示結構體使用的宏

//數碼管之外的燈用的宏

#define GUA_LIGHT_PART_ON????????????????????????? 1??????? //開啟對應功能的燈

#define GUA_LIGHT_PART_OFF? ?????????????????? 0??????? //關閉對應功能的燈

//數碼管用的宏

#define GUA_LIGHT_NUMBER0????????????????????????? 0

#define GUA_LIGHT_NUMBER1????????????????????????? 1

#define GUA_LIGHT_NUMBER2????????????????????????? 2

#define GUA_LIGHT_NUMBER3????????????????????????? 3

#define GUA_LIGHT_NUMBER4????????????????????????? 4

#define GUA_LIGHT_NUMBER5????????????????????????? 5

#define GUA_LIGHT_NUMBER6????????????????????? ???? 6

#define GUA_LIGHT_NUMBER7????????????????????????? 7

#define GUA_LIGHT_NUMBER8????????????????????????? 8

#define GUA_LIGHT_NUMBER9????????????????????????? 9

#define GUA_LIGHT_NUMBER_OFF?????????????????? 255

//控制亮度的宏

#define GUA_LIGHT_PULSE_WIDTH_1_16?? 0??????? //PWM 1/16 最暗

#define GUA_LIGHT_PULSE_WIDTH_2_16?? 1??????? //PWM 2/16

#define GUA_LIGHT_PULSE_WIDTH_4_16?? 2??????? //PWM 4/16

#define GUA_LIGHT_PULSE_WIDTH_10_16? 3??????? //PWM 10/16

#define GUA_LIGHT_PULSE_WIDTH_11_16? 4??????? //PWM 11/16

#define GUA_LIGHT_PULSE_WIDTH_12_16? 5??????? //PWM 12/16

#define GUA_LIGHT_PULSE_WIDTH_13_16? 6??????? //PWM 13/16 最亮

//控制總開關的宏

#define GUA_LIGHT_ON??????????????????????????????????? 0x08//打開顯示的總開關

#define GUA_LIGHT_OFF?????????????????????????????????? 0x00//關閉顯示的總開關

/*********************外部變量************************/

typedef struct

{

???? GUA_U8 left_button;

???? GUA_U8 right_button;

???? GUA_U8 num1;

???? GUA_U8 num2;

???? GUA_U8 num3;

???? GUA_U8 num4;

???? GUA_U8 num5;

???? GUA_U8 num6;

???? GUA_U8 num7;

???? GUA_U8 lb;

???? GUA_U8 kg;

???? GUA_U8 oz;

???? GUA_U8 g;

???? GUA_U8 point;

???? GUA_U8 pulse_width;

???? GUA_U8 onoff;

}GUA_HT1628_DISPLAY;

extern GUA_HT1628_DISPLAY stGUA_HT1628_Display;

/*********************外部函數聲明************************/

extern void GUA_HT1628_Display(void);

extern void GUA_HT1628_Init(void);

#endif

3)工程中添加驅動文件

?

4)在MDK設置中添加驅動源文件路徑

2、添加庫的驅動

1)添加庫的驅動文件(為了方便一次性都添加進來,已有則不用添加)

2)添加庫的驅動頭文件(mt006_conf.h 中)(為了方便一次性都添加進來,已有則不用添加)

3、在應用層中調用

1)添加驅動頭文件(main.c中)

#include "GUA_HT1628.h"

2)添加驅動初始化代碼(main.c的main函數中)

??? //LED初始化

??? GUA_HT1628_Init();?

3)添加測試代碼(main.c的main函數中)

??????????????????? //填充初始數據

??????????????????? stGUA_HT1628_Display.left_button = GUA_LIGHT_PART_ON;

??????????????????? stGUA_HT1628_Display.right_button = GUA_LIGHT_PART_OFF;

??????????????????? stGUA_HT1628_Display.num1 = GUA_LIGHT_NUMBER0;

??????????????????? stGUA_HT1628_Display.num2 = GUA_LIGHT_NUMBER_OFF;

??????????????????? stGUA_HT1628_Display.num3 = GUA_LIGHT_NUMBER_OFF;

??????????????????? stGUA_HT1628_Display.num4 = GUA_LIGHT_NUMBER_OFF;

??????????????????? stGUA_HT1628_Display.num5 = GUA_LIGHT_NUMBER_OFF;

??????????????????? stGUA_HT1628_Display.num6 = GUA_LIGHT_NUMBER_OFF;

??????????????????? stGUA_HT1628_Display.num7 = GUA_LIGHT_NUMBER_OFF;

??????????????????? stGUA_HT1628_Display.lb = GUA_LIGHT_PART_OFF;

??????????????????? stGUA_HT1628_Display.kg = GUA_LIGHT_PART_OFF;

??????????????????? stGUA_HT1628_Display.oz = GUA_LIGHT_PART_OFF;

??????????????????? stGUA_HT1628_Display.g = GUA_LIGHT_PART_OFF;

??????????????????? stGUA_HT1628_Display.point = GUA_LIGHT_PART_OFF;

??????????????????? stGUA_HT1628_Display.pulse_width = GUA_LIGHT_PULSE_WIDTH_13_16;???

??????????????????? stGUA_HT1628_Display.onoff = GUA_LIGHT_ON;?

???????????????????

??????????????????? //數據顯示

??????????????????? GUA_HT1628_Display();??

這里是只亮左邊觸摸按鍵邊上的3個led燈,其他滅。

八、注意事項

暫無

九、實驗結果

暫無

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41618.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41618.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41618.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LeetCode算法心得——限制條件下元素之間的最小絕對差(TreeSet)

大家好&#xff0c;我是晴天學長&#xff0c;今天用到了Java一個非常實用的類TreeSet&#xff0c;能解決一些看起來棘手的問題。 1 &#xff09;限制條件下元素之間的最小絕對差 2) .算法思路 初始化變量&#xff1a;n為列表nums的大小。 min為整型最大值&#xff0c;用于記錄…

python3 0學習筆記之基本知識

0基礎學習筆記之基礎知識 &#x1f4da; 基礎內容1. 條件語句 if - elif - else2. 錯誤鋪捉try - except(一種保險策略&#xff09;3. 四種開發模式4. 函數&#xff1a;def用來定義函數的5. 最大值最小值函數&#xff0c;max &#xff0c;min6. is 嚴格的相等&#xff0c;is no…

機器學習:基本介紹

機器學習介紹 Hnad-crafted rules Hand-crafted rules&#xff0c;叫做人設定的規則。那假設今天要設計一個機器人&#xff0c;可以幫忙打開或關掉音樂&#xff0c;那做法可能是這樣&#xff1a; 設立一條規則&#xff0c;就是寫一段程序。如果輸入的句子里面看到**“turn of…

C#__使用Type類反射數據的基本用法

// 簡單介紹 // 元數據&#xff08;metadata&#xff09;&#xff1a;與程序及其類型有關的數據。 // 反射&#xff1a;一個運行的程序查看本身元數據或其他程序集中的元數據的行為 // Assembly類&#xff1a;允許訪問給定程序集的元數據&#xff0c;包含了可以加載和執行程序…

Maven框架SpringBootWeb簡單入門

一、Maven ★ Maven:是Apache旗下的一個開源項目,是一款用于管理和構建java項目的工具。 官網:https://maven.apache.org/ ★ Maven的作用: 1. 依賴管理:方便快捷的管理項目依賴的資源(jar包),避免版本沖突問題。 2. 統一項目結構:提供標準、統一的項目結構。 …

LightDB 23.3 plorasql 函數支持inout參數輸出

開篇立意 oracle PLSQL函數中返回值有兩種情況&#xff1a; &#xff08;1&#xff09;使用return返回值&#xff1b; &#xff08;2&#xff09;使用out修飾的參數&#xff08;oracle不支持inout&#xff09; SQL> create function yu(id inout int) return int asbeginn…

【C# 基礎精講】文件讀取和寫入

文件讀取和寫入是計算機程序中常見的操作&#xff0c;用于從文件中讀取數據或將數據寫入文件。在C#中&#xff0c;使用System.IO命名空間中的類來進行文件讀寫操作。本文將詳細介紹如何在C#中進行文件讀取和寫入&#xff0c;包括讀取文本文件、寫入文本文件、讀取二進制文件和寫…

選擇大型語言模型自定義技術

推薦&#xff1a;使用 NSDT場景編輯器 助你快速搭建可二次編輯器的3D應用場景 企業需要自定義模型來根據其特定用例和領域知識定制語言處理功能。自定義LLM使企業能夠在特定的行業或組織環境中更高效&#xff0c;更準確地生成和理解文本。 自定義模型使企業能夠創建符合其品牌…

PAT 1013 Battle Over Cities

個人學習記錄&#xff0c;代碼難免不盡人意。 It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We must know immediately if we need to repair a…

計算機機房的管理

1 電源問題 不穩定的電源對電腦的使用壽命是一個極大的威脅&#xff0c;特別是對于機房來說危害 性更大。為此&#xff0c;學校要添置必要的穩壓器&#xff0c;設置其正常供電的電壓為 220 伏、電流 為 l6 安對電腦室供電。如有電壓發生偏差&#xff0c;要及時檢查供電情況&…

BDA初級分析——認識SQL,認識基礎語法

一、認識SQL SQL作為實用技能&#xff0c;熱度高、應用廣泛 在對數據分析人員的調查中SQL長期作為熱度排名第-一的編程語言超過Python和R SQL&#xff1a;易學易用&#xff0c;高效強大的語言 SQL&#xff1a;Structured Query Language 結構化查詢語言 SQL&#xff1a;易學…

python threading.Event()用法

紅綠燈例子 Event的用法 import threading,timeeventthreading.Event()def lighter():timesec0event.set()while True:if 5<timesec<10:event.clear()print("紅燈亮")elif timesec>10:event.set()timesec0else:print("綠燈亮")time.sleep(1)tim…

BSN“五、十、百”工程實施半年成果豐碩,助力數字化轉型和高質量發展

為推動“云網鏈”融合的新基建賦能數字經濟高質量發展&#xff0c;將區塊鏈服務網絡&#xff08;BSN&#xff09;打造成為中國數字經濟和社會治理的核心區塊鏈公共服務平臺&#xff0c;2023年2月&#xff0c;在“第三屆區塊鏈服務網絡&#xff08;BSN&#xff09;全球合作伙伴大…

力扣75——二分查找

總結leetcode75中的二分查找算法題解題思路。 上一篇&#xff1a;力扣75——堆/優先隊列 力扣75——二分查找 1 猜數字大小2 咒語和藥水的成功對數3 尋找峰值4 愛吃香蕉的珂珂1-4解題總結 1 猜數字大小 題目&#xff1a; 猜數字游戲的規則如下&#xff1a;每輪游戲&#xff0…

多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測

多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測 目錄 多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測預測效果基本介紹模型描述程序設計參考資料 預測效果 基本介紹 多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測 1.程…

java 向上取整 java對小數取整

取整方法 Math.floor(double a) 向下取整 Math.ceil(double a) 向上取整 Math.round(double a) 四舍五入 0.5向下取整 Math.rint(double a) 就近取整 1.6接近2&#xff0c;所以就取2 1.4接近1&#xff0c;所以就取1 1.5跟1和2都很接近&#xff0c;這時候就取偶數 (int) 類型強轉…

MongoDB:數據庫初步應用

一.連接MongoDB 1.MongoDBCompass連接數據庫 連接路徑:mongodb://用戶名:密碼localhost:27017/ 2.創建數據庫(集合) MongoDB中數據庫被稱為集合. MongoDBCompass連接后,點擊紅色框加號創建集合,點擊藍色框加號創建文檔(數據表) 文檔中的數據結構(相當于表中的列)設計不用管…

騰訊云國際輕量應用服務器使用流程是什么呢?

騰訊云國際輕量應用服務器怎么使用呢&#xff1f;下面一起來了解一下&#xff1a; 1. 熟悉輕量應用服務器基礎知識 ①什么是輕量應用服務器 TencentCloud Lighthouse&#xff1f; ②輕量應用服務器與云服務器 CVM 的區別是什么&#xff1f; ③為什么選擇輕量應用服務器&#xf…

一個DW的計算

一個DW的計算 1- 題目: 已知一個DW1.1 要求: 從DW中取出指定的位的值1.1.1 分析1.1.2 實現1.1.3 簡化實現1.1.4 驗證 2- 題目: 已知一個DW2.1 要求: 從DW中的指定的P和S,取出指定的位的值2.1.1 分析2.1.2 實現 1- 題目: 已知一個DW 有圖中所示一行信息&#xff0c;表示一個DW(…

常見的Web安全漏洞有哪些,Web安全漏洞常用測試方法介紹

Web安全漏洞是指在Web應用程序中存在的可能被攻擊者利用的漏洞&#xff0c;正確認識和了解這些漏洞對于Web應用程序的開發和測試至關重要。 一、常見的Web安全漏洞類型&#xff1a; 1、跨站腳本攻擊(Cross-Site Scripting&#xff0c;XSS)&#xff1a;攻擊者通過向Web頁面注入…