刷卡機顯示應答碼lk

瀏覽:76 發(fā)布日期:2023-05-16 00:00:00 投稿人:佚名投稿

網(wǎng)上關于刷卡機顯示應答碼lk的刷卡知識比較多,也有關于刷卡機顯示應答碼lk的問題,今天第一pos網(wǎng)(www.svinexta.cn)為大家整理刷卡常見知識,未來的我們終成一代卡神。

本文目錄一覽:

1、刷卡機顯示應答碼lk

刷卡機顯示應答碼lk

學習目的了解數(shù)碼管分類、工作原理及驅動電路的設計。掌握STC8A8K64D4系列單片機驅動8位共陰數(shù)碼管的動態(tài)顯示的軟件設計。數(shù)碼管概述

數(shù)碼管是一種常用的顯示設備,他有著價格便宜、使用簡單的特點,在各個領域被廣泛的應用,如空調(diào)、電子萬年歷、冰箱等等。學習數(shù)碼管相關的編程之前,我們有必要了解一下數(shù)碼管的一些概念和操作方式。

數(shù)碼管也稱LED數(shù)碼管(led Segment Displays),其是由多個發(fā)光二極管封裝在一起組成。

數(shù)碼管的“段”

常用的數(shù)碼管有七段數(shù)碼管和八段數(shù)碼管,如下圖所示。7段數(shù)碼管由七個條狀發(fā)光二極管組成,8段數(shù)碼管由七個條狀和一個點狀發(fā)光二極管,即8段數(shù)碼管比7段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點)。如果需要顯示帶小數(shù)的數(shù)據(jù),應選用8段數(shù)碼管。開發(fā)板上使用的是8段數(shù)碼管。

圖1:8段數(shù)碼管比7段數(shù)碼管

數(shù)碼管的“位”

數(shù)碼管按能顯示多少個“8”可分為1位、2位、4位等數(shù)碼管,如下圖所示。開發(fā)板上使用的是8位數(shù)碼管。

圖2:數(shù)碼管

共陰極和共陽極數(shù)碼管

數(shù)碼管按發(fā)光二極管單元連接方式分為共陰極數(shù)碼管和共陽極數(shù)碼管,如下圖所示。

圖3:共陽極和共陰極數(shù)碼管

共陽極:正極連接在一起,作為公共端。負極單獨控制,施加低電平(邏輯0),對應的“段”點亮,施加高電平(邏輯1),對應的“段”熄滅。共陰極:負極連接在一起,作為公共端。正極單獨控制,施加低電平(邏輯0),對應的“段”熄滅,施加高電平(邏輯1),對應的“段”點亮。位選和段選

一般地,操作數(shù)碼管時,先執(zhí)行段選再執(zhí)行位選。位選是選擇待操作的數(shù)碼管,如開發(fā)板上的是8位數(shù)碼管,位選就是選擇8位數(shù)碼管中的某一個。段選是選擇數(shù)碼管里面的LED燈,即通過選擇點亮響應的LED燈以達到顯示需要的數(shù)據(jù)的目的。

段碼

數(shù)碼管的段碼指的是數(shù)碼管在顯示不同的數(shù)據(jù)時,段選信號對應的二進制數(shù)據(jù)。下圖是以8段共陰極數(shù)碼管顯示數(shù)字7為例來描述段碼。

圖4:共陰極數(shù)碼管顯示數(shù)字7時的段碼

對于共陰極數(shù)碼管來說,段的正極為高電平“邏輯1”時,段點亮,段的正極為低電平“邏輯0”時,段熄滅。如要顯示數(shù)字“7”,需要點亮段A、段B和段C,8個段的負極對應的二進制數(shù)據(jù)為11100000,換算成16進制即為0xE0。如果是共陽極數(shù)碼管,正好和共陰極數(shù)碼管相反,8個段的正極對應的二進制數(shù)據(jù)為00000111,換算成16進制即為0x07。

由此,我們即可得出共陰極數(shù)碼管顯示的段碼表,如下表所示。

表1:共陰極數(shù)碼管顯示的段碼表

字形

A

B

C

D

E

F

G

DP

段碼(共陰)

0

1

1

1

1

1

1

0

0

FC H

1

0

1

1

0

