單片機的應用已經(jīng)成為當今電子信息領域應用廣泛的一門技術,單片機應用的廣泛性、工具性、基礎性,已經(jīng)成為我國中等技術人員的重要技術知識層面。這對以上情況,職業(yè)技術教育中單片機如何教?為此我系對單片機教學進行改革,實行單片機項目教學法。
上傳時間: 2013-10-28
上傳用戶:xauthu
摘要:介紹用MCS-51系列單片機控制手機收發(fā)短信息的原理、硬件電路、PDU數(shù)據(jù)格式和符合GSM07.05協(xié)議要求的短信息發(fā)送/接收程序,同時給出了一個應用實例。關鍵詞:單片機子 短信息 PDU GSM 接口
標簽: 用單片機 控制 手機收發(fā)短信
上傳時間: 2013-11-19
上傳用戶:lingfei
介紹了一種基于TMS320VC5402并應用ITU—T的G.728標準進行語音編解碼的多功能數(shù)字采訪機,系統(tǒng)采用AT89C51與TMS320VC5402相配合,實現(xiàn)了音控與鍵控相互補充,語音信息的采集與播放數(shù)字化,可大容量錄放音,操作簡單,可任意選取錄音段進行回放、刪除。
上傳時間: 2013-11-13
上傳用戶:15736969615
摘要:提出通過顏色法提取像素點的漢字點陣字模信息提取方法,給出基于VB6.0的系統(tǒng)控件設置及流程實現(xiàn)方法。與基于內(nèi)碼法的漢字點陣提取方法的比較結果表明,該方法能夠方便地修改顯示內(nèi)容、字體及字號,豐富LED或LCD顯示屏控制系統(tǒng)的字體顯示效果,提高其工作效率。關鍵詞:點陣顯示;點陣字模提取;區(qū)位碼
上傳時間: 2013-10-19
上傳用戶:yt1993410
ICCAVR簡介ICCAVR 是一種使用ANSI 標準C 語言來開發(fā)微控制器(MCU)程序的一個工具,它是一個綜合了編輯器和工程管理器的集成工作環(huán)境(IDE)。源文件全部被組織到工程之中,文件的編輯和工程(project)的構筑也在IDE 的環(huán)境中完成。編譯錯誤在狀態(tài)窗口中顯示,用鼠標單擊編譯錯誤時,光標會自動跳轉到出錯行。這個工程管理器還能直接產(chǎn)生INTEL HEX格式的燒寫文件和可以在AVR Studio 中調(diào)試的COFF 格式的調(diào)試文件。這里特別要提一下ICCAVR 中的應用構筑向導,可以在Tools 欄中選擇“ApplicationBiulder”或者直接點擊快捷工具欄中的“Application Biulder”圖標,就可以打開應用構筑向導對話框,可以根據(jù)需要設定芯片種類,各個端口初始值,是否使用定時器,中斷,UART等,選好以后單擊“OK”就可以得到所需的硬件初始化程序段,非??煽慷曳奖?。圖1給出了初始化UART 的一個例子:下面介紹一下創(chuàng)建并編譯一個工程文件的簡要步驟:1.新建一個源文件從file 菜單中選擇new,創(chuàng)建一個新文件,在改文件中輸入源程序并進行編輯和修改,然后存盤,在存盤時必須指定文件類型,如命名為:try.c 。寫一個新文件的步驟:首先用Biulder 初始化需要用到的硬件資源,生成初始化程序,然后再寫需要的代碼實現(xiàn)所要的功能。2.新建一個project從projrct 菜單中選擇new 命令,IDE 會彈出一個對話框,在對話框中用戶可以指定工程存放的文件夾和工程的名稱。在建立一個新工程之后,在工程管理器的窗口會出現(xiàn)三個子目錄,F(xiàn)iles, Headers, Documents,這時就可以將要編譯的文件添加到project 中了。3.把文件添加到工程中可以在project-files 里單擊右鍵,選擇需要添加的文件;也可以在編輯窗口中單擊右鍵選擇彈出窗口的“Add To Project”命令。4.編譯源文件在編譯之前特別要注意在Project Options 中選擇與硬件相應的芯片。如本次實驗就選擇ATMEGA8515,如圖2 所示。在project 中選擇make project,也可以直接單擊快捷鍵F9,這時要是有錯則會彈出出錯信息,修改調(diào)試正確以后單擊快捷鍵ISP 就可以燒寫到硬件中去了。
標簽: ICCAVR
上傳時間: 2013-10-25
上傳用戶:569342831
Keil C51使用詳解Keil C51 是美國Keil Software 公司出品的51 系列兼容單片機C 語言軟件開發(fā)系統(tǒng),與匯編相比,C 語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C 來開發(fā),體會更加深刻。Keil C51 軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細介紹 Keil C51 開發(fā)系統(tǒng)各部分功能和使用。第二節(jié) Keil C51 單片機軟件開發(fā)系統(tǒng)的整體結構C51 工具包的整體結構,如圖(1)所示,其中uVision 與Ishell 分別是C51 forWindows 和for Dos 的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE 本身或其它編輯器編輯C 或匯編源文件。然后分別由C51 及A51 編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51 創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51 連接定位生成絕對目標文件(.ABS)。ABS 文件由OH51 轉換成標準的Hex 文件,以供調(diào)試器dScope51 或tScope51 使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM 中。圖(1) C51 工具包整體結構圖第三節(jié) Keil C51 工具包的安裝81. C51 for Dos在 Windows 下直接運行軟件包中DOS\C51DOS.exe 然后選擇安裝目錄即可。完畢后欲使系統(tǒng)正常工作須進行以下操作(設C:\C51 為安裝目錄):修改 Autoexec.bat,加入path=C:\C51\BinSet C51LIB=C:\C51\LIBSet C51INC=C:\C51\INC然后運行Autoexec.bat2. C51 for Windows 的安裝及注意事項:在 Windows 下運行軟件包中WIN\Setup.exe,最好選擇安裝目錄與C51 for Dos相同,這樣設置最簡單(設安裝于C:\C51 目錄下)。然后將軟件包中crack 目錄中的文件拷入C:\C51\Bin 目錄下。第四節(jié) Keil C51 工具包各部分功能及使用簡介1. C51 與A51(1) C51C51 是C 語言編譯器,其使用方法為:C51 sourcefile[編譯控制指令]或者 C51 @ commandfile其中 sourcefile 為C 源文件(.C)。大量的編譯控制指令完成C51 編譯器的全部功能。包控C51 輸出文件C.LST,.OBJ,.I 和.SRC 文件的控制。源文件(.C)的控制等,詳見第五部分的具體介紹。而 Commandfile 為一個連接控制文件其內(nèi)容包括:.C 源文件及各編譯控制指令,它沒有固定的名字,開發(fā)人員可根據(jù)自己的習慣指定,它適于用控制指令較多的場合。(2) A51A51 是匯編語言編譯器,使用方法為:9A51 sourcefile[編譯控制指令]或 A51 @ commandfile其中sourcefile 為匯編源文件(.asm或.a51),而編譯控制指令的使用與其它匯編如ASM語言類似,可參考其他匯編語言材料。Commandfile 同C51 中的Commandfile 類似,它使A51 使用和修改方便。2. L51 和BL51(1) L51L51 是Keil C51 軟件包提供的連接/定位器,其功能是將編譯生成的OBJ 文件與庫文件連接定位生成絕對目標文件(.ABS),其使用方法為:L51 目標文件列表[庫文件列表] [to outputfile] [連接控制指令]或 L51 @Commandfile源程序的多個模塊分別經(jīng) C51 與A51 編譯后生成多個OBJ 文件,連接時,這些文件全列于目標文件列表中,作為輸入文件,如果還需與庫文件(.LiB)相連接,則庫文件也必須列在其后。outputfile 為輸文件名,缺少時為第一模塊名,后綴為.ABS。連接控制指令提供了連接定位時的所有控制功能。Commandfile 為連接控制文件,其具體內(nèi)容是包括了目標文件列表,庫文件列表及輸出文件、連接控制命令,以取代第一種繁瑣的格式,由于目標模塊庫文件大多不止1 個,因而第2 種方法較多見,這個文件名字也可由使用者隨意指定。(2) Bl51BL51 也是C51 軟件包的連接/定位器,其具有L51 的所有功能,此外它還具有以下3 點特別之處:a. 可以連接定位大于64kBytes 的程序。b. 具有代碼域及域切換功能(CodeBanking & Bank Switching)c. 可用于RTX51 操作系統(tǒng)RTX51 是一個實時多任務操作系統(tǒng),它改變了傳統(tǒng)的編程模式,甚至不必用main( )函數(shù),單片機系統(tǒng)軟件向RTOS 發(fā)展是一種趨勢,這種趨勢對于186 和38610及68K 系列CPU 更為明顯和必須,對8051 因CPU 較為簡單,程序結構等都不太復雜,RTX51 作用顯得不太突出,其專業(yè)版軟件PK51 軟件包甚至不包括RTX51Full,而只有一個RTX51TINY 版本的RTOS。RTX51 TINY 適用于無外部RAM 的單片機系統(tǒng),因而可用面很窄,在本文中不作介紹。Bank switching 技術因使用很少也不作介紹。3. DScope51,Tscope51 及Monitor51(1) dScope51dScope51 是一個源級調(diào)試器和模擬器,它可以調(diào)試由C51 編譯器、A51 匯編器、PL/M-51 編譯器及ASM-51 匯編器產(chǎn)生的程序。它不需目標板(for windows 也可通過mon51 接目標板),只能進行軟件模擬,但其功能強大,可模擬CPU 及其外圍器件,如內(nèi)部串口,外部I/O 及定時器等,能對嵌入式軟件功能進行有效測試。
上傳時間: 2013-11-01
上傳用戶:zhouxuepeng1
計算機的指令系統(tǒng)是表征計算機性能的重要指標,每種計算機都有自己的指令系統(tǒng)。MCS—51單片機的指令系統(tǒng)是一個具有255種代碼的集合,絕大多數(shù)指令包含兩個基本部分:操作碼和操作數(shù)。操作碼表明指令要執(zhí)行的操作的性質(zhì);操作數(shù)說明參與操作的數(shù)據(jù)或數(shù)據(jù)所存放的地址。MCS—51指令系統(tǒng)中所有程序指令是以機器語言形式表示,可分為單字節(jié)、雙字節(jié)、三字節(jié)3種格式。用二進制編碼表示的機器語言由于閱讀困難,且難以記憶。因此在微機控制系統(tǒng)中采用匯編語言指令來編寫程序。本章介紹MCS—51指令系統(tǒng)就是以匯編語言來描述的。 一條匯編語言指令中最多包含4個區(qū)段,如下所示: 標號: 操作碼目的操作數(shù),源源操作數(shù);注釋 標號與操作碼之間“:”隔開; 操作碼與操作數(shù)之間用“空格”隔開; 目的操作數(shù)和源源操作數(shù)之間有“,”分隔; 操作數(shù)與注釋之間用“;”隔開。 標號是由用戶定義的符號組成,必須用英文大寫字母開始。標號可有可無,若一條指令中有標號,標號代表該指令所存放的第一個字節(jié)存儲單元的地址,故標號又稱為符號地址,在匯編時,把該地址賦值給標號。 操作碼是指令的功能部分,不能缺省。MCS—51指令系統(tǒng)中共有42種助記符,代表了33種不同的功能。例如MOV是數(shù)據(jù)傳送的助記符。 操作數(shù)是指令要操作的數(shù)據(jù)信息。根據(jù)指令的不同功能,操作數(shù)的個數(shù)有3、2、1或沒有操作數(shù)。例如MOV A,#20H,包含了兩個操作數(shù)A和#20H,它們之間用“,”隔開。注釋可有可無,加入注釋主要為了便于閱讀,程序設計者對指令或程序段作簡要的功能說明,在閱讀程序或調(diào)試程序時將會帶來很多方便。
標簽: 8051 指令系統(tǒng) 單片機 計算機
上傳時間: 2013-11-04
上傳用戶:kr770906
用單片機AT89C51改造普通雙桶洗衣機:AT89C2051作為AT89C51的簡化版雖然去掉了P0、P2等端口,使I/O口減少了,但是卻增加了一個電壓比較器,因此其功能在某些方面反而有所增強,如能用來處理模擬量、進行簡單的模數(shù)轉換等。本文利用這一功能設計了一個數(shù)字電容表,可測量容量小于2微法的電容器的容量,采用3位半數(shù)字顯示,最大顯示值為1999,讀數(shù)單位統(tǒng)一采用毫微法(nf),量程分四檔,讀數(shù)分別乘以相應的倍率。電路工作原理 本數(shù)字電容表以電容器的充電規(guī)律作為測量依據(jù),測試原理見圖1。電源電路圖。 壓E+經(jīng)電阻R給被測電容CX充電,CX兩端原電壓隨充電時間的增加而上升。當充電時間t等于RC時間常數(shù)τ時,CX兩端電壓約為電源電壓的63.2%,即0.632E+。數(shù)字電容表就是以該電壓作為測試基準電壓,測量電容器充電達到該電壓的時間,便能知道電容器的容量。例如,設電阻R的阻值為1千歐,CX兩端電壓上升到0.632E+所需的時間為1毫秒,那么由公式τ=RC可知CX的容量為1微法。 測量電路如圖2所示。A為AT89C2051內(nèi)部構造的電壓比較器,AT89C2051 圖2 的P1.0和P1.1口除了作I/O口外,還有一個功能是作為電壓比較器的輸入端,P1.0為同相輸入端,P1.1為反相輸入端,電壓比較器的比較結果存入P3.6口對應的寄存器,P3.6口在AT89C2051外部無引腳。電壓比較器的基準電壓設定為0.632E+,在CX兩端電壓從0升到0.632E+的過程中,P3.6口輸出為0,當電池電壓CX兩端電壓一旦超過0.632E+時,P3.6口輸出變?yōu)?。以P3.6口的輸出電平為依據(jù),用AT89C2051內(nèi)部的定時器T0對充電時間進行計數(shù),再將計數(shù)結果顯示出來即得出測量結果。整機電路見圖3。電路由單片機電路、電容充電測量電路和數(shù)碼顯示電路等 圖3 部分組成。AT89C2051內(nèi)部的電壓比較器和電阻R2-R7等組成測量電路,其中R2-R5為量程電阻,由波段開關S1選擇使用,電壓比較器的基準電壓由5V電源電壓經(jīng)R6、RP1、R7分壓后得到,調(diào)節(jié)RP1可調(diào)整基準電壓。當P1.2口在程序的控制下輸出高電平時,電容CX即開始充電。量程電阻R2-R5每檔以10倍遞減,故每檔顯示讀數(shù)以10倍遞增。由于單片機內(nèi)部P1.2口的上拉電阻經(jīng)實測約為200K,其輸出電平不能作為充電電壓用,故用R5兼作其上拉電阻,由于其它三個充電電阻和R5是串聯(lián)關系,因此R2、R3、R4應由標準值減去1K,分別為999K、99K、9K。由于999K和1M相對誤差較小,所以R2還是取1M。數(shù)碼管DS1-DS4、電阻R8-R14等組成數(shù)碼顯示電路。本機采用動態(tài)掃描顯示的方式,用軟件對字形碼譯碼。P3.0-P3.5、P3.7口作數(shù)碼顯示七段筆劃字形碼的輸出,P1.3-P1.6口作四個數(shù)碼管的動態(tài)掃描位驅動碼輸出。這里采用了共陰數(shù)碼管,由于AT89C2051的P1.3-P1.6口有25mA的下拉電流能力,所以不用三極管就能驅動數(shù)碼管。R8-R14為P3.0-P3.5、P3.7口的上拉電阻,用以驅動數(shù)碼管的各字段,當P3的某一端口輸出低電平時其對應的字段筆劃不點亮,而當其輸出高電平時,則對應的上拉電阻即能點亮相應的字段筆劃。
上傳時間: 2013-12-31
上傳用戶:ming529
用單片機制作多功能莫爾斯碼電路:用單片機制作多功能莫爾斯碼電路莫爾斯電碼通信有著悠久的歷史,盡管它已被現(xiàn)代通信方式所取代,但在業(yè)余無線電通信和特殊的專業(yè)場合仍具有重要的地位,這是因為等幅電碼通信的抗干擾能力是其它任何一種通信方式都無法相比的。在短波波段用幾瓦的功率即可進行國際間的通信,收發(fā)射設備簡單易制成本低廉,所以深受業(yè)余無線電愛好者的喜愛,是業(yè)余無線電高手必備的技能。要想熟練掌握莫爾斯電碼的收發(fā)技術除了持之以恒的毅力外,還需要相關的設備。設計本電路的目的就是給愛好者提供一個實用和訓練的工具。 一、功能簡介 本電路可以配合自動鍵體和手動鍵體,產(chǎn)生莫爾斯碼控制信號,設有16種速度,從初學者到操作高手都能適用。監(jiān)聽音調(diào)也有16種,均可以通過功能鍵進行選擇。可以按程序中設定好的呼號自動呼叫,設有聽抄練習功能,聽抄練習有短碼和混合碼兩種模式,分別對10個數(shù)字和常用的38個混合碼模擬隨機取樣,產(chǎn)生分組報碼,供愛好者提高抄收水平之用,速度低4檔的聽抄練習是專為初學者所設,內(nèi)容是時間間隔較長的單字符。設有PTT開關鍵,可以決定是否控制發(fā)射機工作,不需要反復通斷控制線。無論當前處于呼叫狀態(tài)還是聽抄狀態(tài)只要電鍵接點接通則自動轉到人工發(fā)報程序。4分鐘內(nèi)不使用電路將自動關閉電源,只有按復位鍵才能重新開始工作。先按住聽抄練習鍵復位則進入短碼練習狀態(tài),其它功能不變。從開機到自動關機執(zhí)行每個功能都有不同的莫爾斯碼提示音。本電路具有較強的抗高低頻干擾的能力和使用方便的大電流開關接口,以適應不同的發(fā)射設備。 二、硬件電路原理硬件電路如圖1所示。設計電路的目的在于方便實用,以免在緊張的操作中失誤,所以除了聽抄練習鍵外其它鍵沒有定義復用功能。各鍵的作用在圖中已經(jīng)標出。PTT控制在每次復位時處于關閉狀態(tài),每按動一次PTT功能鍵則改變一次狀態(tài),這樣可以使用軟件開關控制發(fā)射。 PTT處于控制狀態(tài)時發(fā)光二極管隨控制信號閃亮??紤]到自制設備及淘汰軍用設備與高檔設備控制電流的不同,PTT開關管采用了2SC2073,可以承受500mA的電流,同時還增加了無極性PTT開關電路,無論外部被控制的端口直流極性如何加到VT3的極性始終不變,供有興趣的愛好者實驗。應該注意,如果被控制的負載是感性,則電感兩端必須并聯(lián)續(xù)流二極管,除自制設備外成品機在這方面一般沒有什么問題。手動鍵只有一個接點,接通后產(chǎn)生連續(xù)的音頻和發(fā)射控制信號。在本電路中手動鍵的輸入端是P1.5 ,程序不斷檢測P1.5電平,當按鍵按下時P1.5電平為0,程序轉入手動鍵子程序。 自動鍵的接點分別接到P1.3和P1.4 ,同樣當程序檢測到有接點閉合時便自動產(chǎn)生“點”或“劃”。音頻信號從P輸出,經(jīng)VT1放大后推動揚聲器發(fā)音。單片機的I/O口在輸入狀態(tài)下阻抗較高,容易受到高低頻信號干擾,所以在每個輸入端口和三極管的be端并聯(lián)電阻和高頻旁路電容,確保在較長的電鍵連線和大功率發(fā)射時電路工作穩(wěn)定。圖2是印刷電路版圖,尺寸為110mmX85mm,揚聲器用粘合劑直接粘接在電路版有銅箔的面。 三、軟件設計方法 “點”時間長度是莫爾斯電碼中的基本時間單位。按規(guī)定“劃”的時間長度不小于三個“點”,同字符中“點”與“劃”的間隔不小于一個“點”,字符之間不小于一個“劃”,詞與詞之間不應小于五個“點”。在本程序中用條件轉移指令來產(chǎn)生“點”時間長度。通過速度功能鍵功可以設置16種延時參數(shù)。用T0中斷產(chǎn)生監(jiān)聽音頻信號,并將中斷設為優(yōu)先級,保證在聽覺上純正悅耳。T1用于自動關機計時,如果不使用任何功能四分鐘后將向PCON 位寫1,單片機進入休眠狀態(tài),此時耗電量僅有幾個微安。自動鍵的“點”或“劃”以及手動鍵的連續(xù)發(fā)音都是子程序的反復調(diào)用。P1.2對地短接時自動呼叫可設定為另一內(nèi)容。為了便于熟悉匯編語言的讀者對發(fā)音內(nèi)容進行修改,這里介紹發(fā)音字符的編碼方法。莫爾斯碼的信息與計算機中二進制恰好相同,我們可以用0表示“點”,用1表示“劃”。提示音、自動呼叫、聽抄內(nèi)容等字符是預先按一定編碼方式存儲在程序中的常數(shù)。每個字符的莫爾斯碼一般是由1至6位“點”、“劃”組成,也就是發(fā)音次數(shù)最多6次。程序中每個字符占用1個字節(jié),字符時間間隔不占用字節(jié),但更長的延時或發(fā)音結束信息占用一個字節(jié)。我們用字節(jié)的低三位表示字節(jié)的性質(zhì),對于5次及5次以下發(fā)音的字符我們用存儲器的高5位存儲發(fā)音信息,發(fā)音順序由高位至低位,用低3位存儲發(fā)音次數(shù),發(fā)音時將數(shù)據(jù)送入累加器A,先得到發(fā)音次數(shù),然后使A左環(huán)移,對E0進行位尋址,判斷是發(fā)“點”還是“劃”,環(huán)移次數(shù)由發(fā)音次數(shù)決定。對于6次發(fā)音的字符不能完全按照上述編碼規(guī)則,否則會出現(xiàn)信息重疊,如果是6次發(fā)音且最后一次是“劃”我們把發(fā)音次數(shù)定義為111B,因為這時第6次位尋址得到的是1。如果第6次發(fā)音是“點”,那么這個字符的低三位定義為000B。字符間隔時間由程序自動產(chǎn)生,更長的時間隔或結束標志由字節(jié)低三位110B來定義,高半字節(jié)表示字符間隔的倍數(shù),例如26H表示再加兩倍時間間隔。如果字節(jié)為06H則表示讀字符程序結束,返回主程序。更詳細的內(nèi)容不再贅述,讀者可閱讀源程序。四、使用注意事項手動鍵的操作難度相對大一些,時間節(jié)拍全由人掌握,其特點是發(fā)出的電碼帶有“人情味”。自動鍵的“點”、“劃”靠電路產(chǎn)生,發(fā)音標準,容易操作,而且可以達到相當快的速度,長時間工作也不易疲勞。在干擾較大、信號微弱的條件下自動鍵碼的辨別程度好于手動鍵碼。初學者初次使用手動鍵練習發(fā)報要有老師指導,且不可我行我素,一旦養(yǎng)成不正確的手法則很難糾正。在電臺上時常聽到一些讓對方難以抄收的電碼,這可能會使對方反感而拒絕回答。使用自動鍵也應在一定的聽抄基礎上再去練習。在暫時找不老師的情況下可多練習聽力,這對于今后能夠發(fā)出標準正確的電碼非常有益。
上傳時間: 2013-10-31
上傳用戶:sdq_123
PC機之間串口通信的實現(xiàn)一、實驗目的 1.熟悉微機接口實驗裝置的結構和使用方法。 2.掌握通信接口芯片8251和8250的功能和使用方法。 3.學會串行通信程序的編制方法。 二、實驗內(nèi)容與要求 1.基本要求主機接收開關量輸入的數(shù)據(jù)(二進制或十六進制),從鍵盤上按“傳輸”鍵(可自行定義),就將該數(shù)據(jù)通過8251A傳輸出去。終端接收后在顯示器上顯示數(shù)據(jù)。具體操作說明如下:(1)出現(xiàn)提示信息“start with R in the board!”,通過調(diào)整乒乓開關的狀態(tài),設置8位數(shù)據(jù);(2)在小鍵盤上按“R”鍵,系統(tǒng)將此時乒乓開關的狀態(tài)讀入計算機I中,并顯示出來,同時顯示經(jīng)串行通訊后,計算機II接收到的數(shù)據(jù);(3)完成后,系統(tǒng)提示“do you want to send another data? Y/N”,根據(jù)用戶需要,在鍵盤按下“Y”鍵,則重復步驟(1),進行另一數(shù)據(jù)的通訊;在鍵盤按除“Y”鍵外的任意鍵,將退出本程序。2.提高要求 能夠進行出錯處理,例如采用奇偶校驗,出錯重傳或者采用接收方回傳和發(fā)送方確認來保證發(fā)送和接收正確。 三、設計報告要求 1.設計目的和內(nèi)容 2.總體設計 3.硬件設計:原理圖(接線圖)及簡要說明 4.軟件設計框圖及程序清單5.設計結果和體會(包括遇到的問題及解決的方法) 四、8251A通用串行輸入/輸出接口芯片由于CPU與接口之間按并行方式傳輸,接口與外設之間按串行方式傳輸,因此,在串行接口中,必須要有“接收移位寄存器”(串→并)和“發(fā)送移位寄存器”(并→串)。能夠完成上述“串←→并”轉換功能的電路,通常稱為“通用異步收發(fā)器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251。8251A異步工作方式:如果8251A編程為異步方式,在需要發(fā)送字符時,必須首先設置TXEN和CTS#為有效狀態(tài),TXEN(Transmitter Enable)是允許發(fā)送信號,是命令寄存器中的一位;CTS#(Clear To Send)是由外設發(fā)來的對CPU請求發(fā)送信號的響應信號。然后就開始發(fā)送過程。在發(fā)送時,每當CPU送往發(fā)送緩沖器一個字符,發(fā)送器自動為這個字符加上1個起始位,并且按照編程要求加上奇/偶校驗位以及1個、1.5個或者2個停止位。串行數(shù)據(jù)以起始位開始,接著是最低有效數(shù)據(jù)位,最高有效位的后面是奇/偶校驗位,然后是停止位。按位發(fā)送的數(shù)據(jù)是以發(fā)送時鐘TXC的下降沿同步的,也就是說這些數(shù)據(jù)總是在發(fā)送時鐘TXC的下降沿從8251A發(fā)出。數(shù)據(jù)傳輸?shù)牟ㄌ芈嗜Q于編程時指定的波特率因子,為發(fā)送器時鐘頻率的1、1/16或1/64。當波特率指定為16時,數(shù)據(jù)傳輸?shù)牟ㄌ芈示褪前l(fā)送器時鐘頻率的1/16。CPU通過數(shù)據(jù)總線將數(shù)據(jù)送到8251A的數(shù)據(jù)輸出緩沖寄存器以后,再傳輸?shù)桨l(fā)送緩沖器,經(jīng)移位寄存器移位,將并行數(shù)據(jù)變?yōu)榇袛?shù)據(jù),從TxD端送往外部設備。在8251A接收字符時,命令寄存器的接收允許位RxE(Receiver Enable)必須為1。8251A通過檢測RxD引腳上的低電平來準備接收字符,在沒有字符傳送時RxD端為高電平。8251A不斷地檢測RxD引腳,從RxD端上檢測到低電平以后,便認為是串行數(shù)據(jù)的起始位,并且啟動接收控制電路中的一個計數(shù)器來進行計數(shù),計數(shù)器的頻率等于接收器時鐘頻率。計數(shù)器是作為接收器采樣定時,當計數(shù)到相當于半個數(shù)位的傳輸時間時再次對RxD端進行采樣,如果仍為低電平,則確認該數(shù)位是一個有效的起始位。若傳輸一個字符需要16個時鐘,那么就是要在計數(shù)8個時鐘后采樣到低電平。之后,8251A每隔一個數(shù)位的傳輸時間對RxD端采樣一次,依次確定串行數(shù)據(jù)位的值。串行數(shù)據(jù)位順序進入接收移位寄存器,通過校驗并除去停止位,變成并行數(shù)據(jù)以后通過內(nèi)部數(shù)據(jù)總線送入接收緩沖器,此時發(fā)出有效狀態(tài)的RxRDY信號通知CPU,通知CPU8251A已經(jīng)收到一個有效的數(shù)據(jù)。一個字符對應的數(shù)據(jù)可以是5~8位。如果一個字符對應的數(shù)據(jù)不到8位,8251A會在移位轉換成并行數(shù)據(jù)的時候,自動把他們的高位補成0。 五、系統(tǒng)總體設計方案根據(jù)系統(tǒng)設計的要求,對系統(tǒng)設計的總體方案進行論證分析如下:1.獲取8位開關量可使用實驗臺上的8255A可編程并行接口芯片,因為只要獲取8位數(shù)據(jù)量,只需使用基本輸入和8位數(shù)據(jù)線,所以將8255A工作在方式0,PA0-PA7接實驗臺上的8位開關量。2.當使用串口進行數(shù)據(jù)傳送時,雖然同步通信速度遠遠高于異步通信,可達500kbit/s,但由于其需要有一個時鐘來實現(xiàn)發(fā)送端和接收端之間的同步,硬件電路復雜,通常計算機之間的通信只采用異步通信。3.由于8251A本身沒有時鐘,需要外部提供,所以本設計中使用實驗臺上的8253芯片的計數(shù)器2來實現(xiàn)。4:顯示和鍵盤輸入均使用DOS功能調(diào)用來實現(xiàn)。設計思路框圖,如下圖所示: 六、硬件設計硬件電路主要分為8位開關量數(shù)據(jù)獲取電路,串行通信數(shù)據(jù)發(fā)送電路,串行通信數(shù)據(jù)接收電路三個部分。1.8位開關量數(shù)據(jù)獲取電路該電路主要是利用8255并行接口讀取8位乒乓開關的數(shù)據(jù)。此次設計在獲取8位開關數(shù)據(jù)量時采用8255令其工作在方式0,A口輸入8位數(shù)據(jù),CS#接實驗臺上CS1口,對應端口為280H-283H,PA0-PA7接8個開關。2.串行通信電路串行通信電路本設計中8253主要為8251充當頻率發(fā)生器,接線如下圖所示。
上傳時間: 2013-12-19
上傳用戶:小火車啦啦啦