本文最后修改時間: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燈,其他滅。
八、注意事項
暫無
九、實驗結果
暫無
?