亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

true

  • width = gdk_pixbuf_animation_get_width(ani) height = gdk_pixbuf_animation_get_height(ani) cu

    width = gdk_pixbuf_animation_get_width(ani) height = gdk_pixbuf_animation_get_height(ani) current_frame_list = gdk_pixbuf_animation_get_frames(ani) pixmap = gdk_pixmap_new(w->window, width, height, -1) clean_pixmap = gdk_pixmap_new(w->window, width, height, -1) if (w->style->bg_pixmap[GTK_STATE_NORMAL]) { GdkPixmap *bg = w->style->bg_pixmap[GTK_STATE_NORMAL] GdkGC *gc GdkGCValues values values.tile = bg values.fill = GDK_TILED gc = gdk_gc_new_with_values(w->window, &values, GDK_GC_FILL|GDK_GC_TILE) gdk_gc_set_ts_origin(gc, (w->allocation.width - width)/2, (w->allocation.height-height)/2) gdk_draw_rectangle(clean_pixmap,gc, true, 0, 0, width, height) gdk_gc_destroy(gc) } else { gdk_draw_rectangle(clean_pixmap, w->style->bg_gc[GTK_STATE_NORMAL], true, 0, 0, width, height) }

    標簽: gdk_pixbuf_animation_get_height gdk_pixbuf_animation_get_width ani height

    上傳時間: 2013-12-26

    上傳用戶:thinode

  • 本程序的開發環境為VS2005

    本程序的開發環境為VS2005,數據庫為SQLSever2005 默認的連接字符串為:"DataSource=125.216.227.147 Initial Catalog=msdb Persist Security Info=true User ID=sa Password=111111" 管理系統為一個簡單的人事管理系統,幫助初學者盡快的掌握這種語言,進而有助于系統改進,對初學者來說是很不錯的選擇。

    標簽: 2005 VS 程序 開發環境

    上傳時間: 2013-12-30

    上傳用戶:lyy1234

  • Since the field of object oriented programming is probably new to you, you will find that there is a

    Since the field of object oriented programming is probably new to you, you will find that there is a significant amount of new terminology for you to grasp. This is true of any new endeavor and you should be warned not to be intimidated by all of the new concepts.

    標簽: programming you oriented probably

    上傳時間: 2014-12-06

    上傳用戶:aappkkee

  • Ajax實現的WEB下載,由于OA系統是基于WEB方式的

    Ajax實現的WEB下載,由于OA系統是基于WEB方式的,如果只判斷用戶是否點擊“下載文件”,就來判斷用戶是否成功下載了文件。這種方式很顯然行不通,怎么辦呢?我想到的就是用一控件,然后用回調事件來處理數據庫方面的問題(下載記錄問題) 有興趣的朋友可在 http://www.interdrp.com/ 下載分銷系統 用測試帳號進系統后,點測試程序,再點WEB下載 可以看見效果 https://www.interdrp.com/software/ReYoWebDownLoad.zip(點擊下載此控件) API說明 ReYoWebDL.copyright="銳洋軟件擁有版權 http://www.interdrp.com/" //必須 ReYoWebDL.url="http://dl.baofeng.com/storm3/Storm2009-0504-1.exe" //下載文件的路徑 ReYoWebDL.path ="" //保存文件地址 ReYoWebDL.ReYoStartDownload() //下載動作 ReYoWebDL.ReYoStopDownload() //停止下載 ReYoWebDL.size //下載文件大小 ReYoWebDL.bytes//已下載大小 ReYoWebDL.speed //下載速度 KB/S ReYoWebDL.done //下載是否完成 ReYoWebDL.cancle=true //是否取消下載 ReYoWebDL.urlsource //下載文件名 ReYoWebDL.percent //下載百分比

    標簽: WEB Ajax OA系統

    上傳時間: 2017-09-14

    上傳用戶:lingzhichao

  • TdcHintEx Provides your users with a cool transparent hint. It replaces standard Delphi hint wind

    TdcHintEx Provides your users with a cool transparent hint. It replaces standard Delphi hint window. Just drop a TdcHintEx in your main form. Set Enabled to true. And run your application. Oh btw, please set ShowHint to true.. :) Drop me a line, and tell me what you think of it. Antony Hoon antony7777@telkom.net

    標簽: hint transparent TdcHintEx Provides

    上傳時間: 2014-01-12

    上傳用戶:181992417

  • asp實現限制一個ip只能訪問一次的方法

    asp實現限制一個ip只能訪問一次的方法 <%  '/////////////////////////////////////////////////////  '// //  '//作用:一個IP地址只允許訪問本頁一次 //  '//引用:<!-- #include file="Check_Ip.asp" --> //  '// //  '/////////////////////////////////////////////////////    'Response.Charset = 936 '設置輸出編碼為簡體中文  'Response.Buffer = false '關閉緩沖區    Dim Fso,ts,IpList,Cfs    '設置Cookies函數  Function SetCookie()  Response.Cookies("IsBrow") = "Brow" Response.Cookies("IsBrow").Expires = Date+365  End Function    '記錄IP地址函數  Function WriteIp(FileName, IpAddress)  Set Fso = Server.CreateObject("Scripting.FileSystemObject")  Set ts = Fso.OpenTextFile(Server.MapPath(FileName),8,true)  ts.WriteLine IpAddress  ts.Close  Set ts = Nothing  Set Fso = Nothing  End Function    '讀取IP地址函數  Function ReadIpList(FileName)  Set Fso = Server.CreateObject("Scripting.FileSystemObject")  If Not Fso.FileExists(Server.MapPath(FileName)) Then  CreateFile("Iplist.txt")  Exit Function  End If    Set ts = Fso.OpenTextFile(Server.MapPath(FileName))  Iplist = ts.ReadAll  ts.Close  Set ts = Nothing  Set Fso = Nothing  ReadIpList = Iplist  End Function    '創建文件函數  Function CreateFile(FileName)  Set Fso = Server.CreateObject("Scripting.FileSystemObject")  Set Cfs = Fso.CreateTextFile(Server.MapPath(FileName))  Cfs.Close  Set Cfs = Nothing  Set Fso = Nothing  End Function    '關閉當前IE窗口函數(注:IE6下通過,其他瀏覽器未測試)  Function CloseWindow()  'Response.Write "<script>window.location='javascript:window.opener=null;window.close();'</script>"  Response.Redirect "http://www.baidu.com" End Function    Ip = Request.ServerVariables("REMOTE_ADDR") '獲取瀏覽者IP地址    Cookie = Request.Cookies("IsBrow") '獲取當前Cookies  'Response.Write Cookie    If Request.ServerVariables("HTTP_X_FORWARDED_FOR") <> "" Then  Response.Write "本站不允許使用代理訪問" Response.End()  Else  If Cookie = "Brow" Then  CloseWindow()  Else  If Instr(ReadIpList("Iplist.txt"),Ip) <>0  Then  CloseWindow()  Else  WriteIp "Iplist.txt" , Ip  End If  SetCookie()  End If  End If  %>

    標簽: asp 訪問

    上傳時間: 2016-07-14

    上傳用戶:helei0915

  • 多項式計算代碼

    void DFS(MGraph G, int i) {     int j;     visited[i] = true;     printf("%c ",    G.vexs[i]);     for (j=0; j<G.numVertexes; ++j)     {         if (G.arc[i][j]!=INFINITY  &&  !visited[j])             DFS(G, j);     } }

    標簽: 多項式 代碼 計算

    上傳時間: 2016-12-28

    上傳用戶:chenyameng

  • c#簡單計算器

    // 學生管理.cpp : Defines the entry point for the application. // #include "stdafx.h" #include "resource.h" #define MAX_LOADSTRING 100 // Global Variables: HINSTANCE hInst; // current instance TCHAR szTitle[MAX_LOADSTRING]; // The title bar text TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text // Foward declarations of functions included in this code module: ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM); struct person {   char name[10];   int ID;   int cj_yw;   int cj_sx;   struct person* next;   struct person* pro; }per; int APIENTRY WinMain(HINSTANCE hInstance,                      HINSTANCE hPrevInstance,                      LPSTR     lpCmdLine,                      int       nCmdShow) {   // TODO: Place code here. MSG msg; HACCEL hAccelTable; // Initialize global strings LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_MY, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); // Perform application initialization: if (!InitInstance (hInstance, nCmdShow))  { return FALSE; } hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_MY); // Main message loop: while (GetMessage(&msg, NULL, 0, 0))  { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))  { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } // //  FUNCTION: MyRegisterClass() // //  PURPOSE: Registers the window class. // //  COMMENTS: // //    This function and its usage is only necessary if you want this code //    to be compatible with Win32 systems prior to the 'RegisterClassEx' //    function that was added to Windows 95. It is important to call this function //    so that the application will get 'well formed' small icons associated //    with it. // ATOM MyRegisterClass(HINSTANCE hInstance) { WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX);  wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_MY); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = (LPCSTR)IDC_MY; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); return RegisterClassEx(&wcex); } // //   FUNCTION: InitInstance(HANDLE, int) // //   PURPOSE: Saves instance handle and creates main window // //   COMMENTS: // //        In this function, we save the instance handle in a global variable and //        create and display the main program window. // BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) {    HWND hWnd;    hInst = hInstance; // Store instance handle in our global variable    hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,       CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);    if (!hWnd)    {       return FALSE;    }    ShowWindow(hWnd, nCmdShow);    UpdateWindow(hWnd);    return true; } // //  FUNCTION: WndProc(HWND, unsigned, WORD, LONG) // //  PURPOSE:  Processes messages for the main window. // //  WM_COMMAND - process the application menu //  WM_PAINT - Paint the main window //  WM_DESTROY - post a quit message and return // // LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; TCHAR szHello[MAX_LOADSTRING]; LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING); switch (message)  { case WM_COMMAND: wmId    = LOWORD(wParam);  wmEvent = HIWORD(wParam);  // Parse the menu selections: switch (wmId) { case IDM_ABOUT:   DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);   break; case IDM_EXIT:   DestroyWindow(hWnd);   break; default:   return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: Add any drawing code here... RECT rt; GetClientRect(hWnd, &rt); DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam);    }    return 0; } // Mesage handler for about box. LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return true; case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)  { EndDialog(hDlg, LOWORD(wParam)); return true; } break; }     return FALSE; }

    標簽: 計算器 學生

    上傳時間: 2016-12-29

    上傳用戶:767483511

  • 簡單的計算器

    // 學生管理.cpp : Defines the entry point for the application. // #include "stdafx.h" #include "resource.h" #define MAX_LOADSTRING 100 // Global Variables: HINSTANCE hInst; // current instance TCHAR szTitle[MAX_LOADSTRING]; // The title bar text TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text // Foward declarations of functions included in this code module: ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM); struct person {   char name[10];   int ID;   int cj_yw;   int cj_sx;   struct person* next;   struct person* pro; }per; int APIENTRY WinMain(HINSTANCE hInstance,                      HINSTANCE hPrevInstance,                      LPSTR     lpCmdLine,                      int       nCmdShow) {   // TODO: Place code here. MSG msg; HACCEL hAccelTable; // Initialize global strings LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_MY, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); // Perform application initialization: if (!InitInstance (hInstance, nCmdShow))  { return FALSE; } hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_MY); // Main message loop: while (GetMessage(&msg, NULL, 0, 0))  { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))  { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } // //  FUNCTION: MyRegisterClass() // //  PURPOSE: Registers the window class. // //  COMMENTS: // //    This function and its usage is only necessary if you want this code //    to be compatible with Win32 systems prior to the 'RegisterClassEx' //    function that was added to Windows 95. It is important to call this function //    so that the application will get 'well formed' small icons associated //    with it. // ATOM MyRegisterClass(HINSTANCE hInstance) { WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX);  wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_MY); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = (LPCSTR)IDC_MY; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); return RegisterClassEx(&wcex); } // //   FUNCTION: InitInstance(HANDLE, int) // //   PURPOSE: Saves instance handle and creates main window // //   COMMENTS: // //        In this function, we save the instance handle in a global variable and //        create and display the main program window. // BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) {    HWND hWnd;    hInst = hInstance; // Store instance handle in our global variable    hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,       CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);    if (!hWnd)    {       return FALSE;    }    ShowWindow(hWnd, nCmdShow);    UpdateWindow(hWnd);    return true; } // //  FUNCTION: WndProc(HWND, unsigned, WORD, LONG) // //  PURPOSE:  Processes messages for the main window. // //  WM_COMMAND - process the application menu //  WM_PAINT - Paint the main window //  WM_DESTROY - post a quit message and return // // LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; TCHAR szHello[MAX_LOADSTRING]; LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING); switch (message)  { case WM_COMMAND: wmId    = LOWORD(wParam);  wmEvent = HIWORD(wParam);  // Parse the menu selections: switch (wmId) { case IDM_ABOUT:   DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);   break; case IDM_EXIT:   DestroyWindow(hWnd);   break; default:   return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: Add any drawing code here... RECT rt; GetClientRect(hWnd, &rt); DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam);    }    return 0; } // Mesage handler for about box. LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return true; case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)  { EndDialog(hDlg, LOWORD(wParam)); return true; } break; }     return FALSE; }

    標簽: 學生 計算器

    上傳時間: 2016-12-29

    上傳用戶:767483511

  • 12345

    /****************temic*********t5557***********************************/    #include   <at892051.h>     #include   <string.h>    #include   <intrins.h>     #include   <stdio.h>     #define    uchar    unsigned char     #define    uint     unsigned int     #define    ulong    unsigned long     //STC12C2051AD的SFR定義     sfr  WDT_CONTR = 0xe1;//stc2051的看門狗??????     /**********全局常量************/    //寫卡的命令     #define    write_command0       0//寫密碼     #define    write_command1       1//寫配置字     #define    write_command2       2//密碼寫數據     #define    write_command3       3//喚醒     #define    write_command4       4//停止命令     #define    true       1     #define    FALSE      0     #define    OK         0     #define    ERROR      255     //讀卡的時間參數us     #define ts_min          250//270*11.0592/12=249//取近似的整數     #define ts_max          304//330*11.0592/12=304     #define t1_min          73//90*11.0592/12=83:-10調整     #define t1_max          156//180*11.0592/12=166     #define t2_min          184//210*11.0592/12=194     #define t2_max          267//300*11.0592/12=276     //***********不采用中斷處理:采用查詢的方法讀卡時關所有中斷****************/     sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13     sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE     PIN=6     sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut  PIN=2     sbit wtd_sck = P1^7;//SPI總線     sbit wtd_si = P1^3;    sbit wtd_so = P1^2;    sbit iic_data = P1^2;//lcd IIC     sbit iic_clk = P1^7;    sbit led_light = P1^6;//測試綠燈     sbit led_light1 = P1^5;//測試紅燈     sbit led_light_ok  = P1^1;//讀卡成功標志     sbit fengmingqi = P1^5;    /***********全局變量************************************/       uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密碼             //uchar idata card_snr[4];   //配置字     uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7};     //存儲卡上用戶數據(1-7)7*4=28     uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收數組ram     uchar command; //第一個命令     uchar command1;//     //uint  temp;     uchar j,i;    uchar myaddr = 8;    //uchar ywqz_count,time_count;             //ywqz jishu:     uchar bdata DATA;    sbit BIT0 = DATA^0;    sbit BIT1 = DATA^1;    sbit BIT2 = DATA^2;    sbit BIT3 = DATA^3;    sbit BIT4 = DATA^4;    sbit BIT5 = DATA^5;    sbit BIT6 = DATA^6;    sbit BIT7 = DATA^7;    uchar bdata DATA1;    sbit BIT10 = DATA1^0;    sbit BIT11 = DATA1^1;    sbit BIT12 = DATA1^2;    sbit BIT13 = DATA1^3;    sbit BIT14 = DATA1^4;    sbit BIT15 = DATA1^5;    sbit BIT16 = DATA1^6;    sbit BIT17 = DATA1^7;    bit i_CurrentLevel;//i_CurrentLevel  BIT 00H(Saves current level of OutPut pin of U2270B)     bit timer1_end;    bit read_ok = 0;    //緩存定時值,因用同一個定時器     union HLint { uint W;    struct   {    uchar H;uchar L;   }   B; };//union HLint idata a     union HLint data a;    //緩存定時值,因用同一個定時器     union HLint0 { uint W;    struct {   uchar H;   uchar L; } B; };//union HLint idata a     union HLint0 data b;    /**********************函數原型*****************/    //讀寫操作     void f_readcard(void);//全部讀出1~7 AOR喚醒     void f_writecard(uchar x);//根據命令寫不同的內容和操作     void f_clearpassword(void);//清除密碼     void f_changepassword(void);//修改密碼     //功能子函數     void write_password(uchar data *data p);//寫初始密碼或數據     void write_block(uchar x,uchar data *data p);//不能用通用指針     void write_bit(bit x);//寫位     /*子函數區*****************************************************/    void delay_2(uint x)    //延時,時間x*10us@12mhz,最小20us@12mhz     {    x--; x--;    while(x)    {      _nop_();      _nop_();      x--;    }    _nop_();//WDT_CONTR=0X3C;不能頻繁的復位     _nop_();    }    /////////////////////////////////////////////////////////////////////     void initial(void)    {    SCON = 0x50; //串口方式1,允許接收     //SCON  =0x50;     //01010000B:10位異步收發,波特率可變,SM2=0不用接收到有效停止位才RI=1,     //REN=1允許接收     TMOD = 0x21; //定時器1 定時方式2(8位),定時器0 定時方式1(16位)     TCON = 0x40; //設定時器1 允許開始計時(IT1=1)     TH1 = 0xfD;  //FB 18.432MHz 9600 波特率     TL1 = 0xfD;  //fd 11.0592 9600     IE = 0X90;     //EA=ES=1     TR1 = 1;     //啟動定時器     WDT_CONTR = 0x3c;//使能看門狗     p_U2270B_Standby = 0;//單電源     PCON = 0x00;    IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0     led_light1 = 1;    led_light = 0;    p_U2270B_OutPut = 1;    }    /************************************************/    void f_readcard()//讀卡     {    EA = 0;//全關,防止影響跳變的定時器計時     WDT_CONTR = 0X3C;//喂狗     p_U2270B_CFE = 1;//      delay_2(232);  //>2.5ms            /*   //   aor    用喚醒功能來防碰撞   p_U2270B_CFE = 0; delay_2(18);//start gap>150us   write_bit(1);//10=操作碼讀0頁   write_bit(0);       write_password(&bankdata[24]);//密碼block7   p_U2270B_CFE =1 ;//    delay_2(516);//編程及確認時間5.6ms   */    WDT_CONTR = 0X3C;//喂狗     led_light = 0;    b.W = 0;    while(!(read_ok == 1))    {             //while(p_U2270B_OutPut);//等一個穩定的低電平?超時判斷?              while(!p_U2270B_OutPut);//等待上升沿的到來同步信號檢測1       TR0 = 1;      //deng xia jiang       while(p_U2270B_OutPut);//等待下降沿       TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//定時器晚啟動10個周期       //同步頭       if((324 < a.W) && (a.W < 353)) ;//檢測同步信號1                  else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //等待上升沿        while(!p_U2270B_OutPut);   TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//b.N1<<=8;            if(a.B.L < 195);//0.5p       else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //讀0~7塊的數據       for(j = 0;j < 28;j++)      {       //uchar i;                  for(i = 0;i < 16;i++)//8個位        {        //等待下降沿的到來         while(p_U2270B_OutPut);                TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;              if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;//先左移再賦值          b.B.L += 0xc0;                             i++;        }        else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p         {         b.W >>= 1;         b.B.L += 0x80;                           }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;        while(!p_U2270B_OutPut);//上升                   TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;                      if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;         i++;        }        else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P         //else if(!(a.W==0))         {         b.W >>= 1;         //temp+=0x00;          //led_light1=0;led_light=1;delay_2(40000);         }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;       }       //取出奇位        DATA = b.B.L;       BIT13 = BIT7;    BIT12 = BIT5;    BIT11 = BIT3;    BIT10 = BIT1;       DATA = b.B.H;       BIT17 = BIT7;    BIT16 = BIT5;    BIT15 = BIT3;    BIT14 = BIT1;       bankdata[j] = DATA1;      }              read_ok = 1;//讀卡完成了     read_error:    _nop_();    }       }    /***************************************************/    void f_writecard(uchar x)//寫卡     {    p_U2270B_CFE = 1;    delay_2(232);  //>2.5ms            //psw=0 standard write     if (x == write_command0)//寫密碼:初始化密碼     {      uchar i;      uchar data *data p;      p = cominceptbuff;      p_U2270B_CFE = 0;   delay_2(31);//start gap>330us       write_bit(1);//寫操作碼1:10       write_bit(0);//寫操作碼0       write_bit(0);//寫鎖定位0       for(i = 0;i < 35;i++)      {       write_bit(1);//寫數據位1       }      p_U2270B_CFE = 1;      led_light1 = 0;   led_light = 1;   delay_2(40000);//測試使用       //write_block(cominceptbuff[4],p);       p_U2270B_CFE = 1;      bankdata[20] = cominceptbuff[0];//密碼存入       bankdata[21] = cominceptbuff[1];      bankdata[22] = cominceptbuff[2];      bankdata[23] = cominceptbuff[3];    }    else if (x == write_command1)//配置卡參數:初始化     {      uchar data *data p;      p = cominceptbuff;      write_bit(1);//寫操作碼1:10       write_bit(0);//寫操作碼0       write_bit(0);//寫鎖定位0               write_block(cominceptbuff[4],p);      p_U2270B_CFE=  1;    }    //psw=1  pssword mode     else if(x == write_command2)  //密碼寫數據    {      uchar data*data p;      p = &bankdata[24];      write_bit(1);//寫操作碼1:10       write_bit(0);//寫操作碼0       write_password(p);//發口令       write_bit(0);//寫鎖定位0       p = cominceptbuff;      write_block(cominceptbuff[4],p);//寫數據            }    else if(x == write_command3)//aor    //喚醒 {      //cominceptbuff[1]操作碼10 X xxxxxB       uchar data *data p;      p = cominceptbuff;      write_bit(1);//10       write_bit(0);             write_password(p);//密碼       p_U2270B_CFE = 1;//此時數據不停的循環傳出     }    else //停止操作碼     {      write_bit(1);//11       write_bit(1);             p_U2270B_CFE = 1;         }    p_U2270B_CFE = 1;    delay_2(560);//5.6ms     }    /************************************/    void f_clearpassword()//清除密碼     {    uchar data *data p;    uchar i,x;          p = &bankdata[24];//原密碼     p_U2270B_CFE = 0; delay_2(18);//start gap>150us     //操作碼10:10xxxxxxB     write_bit(1);    write_bit(0);              for(x = 0;x < 4;x++)//發原密碼     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    write_bit(0);//鎖定位0:0     p = &cominceptbuff[0];    write_block(0x00,p);//寫新配置參數:pwd=0             //密碼無效:即清除密碼     DATA = 0x00;//停止操作碼00000000B     for(i = 0;i < 2;i++)    {    write_bit(BIT7);    DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /*********************************/    void f_changepassword()//修改密碼            {       uchar data *data p;    uchar i,x,addr;    addr = 0x07;//block7     p = &Nkey_a[0];//原密碼     DATA = 0x80;//操作碼10:10xxxxxxB     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    for(x = 0;x < 4;x++)//發原密碼     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT7);       DATA >>= 1;      }    }    write_bit(0);//鎖定位0:0     p = &cominceptbuff[0];    write_block(0x07,p);//寫新密碼     p_U2270B_CFE = 1;    bankdata[24] = cominceptbuff[0];//密碼存入     bankdata[25] = cominceptbuff[1];    bankdata[26] = cominceptbuff[2];    bankdata[27] = cominceptbuff[3];    DATA = 0x00;//停止操作碼00000000B     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /***************************子函數***********************************/    void write_bit(bit x)//寫一位     {    if(x)    {      p_U2270B_CFE = 1;   delay_2(32);//448*11.0592/120=42延時448us       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26寫1     }    else    {      p_U2270B_CFE = 1;   delay_2(92);//192*11.0592/120=18       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26寫0     }    }    /*******************寫一個block*******************/    void write_block(uchar addr,uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//block0數據     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    DATA = addr <<= 5;//0地址     for(i = 0;i < 3;i++)    {      write_bit(BIT7);      DATA <<= 1;    }                   }    /*************************************************/    void write_password(uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }        }   /*************************************************/   void main()    {    initial();    TI = RI = 0;    ES = 1;    EA = 1;  delay_2(28);   //f_readcard();     while(1) {   f_readcard();      //讀卡   f_writecard(command1);  //寫卡    f_clearpassword();   //清除密碼     f_changepassword();    //修改密碼 } }

    標簽: 12345

    上傳時間: 2017-10-20

    上傳用戶:my_lcs

主站蜘蛛池模板: 独山县| 达州市| 淳安县| 丰顺县| 富锦市| 郓城县| 门头沟区| 昭觉县| 云林县| 普宁市| 南城县| 寿阳县| 扎囊县| 新丰县| 铜梁县| 辉南县| 安远县| 蓬溪县| 工布江达县| 荆门市| 邹城市| 芒康县| 田阳县| 广汉市| 灵台县| 河池市| 太仓市| 通山县| 河津市| 武威市| 丽水市| 清水县| 于都县| 东港市| 延庆县| 涟水县| 嘉善县| 永顺县| 吴忠市| 南乐县| 定日县|