冰楓論壇

標題: LPC11U68JBD100 [打印本頁]

作者: 洪嵐峰    時間: 2023-5-6 19:39
標題: LPC11U68JBD100
製作 SIM 卡對拷機需要以下材料:

LPC11U68JBD100 微控制器開發板
SIM 卡讀卡器
面包板和杜邦線
電源供應器
USB 線和串口線

以下是 LPC11U68JBD100 的連結腳位:

P0.18 -> SIM 卡讀卡器的 CLK
P0.19 -> SIM 卡讀卡器的 DAT
P0.20 -> SIM 卡讀卡器的 RST
P0.21 -> SIM 卡讀卡器的 VCC
P0.22 -> SIM 卡讀卡器的 GND

以下是 LPC11U68JBD100 的程式碼範例:


#include "mbed.h"

Serial pc(USBTX, USBRX); // 宣告 serial 物件
DigitalOut rst(p15);     // 宣告 reset 腳位

// 送出一個字元
void sendChar(char c)
{
    pc.putc(c);
}

// 送出一個字串
void sendString(const char *s)
{
    pc.printf("%s", s);
}

// 接收一個字元
char getChar()
{
    return pc.getc();
}

// 接收一個字串
char *getString(char *buf, int len)
{
    return pc.gets(buf, len);
}

// 初始化 SIM 卡
void simInit()
{
    rst = 0;  // 設定 reset 腳位為低電位
    wait_ms(100);
    rst = 1;  // 設定 reset 腳位為高電位
    wait_ms(1000);
    sendString("AT+CMEE=2\r\n"); // 設定錯誤碼格式
    getString(NULL, 0);          // 讀取回應
}

// 讀取 SIM 卡資訊
void readSim()
{
    sendString("AT+CCID\r\n");   // 讀取 SIM 卡 ICCID
    char buf[32];
    getString(buf, 32);          // 讀取回應
    sendString("ICCID: ");
    sendString(buf);
    sendString("\r\n");

    sendString("AT+CIMI\r\n");   // 讀取 SIM 卡 IMSI
    getString(buf, 32);          // 讀取回應
    sendString("IMSI: ");
    sendString(buf);
    sendString("\r\n");
}

int main()
{
    pc.baud(9600);    // 設定 serial 速率
    simInit();        // 初始化 SIM 卡
    readSim();        // 讀取 SIM 卡資訊
    while(1);
}


這段程式碼使用 mbed 開發環境,初始化 SIM 卡並讀取 ICCID 和 IMSI 資訊。您可以將程式碼上傳到 LPC11U68JBD100 微控制器開發板上,並將SIM 卡插入 SIM 卡讀卡器,然後使用 USB 線和串口線將 LPC11U68JBD100 微控制器開發板連接到電腦。
接下來,打開終端機軟體(例如 PuTTY 或者 Tera Term),設定串口設備並連接到開發板。

當程式碼執行時,您應該可以在終端機軟體上看到類似以下的輸出:


ICCID: 89860117851012345678
IMSI: 460012345678901

這表示 SIM 卡的 ICCID 是 "89860117851012345678",IMSI 是 "460012345678901"。您可以按照需要修改程式碼以執行其他操作,例如讀取 SIM 卡中的短信或撥打電話等。




如果您需要進一步開發對拷機的功能,可以參考以下幾點:

讀取 SIM 卡中的短信:使用 AT 指令 "AT+CMGL" 可以讀取 SIM 卡中的短信,然後使用 serial 介面將其輸出到終端機軟體中。

撥打電話:使用 AT 指令 "ATD" 可以撥打電話,例如 "ATD13812345678;" 可以撥打電話給 13812345678,注意要加上分號作為結束符號。

寫入 SIM 卡:使用 AT 指令 "AT+CMGW" 可以寫入短信到 SIM 卡中,例如 "AT+CMGW=25" 可以將短信內容寫入 SIM 卡第 25 個位置。

解析 AT 指令回應:使用 serial 介面讀取 AT 指令的回應時,需要解析回應內容才能得到有用的資訊。




歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