找了C#的demo 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        public int icdev;
        int st;
        byte[] snr = new byte[5];
        private void button1_Click(object sender, EventArgs e)
        {
            icdev = Program.rf_init(0, 9600);
            if (icdev > 0)
            {
                listBox1.Items.Add("Com Connect success!");
                byte[] status = new byte[30];
                st = Program.rf_get_status(icdev, status);
                //lbHardVer.Text=System.Text.Encoding.ASCII.GetString(status);
                listBox1.Items.Add(System.Text.Encoding.Default.GetString(status));
                Program.rf_beep(icdev, 25);
            }
            else
                listBox1.Items.Add("Com Connect failed!");            byte[] key = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
            int mode = 0;
            int sector = 0;
            for (int i = 0; i < 16; i++)
            {
                st = Program.rf_load_key(icdev, mode, sector, key);
                if (st != 0)
                {
                    string s1 = Convert.ToString(sector);
                    listBox1.Items.Add(s1 + " sector rf_load_key error!");
                }
                //else
                //{
                //   listBox1.Items.Add("rf_load_key seccess!");
                //}
                sector++;
            }
        }        private void button1_Click_1(object sender, EventArgs e)
        {
            int sector = 3;
            st = Program.rf_card(icdev, 0, snr);    //寻卡
            if (st != 0)
            {
                listBox1.Items.Add("rf_card error");
            }
            else
            {
                byte[] snr1 = new byte[8];
                listBox1.Items.Add("rf_card right!");
                Program.hex_a(snr, snr1, 4);
                listBox1.Items.Add(System.Text.Encoding.Default.GetString(snr1));
            }
            st = Program.rf_authentication(icdev, 0, sector);  //验证密码
            if (st != 0)
            {
                listBox1.Items.Add("rf_authentication error!");
            }
            else
            {
                listBox1.Items.Add("rf_authentication right!");
            }            byte[] data = new byte[16];
            string databuff = "深圳明华澳汉科技";
            data = Encoding.Default.GetBytes(databuff);
            st = Program.rf_write(icdev, sector * 4 + 1, data);   //写数据
            if (st != 0)
            {
                listBox1.Items.Add("rf_write error!");
                listBox1.Items.Add(st.ToString());
            }
            else
            {
                listBox1.Items.Add("rf_write right!");
            }            byte[] databuffer = new byte[32];
            st = Program.rf_read(icdev, sector * 4 + 1, databuffer);  //读数据
            if (st != 0)
            {
                listBox1.Items.Add("rf_read error!");
                listBox1.Items.Add(st.ToString());
            }
            else
            {
                listBox1.Items.Add("rf_read right!");
                listBox1.Items.Add(System.Text.Encoding.Default.GetString(databuffer));
            }            byte[] keya = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
            byte[] keyb = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
            st = Program.rf_changeb3(icdev, sector, keya, 0, 0, 0, 1, 0, keyb);  //改密码
            if (st != 0)
            {
                listBox1.Items.Add("rf_changeb3 error!");
                listBox1.Items.Add(st.ToString());
            }
            else
            {
                listBox1.Items.Add("rf_changeb3 right!");
            }            Program.rf_halt(icdev);
            Program.rf_beep(icdev, 50);
        }        private void button2_Click(object sender, EventArgs e)
        {
            st = Program.rf_exit(icdev);
            if (st == 0)
            {
                listBox1.Items.Add("断开连接!");
            }
        }        private void button3_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
        }        private void button4_Click(object sender, EventArgs e)
        {
            st = Program.rf_ctl_mode(icdev, 0);
            if (st != 0)
            {
                MessageBox.Show("设置控制模式失败!");
            }
            else
            {
                MessageBox.Show("控制模式: 计算机控制!");
            }            st = Program.rf_CtlBackLight(icdev, 1);
            if (st != 0)
            {
                MessageBox.Show("打开LCD背光失败!");
            }
            else
            {
                MessageBox.Show("打开LCD背光!");
            }            st = Program.rf_LcdClrScrn(icdev, 2);
            if (st != 0)
            {
                MessageBox.Show("LCD清屏失败!");
            }
            else
            {
                MessageBox.Show("LCD清屏!");
            }            //st = Program.rf_DispMainMenu(icdev);
            //if (st != 0)
            //{
            //    MessageBox.Show("显示欢迎光临失败!");
            //}
            //else
            //{
            //    MessageBox.Show("欢迎光临!");
            //}            st = Program.rf_DispLcd(icdev, 0, 0x01);
            if (st != 0)
            {
                MessageBox.Show("显示操作失败!");
            }
            else
            {
                MessageBox.Show("请刷卡!");
            }            byte[] data = new byte[15];
            string databuff = "明华澳汉科技";
            data = Encoding.Default.GetBytes(databuff);
            st = Program.rf_DispInfo(icdev, 1, 0, data);
            if (st != 0)
            {
                MessageBox.Show("显示失败!");
            }
            else
            {
                MessageBox.Show("明华澳汉科技!");
            }        }        private void button5_Click(object sender, EventArgs e)
        {
            st = Program.rf_ctl_mode(icdev, 0);
            if (st != 0)
            {
                MessageBox.Show("设置控制模式失败!");
            }
            else
            {
                MessageBox.Show("控制模式: 计算机控制!");
            }            byte[] disp_str = new byte[] { 0x00, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88 };
            //byte[] disp_str = new byte[10];
            //string databuff = "12345678";
            //disp_str = Encoding.Default.GetBytes(databuff);
            st = Program.rf_disp8(icdev, 8, disp_str);
        }        private void button6_Click(object sender, EventArgs e)
        {
            st = Program.rf_card(icdev, 0, snr);    //寻卡
            if (st != 0)
            {
                listBox1.Items.Add("rf_card error");
            }
            else
            {
                byte[] snr1 = new byte[8];
                listBox1.Items.Add("rf_card right!");
                Program.hex_a(snr, snr1, 4);
                listBox1.Items.Add(System.Text.Encoding.Default.GetString(snr1));
            }            byte[] resetData = new byte[256];
            byte[] rData = new byte[500];
            byte[] sendCmd = new byte[] { 0, 0, 0, 5,0,0x84,0,0,8}; //第四个字节为发送的命令长度
 
            st = Program.rf_pro_rst(icdev, resetData);
            if (st != 0)
            {
                listBox1.Items.Add("复位失败!");
            }
            else
            {
                Program.hex_a(resetData, rData, resetData[0]);  //将复位信息转换为ASC字符串存放在rData中
                listBox1.Items.Add(System.Text.Encoding.Default.GetString(rData)); 
            }            Array.Clear(resetData, 0, 256);
            st = Program.rf_pro_trn(icdev, sendCmd, resetData);
            if (st != 0)
            {
                listBox1.Items.Add("取随机数失败!");
            }
            else
            {
                Array.Clear(rData, 0, 500);
                Program.hex_a(resetData, rData, resetData[3] + 4);
                listBox1.Items.Add(System.Text.Encoding.Default.GetString(rData));
            }
        }
        
    }
}