亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

并聯運行

  • PIC16系列單片機與PC機串行通信的軟硬件實現

     介紹一種運用PIC16F84單片機實現與PC機串行通信的方法,并給出其硬件接口電路及通信源程序。關鍵詞    異步串行通信    發送與接收    VB4 Win95 串口查詢法  1 前言    美國Microchip公司的PIC16系列單片機是一種新型的CMOS工藝的8位單片機。其中,PIC16FXX單片機的程序存儲器為電可擦除閃速存儲器(flash),可多次修改程序,甚至可以在線編程。PIC16F83和PIC16F84片內數據存儲器除RAM外,還有64字節的EEPROM,可以當作一般的或非易失性的數據存儲器使用,簡單方便。它還具有片內上電復位、延時電路、看門狗電路等。另外,PIC16系列單片機功耗極低,因而是一種非常適合在各種便攜式設備中使用的高性價比的單片機,并已經得到了越來越廣泛的應用。   但是在許多需要大量計算的運用中,還必須借助微機的強大數據處理能力。這樣必須通過通信電路實現PIC單片機與微機間的可靠數據傳輸。有的PIC16單片機內并沒有提供串行口,所以串行通信必須通過自己設計的硬件電路和通信軟件來實現。   下面介紹用查詢法實現異步串行通訊的方法。同時給出了用PIC16F84單片機的兩個I/O口模擬2線串行口的硬件接口電路、程序流程框圖、單片機內通信程序以及微機內的通信程序等。2 硬件實現方法與電路   PIC16F84的程序存儲器由1K×14的閃速(flash)存儲器構成,它只有13條I/O口,1個定時器,為了盡量節省單片機的軟硬件資源,采用下述異步串行通信的實現方法。   如圖1所示,PIC16F84在4MHz時鐘下,采用半雙工方式,可實現9600波特率的異步串行數據通信,1位停止位,8位數據位,無校驗位。接收和發送以低位在先(一般模式),采用軟件延時。為節省篇幅,單片機內的通信程序中未提供任何握手協議,用戶可根據自己的需要在軟件中加入握手方式。

    標簽: PIC 16 PC機 單片機

    上傳時間: 2014-12-27

    上傳用戶:偷心的海盜

  • 單片機串行通信發射機

    單片機串行通信發射機 我所做的單片機串行通信發射機主要在實驗室完成,參考有關的書籍和資料,個人完成電路的設計、焊接、檢查、調試,再根據自己的硬件和通信協議用匯編語言編寫發射和顯示程序,然后加電調試,最終達到準確無誤的發射和顯示。在這過程中需要選擇適當的元件,合理的電路圖扎實的焊接技術,基本的故障排除和糾正能力,會使用基本的儀器對硬件進行調試,會熟練的運用匯編語言編寫程序,會用相關的軟件對自己的程序進行翻譯,并燒進芯片中,要與對方接收機統一通信協議,要耐心的反復檢查、修改和調試,直到達到預期目的。單片機串行通信發射機采用串行工作方式,發射并顯示兩位數字信息,既顯示00-99,使數據能夠在不同地方傳遞。硬件部分主要分兩大塊,由AT89C51和多個按鍵組成的控制模塊,包括時鐘電路、控制信號電路,時鐘采用6MHZ晶振和30pF的電容來組成內部時鐘方式,控制信號用手動開關來控制,P1口來控制,P2、P3口產生信號并通過共陽極數碼管來顯示,軟件采用匯編語言來編寫,發射程序在通信協議一致的情況下完成數據的發射,同時顯示程序對發射的數據加以顯示。畢業設計的目的是了解基本電路設計的流程,豐富自己的知識和理論,鞏固所學的知識,提高自己的動手能力和實驗能力,從而具備一定的設計能力。我做得的畢業設計注重于對單片機串行發射的理論的理解,明白發射機的工作原理,以便以后單片機領域的開發和研制打下基礎,提高自己的設計能力,培養創新能力,豐富自己的知識理論,做到理論和實際結合。本課題的重要意義還在于能在進一步層次了解單片機的工作原理,內部結構和工作狀態。理解單片機的接口技術,中斷技術,存儲方式,時鐘方式和控制方式,這樣才能更好的利用單片機來做有效的設計。我的畢業設計分為兩個部分,硬件部分和軟件部分。硬件部分介紹:單片機串行通信發射機電路的設計,單片機AT89C51的功能和其在電路的作用。介紹了AT89C51的管腳結構和每個管腳的作用及各自的連接方法。AT89C51 與MCS-51 兼容,4K字節可編程閃爍存儲器,壽命:1000次可擦,數據保存10年,全靜態工作:0HZ-24HZ,三級程序存儲器鎖定,128*8 位內部RAM,32 跟可編程I/O 線,兩個16 位定時/計數器,5 個中斷源,5 個可編程串行通道,低功耗的閑置和掉電模式,片內震蕩和時鐘電路,P0和P1 可作為串行輸入口,P3口因為其管腳有特殊功能,可連接其他電路。例如P3.0RXD 作為串行輸出口,其中時鐘電路采用內時鐘工作方式,控制信號采用手動控制。數據的傳輸方式分為單工、半雙工、全雙工和多工工作方式;串行通信有兩種形式,異步和同步通信。介紹了串行串行口控制寄存器,電源管理寄存器PCON,中斷允許寄存器IE,還介紹了數碼顯示管的工作方式、組成,共陽極和共陰極數碼顯示管的電路組成,有動態和靜態顯示兩種方式,說明了不同顯示方法與單片機的連接。再后來還介紹了硬件的焊接過程,及在焊接時遇到的問題和應該注意的方面。硬件焊接好后的檢查電路、不裝芯片上電檢查及上電裝芯片檢查。軟件部分:在了解電路設計原理后,根據原理和目的畫出電路流程圖,列出數碼顯示的斷碼表,計算波特率,設置串行口,在與接受機設置相同的通信協議的基礎上編寫顯示和發射程序。編寫完程序還要進行編譯,這就必須會使用編譯軟件。介紹了編譯軟件的使用和使用過程中遇到的問題,及在編譯后燒入芯片使用的軟件PLDA,后來的加電調試,及遇到的問題,在沒問題后與接受機連接,發射數據,直到對方準確接收到。在軟件調試過程中將詳細介紹調試遇到的問題,例如:通信協議是否相同,數碼管是否與芯片連接對應,計數器是否開始計數等。

    標簽: 單片機 串行通信 發射機

    上傳時間: 2013-10-19

    上傳用戶:uuuuuuu

  • 用C18編譯器進行Microwire串行EEPROM與PIC

    用C18編譯器進行Microwire串行EEPROM與PIC18單片機的接口設計 AN1004中文資料 目前市場上有許多種單片機用在嵌入式控制系統設計中,這些嵌入式控制系統中的很大一部分都要用到非易失性存儲器。由于串行EEPROM 具有封裝尺寸小,存儲容量靈活,對I/O 引腳要求低,和低功耗低成本等特點,已成為非易失性存儲器的首選。 為了滿足市場需求, Microchip Technology 已經推出了一整套符合工業標準的串行EEPROM,覆蓋了2 線式(I2C™)、3 線式(Microwire)和SPI 通信標準,并提供了不同的存儲容量、工作電壓范圍和封裝形式。

    標簽: Microwire EEPROM C18 PIC

    上傳時間: 2013-10-22

    上傳用戶:crazyer

  • 89C51串行口及串行通信技術

    7.1  串行通信基本知識7.2  串行口及應用7.3  RS-232C標準接口總線 及串行通信硬件設計7.4  89C51與89C51點對點異步通信7.5  89C51與PC機間通信軟件的設計7.6  PC機與多個單片機間的通信本章將介紹89C51串行口的結構及應用PC機與89C51間的雙機通信一臺PC機控制多臺89C51前沿機的分布式系統,以及通信接口電路和軟件設計,并給出設計實例,包括接口電路、程序框圖、主程序和接收/發送子程序.

    標簽: 89C51 串行口 串行通信技術

    上傳時間: 2013-10-27

    上傳用戶:firstbyte

  • 自動檢測80C51串行通訊中的波特率

    自動檢測80C51串行通訊中的波特率:本文介紹一種在80C51 串行通訊應用中自動檢測波特率的方法。按照經驗,程序起動后所接收到的第1 個字符用于測量波特率。這種方法可以不用設定難于記憶的開關,還可以免去在有關應用中使用多種不同波特率的煩惱。人們可以設想:一種可靠地實現自動波特檢測的方法是可能的,它無須嚴格限制可被確認的字符。問題是:在各種的條件下,如何可以在大量允許出現的字符中找出波特率定時間隔。顯然,最快捷的方法是檢測一個單獨位時間(single bit time),以確定接收波特率應該是多少。可是,在RS-232 模式下,許多ASCII 字符并不能測量出一個單獨位時間。對于大多數字符來說,只要波特率存在合理波動(這里的波特率是指標準波特率),從起始位到最后一位“可見”位的數據傳輸周期就會在一定范圍內發生變化。此外,許多系統采用8 位數據、無奇偶校驗的格式傳輸ASCII 字符。在這種格式里,普通ASCII 字節不會有MSB 設定,并且,UART總是先發送數據低位(LSB),后發送數據高位(MSB),我們總會看見數據的停止位。在下面的波特率檢測程序中,先等待串行通訊輸入管腳的起始信號(下降沿),然后起動定時器T0。在其后的串行數據的每一個上升沿,將定時器T0 的數值捕獲并保存。當定時器T0溢出時,其最后一次捕獲的數值即為從串行數據起始位到最后一個上升沿(我們假設是停止位)過程所持續的時間。

    標簽: 80C51 自動檢測 串行通訊 波特率

    上傳時間: 2014-08-22

    上傳用戶:dajin

  • 單片機溫度采集器與PC104分站的串行通信

    單片機溫度采集器與PC104分站的串行通信:用PC104 模塊組建的礦井變電所采集分站,具有強大的以太網和CAN 總線通信功能。在PC104模塊底板上,設計了一個基于89C2051 單片機的溫度采集器,用于采集溫度傳感器監測值并通過串口將該監測值傳送到PC104 分站。該設計簡化了變電所環境溫度監測的軟、硬件,并且編程簡單,充分利用了PC104 的空閑串口資源。關鍵詞:溫度采集器; 單片機; 串行通信; PC104

    標簽: 104 PC 單片機

    上傳時間: 2013-11-24

    上傳用戶:wangchong

  • 串行編程器源程序(Keil C語言)

    串行編程器源程序(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;}

    標簽: Keil 串行 C語言 編程器

    上傳時間: 2013-11-12

    上傳用戶:gut1234567

  • 基于FPGA的34位串行編碼信號設計與實現

        為實現某專用接口裝置的接口功能檢測,文中詳細地介紹了一種34位串行碼的編碼方式,并基于FPGA芯片設計了該類型編碼的接收、發送電路。重點分析了電路各模塊的設計思路。電路采用SOPC模塊作為中心控制器,設計簡潔、可靠。試驗表明:該設計系統運行正常、穩定。

    標簽: FPGA 串行 編碼 信號設計

    上傳時間: 2013-11-12

    上傳用戶:xiaowei314

  • 采用高速串行收發器Rocket I/O實現數據率為2.5 G

    摘要: 串行傳輸技術具有更高的傳輸速率和更低的設計成本, 已成為業界首選, 被廣泛應用于高速通信領域。提出了一種新的高速串行傳輸接口的設計方案, 改進了Aurora 協議數據幀格式定義的弊端, 并采用高速串行收發器Rocket I/O, 實現數據率為2.5 Gbps的高速串行傳輸。關鍵詞: 高速串行傳輸; Rocket I/O; Aurora 協議 為促使FPGA 芯片與串行傳輸技術更好地結合以滿足市場需求, Xilinx 公司適時推出了內嵌高速串行收發器RocketI/O 的Virtex II Pro 系列FPGA 和可升級的小型鏈路層協議———Aurora 協議。Rocket I/O支持從622 Mbps 至3.125 Gbps的全雙工傳輸速率, 還具有8 B/10 B 編解碼、時鐘生成及恢復等功能, 可以理想地適用于芯片之間或背板的高速串行數據傳輸。Aurora 協議是為專有上層協議或行業標準的上層協議提供透明接口的第一款串行互連協議, 可用于高速線性通路之間的點到點串行數據傳輸, 同時其可擴展的帶寬, 為系統設計人員提供了所需要的靈活性[4]。但該協議幀格式的定義存在弊端,會導致系統資源的浪費。本文提出的設計方案可以改進Aurora 協議的固有缺陷,提高系統性能, 實現數據率為2.5 Gbps 的高速串行傳輸, 具有良好的可行性和廣闊的應用前景。

    標簽: Rocket 2.5 高速串行 收發器

    上傳時間: 2013-11-06

    上傳用戶:smallfish

  • 基于FPGA的高速串行傳輸接口研究與實現

    摘 要:介紹了FPGA最新一代器件Virtex25上的高速串行收發器RocketIO。基于ML505開發平臺構建了一個高速串行數據傳輸系統,重點說明了該系統采用RocketIO實現1. 25Gbp s高速串行傳輸的設計方案。實現并驗證了采用FPGA完成千兆串行傳輸的功能目標,為后續采用FPGA實現各種高速協議奠定了良好的基礎。關鍵詞: FPGA;高速串行傳輸; RocketIO; GTP 在數字系統互連設計中,高速串行I/O技術取代傳統的并行I/O技術成為當前發展的趨勢。與傳統并行I/O技術相比,串行方案提供了更大的帶寬、更遠的距離、更低的成本和更高的擴展能力,克服了并行I/O設計存在的缺陷。在實際設計應用中,采用現場可編程門陣列( FPGA)實現高速串行接口是一種性價比較高的技術途徑。

    標簽: FPGA 高速串行 傳輸接口

    上傳時間: 2013-11-22

    上傳用戶:lingzhichao

主站蜘蛛池模板: 安西县| 收藏| 吉水县| 朝阳市| 青河县| 贵定县| 崇左市| 昌图县| 荔浦县| 襄樊市| 平江县| 孟连| 集安市| 和平区| 西宁市| 财经| 建始县| 乌什县| 江永县| 石泉县| 章丘市| 雷山县| 呼和浩特市| 冀州市| 大庆市| 手游| 广汉市| 永寿县| 庄浪县| 西林县| 宜春市| 五家渠市| 澄迈县| 天全县| 阳高县| 普陀区| 郧西县| 岳阳市| 遵义县| 察隅县| 台南市|