0

0

0

0

60 H

2

1

1

0

1

1

0

1

0

DA H

3

1

1

1

1

0

0

1

0

F2 H

4

0

1

1

0

0

1

1

0

66 H

5

1

0

1

1

0

1

1

0

B6 H

6

1

0

1

1

1

1

1

0

BE H

7

1

1

1

0

0

0

0

0

E0 H

8

1

1

1

1

1

1

1

0

FE H

9

1

1

1

1

0

1

1

0

F6 H

A

1

1

1

0

1

1

1

0

EE H

B

0

0

1

1

1

1

1

0

3E H

C

1

0

0

1

1

1

0

0

9C H

D

0

1

1

1

1

0

1

0

7A H

E

1

0

0

1

1

1

1

0

9E H

F

1

0

0

0

1

1

1

0

8E H

小數(shù)點

0

0

0

0

0

0

0

1

01 H

不顯示

0

0

0

0

0

0

0

0

00 H

動態(tài)顯示和靜態(tài)顯示

數(shù)碼管的驅動顯示方式有多種,大致可分為動態(tài)顯示和靜態(tài)顯示。

動態(tài)顯示其實就是利用LED的余輝效應和人眼的視覺暫留效應來實現(xiàn)的。動態(tài)顯示方式外圍驅動電路相對簡單,占用單片機I/O較少,但是需要不斷刷新數(shù)碼管顯示,因此,占用CPU時間較長。

靜態(tài)顯示是單片機發(fā)送數(shù)據(jù)之后,數(shù)據(jù)如何穩(wěn)定有效的顯示由外圍鎖存器件實現(xiàn),這樣可以大幅降低占用CPU的時間,但他會占用更多的I/O,并且外圍驅動電路也相對復雜。

硬件設計

IK-64D4開發(fā)板上設計了8位共陰極數(shù)碼管顯示電路,該顯示電路中使用74HC138譯碼器實現(xiàn)數(shù)碼管的位選,74HC595芯片實現(xiàn)數(shù)碼管的段選,電圖原理圖如下。

圖5:數(shù)碼管顯示電路

數(shù)碼管顯示電路占用的STC8A8K64D4的引腳如下表:

表2:引腳分配

名稱

引腳

說明

SCK

P3.2

和顯示屏接口共用

SI

P3.4

和顯示屏接口共用

RCK

P3.5

和顯示屏接口共用

A0

P4.0

和顯示屏接口共用

A1

P5.5

和顯示屏接口共用

A2

P4.4

和顯示屏接口共用

數(shù)碼管段選的實現(xiàn)

數(shù)碼管的段選是通過74HC595芯片實現(xiàn)的,74HC595是一個8位串行輸入、并行輸出的位移緩存器。數(shù)碼管顯示電路中,為了節(jié)省GPIO,74HC595的使能控制端在硬件上設置為恒有效(/OE連接到GND,恒為低電平)。74HC595的Q0~Q7 八位數(shù)據(jù)并行輸出端并接到8個數(shù)碼管的段選信號線上,這樣,使用3個GPIO就可以向數(shù)碼管發(fā)送段選信號。這3個GPIO各自的作用如下表所示。

表3:74HC595驅動信號

GPIO

連接(74HC595)

描述

P3.4

SI

發(fā)送串行數(shù)碼管段選數(shù)據(jù),經(jīng)74HC595轉為8位并行數(shù)據(jù)向數(shù)碼管提供段選信號。

P3.2

SCK

產(chǎn)生數(shù)據(jù)移位時鐘,上升沿時數(shù)據(jù)寄存器的數(shù)據(jù)移位,Q0→Q1→Q2→Q3→...→Q7,下降沿移位寄存器數(shù)據(jù)不變。

P3.5

RCK

產(chǎn)生數(shù)據(jù)鎖存時鐘,上升沿時將8 位鎖存移位寄存器中的狀態(tài)值并行輸出,下降沿時存儲寄存器數(shù)據(jù)不變。

傳輸段碼時,單片機的P3.4輸出8位串行段碼數(shù)據(jù),每傳輸一個數(shù)據(jù)位,P3.2產(chǎn)生一個上升沿時鐘將數(shù)據(jù)移位,8個上升沿移位時鐘后,8位段碼數(shù)據(jù)傳輸完成,之后,P3.5產(chǎn)生一個上升沿,段碼數(shù)據(jù)并行輸出,由此,完成數(shù)碼管的段選。

