欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      BACnet+網(wǎng)絡(luò)開發(fā)經(jīng)驗(yàn)總結(jié)

      時(shí)間:2019-05-15 15:25:18下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《BACnet+網(wǎng)絡(luò)開發(fā)經(jīng)驗(yàn)總結(jié)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《BACnet+網(wǎng)絡(luò)開發(fā)經(jīng)驗(yàn)總結(jié)》。

      第一篇:BACnet+網(wǎng)絡(luò)開發(fā)經(jīng)驗(yàn)總結(jié)

      BACNet這個(gè)東西的資料太少了,有用的高效的資料更是少!

      資料太少,摸索著實(shí)在太辛苦,這是BACnet項(xiàng)目完成之后的一點(diǎn)開發(fā)經(jīng)驗(yàn),希望對正在摸索的各位同仁,有所幫助。

      任務(wù)定位:

      BACNet分為系統(tǒng)應(yīng)用和開發(fā)應(yīng)用,購買現(xiàn)有的BACNet設(shè)備組網(wǎng),應(yīng)用,屬于系統(tǒng)應(yīng)用,放松心情,繼續(xù)讀下去,如果是開發(fā)BACNet設(shè)備,這里的一點(diǎn)經(jīng)驗(yàn)就不需耽誤時(shí)間了。

      層次定義:

      BACNet既然協(xié)議里分了那么多層,我們要做多少呢?

      繼續(xù)放松,BACNet的系統(tǒng)應(yīng)用來說,我們只需做到應(yīng)用層+網(wǎng)絡(luò)層就可以了,不要被協(xié)議厚厚的書嚇到,我們用到的,很少。

      好了,現(xiàn)在知道我們要干什么了,就是拿到BACNet設(shè)備進(jìn)行網(wǎng)絡(luò)層以上的應(yīng)用。

      資料選擇:

      BACNet協(xié)議,中英文網(wǎng)絡(luò)上都可以找到,如果網(wǎng)絡(luò)沒搜過到,我的資源里也提供了下載。還推薦一本書,《智能樓宇BACNet原理與應(yīng)用》董春橋?qū)懙模怀霭媪?000冊,如果能搞到,慶幸吧!

      知識儲備:

      既然是網(wǎng)絡(luò)開發(fā),必備網(wǎng)絡(luò)編程一點(diǎn)小小的經(jīng)驗(yàn),尤其是UDP。

      開發(fā)工具:

      工欲善其事,必先利其器??磪f(xié)議可以了然于胸,但如果有個(gè)智能點(diǎn)的開發(fā)工具,效率可以乘以10倍,推薦VTS,網(wǎng)絡(luò)上應(yīng)該可以下載到,我的資源里也提供了下載。

      軟件架構(gòu):

      對于UDP,相信做這個(gè)的不需我多說。

      對于BACNet編碼,一句話,NPCI+BCLCI+APDU,唯一難一點(diǎn)的,就只有APDU,不過,有VTS的話,輕松很多。

      好了,隨手涂鴉的幾句話,希望對大家有點(diǎn)幫助吧,QQ:404536204,愿與同仁共同進(jìn)步!

      如果上面提到的資料比較難找的話,我的資源里也有提供,開發(fā)源碼:

      VTS:

      中文協(xié)議:

      英文協(xié)議:

      第二篇:NDIS網(wǎng)絡(luò)防火墻開發(fā)經(jīng)驗(yàn)總結(jié)

      NDIS網(wǎng)絡(luò)防火墻開發(fā)實(shí)踐經(jīng)驗(yàn)總結(jié)

      一、window軟件防火墻開發(fā)概述:

      在window下開發(fā)軟件防火墻可以實(shí)現(xiàn):NDIS數(shù)據(jù)包的截獲、NDIS數(shù)據(jù)包的抓取、NDIS數(shù)據(jù)包的分析、NDIS數(shù)據(jù)包過濾、NDIS 驅(qū)動(dòng)對IP與port的過濾、NDIS中間層驅(qū)動(dòng)安裝技術(shù)等。本文對NDIS開發(fā)基本流程、NDIS開發(fā)注意事項(xiàng)、NDIS安裝過程中出現(xiàn)的各種問題都給予詳細(xì)說明,希望對做NDIS開發(fā)程序員有所幫助。

      目前可以實(shí)現(xiàn)軟件防火墻的方法有:

      (1)SOCKET端口形式。

      (2)NDIS中間驅(qū)動(dòng)IPHOOK形式(xp/2003)。

      (3)NDIS中間驅(qū)動(dòng)miniport形式(xp/2003/vista/win7/win2008)。

      三種形式從開發(fā)難度到使用范圍都有自身的特點(diǎn)。

      (4)SOCKET形式是面向應(yīng)用層開發(fā)的,在代碼及調(diào)試方面相對后兩種簡單的多,但

      SOCKET形式不能捕獲所有數(shù)據(jù)包,所以用socket開發(fā)防火墻不是最好的選擇。

      (5)后兩種屬于NDIS中間驅(qū)動(dòng)程序開發(fā),是面向驅(qū)動(dòng)層(底層)開發(fā),代碼編寫及調(diào)試較

      socket形式上難。(說明:可能大部分采用高級語言程序員根本都沒接觸過驅(qū)動(dòng)開發(fā))但NDIS形式可以捕獲到所有通過網(wǎng)卡的數(shù)據(jù)包(NDIS中間驅(qū)動(dòng)是插入到協(xié)議層與網(wǎng)卡驅(qū)動(dòng)層的中間驅(qū)動(dòng)程序所以數(shù)據(jù)必須通過)。所以本文作者建議采用NDIS開發(fā)軟件網(wǎng)絡(luò)防火墻。

      二、DNIS中間驅(qū)動(dòng)開發(fā)注意事項(xiàng):

      NDIS中間驅(qū)動(dòng)程序開發(fā)window防火墻要注意window版本問題,因?yàn)槟壳坝脩羰褂玫膚indow版本有window200、window200 server、window xp、window2003、window vistawindow

      7、windown 2008 server。你采用的NDIS開發(fā)技術(shù)直接決定是否能在不同window版本上運(yùn)行,這是很關(guān)鍵的問題。目前作者知道的NDIS防火墻技術(shù)有兩種:

      2.1.IP_FIREWALL_HOOK(NDIS防火墻鉤子技術(shù)適合XP/2003)。

      (1)這種技術(shù)的特點(diǎn):相對miniport的開發(fā)、測試、安裝簡單些。

      (2)安裝步驟簡單見四:可以采用注冊表注冊后用net start啟動(dòng),也可以采用:

      OpenService、CreateService、StartService等函數(shù)創(chuàng)建服務(wù)形式啟動(dòng)驅(qū)動(dòng)具體用法請查詢msdn幫助)

      (3)比較典型的案例: ewall-Hook-Driv此種方法對window vista 之前window 2000之后的操作系統(tǒng)是沒有任何問題。通過作者的開發(fā)測試,對于window vista 之后的產(chǎn)品向window 7 window 2008是不支持的(這點(diǎn)一定要注意)。

      這里網(wǎng)上有許多評論有人說還支持,但本文作者給出答案是不支持,理由 msdn(http://msdn.microsoft.com/en-us/library/windows/hardware/ff546487(v=vs.8

      5).aspx中有這樣一句話: Note: Starting with Windows Vista, do not implement filter-hook or firewall-hook drivers.Use Windows Filtering Platform Callout Drivers instead.翻譯成中文大概意思:從vista以后不再支持” filter-hook”,請使用…)。

      (4)你可以在window 7或window2008測試下你的鉤子防火墻在status=IoCallDriver加入dbprint代碼用 dbgview.exe截獲status的值你會(huì)發(fā)現(xiàn)

      在2000、xp、2003下返回0一切正常,在vista、win7、2008下返回0xc0000002-

      0xc000000d的任意值。所以鉤子防火墻在vista及以后的版本是不能實(shí)現(xiàn)的。

      所以作者建議在vista以后的版本就要用IP HOOK(ipfirewall)浪費(fèi)時(shí)間啦。

      2.2.NDIS(miniport –protocol)中間驅(qū)動(dòng)技術(shù)(XP/2003/vista/win7/2008)。

      這種形式在2000、xp、2003、vista、win7、2008下都可以現(xiàn)實(shí),但原理和代碼實(shí)現(xiàn)上 要比鉤子復(fù)雜的多,安裝測試也比較麻煩。典型列子是ddk源文件路徑下的passthru項(xiàng) 目。但我開發(fā)這個(gè)項(xiàng)目后,總結(jié)下NDIS開發(fā)其實(shí)并不是很難只是以前對這方面知識缺 乏已。

      三、NDIS程序結(jié)構(gòu):

      3.1.DriverEntry函數(shù):這個(gè)函數(shù)必須存在,它是window驅(qū)動(dòng)的入口函數(shù)(IPHOOK

      與miniport都必須定義的函數(shù),在驅(qū)動(dòng)安裝啟動(dòng)是執(zhí)行)。

      3.1.1.這個(gè)函數(shù)有兩個(gè)參數(shù):

      IN PDRIVER_OBJECTDriverObject,IN PUNICODE_STRINGRegistryPath。

      3.1.2.DriverEntry內(nèi)部常用代碼:

      NdisMInitializeWrapper(中間驅(qū)動(dòng)miniport):初始化小端口時(shí)會(huì)用到這連個(gè)參數(shù)。IoCreateDevice(鉤子驅(qū)動(dòng)IPHOOK):建立IO設(shè)備時(shí)會(huì)用到。

      3.1.3.建立miniport與protocol端口(中間驅(qū)動(dòng)miniport):

      NDIS_PROTOCOL_CHARACTERISTICSPChars;

      NDIS_MINIPORT_CHARACTERISTICSMChars;

      并分別設(shè)置PChars、MChars一系列屬性參數(shù)指定處理函數(shù)。

      這里有幾個(gè)很重要的屬性在開發(fā)防火墻程序中很重要我說明下其它參數(shù)見DDK幫助文檔。

      MChars.CancelSendPacketsHandler = 自定義截獲發(fā)送函數(shù);

      PChars.ReceivePacketHandler =自定義截獲接受函數(shù)1;

      PChars.ReceiveHandler =自定義截獲接受函數(shù)2;

      (說明:ReceivePacketHandler與ReceiveHandler區(qū)別:是針對不同型號網(wǎng)卡分別采用這兩個(gè)屬性接受數(shù)據(jù)的建議全部設(shè)置上你自定義的接受函數(shù)。)

      3.1.4.如果是IPHOOK驅(qū)動(dòng)需要綁定鉤子(鉤子驅(qū)動(dòng)IPHOOK):

      IP_SET_FIREWALL_HOOK_INFO filthook;

      filthook.FirewallPtr = 鉤子函數(shù)(處理過濾/抓包函數(shù)的函數(shù));

      filthook.Priority = 1;

      filthook.Add = true;

      應(yīng)用這個(gè)IoBuildDeviceIoControlRequest函數(shù)綁定具體見DDK文檔。

      3.2.MajorFunction函數(shù)任務(wù)的指派(IPHOOK與miniport都必須定義的函數(shù)):

      DriverEntry函數(shù)是驅(qū)動(dòng)與操作系統(tǒng)的接口函數(shù),MajorFunction函數(shù)是用戶通過

      應(yīng)用程序控制驅(qū)動(dòng)的接口。

      3.2.1.幾個(gè)常用的函數(shù)(IPHOOK與miniport都必須定義的函數(shù)):

      DispatchTable[IRP_MJ_CREATE] = 創(chuàng)建函數(shù);

      DispatchTable[IRP_MJ_CLEANUP] =清除函數(shù);

      DispatchTable[IRP_MJ_CLOSE] = 關(guān)閉函數(shù);

      DispatchTable[IRP_MJ_DEVICE_CONTROL] =用戶IO控制函數(shù)(這個(gè)函數(shù)很重要);

      以上三個(gè)函數(shù)可以指向IO控制函數(shù)即:

      DispatchTable[IRP_MJ_CREATE] =

      DispatchTable[IRP_MJ_CLEANUP] =

      DispatchTable[IRP_MJ_CLOSE] =

      DispatchTable[IRP_MJ_DEVICE_CONTROL] =用戶IO控制函數(shù)(這個(gè)函數(shù)很重要);

      3.2.2.用戶IO控制函數(shù)(DevIoControl):是用戶通過指定IOCTOL碼向NDIS驅(qū)動(dòng)發(fā)出指令要求驅(qū)動(dòng)為自己做事。(具體建立IO控制碼見DDK)

      3.2.3.DevIoControl(NDIS是一個(gè)很重要的函數(shù),IPHOOK與miniport都必須定義這個(gè)函數(shù))函數(shù)的定義規(guī)則:

      它有兩個(gè)參數(shù):

      IN PDEVICE_OBJECTpDeviceObject,IN PIRPpIrp(這個(gè)是主要參數(shù),是驅(qū)動(dòng)程序與用戶的數(shù)據(jù)通信接口)

      PIO_STACK_LOCATIONpIrpSp;必須定義本地IO堆棧變量。

      pIrpSp = IoGetCurrentIrpStackLocation(pIrp);//返回輸入/輸出堆棧位置

      ioBuffer = pIrp->AssociatedIrp.SystemBuffer;//獲得IO操作緩存區(qū)指針

      IOCode = pIrpSp->Parameters.DeviceIoControl.IoControlCode;//獲得IO操作碼

      下面就根據(jù)用戶發(fā)來的IO操作命令進(jìn)行處理,處理過程如下:

      switch(IOCode)

      {

      Case IO控制碼1:

      自定義操作函數(shù)1;

      Break;

      Case IO控制碼2:

      自定義操作函數(shù)2;

      Break;

      Case IO控制碼3:

      自定義操作函數(shù)3;

      pIrp->IoStatus.Information = outputBufferLength;//這里要注意

      Break;

      }

      最后加入下面代碼:

      if(NtStatus!= STATUS_PENDING)

      { pIrp->IoStatus.Status = NtStatus;IoCompleteRequest(pIrp, IO_NO_INCREMENT);

      }

      這里我要說下NDIS驅(qū)動(dòng)開發(fā)IOCTRL寫入或讀取數(shù)據(jù)時(shí)要注意兩點(diǎn):

      1.上面的pIrp->IoStatus.Information = outputBufferLength句用不好會(huì)出問題的。它是用在向用戶應(yīng)用程序返回?cái)?shù)據(jù)的過程體中,如果這句用不好你應(yīng)用程序可能接受不到NDIS返回給你的數(shù)據(jù)。

      2.同時(shí)接受和返回如何做?

      其實(shí)讀取和寫入全是在pIrp->AssociatedIrp.SystemBuffer緩存中我們操作的次序是先把用戶發(fā)來的數(shù)據(jù)讀出 把要寫的的數(shù)據(jù)寫入AssociatedIrp.SystemBuffer中。例如:

      用戶EXE中IO操作是:

      DeviceIoControl(devhdle, IO操作碼,輸入數(shù)據(jù)地址,輸入數(shù)據(jù)長度, 輸出數(shù)據(jù)地址, 輸出數(shù)據(jù)長度,返回值地址, NULL))

      NDIS可以這樣讀取返回?cái)?shù)據(jù):

      讀取數(shù)據(jù):ibuff=pIrp->AssociatedIrp.SystemBuffer;

      返回?cái)?shù)據(jù):oBuffer=pIrp->AssociatedIrp.SystemBuffer;

      自定義函數(shù)(oBuffer)向oBuffer寫數(shù)據(jù)。

      明白啦嗎?還不明白,我還有個(gè)辦法就是你自己動(dòng)手實(shí)驗(yàn)一萬遍。其實(shí)我已經(jīng)說的很明白啦。

      注意:IO操作碼: 這個(gè)碼必須是可讀寫的。至于怎么生產(chǎn)你看DDK。

      3.3.驅(qū)動(dòng)卸載函數(shù)(Unload IPHOOK與miniport都必須定義的函數(shù)):這個(gè)函數(shù)只有一個(gè)

      參數(shù)IN PDRIVER_OBJECTDriverObject。作用:當(dāng)驅(qū)動(dòng)卸載時(shí)釋放我們在程序中分配的內(nèi)存、miniport端口、IO設(shè)備等。

      總結(jié): 從NDIS程序結(jié)構(gòu)中我們不難找出NDIS的miniport與iphook開發(fā)的區(qū)別就是在你

      驅(qū)動(dòng)中是否注冊啦miniport_protocol還是綁定啦IP_SET_FIREWALL_HOOK_INFO鉤子,基本結(jié)構(gòu)是一樣。如果你在網(wǎng)上看到NDIS開發(fā)文檔感到很難時(shí)我只能說:”真正了解一門技術(shù)是有一個(gè)過程的,過程中遇到些困難是很正常的,關(guān)鍵是你能否堅(jiān)持到最后!”。

      四.安裝NDIS驅(qū)動(dòng)方法:

      4.1.IPHOOK驅(qū)動(dòng)安裝:相當(dāng)簡單我這里介紹兩種方法:

      4.1.1.手動(dòng)注冊表建立服務(wù)

      Windows Registry Editor Version 5.00

      [HKEY_LOCAL_MACHINESYSTEMControlSet001Services驅(qū)動(dòng)名]

      “Type”=dword:0000000

      1“Start”=dword:0000000

      3“ErrorControl”=dword:00000001

      “ImagePath”=system32drivers驅(qū)動(dòng)文件名.sys

      “DisplayName”=“驅(qū)動(dòng)名”

      “Group”=“Extended Base”

      4.1.2.用”NET STRAT 服務(wù)器名”啟動(dòng)/”NET STOP服務(wù)器名”停止服務(wù)

      4.1.3.安裝啟動(dòng)后可以用代碼直接使用此服務(wù):

      (1)#defineMY_DEVICE_NAME “.驅(qū)動(dòng)名” //驅(qū)動(dòng)名稱

      (2)HANDLEhdle=CreateFile(MY_DEVICE_NAME,GENERIC_READ |GENERIC_WRITE, 0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,(HANDLE)INVALID_HANDLE_VALUE);

      (3)

      4.1.4.對于(4.1.1與4.1.2)前步可以完全用代碼取代手工來完成:

      (1)拷貝.SYS文件到system32drivers(具體代碼來完成不是很難)。

      (2)定義SC_HANDLE hSCManager;變量。

      (3)hSCManager = OpenSCManager(NULL, NULL,SC_MANAGER_ALL_ACCESS);打開服務(wù)控制管理器。

      (4)如果(3)成功OpenService(hSCManager, lpszServiceName,SERVICE_ALL_ACCESS);打開服務(wù)。

      (5)如果(4)失敗說明驅(qū)動(dòng)服務(wù)沒有安裝開始安裝驅(qū)動(dòng):

      hService = CreateService(hSCManager, lpszServiceName, lpszServiceName, SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, lpszDriverPath, NULL, NULL, NULL, NULL,NULL);

      建立服務(wù)。

      (6)啟動(dòng)服務(wù)器StartService(hService, 0, NULL);

      (7)關(guān)閉SC_HANDLE:CloseServiceHandle(hSCManager);

      (8)再使用4.1.3.中代碼訪問驅(qū)動(dòng)。

      以上說明啦NDIS鉤子驅(qū)動(dòng)(不含miniport-protocol端口)的安裝使用兩種方法。

      4.2.NDIS中間驅(qū)動(dòng)(miniport-protocol)安裝使用方法:

      4.2.1只要你掌握其實(shí)也很簡單(你可以參考DDK_SRC下的netcfg例子。其中有一個(gè)很重要的函數(shù)是HrInstallNetComponent你把它看明白安裝基本就差不多啦。

      4.2.2.但這里有個(gè)很大開發(fā)安裝程序問題:就是netcfg是用ddk編譯的,我們有時(shí)要把安裝代碼集成到VC編譯器中,有人說include ddk包文件。我這里建議你用DDK編譯成dll 接口函數(shù)。

      4.2.2.其次你最好對inf文件各個(gè)鍵值作用了解詳細(xì)。我這里要說明

      [SourceDisksFiles]這個(gè)鍵,如果你的inf文件與sys在同一個(gè)路徑下那么

      [SourceDisksFiles]鍵值為空。如下:

      [SourceDisksFiles]

      Passthru.sys=1 改成;Passthru.sys=1前面加分號

      如果不這樣在安裝sys時(shí)可能提示你選擇sys路徑問題。

      4.2.3.值得特別注意的是:無論你安裝成功或不成功你最好把用到的所有inf文件和sys

      文件拷貝到 windows/inf 路徑下??截愡^去絕對沒有壞處,但不拷貝可能

      安裝過程會(huì)出現(xiàn)不成功的現(xiàn)象;這點(diǎn)是本人實(shí)踐中總結(jié)出來的。

      至此,本人對DDK開發(fā)軟件防火墻的兩種方法全部介紹完畢。真正想實(shí)現(xiàn)防火墻的封包、抓包等一系列功能需要你不斷總結(jié)和摸索才行。以上內(nèi)容都是作者本人通過開發(fā)過程中實(shí)踐中總結(jié)出的經(jīng)驗(yàn)可能有些地方與網(wǎng)上其它文章有很大出處,但上面思路在PC機(jī)上全部實(shí)現(xiàn)過。(本人在開發(fā)過程依據(jù)是DDK幫助文件和PASSTHRU)。在此,謝謝各位網(wǎng)友網(wǎng)上文檔給予了很大的幫助!

      2012年11月29日

      本文來源: http:///techntxt/20121***705291

      第三篇:單片機(jī)開發(fā)經(jīng)驗(yàn)總結(jié)

      單片機(jī)開發(fā)經(jīng)驗(yàn)總結(jié) 單片機(jī)開發(fā) 2010-07-20 00:54:19 閱讀77 評論0字號:大中小 訂閱

      1、與發(fā)光二極管串聯(lián)的電阻(排阻)的計(jì)算和選取,一般發(fā)光二極管的正常發(fā)光的電流是3~10mA,在發(fā)光二極管上產(chǎn)生的壓降是1.7

      V(軌管)R=(5-1.7)/3~10(k)

      2、單片機(jī)TTL電平高電平:+5V;低電平:0V。

      RS232串口電平高電平:—12V ;低電平:+12V??梢酝ㄟ^MAX232電平轉(zhuǎn)換芯片,轉(zhuǎn)換之間的電平。

      3、單片機(jī)上電IO口的寄存器為高電平,其余寄存器為低電平。

      4、三極管的開關(guān)作用:在B、E間接正向電壓,E、C是導(dǎo)通的。

      5、蜂鳴器:

      1)有源蜂鳴器直接接上額定電壓就可以連續(xù)發(fā)聲。

      2)無源蜂鳴器和電磁揚(yáng)聲器一樣,需要接在音頻輸出電路中才能發(fā)聲。

      3)有源蜂鳴器帶振蕩源,無源的不帶。

      4)有源蜂鳴器的理想信號是直流電。

      5)無源蜂鳴器的理想信號為方波信號。

      方波發(fā)聲函數(shù):void beep()

      {fmq=0;

      delay 500us();

      fmq=1;

      delay 500us();

      }

      6、計(jì)算單片機(jī)指令周期:

      指令周期(us)=12 /晶振頻率(Mhz)

      選用12M的晶振,一個(gè)指令周期為1us7、89C51的芯片最高支持24M的晶振

      目前介紹單片機(jī)應(yīng)用的文章很多,但介紹單片機(jī)開發(fā)工具制作的文章卻較少。由于單片機(jī)是一門實(shí)踐性很強(qiáng)的課程,如果采用傳統(tǒng)的開發(fā)模式,則要購買價(jià)格昂貴的仿真器、編程器等開發(fā)工具來作實(shí)驗(yàn)。其實(shí)由于芯片功能的日益完善,我們可以利用芯片的在系統(tǒng)編程(ISP)功能制作出實(shí)用而低價(jià)的開發(fā)工具。本文旨在幫助DIY愛好者開發(fā)制作出適合自己的開發(fā)工具。

      1當(dāng)前常用開發(fā)模式

      目前,基本上有兩種開發(fā)模式可供選擇:用仿真器、用編程器。

      ①用仿真器。優(yōu)點(diǎn):方便,可以設(shè)置斷點(diǎn),可以觀察存儲器及寄存器的內(nèi)容。缺點(diǎn):價(jià)格昂貴,不同類型的單片機(jī)要購買不同的仿真器;仿真器終究不是單片機(jī),有時(shí)代碼在仿真器上能通過,但在單片機(jī)中不能正常工作,反而增加了調(diào)試的難度。

      ②用編程器。優(yōu)點(diǎn):價(jià)格相對便宜,通常一款編程器可編程多種器件。缺點(diǎn):操作相當(dāng)不便,每次要將芯片在目標(biāo)板與編程器之間轉(zhuǎn)移,并且還要在編譯操作界面與編程器操作界面之間切換,大部分時(shí)間在做簡單的重復(fù)工作。

      2新的開發(fā)模式介紹及芯片選擇

      本文介紹的開發(fā)工具采用一種新的開發(fā)模式(類似于編程器開發(fā)模式)。由于利用了芯片的在系統(tǒng)編程功能,因此不需要移動(dòng)芯片。在軟件設(shè)計(jì)時(shí)設(shè)計(jì)成:一旦代碼文件被重新編過,即自動(dòng)下載到芯片,并自動(dòng)復(fù)位運(yùn)行,是真正的“所編即所得”。

      目前很多單片機(jī)都支持在系統(tǒng)編程。8051系列單片機(jī)支持在系統(tǒng)編程的也很多,但大多數(shù)是支持通過PC機(jī)的串口對單片機(jī)進(jìn)行編程。這樣有四個(gè)不方便的地方:一是項(xiàng)目本身與PC機(jī)串行通信不方便;二是要增加1片MAX232電平轉(zhuǎn)換芯片;三是有的芯片要按特定的步驟進(jìn)入下載模式,編程過程需要手工干預(yù);四是有的芯片需要固件(定制的程序)的支持,如果不小心損壞了固件,則芯片的在系統(tǒng)編程功能也沒有了。

      經(jīng)過比較,Atmel公司生產(chǎn)的AT89S8252是一種比較理想的芯片,適合制作開發(fā)工具。此芯片有如下特點(diǎn):

      ◆ 與8051兼容;

      ◆ 內(nèi)含8KB可擦寫1000次的程序存儲器,2KB可擦寫超過100 000次的數(shù)據(jù)存儲器及256字節(jié)8位寬內(nèi)部RAM;

      ◆ 可通過SPI接口在系統(tǒng)串行編程,與8051兼容

      ◆ 串行編程時(shí)有自動(dòng)擦寫周期,在調(diào)試大程序時(shí)可以分段下載,節(jié)約時(shí)間;

      ◆ 低電壓下載,無需12V編程電壓。

      3AT89S8252串行編程

      (1)AT89S8252串行編程模式

      當(dāng)芯片的RST引腳置高電平時(shí),所有程序和數(shù)據(jù)存儲器可以通過SPI總線接口[SCK,MOSI(input),MISO(output)]編程。RST變高以后,在編程或擦除操作之前必須首先發(fā)送一條編程允許命令。在串行編程模式下,芯片會(huì)在字節(jié)編程之前自動(dòng)插入一個(gè)擦除周期。因此,除非芯片的代碼保護(hù)位被編程,編程之前不需要執(zhí)行全片擦除命令。SPI接口之SCK時(shí)鐘頻率須低于晶振頻率的1/40。

      (2)AT89S8252串行編程步驟

      ①在XTAL1與XTAL2之間連接一個(gè)3~24MHz的晶振;在VCC與GND之前加上電源電壓,將RST置高,等待10ms。

      ②發(fā)送串行編程允許命令。

      ③發(fā)送寫/讀/擦除等命令及數(shù)據(jù),串行數(shù)據(jù)高位在前,低位在后,數(shù)據(jù)在時(shí)鐘的上升沿鎖定。④如果上一步是寫命令,至少等待2.5ms。

      ⑤需要時(shí)重復(fù)③、④兩步。

      ⑥將RST置低,芯片開始運(yùn)行。

      (3)AT89S8252串行編程命令

      AT89S8252串行編程命令如表1所列。

      (4)AT89S8252串行編程時(shí)序圖

      AT89S8252串行編程時(shí)序如圖1所示。

      14硬件設(shè)計(jì)

      ①通過計(jì)算機(jī)并口與單片機(jī)SPI口連接;

      ②為了保護(hù)計(jì)算機(jī)并口,需要增加1片74HC244作為隔離。

      實(shí)用的原理圖如圖2所示。(已經(jīng)過實(shí)踐檢驗(yàn),可放心使用。)

      25用VB編程進(jìn)行并口控制

      打印端口的基地址一般為0x278、0x378或0x3BC,可以從控制面板中查到。為了方便讀者,表2列出了常用打印端口引腳及寄存器位元的說明。

      在Windows環(huán)境下最簡單易學(xué)的語言恐怕非VB莫屬,所以我們的開發(fā)工具也選用VB作為編程語言。但由于Windows的保護(hù),VB無法直接讀寫打印端口,因此我們需要另外的程序模塊來實(shí)現(xiàn)打印端口的直接讀寫。在Internet網(wǎng)上可以找到許多此類模塊,并且相當(dāng)多的模塊可以免費(fèi)使用。經(jīng)過試用,筆者推薦使用Winio v2.0。該模塊支持Win9X/NT/2000/XP(http:// Yariv Kaplan),并且?guī)в性敿?xì)的幫助、例子程序及源碼。使用時(shí),將Winio.sys、Winio.dll、Winio.vxd

      及Winio.bas四個(gè)文件拷貝到工作目錄下,在VB中直接添加Winio.bas模塊即可。本例中用到的函數(shù)有四個(gè),分別說明如下。

      ①Initialize():允許端口控制函數(shù)。在使用端口輸入輸出函數(shù)之前調(diào)用一次,成功返回“1”,失敗返回“0”。

      ②Shutdown():關(guān)閉端口控制函數(shù)。在退出程序時(shí)執(zhí)行一次,成功返回“1”,失敗返回“0”。③GetPortVal(ByVal PortAddr As Integer, ByRef Portval As Long, ByVal bSize As Byte)As Boolean:讀取端口函數(shù),PortAddr 為端口地址, Portval為端口值,bSize為要讀取的字節(jié)數(shù)。讀取成功時(shí)返回“1”,失敗時(shí)返回“0”。

      ④SetPortVal(ByVal PortAddr As Integer, ByVal Portval As Long, ByVal bSize As Byte)As Boolean:寫端口函數(shù)。PortAddr 為端口地址, Portval為要寫的值,bSize為要寫入的字節(jié)數(shù)。寫入成功返回“1”,失敗返回“0”。

      四個(gè)函數(shù)在Winio.bas模塊中的聲明如下:

      Declare Function InitializeWinIo Lib “WinIo.dll”()As Boolean

      Declare Function ShutdownWinIo Lib “WinIo.dll”()As Boolean

      Declare Function GetPortVal Lib “WinIo.dll”(ByVal PortAddr As Integer, ByRef Portval As Long, ByVal bSize As Byte)As Boolean

      Declare Function SetPortVal Lib “WinIo.dll”(ByVal PortAddr As Integer, ByVal Portval As Long, ByVal bSize As Byte)As Boolean

      6Intel HEX 格式文件

      由于一般編譯軟件產(chǎn)生的用于寫入芯片的文件都是Intel HEX格式的文件。Intel HEX文件屬于文本文件,可以用記事本查看。一個(gè)Intel HEX文件的一行稱為一個(gè)記錄,每個(gè)記錄都是由十六進(jìn)制字符組成的,兩個(gè)字符表示一個(gè)字節(jié)的值。Intel HEX文件通常由若干條記錄組成,每個(gè)記錄都具有如下的形式:

      :LLAAAATTDD...DDCC

      “:”——記錄的起始標(biāo)志;

      LL——記錄長度,表示該記錄中的數(shù)據(jù)字節(jié)數(shù);

      AAAA——數(shù)據(jù)裝入的首地址(16位);

      TT——記錄類型,00表示數(shù)據(jù)記錄,01表示文件結(jié)束;(注意:有的編譯軟件會(huì)產(chǎn)生大于01的記錄類型,本應(yīng)用中對大于01記錄類型的記錄忽略掉即可。)

      DD——數(shù)據(jù)值(字節(jié));

      CC——校驗(yàn)和。(將其本身與記錄中除起始標(biāo)志外的所有字節(jié)相加應(yīng)為0,不為0則有錯(cuò)。)

      VB編程詳細(xì)說明見本刊網(wǎng)絡(luò)補(bǔ)充版(http://.cn)。(由于各子程序的流程都較簡單,所以直接給出源碼,而未畫出流程圖。程序采用由底至頂?shù)脑O(shè)計(jì)方法。)

      結(jié)語

      雖然上述程序能實(shí)現(xiàn)各種基本的功能,但并不完善,并未考慮各種異常情況,讀者可根據(jù)實(shí)際情況進(jìn)行完善。編程功力較差的朋友可直接到筆者的網(wǎng)站(http: //)下載相對較完善的應(yīng)用程序。如果充分理解了上述程序,那么DIY一個(gè)AVR或PIC單片機(jī)的開發(fā)工具也非難事。在筆者的網(wǎng)站也有制作完成的“MCS51/AVR/PIC三合一下載器資料”供愛好者下載。

      由于AT89S8252的價(jià)格還是較貴,所以現(xiàn)在市場上較難買,不過Atmel公司推出的替代

      AT89C51/52的AT89S51/52也有在系統(tǒng)編程功能,且價(jià)格便宜。其在系統(tǒng)編程的實(shí)現(xiàn)方法與

      AT89S8252類似,對本例部分程序稍作修改即可支持該器件。筆者制作的“MCS51/AVR/PIC三合一下載器”增加了對AT89S51/52的支持。

      文章來源:http:///wz_17380.htmPowerd by laogu

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      再來幾點(diǎn):

      先從最簡單的AT89C5X(51,52,55等等)說起吧,做這個(gè)的時(shí)間最長,知道的可能多些,書本上的東西這里我不多說,主要談些實(shí)際應(yīng)用中的經(jīng)驗(yàn)與教訓(xùn)。書可以參看北航出的一本專門講AT89系列的,還不錯(cuò),建議大家購買。

      AT89C51我認(rèn)為是一個(gè)非常標(biāo)準(zhǔn)的51單片機(jī)了,4個(gè)P口,1個(gè)串口,RAM只有標(biāo)準(zhǔn)的128Byte,F(xiàn)lash也只有4K,功能還算齊全,我就以它為基礎(chǔ),所以開發(fā)過程中遇到的問題吧。

      第一個(gè)問題:復(fù)位源的問題

      大家最常用的復(fù)位方式就是電阻加電容吧,AT89C51是高電平復(fù)位,這種方式不穩(wěn)定,在產(chǎn)品調(diào)試時(shí)可以使用,因?yàn)樵谡{(diào)試時(shí)我們一般使用了仿真器,而許多仿真器都會(huì)自己輸出復(fù)位信號,而屏蔽掉目標(biāo)板產(chǎn)生的復(fù)位信號,所以調(diào)試時(shí)復(fù)位信號是沒有問題的,我們公司使用的是長沙菊陽的仿真器,用的是比較先進(jìn)的技術(shù),還算可以,仿真AT89系列的芯片一點(diǎn)問題沒有,還很穩(wěn)定的說。這里有一個(gè)非常重要的問題要說下,大家有時(shí)候會(huì)遇到這樣的一個(gè)問題:自己的程序在仿真時(shí)運(yùn)行一點(diǎn)問題也沒有,但燒錄后卻不行了。結(jié)合我的經(jīng)驗(yàn)有兩種原因。一是時(shí)序可能變了,這個(gè)大家都知道,我不多說,還有一個(gè)原因就是復(fù)位信號的問題。具體情況如下:

      (1)復(fù)位電路有問題,不能正常產(chǎn)生復(fù)位信號。因?yàn)檎{(diào)試時(shí)仿真器可能給你提供了復(fù)位信號,而脫離仿真器后就沒有了;

      (2)看門狗的問題。有些51芯片帶有看門狗復(fù)位功能,如At89c55WD,當(dāng)程序開啟了看門狗后,有時(shí)候程序的初始化內(nèi)容太多了,往往會(huì)產(chǎn)生了復(fù)位信號,特別是用C語言編程功能時(shí),有時(shí)候雖然你明明在程序開始時(shí)某個(gè)地方關(guān)閉了看門狗,但程序依然會(huì)復(fù)位,這是因?yàn)镃語言執(zhí)行效率比匯編低,看似幾行代碼,有時(shí)候要很長時(shí)間的,所以在使用開門狗時(shí)一定要注意這個(gè)問題。而這個(gè)問題在使用仿真器時(shí)容易被忽視,因?yàn)榧词鼓愕某绦蚶锟撮T狗復(fù)位了,但是仿真器(菊陽仿真器可以開啟/屏蔽這個(gè)功能)往往會(huì)屏蔽了這個(gè)復(fù)位信號,所以程序仍然會(huì)正常運(yùn)行的。當(dāng)你把程序燒好后再運(yùn)行時(shí),你卻為發(fā)現(xiàn)剛調(diào)試好的程序卻無法正常運(yùn)行了,那是因?yàn)槟愕某绦蛞恢痹诓煌?fù)位了,注意用示波器觀察RST腳可能看不到復(fù)位信號的,因?yàn)榭撮T狗復(fù)位并不影響RST腳的電平。再一種情況就是芯片內(nèi)部不帶看門狗,但是電路中有CPU監(jiān)控芯片的,它往往是可以提供復(fù)位信號的,而且是多種原因的復(fù)位信號,如果你發(fā)現(xiàn)上述情況,就可以用示波器查看RST腳看是否有電平變化。

      所以建議大家做51產(chǎn)品開發(fā)時(shí)盡量使用CPU監(jiān)控芯片,向X5045就是非常好用的,因?yàn)樗€帶有Eprom功能,這在很多場合使用的到的,也可以用MAX708等專用復(fù)位芯片了,既穩(wěn)定又方便。

      第四篇:WEB前端開發(fā)經(jīng)驗(yàn)總結(jié)

      ASP.NET前端開發(fā)經(jīng)驗(yàn)總結(jié)

      通過此次大作業(yè)的設(shè)計(jì)到完成,我負(fù)責(zé)的是web前端的開發(fā),經(jīng)過此次作業(yè)和結(jié)合W3C上的自學(xué),我漸漸有了一些對前端開發(fā)的小小經(jīng)驗(yàn)(僅為個(gè)人意見)。WEB標(biāo)準(zhǔn)是什么?

      說是WEB標(biāo)準(zhǔn),不過我這里主要是對HTML5 和 CSS3.0的一些經(jīng)驗(yàn)總結(jié)。因?yàn)閃EB含蓋的內(nèi)容實(shí)在是太多了,“WEB標(biāo)準(zhǔn)”是一系列標(biāo)準(zhǔn)的總稱,包括HTML5.0、HTML4.0、XHTML1.1、CSS3.0、CSS2.1、XML1.0、RSS2.0、ECMAScript1.1、DOM1.0等等。所以這里要跟大家指出來一下,WEB標(biāo)準(zhǔn)不是我們所說的DIV+CSS。剛剛上面提到了――DIV+CSS,這里要說明下,這樣說其實(shí)是不正確的。DIV+CSS準(zhǔn)確的說法(個(gè)人的理解)應(yīng)該是:采用W3C推薦的WEB標(biāo)準(zhǔn)中的HTML5結(jié)合CSS3.0樣式表制作頁面的方法,DIV應(yīng)該指的是HTML標(biāo)簽,而CSS顯示是指的CSS樣式表了。

      采用WEB標(biāo)準(zhǔn)開發(fā)的好處

      那么W3C為什么會(huì)推薦這樣的頁面制作方法呢?下面我們就簡單的看看采用WEB標(biāo)準(zhǔn)開發(fā)(個(gè)人理解的)相對以前TABLE布局的優(yōu)勢有哪些?

      1、節(jié)約運(yùn)營成本

      看看我們的WEB標(biāo)準(zhǔn)制作方法是如何做到的?

      采用WEB標(biāo)準(zhǔn)制作,我們可以做到表現(xiàn)很形式的分離,我們用XHTML來表現(xiàn)(數(shù)據(jù)),用CSS來控制(頁面元素呈現(xiàn)的)形式。寫的好的頁面,XHTML代碼中基本上都是用戶要看的數(shù)據(jù),還其他修飾性的東西,全部由我們的CSS來控制。這樣一來我們的(XHTML)頁面的體積就大大減小了,這樣你在帶寬上的費(fèi)用就會(huì)大家降低了,這個(gè)怎么降低的,你可以想象一下,YAHOO的首頁小1K,100W個(gè)人一起訪問,那么帶寬節(jié)約了多少?而且可以更充分的利用帶寬。

      而我們的CSS控制了,所有的頁面元素的樣式,現(xiàn)在想改網(wǎng)站的整體風(fēng)格,你只需要花幾分鐘修改一下一個(gè)CSS文件,就可以輕松搞定了。維護(hù)的成本也下來了,省了不少錢了吧?還有,你開這個(gè)頁面的速度會(huì)快很多啊,一個(gè)讓你等半分鐘的頁面,除非里面的信息對你很有用,不然我們大家基本都沒有太多的時(shí)間去用來等待的。

      2、對用戶友好更友好,且有機(jī)會(huì)獲得更多的用戶 現(xiàn)在來說說用戶友好。首先我想把我們的用戶來分下類。第一類:普通用戶(每個(gè)訪問我們網(wǎng)站的人); 第二類:搜索引擎;

      采用WEB標(biāo)準(zhǔn)開發(fā)的頁面,結(jié)構(gòu)清晰,頁面體積小,瀏覽器兼容性好。普通用戶訪問的時(shí)候,頁面打開速度快,而且不管用戶使用那種瀏覽器,都能夠正常訪問(顯示)頁面,且頁面的結(jié)構(gòu)清晰,要找的數(shù)據(jù)可以很方便的瀏覽到。

      而對搜索引擎來說,一個(gè)好的采用WEB標(biāo)準(zhǔn)開發(fā)的頁面,都是做過SEO優(yōu)化的,它訪問起來很友好,很容易理解你的頁面中哪里是標(biāo)題(H1~H6標(biāo)簽),哪里是段落(p標(biāo)簽),哪里是段落里要強(qiáng)調(diào)的內(nèi)容(strong標(biāo)簽)等,它可以很容易的分析出來。而一個(gè)SEO好的站點(diǎn),大家都知道,被搜索引擎收錄的機(jī)會(huì)更多,這個(gè)也意味著您的網(wǎng)站會(huì)被更多的普通用戶訪問到,給你的站點(diǎn)帶來更多的用戶。

      一個(gè)能幫我們省下大筆費(fèi)用,提高工作效率。同時(shí)又能夠提高頁面瀏覽速度,對用戶友好,甚至能夠不花錢宣傳,就能給你帶來更多用戶的技術(shù)。你說你會(huì)不會(huì)去使用它?這個(gè)也正式我們的W3C推薦使用WEB標(biāo)準(zhǔn)開放網(wǎng)站的原因啊。而這個(gè)技術(shù)也得到了我們廣大用戶的認(rèn)可,所以現(xiàn)在需要學(xué)習(xí)WEB標(biāo)準(zhǔn)啊。合理的布局

      前面我提到了一些知識點(diǎn)――“結(jié)構(gòu)清晰、SEO優(yōu)化、頁面體積小、HTML代碼中基本上都是用戶要看的數(shù)據(jù)”。這些東西,都是我做了合理布局的結(jié)果。而且我個(gè)人覺得,我們采用WEB標(biāo)準(zhǔn)制作的一切都是從這個(gè)知識點(diǎn)開始的,所以我這里就先來說這個(gè)話題。

      也許有人會(huì)問,怎樣的一個(gè)頁面,才算是合理的布局的呢?這個(gè)問題問題問得好,也是我們大家剛開始學(xué)用WEB標(biāo)準(zhǔn)的問得最多的問題之一,我也曾經(jīng)常被這個(gè)問題所困擾,這里就說說我對合理布局的一些理解。

      在開始講合理布局的頁面要達(dá)到的要素前,我們還是用個(gè)實(shí)例來講解會(huì)更直觀些。先來看看這個(gè)圖片:

      不錯(cuò),這個(gè)是一個(gè)文章詳細(xì)頁,沒有左右兩欄布局,不過這里我重點(diǎn)要講的是合理的布局。

      這是此次實(shí)驗(yàn)中customer(前端的一項(xiàng))部分的完整代碼:

      <%@ Page Language=“C#” AutoEventWireup=“true” CodeFile=“Customer.aspx.cs” Inherits=“Customer” %> <%@ Register Src=“Controllers/Bottom.ascx” TagName=“Bottom” TagPrefix=“uc4” %> <%@ Register Src=“Controllers/Top.ascx” TagName=“Top” TagPrefix=“uc1” %> <%@ Register Src=“Controllers/Left.ascx” TagName=“Left” TagPrefix=“uc2” %>

      <%=Titlep %>

      ” name=“description”/> ” name=“keywords” />

        1. <ul id="fwlom"></ul>

          <object id="fwlom"></object>

          <span id="fwlom"></span><dfn id="fwlom"></dfn>

              第五篇:PHP開發(fā)大型項(xiàng)目經(jīng)驗(yàn)總結(jié)

              PHP開發(fā)大型項(xiàng)目的一點(diǎn)經(jīng)驗(yàn)

              文章摘自我贏職場php在線教育

              一、變量

              最好是把所有的變量存儲在一個(gè)數(shù)組中,這樣在程序的開發(fā)中可以帶來很多的方便,特別是當(dāng)程序很大的時(shí)候。變量的命名就當(dāng)適合自己的習(xí)慣,不管是用拼音還是英語,至少應(yīng)當(dāng)有一定的意義,以便適合記憶。變量的命名盡量規(guī)范化,不要與PHP中的關(guān)鍵字相沖突。

              二、函數(shù)

              PHP自帶了很多函數(shù),這給我們程序的編寫帶來了很多的方便。當(dāng)然,在大型程序中我們往往自己要定義許多個(gè)函數(shù),幾十甚至上百個(gè)。當(dāng)然在使用了類的程序中就不叫函數(shù)了,就應(yīng)該叫方法,這里暫且不談?lì)惖氖褂梅椒?。函?shù)多了,難免就會(huì)搞混了。有什么方法可以解決這個(gè)問題呢?可以參照上面變量的使用方法一樣,同樣的,我們也可以把自己定義的函數(shù)名全都放在一個(gè)數(shù)組中。這樣我們在使用的過程中可以直接在數(shù)組隨時(shí)檢查函數(shù)是否有無重復(fù)的定義。如果發(fā)現(xiàn)重復(fù)的現(xiàn)象,馬上變可以改過來。提高了程序編寫的速度。函數(shù)的使用還有一點(diǎn)要注意的是全局變量,雖然這是一個(gè)小問題,但卻不容忽視,要不然當(dāng)某個(gè)變量千呼萬呼出不來的時(shí)候,呵呵。這時(shí)看看該變量是否在該函數(shù)中已經(jīng)申明成了全局變量。

              三、程序的注釋

              程序的注釋是很重要的,不管是C還是JAVA,程序的注釋往往可以體現(xiàn)出程序員的良好編程風(fēng)格。無論是對于它人還是自己對大有好處,當(dāng)然我們這里說的是大型項(xiàng)目的開發(fā),團(tuán)體合作精神是很重要的。當(dāng)你的程序?qū)懗鰜韯e人都很難看懂那還怎么談團(tuán)體合作精神啊。當(dāng)然如果這個(gè)大型項(xiàng)目是你一個(gè)人開發(fā)的那就另當(dāng)別論了,或者是你時(shí)間緊迫,來不及寫注釋。不過一般來說這種情況是很少的。除非真的是非常時(shí)刻。一個(gè)優(yōu)秀的程序員絕對會(huì)為他寫的每個(gè)程序加注釋,哪怕是給自己看的。

              四、采用何種文本編輯軟件寫源程序

              這其實(shí)也沒一定的規(guī)定,只要自己喜歡就行了。我比較喜歡PHPEDIT,也許是用慣了,現(xiàn)在感覺一離開PHPEDIT寫PHP就沒感覺,初學(xué)PHP的時(shí)候用NOTEPAD寫,因?yàn)槌绦虮容^簡單。所以用NOTEPAD應(yīng)付下就行了,對于有幾百行的程序來講,用NOTEPAD顯然是不合適的。用PHPEDIT工作效率會(huì)提高幾倍,哪怕你從來沒用過。

              五、數(shù)據(jù)庫的設(shè)計(jì)

              數(shù)據(jù)庫的設(shè)計(jì)在開發(fā)大型項(xiàng)目中是很重要的一點(diǎn),關(guān)系到整個(gè)項(xiàng)目開發(fā)的成敗。具體也就不多說了。大家可以在自己的實(shí)踐中積累經(jīng)驗(yàn),慢慢去體會(huì)。總之在數(shù)據(jù)庫的設(shè)計(jì)中最好應(yīng)該一開始就應(yīng)該確定下來。雖然可以在開發(fā)的過程中去改變已經(jīng)設(shè)計(jì)好的數(shù)據(jù)庫結(jié)構(gòu),但這對于整個(gè)項(xiàng)目的開發(fā)效率來講將大打折扣,有誰會(huì)愿意時(shí)不時(shí)的去改數(shù)據(jù)庫的結(jié)構(gòu)呢?

              六、類的使用

              類的使用主要是實(shí)現(xiàn)了代碼的重復(fù)使用,以降低項(xiàng)目開發(fā)的時(shí)間,程序員的工作量也會(huì)減少許多。只要可以使用類的地方應(yīng)當(dāng)盡量使用類,使用類應(yīng)該養(yǎng)成一個(gè)良好的習(xí)慣,這樣才可以在真正使用類的地方得心應(yīng)手。可以說一個(gè)大型PHP項(xiàng)目就是由類組成的。個(gè)中的滋味還是自己慢慢體會(huì)吧。

              總之,PHP在線學(xué)習(xí)的平臺我贏職場提醒大家在開發(fā)大型PHP項(xiàng)目的時(shí)候,要預(yù)算好時(shí)間。特別要小心客戶在半途來個(gè)回馬槍,那就功虧一簣了。

              下載BACnet+網(wǎng)絡(luò)開發(fā)經(jīng)驗(yàn)總結(jié)word格式文檔
              下載BACnet+網(wǎng)絡(luò)開發(fā)經(jīng)驗(yàn)總結(jié).doc
              將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
              點(diǎn)此處下載文檔

              文檔為doc格式


              聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

              相關(guān)范文推薦

                ORACLE數(shù)據(jù)庫開發(fā)經(jīng)驗(yàn)總結(jié)

                ORACLE數(shù)據(jù)庫開發(fā)經(jīng)驗(yàn)總結(jié) ---- ORACLE數(shù)據(jù)庫作為大型數(shù)據(jù)庫管理系統(tǒng),近年來一直占有世界上高端數(shù)據(jù)庫的最大 份額,其強(qiáng)大而完善的數(shù)據(jù)庫管理功能,以及ORACLE公司推陳出新的不......

                校本課程開發(fā)經(jīng)驗(yàn)總結(jié)

                強(qiáng)化校本課程總結(jié) 校本課程的設(shè)置,是國家基礎(chǔ)教育課程管理的一個(gè)重要組成部分,是國家和地方課程的主要補(bǔ)充,對教師、學(xué)生、學(xué)校的發(fā)展具有十分重要的意義。幾年來,我校認(rèn)真貫徹......

                WEB前端開發(fā)經(jīng)驗(yàn)總結(jié)

                WEB前端開發(fā)經(jīng)驗(yàn)總結(jié) 發(fā)布時(shí)間:2009-04-20 09:05:33來源:作者:shengman點(diǎn)擊:21015 這里跟大家談?wù)剛€(gè)人對WEB前端開發(fā)的一些經(jīng)驗(yàn)(當(dāng)然都是個(gè)人的一些理解,有什么地方說的欠妥或不對......

                網(wǎng)絡(luò)開發(fā)策劃

                慕橙網(wǎng)絡(luò)開發(fā)工作室成立于2013年,于11月份正式營業(yè)。該工作室由前身的培訓(xùn)單位演變而來,具有一定的工作經(jīng)驗(yàn)和業(yè)務(wù)積累。慕橙網(wǎng)絡(luò)開發(fā)工作室致力于小型網(wǎng)絡(luò)前臺開發(fā),網(wǎng)絡(luò)后臺開......

                網(wǎng)絡(luò)開發(fā)合同范本

                合同號_______ 網(wǎng)站建設(shè)合同書甲方:乙方: 地址:地址: 電話:電話:鑒于甲方委托乙方建立網(wǎng)站,幫助甲方樹立自身形象,擴(kuò)大宣傳。為明確雙方責(zé)任,根據(jù)中國法律經(jīng)雙方協(xié)商,簽訂此合同,以期雙方共同......

                網(wǎng)絡(luò)集體備課經(jīng)驗(yàn)總結(jié)

                網(wǎng)絡(luò)集體備課經(jīng)驗(yàn)分享 鄂溫克旗第一實(shí)驗(yàn)小學(xué)薩娜 這段時(shí)期聯(lián)校組織低段老師利用網(wǎng)絡(luò)進(jìn)行集體備課,以前我們都是各備各的課,而自從“網(wǎng)絡(luò)集體備課”以來,利用網(wǎng)絡(luò)的優(yōu)勢和平臺,......

                移動(dòng)網(wǎng)絡(luò)優(yōu)化經(jīng)驗(yàn)總結(jié)

                移動(dòng)網(wǎng)絡(luò)優(yōu)化經(jīng)驗(yàn)總結(jié) 熱度 4已有 133 次閱讀 2010-12-22 20:21 |個(gè)人分類:網(wǎng)優(yōu)|關(guān)鍵詞:移動(dòng)網(wǎng)絡(luò)優(yōu)化經(jīng)驗(yàn)總結(jié)移動(dòng)網(wǎng)絡(luò)優(yōu)化經(jīng)驗(yàn)總結(jié) 感知篇 此文通過比喻的方式總結(jié)一下我對......

                項(xiàng)目開發(fā)經(jīng)驗(yàn)總結(jié)(含5篇)

                項(xiàng)目開發(fā)經(jīng)驗(yàn)總結(jié)本人做項(xiàng)目經(jīng)理工作多年,感到做這個(gè)工作最要緊的就是要明白什么是因地制宜、因勢利導(dǎo),只有最合適的,沒有什么叫對的,什么叫錯(cuò)的,項(xiàng)目經(jīng)理最忌諱的就是完美主義傾......

              <object id="fwlom"></object>