利用89s51去寫結構化keil-C 4x4鍵盤掃描+LCD螢幕顯示 HW01:四則運算+時鍾顯示 HW02:頻率偵測器 ps.鍵盤掃描不是利用延遲作彈跳(推薦)
上傳時間: 2014-11-22
上傳用戶:zycidjl
用一個C語言來測試4X4按鍵功能是否正常工作
上傳時間: 2017-07-25
上傳用戶:宋桃子
串行編程器源程序(Keil C語言)//FID=01:AT89C2051系列編程器//實現(xiàn)編程的讀,寫,擦等細節(jié)//AT89C2051的特殊處:給XTAL一個脈沖,地址計數(shù)加1;P1的引腳排列與AT89C51相反,需要用函數(shù)轉(zhuǎn)換#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口獲得數(shù)據(jù){ 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)//轉(zhuǎn)換并設置P0口的數(shù)據(jù){ 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);//----------------------------------------------------------------------------- //根據(jù)器件的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();//----------------------------------------------------------------------------- //根據(jù)器件的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)//寫器件{//----------------------------------------------------------------------------- //根據(jù)器件的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)//效驗:循環(huán)讀,直到讀出與寫入的數(shù)相同 { nTimeOut++; if(nTimeOut>1000)//超時了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據(jù)器件的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();//先設置成編程狀態(tài)//----------------------------------------------------------------------------- //根據(jù)器件的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中的函數(shù)指針,讓主程序可以調(diào)用上面的函數(shù){ 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
針對數(shù)據(jù)在性態(tài)和類屬方面存在不確定性的特點,提出一種基于模糊C 均值聚類的數(shù)據(jù)流入侵檢測算法,該算法首先利用增量聚類得到網(wǎng)絡數(shù)據(jù)的概要信息和類數(shù),然后利用模糊C均值聚類算法對獲取的數(shù)據(jù)特征進行聚類。實驗結果表明該算法可以有效檢測數(shù)據(jù)流入侵。
標簽: 模糊 數(shù)據(jù)流 入侵檢測 算法
上傳時間: 2015-01-03
上傳用戶:fujiura
書是針對工程上常用的行之有效的算法而編寫的C語言函數(shù)程序集,在第一版的基礎上作了修改和擴充。書中包括了近幾年出現(xiàn)的許多新算法。全書分為數(shù)值計算與非數(shù)值計算兩部分。其中數(shù)值計算部分的內(nèi)容包括:線性代數(shù)方程組的求解、矩陣運算、矩陣特征值與特征向量的計算、非線性方程與方程組的求解、插值、數(shù)值積分、常微分方程(組)的求解、擬合與逼近、數(shù)據(jù)處理與回歸分析、極值問題、數(shù)學變換與濾波、特殊函數(shù)、隨機數(shù)的產(chǎn)生、多項式與連分式函數(shù)的計算、復數(shù)運算;非數(shù)值計算部分的內(nèi)容包括:排序、查找、圖形模式下讀寫屏幕象點、基本圖形操作、漢字操作等。
上傳時間: 2014-01-25
上傳用戶:qlpqlq
本章將介紹C++編程語言的最基本的元素,以及C++的指針、引用和作用域。在第3章和第4章,將介紹C++的類和面向?qū)ο缶幊獭T谀闶褂梦④浕A類庫(Microsoft Foundation Class Library,MFC)進行Windows編程時,你需要所有這些知識。 C++是一種復雜的語言,它的許多元素非常抽象。它也是一個龐大的語言,為專業(yè)編程而設計。本書的重點是使用Visual C++語言來利用MFC編寫Windows程序,因此沒有深入地討論C++語言。 MFC是構造于原始C++之上的應用程序框架,它提供了一個Windows應用程序工作的基礎,一個可以向內(nèi)添入自己代碼的框架。這個框架提供了絕大多數(shù)Windows特征——菜單、工具欄、對話框、控件和滾動條。它也提供使開發(fā)者能相對容易的將數(shù)據(jù)寫入文件、打印數(shù)據(jù)等機制。這個框架的部件是C++的類,這些類表示了應用程序的組件,例如應用程序的主窗口、它的對話框、字符串、如矩形和點的圖像對象,甚至應用程序本身。因此,為了使用Visual C++編寫Windows程序,你需要知道足夠的C++知識來利用MFC。
上傳時間: 2015-04-07
上傳用戶:yt1993410
標準C語言實用全書,對C語言的復雜性和核心特征進行了詳細的論述。
上傳時間: 2015-04-15
上傳用戶:努力努力再努力
《C# 語言規(guī)范最新版本》,描述c#語言的本質(zhì)特征和語法規(guī)則等。
上傳時間: 2013-12-28
上傳用戶:wkchong
c常用數(shù)值算法,主要包括矩陣特征值與特征向量的計算、數(shù)學變換與濾波等20多種算法的實現(xiàn)
標簽: 數(shù)值算法
上傳時間: 2015-05-18
上傳用戶:小寶愛考拉
比較全的C++數(shù)值算法,包括插值、極值特征方程組求解等
上傳時間: 2015-05-24
上傳用戶:shanml