數(shù)碼管位選的實現(xiàn)

數(shù)碼管顯示電路使用74HC138譯碼器產(chǎn)生位選信號,同樣,為了節(jié)省GPIO,74HC138的使能控制端在硬件上均設置為恒有效(E1、E2連接GND,恒為低電平;E3連接VCC,恒為高電平)。因此,程序中操作數(shù)碼管時只需控制三個地址數(shù)據(jù)輸入端(A0、A1、A2)去選中8個數(shù)碼管中的待操作的數(shù)碼管即可。

三個地址數(shù)據(jù)輸入端(A0、A1、A2)是如何選中8個數(shù)碼管中的一個的,這就要看74HC138譯碼器的真值表了(74HC138譯碼器的真值表如下圖所示)。

H:高電平 L:低電平 X:任意電平

圖6:74HC138真值表

由74HC138譯碼器的真值表可以看出,當74HC138使能后,A0、A1、A2的輸入電平?jīng)Q定了Y0~Y7的輸出(低電平有效),而且從Y0到Y7是和A2、A1、A0的值對應的,因此,當我們需要Y0~Y7中某個輸出端輸出低電平時,輸入端A2、A1、A0輸入對應的數(shù)值即可,如需要Y1輸出低電平,則A2、A1、A0輸入為001(16進制:0x01)即可。電路中的8個數(shù)碼管是共陰極數(shù)碼管,8個數(shù)碼管的公共端依次連接到了Y7~Y0,由此,通過A0、A1、A2的“邏輯值”即可完成對待操作的數(shù)碼管的位選。

說明:開發(fā)板為了布線方便,8個數(shù)碼管中的第1位連接到Y7,第2位連接到Y6,以此類推,這一點,在編程程序的時候需要注意一下。軟件設計數(shù)碼管動態(tài)顯示程序結構

對于數(shù)碼管動態(tài)顯示來說,主要考慮的有兩個方面:數(shù)碼管刷新和顯示數(shù)據(jù)更新。

數(shù)碼管刷新:因為是動態(tài)顯示,所以要不斷刷新數(shù)碼管,利用人眼的視覺暫留效應實現(xiàn)數(shù)碼管的顯示,并且刷新的速度不能過慢,否則,顯示會有閃爍。數(shù)碼管顯示內(nèi)容的更新:8位數(shù)碼管中每位數(shù)碼管都可以單獨更新數(shù)據(jù)。

數(shù)碼管動態(tài)顯示驅動程序設計的方法很多,下面是一種基于定時器刷新的方法,供讀者借鑒。

數(shù)碼管驅動程序原理如下圖所示,定義一個數(shù)組,該數(shù)組共有8個元素,分別用于保存8位數(shù)碼管的段碼,即數(shù)組中第1個元素用于保存8位數(shù)碼管中第1位數(shù)碼管的段碼,第2個元素用于保存第2位數(shù)碼管的段碼,以此類推。

使用一個定時器用于刷新數(shù)碼管顯示,在定時器中斷服務函數(shù)中從數(shù)組中取數(shù)碼管的段碼,完成對數(shù)碼管顯示的刷新。這樣,當我們需要修改數(shù)碼管顯示內(nèi)容時,只需要修改數(shù)組中的段碼即可。

圖7:數(shù)碼管軟件驅動原理

定時器刷新數(shù)碼管顯示的流程圖如下,每次進入定時器中斷服務函數(shù)后刷新8位數(shù)碼管中的一位。這里,定義一個變量“l(fā)edseg_nod”用于記錄數(shù)碼管的位,每次刷新后“l(fā)edseg_nod”加1,到達8時,表示8位數(shù)碼管全部刷新,“l(fā)edseg_nod”的值設置為0,開始新一輪刷新。

圖8:定時器刷新數(shù)碼管流程

數(shù)碼管顯示實驗注:本節(jié)的實驗是在“實驗2-6-1:串口1數(shù)據(jù)收發(fā)實驗”的基礎上修改,本節(jié)對應的實驗源碼是:“實驗2-12-1:數(shù)碼管顯示實驗”。實驗內(nèi)容

