更新8051F340的Season界面

问题描述

我正在尝试恢复Season界面。就是这样的智能卡模拟器。它的行为完全类似于智能卡或SIM卡。

将其插入阅读器的插槽中,并在电源重置后向阅读器发出ATR响应,然后阅读器也准备使用APDU命令进行通信。

通过串口以9600 N-8-1的速度建立交换。

Season连接了三根线RX TX和Reset。

复位也是电源复位,我通过中断将LED值更改为其IO端口之一来看到。

但是后来我停了下来。我需要在40,000个周期的时间内通过端口发送12个十六进制,但读者看不到我,也没有任何反应。

任何人都仍然可以使用Season界面的源代码吗?

或者您对如何克服它有任何想法?

中断(P00)被焊接到DB9的第一段,这也是读取器的复位。

在中断时,我的LED1开关。当我将Season插入阅读器并且在阅读器控制程序中设置了reset时,就会发生这种情况。

//-----------------------------------------------------------------------------
// MAIN Routine
//-----------------------------------------------------------------------------
void main (void)
{
     char atr[16] = {0x3B,0xF7,0x11,0x00,0x40,0x96,0x70,0x07,0x0E,0x6C,0xB6,0xD6}; 
   PCA0MD &= ~0x40;                    // disable Watchdog timer
   Oscillator_Init();                  // Initialize the system clock
   Port_Init ();                       // Initialize crossbar and GPIO
   Ext_Interrupt_Init();               // Initialize External Interrupts
   EA = 1;
     if(!LED1) {
            uart_tx(0x3B);
            uart_tx(0xF7);
            uart_tx(0x11);
            uart_tx(0x00);
            uart_tx(0x40);
            uart_tx(0x96);       
     }
     
   while(1);
}

//
void uart_msg(unsigned char *c) {
        while(*c != 0) {
                uart_tx(*c++);
        }
}


void uart_tx(unsigned int sdata) {
        while(!TI0);
        SBUF0 = sdata;
        while(!TI0);
        TI0 = 0;
}

//-----------------------------------------------------------------------------
void INT0_ISR (void) interrupt 0
{
   LED1 = !LED1;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)