串行編程器源程序(Keil C語言)//FID=01:AT89C2051系列編程器//實現編程的讀,寫,擦等細節//AT89C2051的特殊處:給XTAL一個脈沖,地址計數加1;P1的引腳排列與AT89C51相反,需要用函數轉換#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引腳排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//編程前的準備工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//編程結束后的工作,設置合適的引腳電平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//從P0口獲得數據{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//轉換并設置P0口的數據{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//讀特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//寫器件{//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 //寫一個單元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效驗:循環讀,直到讀出與寫入的數相同 { nTimeOut++; if(nTimeOut>1000)//超時了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 //讀一個單元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return Data;} void Lock01()//寫鎖定位{ InitPro01();//先設置成編程狀態//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 if(ComBuf[2]>=1)//ComBuf[2]為鎖定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//設置pw中的函數指針,讓主程序可以調用上面的函數{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上傳時間: 2013-11-12
上傳用戶:gut1234567
1 任務 設計一個文本編輯器。 2 基本要求 1 如圖所示,設計一個有菜單欄的編輯窗口,在該窗口可以實現文本的輸入,利用DEL鍵、BackSpace鍵、Home鍵、End鍵、上下左右光標鍵,實現對輸入文本的全屏幕編輯。 2 實現文件的新建、打開、保存、另存為與退出等功能。 包含 設計思路、技術報告、和不同階段的設計源代碼 擴展要求 1 要求使用彩色組和背景顏色來設計界面顏色。 2 模擬一些著名編輯器(如Source Insight)的其它功能,如比較詳細的幫助功能,對特定的命令或保留字(如C語言或匯編語言)能顯示不同的醒目顏色。 3 自己參考其它編輯器進行發揮。
上傳時間: 2013-11-03
上傳用戶:lhc9102
這是我用課余時間做的一個Flash播放器,在網上看到一些網友做了一些自已的播放器,可是還要注冊,(對于我們這些窮學生來說哪有錢呀^_^ )于是自已做了一 個,她不僅是完全免費,而且還代碼公開。希望廣大網友支持自由軟件。里面有一個BUG不得不說出來,就是對多個文件進行播放時,必須遠擇多個文件,則否會出錯, 由于上學期馬哲沒及格,這學期要補考,所以沒有花時間來修正它。對VB感興趣的朋友們自已改改吧。*_*, 如果有什么其他的建議,歡迎來信:fhjeipje@163.com
上傳時間: 2015-03-25
上傳用戶:shinesyh
能像Windows操作系統的資源管理器一樣將資源按目錄(文件夾文件)的形式組織起來。 考慮到資源建設的階段性,資源應是按一定的規模進行打包,形成一個個中小規模的相對獨立的“資源庫”。 鑒于資源庫名目繁多和容量大的特點,資源的存儲存在多樣化問題,系統應該能夠解釋各種存儲格式和存儲方式的資源 資源庫應該能夠滿足資源庫逐步完善、長期建設的特點,并且能不斷擴展資源庫中的內容。 鑒于教師資源分科目的特點,系統應能提供教師感興趣的資源。例如,語文老師對語文相關教育資源感興趣,而對數學等教學素材極少查看,這時系統應能讓該語文老師只看到語文等相關的感興趣的資源,而隱藏數學等科目的相關教育資源
上傳時間: 2014-01-13
上傳用戶:daguda
外國人寫的調度器,比rtos簡單,感興趣的朋友可以借鑒
標簽: 調度
上傳時間: 2015-04-21
上傳用戶:a6697238
目錄語音電話高級編程是一個通過調制解調器來進行語音電話開發的程序,相信讀者一定會感興趣。 本程序需要調制解調器的支持,否則可能失敗 需要調制解調器支持語音傳輸,本程序在子彈頭調制解調器下調試通過,通話時通過麥克風和話筒來進行。
上傳時間: 2013-12-19
上傳用戶:kelimu
在一個多人連線伺服器中,我們要有一個伺服端執行緒負責傾聽是否有客戶端連線,如果有客戶端連線,就指派一個客戶端執行緒專門應付這個客戶端連線,並在客戶端佇列中記錄它,然後進入下一個傾聽。 一個客戶端執行緒的工作,就是讀取客戶連線端的使用者輸入訊息,它不負責回應訊息,而是將讀到的訊息加入訊息佇列中,此外在我們的範例中,客戶端執行緒也負責自己的連線狀態,如果使用者中斷連線,客戶端執行緒會負責將自己從客戶端佇列中清除。 廣播執行緒負責取出訊息佇列中的訊息,然後將之一一傳送訊息給客戶端佇列中尚存在的客戶端執行緒。
標簽: 伺服器
上傳時間: 2015-05-22
上傳用戶:wweqas
一)需求 很多情況下我們需要知道字節流的編碼,比如 1) 使用編輯器打開文本文件的時候,編輯器需要識別文本文件的各種編碼 2) 上傳文件后,分析上傳文件字節流需要知道它的編碼 3) 讀取某個web頁面的源代碼,并要輸出時,需要知道正確的編碼才能輸出正確的內容 ..............
上傳時間: 2013-12-20
上傳用戶:dsgkjgkjg
linux下的內核級調試器,對在linux下調試程序感興趣的朋友不妨一試
上傳時間: 2013-12-20
上傳用戶:ljt101007
? Java函數速查 你能很快的查到你要的函數 DataBinding類 代表數據源字段和組件屬性之間一個單獨的綁定。 package com.ms.wfc.data.ui public class DataBinding implements IConstructable 說明 DataBinder控件使用該類來表示數據源中的每一個綁定。 請參閱:《Microsoft Visual J++ 6.0 程序員指南》第18章“WFC中的數據綁定”。 構造器 DataBinding.DataBinding 創建一個DataBinding對象。 語法 public DataBinding () public DataBinding ( IComponent target, String propertyName,String fieldName ) public DataBinding ( IComponent target, String propertyName,String fieldName, IDataFormat format )
標簽: DataBinding package Java data
上傳時間: 2013-12-20
上傳用戶:TRIFCT