通過4個輕觸按鍵KEY1~KEY4控制數(shù)碼管顯示內(nèi)容,KEY1控制第1個和第2個數(shù)碼管,KEY2控制第3個和第4個數(shù)碼管,KEY3控制第5個和第6個數(shù)碼管,KEY4控制第7個和第8個數(shù)碼管。

程序復位運行后,8個數(shù)碼管全部顯示數(shù)字0,每按動一次按鍵,該按鍵控制的數(shù)碼管顯示內(nèi)容加1,加到F后再次按動按鍵返回數(shù)字0,如此反復。

代碼編寫新建一個名稱為“l(fā)edseg.c”的文件及其頭文件“l(fā)edseg.h”并保存到工程的“Source”文件夾,并將“l(fā)edseg.c”加入到Keil工程中的“SOURCE”組。引用頭文件

因為在“main.c”文件中使用了“l(fā)edseg.c”文件中的函數(shù),所以需要引用下面的頭文件“l(fā)edseg.h”。

代碼清單:引用頭文件

//引用數(shù)碼管的頭文件 #include " ledseg.h" 定義段碼表和8個數(shù)碼管的段碼數(shù)組

數(shù)碼管常用來顯示數(shù)字“0~9”和字符“A~F”,他們的段碼定義如下:

代碼清單:段碼表

//數(shù)碼管段碼 u8 SEG8_Code[] ={ 0xFC, // 0 0x60, // 1 0xDA, // 2 0xF2, // 3 0x66, // 4 0xB6, // 5 0xBE, // 6 0xE0, // 7 0xFE, // 8 0xF6, // 9 0xEE, // A 0x3E, // b 0x9C, // C 0x7A, // d 0x9E, // E 0x8E, // F };

定義一個名稱為“SEG8_DispArray”的數(shù)組,用于存放8個數(shù)碼管顯示的段碼,初始化值均設置為數(shù)字“0”的段碼“0xFC”,數(shù)碼管刷新時從該數(shù)組讀取段碼,代碼清單如下。

代碼清單: 8位數(shù)碼管段碼存放數(shù)組

//存放8個數(shù)碼管顯示的段碼,初始值都為數(shù)字0的段碼。更新數(shù)碼管顯示內(nèi)容時,只需更新該數(shù)組中的段碼即可 u8 SEG8_DispArray[8] ={0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC}; 數(shù)碼管初始化

數(shù)碼管初始化主要包括引腳配置和數(shù)碼管初始顯示狀態(tài)的設置,代碼清單如下。這里要注意的是,如果需要改動數(shù)碼管初始顯示內(nèi)容,修改數(shù)組SEG8_DispArray中的值即可,默認值是顯示數(shù)字“0”。

代碼清單:數(shù)碼管初始化

