自動(dòng)檢測(cè)80C51串行通訊中的波特率:本文介紹一種在80C51 串行通訊應(yīng)用中自動(dòng)檢測(cè)波特率的方法。按照經(jīng)驗(yàn),程序起動(dòng)后所接收到的第1 個(gè)字符用于測(cè)量波特率。這種方法可以不用設(shè)定難于記憶的開(kāi)關(guān),還可以免去在有關(guān)應(yīng)用中使用多種不同波特率的煩惱。人們可以設(shè)想:一種可靠地實(shí)現(xiàn)自動(dòng)波特檢測(cè)的方法是可能的,它無(wú)須嚴(yán)格限制可被確認(rèn)的字符。問(wèn)題是:在各種的條件下,如何可以在大量允許出現(xiàn)的字符中找出波特率定時(shí)間隔。顯然,最快捷的方法是檢測(cè)一個(gè)單獨(dú)位時(shí)間(single bit time),以確定接收波特率應(yīng)該是多少。可是,在RS-232 模式下,許多ASCII 字符并不能測(cè)量出一個(gè)單獨(dú)位時(shí)間。對(duì)于大多數(shù)字符來(lái)說(shuō),只要波特率存在合理波動(dòng)(這里的波特率是指標(biāo)準(zhǔn)波特率),從起始位到最后一位“可見(jiàn)”位的數(shù)據(jù)傳輸周期就會(huì)在一定范圍內(nèi)發(fā)生變化。此外,許多系統(tǒng)采用8 位數(shù)據(jù)、無(wú)奇偶校驗(yàn)的格式傳輸ASCII 字符。在這種格式里,普通ASCII 字節(jié)不會(huì)有MSB 設(shè)定,并且,UART總是先發(fā)送數(shù)據(jù)低位(LSB),后發(fā)送數(shù)據(jù)高位(MSB),我們總會(huì)看見(jiàn)數(shù)據(jù)的停止位。在下面的波特率檢測(cè)程序中,先等待串行通訊輸入管腳的起始信號(hào)(下降沿),然后起動(dòng)定時(shí)器T0。在其后的串行數(shù)據(jù)的每一個(gè)上升沿,將定時(shí)器T0 的數(shù)值捕獲并保存。當(dāng)定時(shí)器T0溢出時(shí),其最后一次捕獲的數(shù)值即為從串行數(shù)據(jù)起始位到最后一個(gè)上升沿(我們假設(shè)是停止位)過(guò)程所持續(xù)的時(shí)間。
標(biāo)簽: 80C51 自動(dòng)檢測(cè) 串行通訊 波特率
上傳時(shí)間: 2014-08-22
上傳用戶(hù):dajin
單片機(jī)溫度采集器與PC104分站的串行通信:用PC104 模塊組建的礦井變電所采集分站,具有強(qiáng)大的以太網(wǎng)和CAN 總線(xiàn)通信功能。在PC104模塊底板上,設(shè)計(jì)了一個(gè)基于89C2051 單片機(jī)的溫度采集器,用于采集溫度傳感器監(jiān)測(cè)值并通過(guò)串口將該監(jiān)測(cè)值傳送到PC104 分站。該設(shè)計(jì)簡(jiǎn)化了變電所環(huán)境溫度監(jiān)測(cè)的軟、硬件,并且編程簡(jiǎn)單,充分利用了PC104 的空閑串口資源。關(guān)鍵詞:溫度采集器; 單片機(jī); 串行通信; PC104
上傳時(shí)間: 2013-11-24
上傳用戶(hù):wangchong
本文介紹一種實(shí)現(xiàn)TMS320F240 DSP與C51單片機(jī)串行通訊的方法。詳細(xì)說(shuō)明了TMS320F240 DSP與C51單片機(jī)的硬件構(gòu)成和軟件設(shè)置等問(wèn)題。
上傳時(shí)間: 2013-11-24
上傳用戶(hù):1234567890qqq
RS232C串行通信在控制領(lǐng)域里應(yīng)用得很廣泛但在實(shí)際應(yīng)用中又會(huì)因所控制的對(duì)象所解決的問(wèn)題不同而各具特點(diǎn)本文所涉及的是傳輸距離不超過(guò)15米所傳輸數(shù)據(jù)量較小的PC機(jī)和單片機(jī)的通信如PC機(jī)對(duì)IC卡的讀寫(xiě)PC機(jī)對(duì)單片機(jī)燒寫(xiě)器的數(shù)據(jù)轉(zhuǎn)輸以及其它一些具有類(lèi)似特點(diǎn)的智能化儀器和儀表中的數(shù)據(jù)通信
標(biāo)簽: MCU PC 串行通信 應(yīng)用設(shè)計(jì)
上傳時(shí)間: 2014-12-28
上傳用戶(hù):6546544
CAT24Cxxx是集E2PROM存儲(chǔ)器, 精確復(fù)位控制器和看門(mén)狗定時(shí)器三種流行功能于一體的芯片。CAT24C161/162(16K),CAT24C081/082(8K),CAT24C041/042(4K)和CAT24C021/022(2K) 主要作為I2C 串行CMOS E2PROM器件,采用先進(jìn)的CMOS工藝大大降低了器件的功耗。CAT24Cxxx另一特點(diǎn)是16 字節(jié)的頁(yè)寫(xiě)緩沖區(qū),提供8腳DIP和SOIC封裝。CAT24Cxxx的復(fù)位功能和看門(mén)狗定時(shí)器功能保證系統(tǒng)出現(xiàn)故障的時(shí)候能給CPU一個(gè)復(fù)位信號(hào)。CAT24Cxxx的第2腳輸出低電平復(fù)位信號(hào),第7腳輸出高電平復(fù)位信號(hào)。CAT24Cxx1 看狗溢出信號(hào)從SDA腳輸出CAT24Cxx2不具備看門(mén)狗功能
標(biāo)簽: E2PROM Reset WDT 內(nèi)置
上傳時(shí)間: 2013-12-12
上傳用戶(hù):siying
基于AT89C51應(yīng)用系統(tǒng)的串行通信設(shè)計(jì):介紹了基于AT89C51應(yīng)用系統(tǒng)中的串行通信軟硬件設(shè)計(jì)方法和實(shí)現(xiàn)過(guò)程,在基于紅外成像技術(shù)的電力設(shè)備狀態(tài)檢測(cè)系統(tǒng)中,將紅外測(cè)溫儀檢測(cè)到設(shè)備的溫度數(shù)據(jù)傳給控制電路,進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)換后,在RAM 中存儲(chǔ),同時(shí)上傳給PC機(jī)。系統(tǒng)利用MAX232實(shí)現(xiàn)RS 232C的EIA 電平與單片機(jī)的TTI 電平之聞轉(zhuǎn)換,利用通用串口芯片8251A擴(kuò)展串行接13',實(shí)現(xiàn)PC機(jī)與單片機(jī)之問(wèn)的串行通信。 關(guān)鍵詞:串行通信;單片機(jī);接口;RS232C
上傳時(shí)間: 2014-12-21
上傳用戶(hù):aeiouetla
SPI接口讀寫(xiě)串行EEPROM:93C46為采用3線(xiàn)串行同步總線(xiàn)SPI接口方式的EEPROM,其芯片引腳名稱(chēng)和功能描述如圖1-1:
上傳時(shí)間: 2013-11-19
上傳用戶(hù):taozhihua1314
多功能高集成外圍器件6. 1 多功能高集成外圍器件82371PCI的英文名稱(chēng):Peripheral Component Interconnect (外圍部件互聯(lián)PCI總線(xiàn));82371是PCI總線(xiàn)組件。ISA是:Industry Standard Architecture(工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu))IDE是 (Integrated Device Electronics)集成電路設(shè)備簡(jiǎn)稱(chēng)PIIX4PIIX4器件(芯片)的特點(diǎn)1、是一種支持Pentium和PentiumII微處理器的部件。2、82371對(duì)ISA橋來(lái)說(shuō),是一種多功能PCI總線(xiàn)。3、對(duì)可移動(dòng)性和桌面深綠色環(huán)境均提供支持。4、電源管理邏輯。5、被集成化的IDE控制器。6、增強(qiáng)了性能的DMA控制器。(7)基于兩個(gè)82C59的中斷控制器。(8)基于82C54芯片的定時(shí)器。(9)USB(Universal Serial Bus)通用串行總線(xiàn)。(10)SMBus系統(tǒng)管理總線(xiàn)。(11)實(shí)時(shí)時(shí)鐘(12)順應(yīng)Microsoft Win95所需的功能其芯片的邏輯框圖如圖6-1所示。 PIIX4芯片邏輯框圖6.1.1 概述PIIX4芯片是一個(gè)多功能的PCI器件,圖6-2 是82371在系統(tǒng)中扮演的角色。(續(xù)上圖)1. PCI與EIO之間的橋(PIIX4芯片)橋是不對(duì)程的,是各類(lèi)不同標(biāo)準(zhǔn)總線(xiàn)與PCI總線(xiàn)連接,82371AB橋也可理解為一種總線(xiàn)轉(zhuǎn)換譯碼器和控制器,橋內(nèi)包含復(fù)雜的協(xié)議總線(xiàn)信號(hào)和緩沖器。(1).在PCI系統(tǒng)內(nèi),當(dāng)PIIX4操作時(shí),它總是作為系統(tǒng)內(nèi)各種模塊的主控設(shè)備,如USB和DMA控制器、IDE總線(xiàn)和分布式DMA的主控設(shè)備等,而且總是以ISA主控設(shè)備的名義出現(xiàn)。(2). 在向ISA總線(xiàn)或IDE總線(xiàn)進(jìn)行傳送操作的傳送周期期間作為從屬設(shè)備使用,并對(duì)內(nèi)部寄存器譯碼。PIIX4芯片(橋)的配置(1).可以把PIIX4芯片配置成整個(gè)ISA總線(xiàn),或ISA總線(xiàn)的子集,也可擴(kuò)展成EIO總線(xiàn)。在使用EIO總線(xiàn)時(shí),可以把未使用的信號(hào)配置成通用的輸入和輸出。(2).PIIX4可直接驅(qū)動(dòng)5個(gè)ISA插槽;(3).能提供字節(jié)-交換邏輯、I/O的恢復(fù)支持、等待狀態(tài)的生成以及SYSCLK的生成。(4).提供X-BUS鍵盤(pán)控制器芯片、BIOS芯片、實(shí)時(shí)時(shí)鐘芯片、二級(jí)微程序器等的選擇。2. IDE接口(總線(xiàn)主控設(shè)備的權(quán)利和同步DMA方式)IDE接口為4個(gè)IDE的設(shè)備提供支持,比如IDE接口的硬盤(pán)和CD-ROM等。注意:目前硬盤(pán)接口有5類(lèi):IDE、SCSI、Fibre Channel、IEEE1394和USB等。IDE口幾乎在PC機(jī)最多,因?yàn)楸阋恕CSI多用于服務(wù)器和集群機(jī)。IDE的PIO IDE速率:14MB/s;而總線(xiàn)主控設(shè)備IDE的速率:33MB/s在PIIX4芯片的IDE系統(tǒng)內(nèi),配有兩個(gè)各次獨(dú)立的IDE信號(hào)通道。3. 具有兼容性的模塊—DMA、定時(shí)器/計(jì)數(shù)器、中斷控制器等(1)在PIIX4內(nèi)的兩各82C37 DMA控制器經(jīng)邏輯的組合,產(chǎn)生7個(gè)獨(dú)立的可編程通道。通道[0:3]是通過(guò)與8個(gè)二進(jìn)位的硬件連線(xiàn)實(shí)現(xiàn)的。通過(guò)以字節(jié)為單位的計(jì)數(shù)進(jìn)行傳送。而通道[5:7]是通過(guò)16個(gè)二進(jìn)位的連線(xiàn)實(shí)現(xiàn)的,以字為單位的計(jì)數(shù)進(jìn)行傳送。(2)DMA控制器還能通過(guò)PCI總線(xiàn),處理舊的DMA的兩個(gè)不同的方法提供支持。(3)計(jì)數(shù)/定時(shí)器模塊在功能上與82C54等價(jià)。(4)中斷控制器與ISA兼容,其功能是兩個(gè)82C59的功能之和。
上傳時(shí)間: 2013-11-19
上傳用戶(hù):3到15
串行編程器源程序(Keil C語(yǔ)言)//FID=01:AT89C2051系列編程器//實(shí)現(xiàn)編程的讀,寫(xiě),擦等細(xì)節(jié)//AT89C2051的特殊處:給XTAL一個(gè)脈沖,地址計(jì)數(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)的編程控制信號(hào) 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)的編程控制信號(hào) 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)//寫(xiě)器件{//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) //寫(xiě)一個(gè)單元 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)讀,直到讀出與寫(xiě)入的數(shù)相同 { nTimeOut++; if(nTimeOut>1000)//超時(shí)了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一個(gè)脈沖指向下一個(gè)單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) //讀一個(gè)單元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一個(gè)脈沖指向下一個(gè)單元//----------------------------------------------------------------------------- return Data;} void Lock01()//寫(xiě)鎖定位{ InitPro01();//先設(shè)置成編程狀態(tài)//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) 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;}
上傳時(shí)間: 2013-11-12
上傳用戶(hù):gut1234567
特性• 一系列方法支持不同的照明概念/原理UHP CCFL等• 快速執(zhí)行標(biāo)準(zhǔn)80C51 器件的兩倍• 工作范圍寬2.7V~6.0V 而且在125 仍可工作• 帶晶振/諧振器和RC 的用戶(hù)可配置振蕩器不要求外部元件• 低電流操作• 豐富的特性集包括UART和I2C 串行通訊低電壓檢測(cè)和上電復(fù)位• 兩個(gè)比較器• 在系統(tǒng)可編程ISP• 專(zhuān)用的模擬和數(shù)字外圍設(shè)備• ADC 快速PWM 和DAC特殊控制的專(zhuān)用外圍設(shè)備• PFC 功率因素修正• 帶軟開(kāi)關(guān)PWM 的半橋和全橋控制• 使用ADC 和比較器進(jìn)行照明管理• 與幾乎所有遠(yuǎn)程協(xié)議接口DALI IR RF 等• 帶鎮(zhèn)流ASIC 帶DAC 或PWM 的快速控制回路• 與存儲(chǔ)設(shè)備的I2C 接口
標(biāo)簽: LPC 51 照明應(yīng)用 微控制器
上傳時(shí)間: 2014-03-24
上傳用戶(hù):ming529
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1