通過介紹串行EEPR0M芯片在MCS.51單片機(jī)系統(tǒng)中的應(yīng)用,為單片機(jī)應(yīng)用數(shù)據(jù)存儲器的擴(kuò)展,提供一個新的理念,從而有效地提高了單片機(jī)cPu的引腳資源利用率,為單片機(jī)應(yīng)用系統(tǒng)設(shè)計、開發(fā)、數(shù)據(jù)管理提供了又一種結(jié)構(gòu)形式.
標(biāo)簽: EEPROM MCS 串行 51單片機(jī)
上傳時間: 2013-10-21
上傳用戶:181992417
RS232C串行通信在控制領(lǐng)域里應(yīng)用得很廣泛但在實(shí)際應(yīng)用中又會因所控制的對象所解決的問題不同而各具特點(diǎn)本文所涉及的是傳輸距離不超過15米所傳輸數(shù)據(jù)量較小的PC機(jī)和單片機(jī)的通信如PC機(jī)對IC卡的讀寫PC機(jī)對單片機(jī)燒寫器的數(shù)據(jù)轉(zhuǎn)輸以及其它一些具有類似特點(diǎn)的智能化儀器和儀表中的數(shù)據(jù)通信
標(biāo)簽: MCU PC 串行通信 應(yīng)用設(shè)計
上傳時間: 2014-12-28
上傳用戶:6546544
CAT24Cxxx是集E2PROM存儲器, 精確復(fù)位控制器和看門狗定時器三種流行功能于一體的芯片。CAT24C161/162(16K),CAT24C081/082(8K),CAT24C041/042(4K)和CAT24C021/022(2K) 主要作為I2C 串行CMOS E2PROM器件,采用先進(jìn)的CMOS工藝大大降低了器件的功耗。CAT24Cxxx另一特點(diǎn)是16 字節(jié)的頁寫緩沖區(qū),提供8腳DIP和SOIC封裝。CAT24Cxxx的復(fù)位功能和看門狗定時器功能保證系統(tǒng)出現(xiàn)故障的時候能給CPU一個復(fù)位信號。CAT24Cxxx的第2腳輸出低電平復(fù)位信號,第7腳輸出高電平復(fù)位信號。CAT24Cxx1 看狗溢出信號從SDA腳輸出CAT24Cxx2不具備看門狗功能
標(biāo)簽: E2PROM Reset WDT 內(nèi)置
上傳時間: 2013-12-12
上傳用戶:siying
基于AT89C51應(yīng)用系統(tǒng)的串行通信設(shè)計:介紹了基于AT89C51應(yīng)用系統(tǒng)中的串行通信軟硬件設(shè)計方法和實(shí)現(xiàn)過程,在基于紅外成像技術(shù)的電力設(shè)備狀態(tài)檢測系統(tǒng)中,將紅外測溫儀檢測到設(shè)備的溫度數(shù)據(jù)傳給控制電路,進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)換后,在RAM 中存儲,同時上傳給PC機(jī)。系統(tǒng)利用MAX232實(shí)現(xiàn)RS 232C的EIA 電平與單片機(jī)的TTI 電平之聞轉(zhuǎn)換,利用通用串口芯片8251A擴(kuò)展串行接13',實(shí)現(xiàn)PC機(jī)與單片機(jī)之問的串行通信。 關(guān)鍵詞:串行通信;單片機(jī);接口;RS232C
上傳時間: 2014-12-21
上傳用戶:aeiouetla
SPI接口讀寫串行EEPROM:93C46為采用3線串行同步總線SPI接口方式的EEPROM,其芯片引腳名稱和功能描述如圖1-1:
上傳時間: 2013-11-19
上傳用戶:taozhihua1314
SPMC65系列單片機(jī)編程指南(中文版):SPMC65X系列是由凌陽公司設(shè)計開發(fā)的8位微控制器。每款芯片都獨(dú)具特色,同時凌陽公司還開發(fā)了一款仿真芯片ECMC653,專門用于SPMC65X系列的仿真。采用 SPMC65 CPU 核,凌陽公司新開發(fā)了功能強(qiáng)大的8位SPMC65系列CPU。該系列CPU 具有可編程的通用I/O端口、不同大小的ROM 和RAM 區(qū)、8位/16位定時/計數(shù)器、強(qiáng)大的CCP (Capture/Compare/PWM)功能模塊和看門狗復(fù)位電路等。并采用先進(jìn)的微米制造工藝,保證了產(chǎn)品高的電磁兼容性和可靠性。除此之外,部分SPMC65X系列芯片具備高吸入電流和慢速輸出的端口、豐富的外部中斷源、低電壓復(fù)位、ADC、PWM、標(biāo)準(zhǔn)通訊接口和多種時鐘選擇。SPMC65X系列芯片適用于通用工控場合、計算機(jī)外圍控制和家電等。ECMC653采用8位SPMC65 CPU 核,具有928字節(jié)的RAM 和16k字節(jié)的ROM。同時還集成了1個時基、1個看門狗定時器、6個16位定時/計數(shù)器和9通道的ADC。為了降低整個仿真板的成本,該芯片還配有一個OTP ROM 的串行可編程接口。此外,為了幫助用戶加快程序的調(diào)試,并發(fā)現(xiàn)程序中隱藏的錯誤,該芯片內(nèi)部專門有一RAM區(qū)域用于記錄程序最近一段時間執(zhí)行的指令,用戶可以從中了解到程序是否正確執(zhí)行。
標(biāo)簽: SPMC 65 單片機(jī) 編程指南
上傳時間: 2013-11-01
上傳用戶:Jesse_嘉偉
基于單片機(jī)的LED漢字顯示屏設(shè)計與制作:在大型商場、車站、碼頭、地鐵站以及各類辦事窗口等越來越多的場所需要用LED點(diǎn)陣顯示圖形和漢字。LED行業(yè)已成為一個快速發(fā)展的新興產(chǎn)業(yè),市場空間巨大,前景廣闊。隨著信息產(chǎn)業(yè)的高速發(fā)展,LED顯示作為信息傳播的一種重要手段,已廣泛應(yīng)用于室內(nèi)外需要進(jìn)行服務(wù)內(nèi)容和服務(wù)宗旨宣傳的公眾場所,例如戶內(nèi)外公共場所廣告宣傳、機(jī)場車站旅客引導(dǎo)信息、公交車輛報站系統(tǒng)、證券與銀行信息顯示、餐館報價信息豆示、高速公路可變情報板、體育場館比賽轉(zhuǎn)播、樓宇燈飾、交通信號燈、景觀照明等。顯然,LED顯示已成為城市亮化、現(xiàn)代化和信息化社會的一個重要標(biāo)志。 本文基于單片機(jī)(AT89C51)講述了16×16 LED漢字點(diǎn)陣顯示的基本原理、硬件組成與設(shè)計、程序編譯與下載等基本環(huán)節(jié)和相關(guān)技術(shù)。2 硬件電路組成及工作原理本產(chǎn)品擬采用以AT89C51單片機(jī)為核心芯片的電路來實(shí)現(xiàn),主要由AT89C51芯片、時鐘電路、復(fù)位電路、列掃描驅(qū)動電路(74HC154)、16×16 LED點(diǎn)陣5部分組成,如圖1所示。 其中,AT89C51是一種帶4 kB閃爍可編程可擦除只讀存儲器(Falsh Programmable and Erasable Read OnlyMemory,F(xiàn)PEROM)的低電壓、高性能CMOS型8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,能夠進(jìn)行1 000次寫/擦循環(huán),數(shù)據(jù)保留時間為10年。他是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。因此,在智能化電子設(shè)計與制作過程中經(jīng)常用到AT89C51芯片。時鐘電路由AT89C51的18,19腳的時鐘端(XTALl及XTAL2)以及12 MHz晶振X1、電容C2,C3組成,采用片內(nèi)振蕩方式。復(fù)位電路采用簡易的上電復(fù)位電路,主要由電阻R1,R2,電容C1,開關(guān)K1組成,分別接至AT89C51的RST復(fù)位輸入端。LED點(diǎn)陣顯示屏采用16×16共256個象素的點(diǎn)陣,通過萬用表檢測發(fā)光二極管的方法測試判斷出該點(diǎn)陣的引腳分布,如圖2所示。 我們把行列總線接在單片機(jī)的IO口,然后把上面分析到的掃描代碼送人總線,就可以得到顯示的漢字了。但是若將LED點(diǎn)陣的行列端口全部直接接入89S51單片機(jī),則需要使用32條IO口,這樣會造成IO資源的耗盡,系統(tǒng)也再無擴(kuò)充的余地。因此,我們在實(shí)際應(yīng)用中只是將LED點(diǎn)陣的16條行線直接接在P0口和P2口,至于列選掃描信號則是由4-16線譯碼器74HC154來選擇控制,這樣一來列選控制只使用了單片機(jī)的4個IO口,節(jié)約了很多IO資源,為單片機(jī)系統(tǒng)擴(kuò)充使用功能提供了條件。考慮到P0口必需設(shè)置上拉電阻,我們采用4.7 kΩ排電阻作為上拉電阻。
標(biāo)簽: LED 單片機(jī) 漢字 顯示屏設(shè)計
上傳時間: 2013-10-16
上傳用戶:ywcftc277
Keil C51使用詳解:8051 系列微處理器基于簡化的嵌入式控制系統(tǒng)結(jié)構(gòu)被廣泛應(yīng)用于從軍事到自動控制再到PC 機(jī)上的鍵盤上的各種應(yīng)用系統(tǒng)上僅次于Motorola 68HC11 在 8 位微控制器市場上的銷量很多制造商都可提供8051 系列單片機(jī)像Intel Philips Siemens 等這些制造商給51 系列單片機(jī)加入了大量的性能和外部功能像I2C 總線接口模擬量到數(shù)字量的轉(zhuǎn)換看門狗PWM 輸出等不少芯片的工作頻率達(dá)到40M 工作電壓下降到1.5V 基于一個內(nèi)核的這些功能使得8051 單片機(jī)很適合作為廠家產(chǎn)品的基本構(gòu)架它能夠運(yùn)行各種程序而且開發(fā)者只需要學(xué)習(xí)這一個平臺8051 系列的基本結(jié)構(gòu)如下1 一個8 位算術(shù)邏輯單元2 32 個I/O 口4 組8 位端口可單獨(dú)尋址3 兩個16 位定時計數(shù)器4 全雙工串行通信5 6 個中斷源兩個中斷優(yōu)先級6 128 字節(jié)內(nèi)置RAM7 獨(dú)立的64K 字節(jié)可尋址數(shù)據(jù)和代碼區(qū)每個8051 處理周期包括12 個振蕩周期每12 個振蕩周期用來完成一項(xiàng)操作如取指令和計算指令執(zhí)行時間可把時鐘頻率除以12 取倒數(shù)然后指令執(zhí)行所須的周期數(shù)因此如果你的系統(tǒng)時鐘是11.059MHz 除以12 后就得到了每秒執(zhí)行的指令個數(shù)為921583
上傳時間: 2014-04-05
上傳用戶:xaijhqx
Keil C51 中文說明:8051 系列微處理器基于簡化的嵌入式控制系統(tǒng)結(jié)構(gòu)被廣泛應(yīng)用于從軍事到自動控制再到PC 機(jī)上的鍵盤上的各種應(yīng)用系統(tǒng)上僅次于Motorola 68HC11 在 8 位微控制器市場上的銷量很多制造商都可提供8051 系列單片機(jī)像Intel Philips Siemens 等這些制造商給51 系列單片機(jī)加入了大量的性能和外部功能像I2C 總線接口模擬量到數(shù)字量的轉(zhuǎn)換看門狗PWM 輸出等不少芯片的工作頻率達(dá)到40M 工作電壓下降到1.5V 基于一個內(nèi)核的這些功能使得8051 單片機(jī)很適合作為廠家產(chǎn)品的基本構(gòu)架它能夠運(yùn)行各種程序而且開發(fā)者只需要學(xué)習(xí)這一個平臺8051 系列的基本結(jié)構(gòu)如下1 一個8 位算術(shù)邏輯單元2 32 個I/O 口4 組8 位端口可單獨(dú)尋址3 兩個16 位定時計數(shù)器4 全雙工串行通信5 6 個中斷源兩個中斷優(yōu)先級6 128 字節(jié)內(nèi)置RAM7 獨(dú)立的64K 字節(jié)可尋址數(shù)據(jù)和代碼區(qū)每個8051 處理周期包括12 個振蕩周期每12 個振蕩周期用來完成一項(xiàng)操作如取指令和計算指令執(zhí)行時間可把時鐘頻率除以12 取倒數(shù)然后指令執(zhí)行所須的周期數(shù)因此如果你的系統(tǒng)時鐘是11.059MHz 除以12 后就得到了每秒執(zhí)行的指令個數(shù)為921583條指令取倒數(shù)將得到每條指令所須的時間1.085ms.
上傳時間: 2013-10-24
上傳用戶:xauthu
串行編程器源程序(Keil C語言)//FID=01:AT89C2051系列編程器//實(shí)現(xiàn)編程的讀,寫,擦等細(xì)節(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()//編程前的準(zhǔn)備工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//編程結(jié)束后的工作,設(shè)置合適的引腳電平{ 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)換并設(shè)置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,設(shè)置相應(yīng)的編程控制信號 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,設(shè)置相應(yīng)的編程控制信號 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,設(shè)置相應(yīng)的編程控制信號 //寫一個單元 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)//效驗(yàn):循環(huán)讀,直到讀出與寫入的數(shù)相同 { nTimeOut++; if(nTimeOut>1000)//超時了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號 //讀一個單元 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();//先設(shè)置成編程狀態(tài)//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號 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()//設(shè)置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
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1