/********************************************************************************** 功能描述:始化數(shù)碼管驅動電路所用的GPIO 參 數(shù):無 返 回 值:無 ***********************************************************************************/ void LEDseg_init(void) { P3M1 &= 0xCB; P3M0 |= 0x34; //設置P3.2,P3.4,P3.5為強推挽輸出 P4M1 &= 0xEE; P4M0 &= 0xEE; //設置P4.0,P4.4為準雙向口 P5M1 &= 0xDF; P5M0 &= 0xDF; //設置P5.5為準雙向口 SEG_A0=1; //74HC138第1引腳A0置高電平 SEG_A1=1; //74HC138第2引腳A1置高電平 SEG_A2=1; //74HC138第3引腳A2置高電平 SEG_LCLK=1; //74HC595第12引腳LCLK置高電平 SEG_SCK=0; //74HC595第11引腳SLK置低電平 SEG_DATA=0; //74HC595第14引腳DATA置低電平 } 發(fā)送段選和位選信號

為了程序中操作方便,我們先用宏定義對8位數(shù)碼管中的各個位進行編號,讓數(shù)碼管和數(shù)組“SEG8_DispArray”關聯(lián)。這里要注意一下,開發(fā)板為了布線方便,8位數(shù)碼管是反序連接到74HC138的輸出“Y0~Y7”的。

代碼清單:數(shù)碼管位定義

#define LEDSEG_1 7 #define LEDSEG_2 6 #define LEDSEG_3 5 #define LEDSEG_4 4 #define LEDSEG_5 3 #define LEDSEG_6 2 #define LEDSEG_7 1 #define LEDSEG_8 0

程序中先發(fā)送段碼信號,8位串行段碼經(jīng)過74HC595后并行輸出完成數(shù)碼管的段選,之后發(fā)送位選信號,點亮數(shù)碼管,代碼清單如下。

代碼清單:發(fā)送段選和位選信號

/********************************************************************************** 功能描述:向指定的數(shù)碼管發(fā)送段選和位選信號 參 數(shù):nod[in]:數(shù)碼管,取值范圍:0~7 返 回 值:無 ***********************************************************************************/ void LEDseg_write_data(u8 nod) { u8 dat,i; dat = SEG8_DispArray[nod]; //獲取段碼 for(i=0;i<8;i++) //循環(huán)發(fā)送8位段碼 { SEG_DATA=(dat>>i)&0x01; SEG_SCK=0; Delay10us(); SEG_SCK=1; } LEDseg_nodeSelect(nod); //發(fā)送數(shù)碼管位選信號}

發(fā)送位選信號的函數(shù)代碼清單如下。

代碼清單:發(fā)送位選信號函數(shù)

/********************************************************************************** 功能描述:發(fā)送位選信號,選擇指定的數(shù)碼管 參 數(shù):nod[in]:數(shù)碼管,取值范圍:0~7 返 回 值:無 ***********************************************************************************/ void LEDseg_nodeSelect(u8 nod) { SEG_A0= nod&0x01; SEG_A1= (nod&0x02)>>1; SEG_A2= (nod&0x04)>>2; } 數(shù)碼管刷新

本例中使用Timer2刷新數(shù)碼管,Timer2定時時間配置為2ms,每次中斷刷新一位數(shù)碼管。程序中使用變量“l(fā)edseg_nod”記錄數(shù)碼管的位,8位數(shù)碼管一輪刷新完成后,“l(fā)edseg_nod”復位(值設置為0),進入新一輪的刷新,代碼清單如下。

代碼清單:定時器2中斷服務函數(shù)中刷新數(shù)碼管

/********************************************************************************** * 描 述 : 定時器2中斷服務函數(shù) * 入 參 : 無 * 返回值 : 無 **********************************************************************************/ void timer2_isr() interrupt 12 { LEDseg_write_data(ledseg_nod); //發(fā)送段碼 LEDseg_Refresh(); //發(fā)送 ledseg_nod++; if(ledseg_nod == 8)ledseg_nod = 0; //8位數(shù)碼管刷新完成,ledseg_nod復位 } 主函數(shù)

主函數(shù)中完成相關的初始化之后,在主循環(huán)里面調(diào)用按鍵掃描函數(shù)buttons_scan()查詢是否有按鍵按下,如果有按鍵按下則更新數(shù)碼管顯示內(nèi)容,代碼清單如下。

代碼清單:主函數(shù)

/************************************************************************** 功能描述:主函數(shù) 入口參數(shù):無 返 回 值:int類型 **************************************************************************/ int main(void) { u8 temp; u8 disp_dat1 = 0,disp_dat2 = 0,disp_dat3 = 0,disp_dat4 = 0; //省略了初始化相關的代碼 while(1) { temp = buttons_scan(0); //獲取開發(fā)板用戶按鍵檢測值,不支持連按 if(temp == BUTTON1_PRESSED) //按鍵KEY1按下 { led_toggle(LED_1); //用戶指示燈D1狀態(tài)翻轉 disp_dat1++; if(disp_dat1 >0x0F)disp_dat1 = 0; LEDseg_DispUpdata(LEDSEG_1,disp_dat1,LEDSEG_DP_OFF);//更新第1個數(shù)碼管顯示內(nèi)容 LEDseg_DispUpdata(LEDSEG_2,disp_dat1,LEDSEG_DP_OFF);//更新第2個數(shù)碼管顯示內(nèi)容 } else if(temp == BUTTON2_PRESSED) //按鍵KEY2按下 { led_toggle(LED_2); //用戶指示燈D2狀態(tài)翻轉 disp_dat2++; if(disp_dat2 >0x0F)disp_dat2 = 0; LEDseg_DispUpdata(LEDSEG_3,disp_dat2,LEDSEG_DP_ON);//更新第3個數(shù)碼管顯示內(nèi)容 LEDseg_DispUpdata(LEDSEG_4,disp_dat2,LEDSEG_DP_ON);//更新第4個數(shù)碼管顯示內(nèi)容 } else if(temp == BUTTON3_PRESSED) //按鍵KEY3按下 { led_toggle(LED_3); //用戶指示燈D3狀態(tài)翻轉 disp_dat3++; if(disp_dat3 >0x0F)disp_dat3 = 0; LEDseg_DispUpdata(LEDSEG_5,disp_dat3,LEDSEG_DP_OFF);//更新第5個數(shù)碼管顯示內(nèi)容 LEDseg_DispUpdata(LEDSEG_6,disp_dat3,LEDSEG_DP_OFF);//更新第6個數(shù)碼管顯示內(nèi)容 } else if(temp == BUTTON4_PRESSED) //按鍵KEY4按下 { led_toggle(LED_4); //用戶指示燈D3狀態(tài)翻轉 disp_dat4++; if(disp_dat4 >0x0F)disp_dat4 = 0; LEDseg_DispUpdata(LEDSEG_7,disp_dat4,LEDSEG_DP_OFF);//更新第7個數(shù)碼管顯示內(nèi)容 LEDseg_DispUpdata(LEDSEG_8,disp_dat4,LEDSEG_DP_OFF);//更新第8個數(shù)碼管顯示內(nèi)容 } } } 硬件連接

按照下圖所示短接跳線帽,因為數(shù)碼管和顯示屏復用了GPIO,因此,使用數(shù)碼管時不能安裝顯示屏。

圖9:跳線帽短接

實驗步驟解壓“…\\第3部分:配套例程源碼”目錄下的壓縮文件“實驗2-12-1:數(shù)碼管顯示實驗”,將解壓后得到的文件夾拷貝到合適的目錄,如“D\\STC8”(這樣做的目的是為了防止中文路徑或者工程存放的路徑過深導致打開工程出現(xiàn)問題)。雙擊“…\\ledseg_disp\\Project”目錄下的工程文件“l(fā)edseg_disp.uvproj”。點擊編譯按鈕編譯工程,編譯成功后生成的HEX文件“l(fā)edseg_disp.hex”位于工程的“…\\ledseg_disp\\project\\Objects”目錄下。打開STC-ISP軟件下載程序,下載使用內(nèi)部IRC時鐘,IRC頻率選擇:24MHz。程序運行后,依次按下用戶按鍵KEY1、KEY2、KEY3和KEY4,可以觀察到每按一次按鍵,對應的數(shù)碼管顯示內(nèi)容從“0~F”依次遞增。按下KEY1按鍵:第1、2位數(shù)碼管顯示內(nèi)容遞增。按下KEY2按鍵:第3、4位數(shù)碼管顯示內(nèi)容遞增。按下KEY3按鍵:第5、6位數(shù)碼管顯示內(nèi)容遞增。按下KEY4按鍵:第7、8位數(shù)碼管顯示內(nèi)容遞增。

以上就是關于刷卡機顯示應答碼lk的知識,后面我們會繼續(xù)為大家整理關于刷卡機顯示應答碼lk的知識,希望能夠幫助到大家!

轉載請帶上網(wǎng)址:http://www.svinexta.cn/shuaka/146864.html

版權聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 babsan@163.com 舉報,一經(jīng)查實,本站將立刻刪除。
聯(lián)系我們
訂購聯(lián)系:小莉
微信聯(lián)系方式
地址:深圳市寶安區(qū)固戍聯(lián)誠發(fā)產(chǎn)業(yè)園木星大廈

公司地址:深圳市寶安區(qū)固戍聯(lián)誠發(fā)產(chǎn)業(yè)園木星大廈

舉報投訴 免責申明 版權申明 廣告服務 投稿須知 技術支持:第一POS網(wǎng) Copyright@2008-2030 深圳市慧聯(lián)實業(yè)有限公司 備案號:粵ICP備18141915號