51單片機(jī)實(shí)訓(xùn)指南:一、 實(shí)習(xí)課題基于單片機(jī)最小系統(tǒng)的頻率計(jì)設(shè)計(jì)二、 實(shí)習(xí)內(nèi)容單片機(jī)最小系統(tǒng)電路原理設(shè)計(jì)分析與講解,PCB設(shè)計(jì)分析與講解,電路板焊接培訓(xùn)與實(shí)際操作,程序設(shè)計(jì)、調(diào)試分析與講解,程序調(diào)試實(shí)際操作。三、硬件資源※ 89S51單片機(jī);※ 6位共陽(yáng)極數(shù)碼管;※ 段碼驅(qū)動(dòng)器74HC573,位選譯碼器74HC138;※ 4路獨(dú)立式按鍵;※ 外部晶振電路;※ ISP下載接口(In system program,在系統(tǒng)編程);※ DC+5V電源試配器(選配);※ ISP下載線(選配);※ 單片機(jī)實(shí)訓(xùn)模塊(頻率計(jì)分頻預(yù)處理電路)。四、電路原理分析與設(shè)計(jì)P1為外部電源輸入座(DC+5V),S8為電源最小系統(tǒng)的電源開關(guān),E1和C3為電源濾波,去耦電容。D1為系統(tǒng)電源指示燈。J2為ISP下載接口,S7系統(tǒng)復(fù)位按鍵。CRY1,C1,C2為外部時(shí)針電路。IC1為89S51(DIP-40),左上角為第一腳。PRE1,PRE2。為上拉排阻(阻值4.7k—10k)。J5,J9,J6,J10分別對(duì)應(yīng)單片機(jī)的P0,P1,P2,P3口。便于二次開發(fā)。6路共陽(yáng)極數(shù)碼管動(dòng)態(tài)顯示電路,P0口通過(guò)74HC573(起驅(qū)動(dòng)和隔離作用,讓電流通過(guò)74CH573流入公共地),來(lái)控制數(shù)碼管的8路段碼,P20-P22通過(guò)74HC138譯碼器(使用其中的6路)控制數(shù)碼管的公共端(中間還有三極管做驅(qū)動(dòng)器)。這樣設(shè)計(jì)的理由:為了保證該單片機(jī)最小系統(tǒng)的二次開發(fā)的資源充足和合理性。
標(biāo)簽: 51單片機(jī)
上傳時(shí)間: 2013-10-14
上傳用戶:ryb
PIC16F84 單片機(jī)的內(nèi)部硬件資源:學(xué)些PIC 單片機(jī),在Microchip 尚未推出其他Flash 系列的情況下,很多菜鳥都是從PIC16F84 開始的,我們把它整理了一份中文資料供大家學(xué)習(xí)。首先介紹PIC16F84 單片機(jī)的內(nèi)部結(jié)構(gòu),如圖1 所示的框圖。由圖1 看出,其基本組成可分為四個(gè)主要部分,即運(yùn)算器ALU 和工作寄存器W;程序存儲(chǔ)器;數(shù)據(jù)存儲(chǔ)器和輸入/輸出(I/O)口;堆棧存儲(chǔ)器和定時(shí)器等。現(xiàn)分別介紹如下。
上傳時(shí)間: 2013-12-26
上傳用戶:zgu489
單片機(jī)指令系統(tǒng) 3.1 MCS-51指令簡(jiǎn)介 3.2 指令系統(tǒng) 3.1 MCS-51指令簡(jiǎn)介 二、MCS-51系列單片機(jī)指令系統(tǒng)分類 按尋址方式分為以下七種:按功能分為以下四種: 1、立即立即尋址 1、數(shù)據(jù)傳送指令位操 2、直接尋址 2、算術(shù)運(yùn)算指令 3、寄存器尋址 3、邏輯運(yùn)算指令 4、寄存器間接尋址指令 4、控制轉(zhuǎn)移類指令 5、相對(duì)尋址 5、位操作指令 6、變址尋址 7、位尋址 三、尋址方式 3、寄存器間接尋址 MOV A, @R1 操作數(shù)是通過(guò)寄存器間接得到的。 4、立即尋址 MOV A, #40H 操作數(shù)在指令中直接給出。 5、基址寄存器加變址寄存器尋址 以DPTR或PC為基址寄存器,以A為變址寄存器, 以兩者相加形成的16位地址為操作數(shù)的地址。 MOVC A, @A+DPTR MOVC A, @A+PC 四、指令中常用符號(hào)說(shuō)明 Rn——當(dāng)前寄存器區(qū)的8個(gè)工作寄存器R0~R7(n=0~7); Ri——當(dāng)前寄存器區(qū)可作地址寄存器的2個(gè)工作寄存器R0和R1(i=0,1); direct——8位內(nèi)部數(shù)據(jù)存儲(chǔ)器單元的地址及特殊功能寄存器的地址; #data——表示8位常數(shù)(立即數(shù)); #datal6——表示16位常數(shù); add 16——表示16位地址; addrll——表示11位地址; rel——8位帶符號(hào)的地址偏移量; bit——表示位地址; @——間接尋址寄存器或基址寄存器的前綴; ( )——表示括號(hào)中單元的內(nèi)容 (( ))——表示間接尋址的內(nèi)容; 五、MCS-51指令簡(jiǎn)介 1. 以累加器A為目的操作數(shù)的指令 2. 以Rn為目的操作數(shù)的指令 3. 以直接地址為目的操作數(shù)的指令 4. 以寄存器間接地址為目的操作數(shù)指令 應(yīng)用舉例1 8段數(shù)碼管顯示 應(yīng)用舉例2 3.2 指令系統(tǒng) 2、堆棧操作指令 3. 累加器A與外部數(shù)據(jù)傳輸指令 4. 查表指令 MOVC A, @A+PC 例子: 5. 字節(jié)交換指令 6. 半字節(jié)交換指令 二、算術(shù)操作類指令 PSW寄存器 2. 帶進(jìn)位加法指令 3. 加1指令 4. 十進(jìn)制調(diào)整指令 5. 帶借位減法指令(Subtraction) 6. 減1指令(Decrease) 7. 乘法指令(Multiplication) 8. 除法指令(Division) 三、邏輯運(yùn)算指令 1. 簡(jiǎn)單邏輯操作指令 2. 循環(huán)指令 帶進(jìn)位左循環(huán)指令(Rotate Accumulator Left through Carry flag) 右循環(huán)指令(Rotate Accumulator Right) 帶進(jìn)位右循環(huán)指令(Rotate A Right with C) 3. 邏輯與指令 4. 邏輯或指令 5. 邏輯異或指令 四、控制轉(zhuǎn)移類指令 1. 跳轉(zhuǎn)指令 相對(duì)轉(zhuǎn)移指令 SJMP rel PC←(PC)+2 PC←(PC)+rel 程序中標(biāo)號(hào)與地址之間的關(guān)系 2. 條件轉(zhuǎn)移指令 3. 比較不相等轉(zhuǎn)移指令 4. 減 1 不為 0 轉(zhuǎn)移指令 5. 調(diào)用子程序指令 7. 中斷返回指令 五、位操作指令 1. 數(shù)據(jù)位傳送指令 2. 位變量邏輯指令 3. 條件轉(zhuǎn)移類指令
標(biāo)簽: 單片機(jī) 指令系統(tǒng)
上傳時(shí)間: 2013-10-27
上傳用戶:xuanjie
含原理圖+電路圖+程序的波形發(fā)生器:在工作中,我們常常會(huì)用到波形發(fā)生器,它是使用頻度很高的電子儀器。現(xiàn)在的波形發(fā)生器都采用單片機(jī)來(lái)構(gòu)成。單片機(jī)波形發(fā)生器是以單片機(jī)核心,配相應(yīng)的外圍電路和功能軟件,能實(shí)現(xiàn)各種波形發(fā)生的應(yīng)用系統(tǒng),它由硬件部分和軟件部分組成,硬件是系統(tǒng)的基礎(chǔ),軟件則是在硬件的基礎(chǔ)上,對(duì)其合理的調(diào)配和使用,從而完成波形發(fā)生的任務(wù)。 波形發(fā)生器的技術(shù)指標(biāo):(1) 波形類型:方型、正弦波、三角波、鋸齒波;(2) 幅值電壓:1V、2V、3V、4V、5V;(3) 頻率值:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;(4) 輸出極性:雙極性操作設(shè)計(jì)1、 機(jī)器通電后,系統(tǒng)進(jìn)行初始化,LED在面板上顯示6個(gè)0,表示系統(tǒng)處于初始狀態(tài),等待用戶輸入設(shè)置命令,此時(shí),無(wú)任何波形信號(hào)輸出。2、 用戶按下“F”、“V”、“W”,可以分別進(jìn)入頻率,幅值波形設(shè)置,使系統(tǒng)進(jìn)入設(shè)置狀態(tài),相應(yīng)的數(shù)碼管顯示“一”,此時(shí),按其它鍵,無(wú)效;3、 在進(jìn)入某一設(shè)置狀態(tài)后,輸入0~9等數(shù)字鍵,(數(shù)字鍵僅在設(shè)置狀態(tài)時(shí),有效)為欲輸出的波形設(shè)置相應(yīng)參數(shù),LED將參數(shù)顯示在面板上;4、 如果在設(shè)置中,要改變已設(shè)定的參數(shù),可按下“CL”鍵,清除所有已設(shè)定參數(shù),系統(tǒng)恢復(fù)初始狀態(tài),LED顯示6個(gè)0,等待重新輸入命令;5、 當(dāng)必要的參數(shù)設(shè)定完畢后,所有參數(shù)顯示于LED上,用戶按下“EN”鍵,系統(tǒng)會(huì)將各波形參數(shù)傳遞到波形產(chǎn)生模塊中,以便控制波形發(fā)生,實(shí)現(xiàn)不同頻率,不同電壓幅值,不同類型波形的輸出;6、 用戶按下“EN”鍵后,波形發(fā)生器開始輸出滿足參數(shù)的波形信號(hào),面板上相應(yīng)類型的運(yùn)行指示燈閃爍,表示波形正在輸出,LED顯示波形類型編號(hào),頻率值、電壓幅值等波形參數(shù);7、 波形發(fā)生器在輸出信號(hào)時(shí),按下任意一個(gè)鍵,就停止波形信號(hào)輸出,等待重新設(shè)置參數(shù),設(shè)置過(guò)程如上所述,如果不改變參數(shù),可按下“EN”鍵,繼續(xù)輸出原波形信號(hào);8、 要停止波形發(fā)生器的使用,可按下復(fù)位按鈕,將系統(tǒng)復(fù)位,然后關(guān)閉電源。硬件組成部分通過(guò)綜合比較,決定選用獲得廣泛應(yīng)用,性能價(jià)格高的常用芯片來(lái)構(gòu)成硬件電路。單片機(jī)采用MCS-51系列的89C51(一塊),74LS244和74LS373(各一塊),反相驅(qū)動(dòng)器 ULN2803A(一塊),運(yùn)算放大器 LM324(一塊) 波形發(fā)生器的硬件電路由單片機(jī)、鍵盤顯示器接口電路、波形轉(zhuǎn)換(D/ A)電路和電源線路等四部分構(gòu)成。1.單片機(jī)電路功能:形成掃描碼,鍵值識(shí)別,鍵功能處理,完成參數(shù)設(shè)置;形成顯示段碼,向LED顯示接口電路輸出;產(chǎn)生定時(shí)中斷;形成波形的數(shù)字編碼,并輸出到D/A接口電路;如電路原理圖所示: 89C51的P0口和P2口作為擴(kuò)展I/O口,與8255、0832、74LS373相連接,可尋址片外的寄存器。單片機(jī)尋址外設(shè),采用存儲(chǔ)器映像方式,外部接口芯片與內(nèi)部存儲(chǔ)器統(tǒng)一編址,89C51提供16根地址線P0(分時(shí)復(fù)用)和P2,P2口提供高8位地址線,P0口提供低8位地址線。P0口同時(shí)還要負(fù)責(zé)與8255,0832的數(shù)據(jù)傳遞。P2.7是8255的片選信號(hào),P2.6是0832(1)的片選,P2.5是0832(2)的片選,低電平有效,P0.0、P0.1經(jīng)過(guò)74LS373鎖存后,送到8255的A1、A2作,片內(nèi)A口,B口,C口,控制口等寄存器的字選。89C51的P1口的低4位連接4只發(fā)光三極管,作為波形類型指示燈,表示正在輸出的波形是什么類型。單片機(jī)89C51內(nèi)部有兩個(gè)定時(shí)器/計(jì)數(shù)器,在波形發(fā)生器中使用T0作為中斷源。不同的頻率值對(duì)應(yīng)不同的定時(shí)初值,定時(shí)器的溢出信號(hào)作為中斷請(qǐng)求。控制定時(shí)器中斷的特殊功能寄存器設(shè)置如下:定時(shí)控制寄存器TCON=(00010000)工作方式選擇寄存器(TMOD)=(00000000)中斷允許控制寄存器(IE)=(10000010)2、鍵盤顯示器接口電路功能:驅(qū)動(dòng)6位數(shù)碼管動(dòng)態(tài)顯示; 提供響應(yīng)界面; 掃面鍵盤; 提供輸入按鍵。由并口芯片8255,鎖存器74LS273,74LS244,反向驅(qū)動(dòng)器ULN2803A,6位共陰極數(shù)碼管(LED)和4×4行列式鍵盤組成。8255的C口作為鍵盤的I/O接口,C口的低4位輸出到掃描碼,高4位作為輸入行狀態(tài),按鍵的分布如圖所示。8255的A口作為L(zhǎng)ED段碼輸出口,與74LS244相連接,B口作為L(zhǎng)ED的位選信號(hào)輸出口,與ULN2803A相連接。8255內(nèi)部的4個(gè)寄存器地址分配如下:控制口:7FFFH , A口:7FFFCH , B口:7FFDH , C口:7FFEH 3、D/A電路功能:將波形樣值的數(shù)字編碼轉(zhuǎn)換成模擬值;完成單極性向雙極性的波形輸出;構(gòu)成由兩片0832和一塊LM324運(yùn)放組成。0832(1)是參考電壓提供者,單片機(jī)向0832(1)內(nèi)的鎖存器送數(shù)字編碼,不同的編碼會(huì)產(chǎn)生不同的輸出值,在本發(fā)生器中,可輸出1V、2V、3V、4V、5V等五個(gè)模擬值,這些值作為0832(2)的參考電壓,使0832(2)輸出波形信號(hào)時(shí),其幅度是可調(diào)的。0832(2)用于產(chǎn)生各種波形信號(hào),單片機(jī)在波形產(chǎn)生程序的控制下,生成波形樣值編碼,并送到0832(2)中的鎖存器,經(jīng)過(guò)D/A轉(zhuǎn)換,得到波形的模擬樣值點(diǎn),假如N個(gè)點(diǎn)就構(gòu)成波形的一個(gè)周期,那么0832(2)輸出N個(gè)樣值點(diǎn)后,樣值點(diǎn)形成運(yùn)動(dòng)軌跡,就是波形信號(hào)的一個(gè)周期。重復(fù)輸出N個(gè)點(diǎn)后,由此成第二個(gè)周期,第三個(gè)周期……。這樣0832(2)就能連續(xù)的輸出周期變化的波形信號(hào)。運(yùn)放A1是直流放大器,運(yùn)放A2是單極性電壓放大器,運(yùn)放A3是雙極性驅(qū)動(dòng)放大器,使波形信號(hào)能帶得起負(fù)載。地址分配:0832(1):DFFFH ,0832(2):BFFFH4、電源電路:功能:為波形發(fā)生器提供直流能量;構(gòu)成由變壓器、整流硅堆,穩(wěn)壓塊7805組成。220V的交流電,經(jīng)過(guò)開關(guān),保險(xiǎn)管(1.5A/250V),到變壓器降壓,由220V降為10V,通過(guò)硅堆將交流電變成直流電,對(duì)于諧波,用4700μF的電解電容給予濾除。為保證直流電壓穩(wěn)定,使用7805進(jìn)行穩(wěn)壓。最后,+5V電源配送到各用電負(fù)載。
標(biāo)簽: 波形發(fā)生器 原理圖 電路圖 源程序
上傳時(shí)間: 2013-11-08
上傳用戶:685
微型機(jī)算計(jì)發(fā)展概述人類從原始社會(huì)學(xué)會(huì)使用工具以來(lái)到現(xiàn)代社會(huì)經(jīng)歷了三次大的產(chǎn)業(yè)革命:農(nóng)業(yè)革命、工業(yè)革命、信息革命。而信息革命是以計(jì)算機(jī)技術(shù)和通信技術(shù)的發(fā)展和普及為代表的。人類已進(jìn)入了高速發(fā)展的現(xiàn)代時(shí)期。其中計(jì)算機(jī)科學(xué)和技術(shù)發(fā)展之快,是任何其他技術(shù)都無(wú)法相提并論的自從1946年美國(guó)賓夕法尼亞大學(xué)研制成功的世界上第一臺(tái)電子計(jì)算機(jī)到現(xiàn)在已50多年的歷史。計(jì)算機(jī)的發(fā)展經(jīng)歷了四代:第一代:電子管電路計(jì)算機(jī),電子管數(shù):18800個(gè);繼電器數(shù)量:5000個(gè);耗電量:150KW;重量:30t;占地面積:150平方米;運(yùn)算速度:5000次加法運(yùn)算/s。第二代:晶體管電路計(jì)算機(jī)(60年代初)第三代:小規(guī)模集成電路計(jì)算機(jī)。第四代:大規(guī)模(LSI)和超大規(guī)模(VSLI)集成電路計(jì)算機(jī)。第四代計(jì)算機(jī)基本情況:運(yùn)算速度為每秒幾千億次到幾萬(wàn)億次;從數(shù)值計(jì)算和數(shù)據(jù)處理到目前進(jìn)行知識(shí)處理的人工智能階段;計(jì)算機(jī)不僅可以處理文字、字符、圖形圖象信息,而且可以處理音頻、視頻等多媒體信息;計(jì)算機(jī)正朝著智能化和多媒體化方向發(fā)展。微型計(jì)算機(jī)的定義:以微處理器為核心,再配上半導(dǎo)體存儲(chǔ)器、輸入/輸出接口電路、系統(tǒng)總線及其它支持邏輯電路組成的計(jì)算機(jī)稱微型計(jì)算機(jī)。在1971年美國(guó)Intel公司首先研制成功世界上第一塊微處理器芯片4004以來(lái),差不多每隔2~3年就推出一代新的微處理器產(chǎn)品;如今已推出了第五代微處理器。因?yàn)槲⑻幚砥魇俏⑿陀?jì)算機(jī)的核心部件,它的性能在很大程度上決定了微型計(jì)算機(jī)的性能,所以微型計(jì)算機(jī)的發(fā)展是以微處理器的發(fā)展而更新?lián)Q代的。微處理器和微型計(jì)算機(jī)的發(fā)展:1.第一代微處理器和微型計(jì)算機(jī):(1971~1973年)——4位CPU和低檔8位處理器,典型的產(chǎn)品有:Intel 4004、改進(jìn)型的4040,是4位處理器,以它為核心構(gòu)成的微機(jī)是MCS-4。Intel 8008是8位通用微處理器,以它為核心所構(gòu)的微機(jī)是MCS-8。參數(shù):芯片采用PMOS工藝;集成度為2000管/片;時(shí)鐘頻率1MHz;平均指令執(zhí)行時(shí)間為20μs。2.第二代微處理器和微型計(jì)算機(jī)(1973~1978年)——成熟的8位CPU,典型的產(chǎn)品有:Intel 8080(1973年由Intel公司推出)MC6800 (1974年由美國(guó)Motorola推出。Z-80 (1975年由Zilog公司推出。Intel 8085 (1976年由Intel公司推出,是Intel 8080的改進(jìn)型。MOS 6502,由MOS公司推出,它是IBM PC機(jī)問世之前世界上最流行的微型計(jì)算機(jī)Apple2(蘋果機(jī))的CPU。第二代微處理器的參數(shù):芯片工藝采用NMOS工藝,集成度達(dá)到5000~9000管/片;時(shí)鐘頻率2~4MHz;平均指令執(zhí)行時(shí)間為1~2μs;具有多種尋址方式,指令系統(tǒng)完善,基本指令100多條。特點(diǎn):具有中斷、DMA等控制功能;也考慮了兼容性、接口標(biāo)準(zhǔn)化和通用性、配套的外圍電路功能和種類齊全。在軟件方面:主要是匯編,還有一些簡(jiǎn)單的高級(jí)語(yǔ)言和操作系統(tǒng)。
上傳時(shí)間: 2013-11-24
上傳用戶:蔣清華嗯
設(shè)計(jì)一個(gè)單片機(jī)控制的簡(jiǎn)易定時(shí)報(bào)警器。要求根據(jù)設(shè)定的初始值(1-59秒)進(jìn)行倒計(jì)時(shí),當(dāng)計(jì)時(shí)到0時(shí)數(shù)碼管閃爍“00”(以1Hz閃爍),按鍵功能如下:(1)設(shè)定鍵:在倒計(jì)時(shí)模式時(shí),按下此鍵后停止倒計(jì)時(shí),進(jìn)入設(shè)置狀態(tài);如果已經(jīng)處于設(shè)置狀態(tài)則此鍵無(wú)效。(2)增一鍵:在設(shè)置狀態(tài)時(shí),每按一次遞增鍵,初始值的數(shù)字增1。(3)遞一鍵:在設(shè)置狀態(tài)時(shí),每按一次遞減鍵,初始值的數(shù)字減1。(4)確認(rèn)鍵:在設(shè)置狀態(tài)時(shí),按下此鍵后,單片機(jī)按照新的初始值進(jìn)行倒計(jì)時(shí)及顯示倒計(jì)時(shí)的數(shù)字。如果已經(jīng)處于計(jì)時(shí)狀態(tài)則此鍵無(wú)效。3.1.2 模塊1:系統(tǒng)設(shè)計(jì)(1)任務(wù)分析與整體設(shè)計(jì)思路根據(jù)題目的要求,需要實(shí)現(xiàn)如下幾個(gè)方面的功能。計(jì)時(shí)功能:要實(shí)現(xiàn)計(jì)時(shí)功能則需要使用定時(shí)器來(lái)計(jì)時(shí),通過(guò)設(shè)置定時(shí)器的初始值來(lái)控制溢出中斷的時(shí)間間隔,再利用一個(gè)變量記錄定時(shí)器溢出的次數(shù),達(dá)到定時(shí)1秒中的功能。然后,當(dāng)計(jì)時(shí)每到1秒鐘后,倒計(jì)時(shí)的計(jì)數(shù)器減1。當(dāng)?shù)褂?jì)時(shí)計(jì)數(shù)器到0時(shí),觸發(fā)另一個(gè)標(biāo)志變量,進(jìn)入閃爍狀態(tài)。顯示功能:顯示倒計(jì)時(shí)的數(shù)字要采用動(dòng)態(tài)掃描的方式將數(shù)字拆成“十位”和“個(gè)位”動(dòng)態(tài)掃描顯示。如果處于閃爍狀態(tài),則可以不需要?jiǎng)討B(tài)掃描顯示,只需要控制共陰極數(shù)碼管的位控線,實(shí)現(xiàn)數(shù)碼管的滅和亮。鍵盤掃描和運(yùn)行模式的切換:主程序在初始化一些變量和寄存器之后,需要不斷循環(huán)地讀取鍵盤的狀態(tài)和動(dòng)態(tài)掃描數(shù)碼管顯示相應(yīng)的數(shù)字。根據(jù)鍵盤的按鍵值實(shí)現(xiàn)設(shè)置狀態(tài)、計(jì)時(shí)狀態(tài)的切換。 (2)單片機(jī)型號(hào)及所需外圍器件型號(hào),單片機(jī)硬件電路原理圖選用MCS-51系列AT89S51單片機(jī)作為微控制器,選擇兩個(gè)四聯(lián)的共陰極數(shù)碼管組成8位顯示模塊,由于AT89S51單片機(jī)驅(qū)動(dòng)能力有限,采用兩片74HC244實(shí)現(xiàn)總線的驅(qū)動(dòng),一個(gè)74HC244完成位控線的控制和驅(qū)動(dòng),另一個(gè)74HC244完成數(shù)碼管的7段碼輸出,在輸出口上各串聯(lián)一個(gè)100歐姆的電阻對(duì)7段數(shù)碼管限流。由于鍵盤數(shù)量不多,選擇獨(dú)立式按鍵與P1口連接作為四個(gè)按鍵輸入。沒有鍵按下時(shí)P1.0-P1.3為高電平,當(dāng)有鍵按下時(shí),P1.0-P1.3相應(yīng)管腳為低電平。電路原理圖如圖3-1所示。
標(biāo)簽: 單片機(jī)開發(fā) 工程 案例分析
上傳時(shí)間: 2013-11-13
上傳用戶:曹云鵬
一、實(shí)驗(yàn)?zāi)康模保莆斩〞r(shí)/計(jì)數(shù)器、輸入/輸出接口電路設(shè)計(jì)方法。 2.掌握中斷控制編程技術(shù)的方法和應(yīng)用。3.掌握8086匯編語(yǔ)言程序設(shè)計(jì)方法。 二、實(shí)驗(yàn)內(nèi)容與要求 微機(jī)燈光控制系統(tǒng)主要用于娛樂場(chǎng)所的彩燈控制。系統(tǒng)的彩燈共有12組,在實(shí)驗(yàn)時(shí)用12個(gè)發(fā)光二極管模擬。1. 基本要求:燈光控制共有8種模式,如12個(gè)燈依次點(diǎn)亮;12個(gè)燈同時(shí)閃爍等八種。系統(tǒng)可以通過(guò)鍵盤和顯示屏的人機(jī)對(duì)話,將8種模式進(jìn)行任意個(gè)數(shù)、任意次序的連接組合。系統(tǒng)不斷重復(fù)執(zhí)行輸入的模式組合,直至鍵盤有任意一個(gè)鍵按下,退出燈光控制系統(tǒng),返回DOS系統(tǒng)。2. 提高要求:音樂彩燈控制系統(tǒng),根據(jù)音樂的變化控制彩燈的變化,主要有以下幾種:第一種為音樂節(jié)奏控制彩燈,按音樂的節(jié)拍變換彩燈花樣。第二種音律的強(qiáng)弱(信號(hào)幅度大小)控制彩燈。強(qiáng)音時(shí),燈的亮度加大,且被點(diǎn)亮的數(shù)目增多。第三種按音調(diào)高低(信號(hào)頻率高低)控制彩燈。低音時(shí),某一部分燈點(diǎn)亮;高音時(shí),另一部分點(diǎn)亮。 三、實(shí)驗(yàn)報(bào)告要求 1.設(shè)計(jì)目的和內(nèi)容 2.總體設(shè)計(jì) 3.硬件設(shè)計(jì):原理圖(接線圖)及簡(jiǎn)要說(shuō)明 4.軟件設(shè)計(jì)框圖及程序清單5.設(shè)計(jì)結(jié)果和體會(huì)(包括遇到的問題及解決的方法) 四、設(shè)計(jì)原理我們以背景霓虹燈的一種顯示效果為例,介紹控制霓虹燈顯示的基本原理。設(shè)有一排 n 段水平排列的霓虹燈,某種顯示方式為從左到右每0.2 秒逐個(gè)點(diǎn)亮。其控制過(guò)程如下: 若以“ 1 ”代表霓虹燈點(diǎn)亮,以“ 0 ”代表霓虹燈熄滅,則開始時(shí)刻, n 段霓虹燈的控制信號(hào)均為“ 0 ”,隨后,控制器將一幀 n 個(gè)數(shù)據(jù)送至 n 段霓虹燈的控制端,其中,最左邊的一段霓虹燈對(duì)應(yīng)的控制數(shù)據(jù)為“ 1 ”,其余的數(shù)據(jù)均為零,即 1000 … 000 。當(dāng) n 個(gè)數(shù)據(jù)送完以后,控制器停止送數(shù),保留這種狀態(tài)(定時(shí)) 0.2 秒,此時(shí),第 1 段霓虹燈被點(diǎn)亮,其余霓虹燈熄滅。隨后,控制器又在極短的時(shí)間內(nèi)將數(shù)據(jù) 1100 … 000 送至霓虹燈的控制端,并定時(shí) 0.2 秒,這段時(shí)間,前兩段霓虹燈被點(diǎn)亮。由于送數(shù)據(jù)的過(guò)程很快,我們觀測(cè)到的效果是第一段霓虹燈被點(diǎn)亮 0.2 秒后,第 2 段霓虹燈接著被點(diǎn)亮,即每隔 0.2 秒顯示一幀圖樣。如此下去,最后控制器將數(shù)據(jù) 1111 … 111 送至 n 段霓虹燈的控制端,則 n 段霓虹燈被全部點(diǎn)亮。 只要改變送至每段霓虹燈的數(shù)據(jù),即可改變霓虹燈的顯示方式,顯然,我們可以通過(guò)合理地組合數(shù)據(jù)(編程)來(lái)得到霓虹燈的不同顯示方式。 五、總體方案論證分析系統(tǒng)設(shè)計(jì)思路如下:1) 采集8位開關(guān)輸入信號(hào),若輸入數(shù)據(jù)為0時(shí),將其修改為1。確定輸入的硬件接口電路。采樣輸入開關(guān)量,并存入NUM的軟件程序段。2) 以12個(gè)燈依次點(diǎn)亮為例(即燈光控制模式M1),考慮與其相應(yīng)的燈光顯示代碼數(shù)據(jù)。確定顯示代碼數(shù)據(jù)輸出的接口電路。輸出一個(gè)同期顯示代碼的軟件程序段(暫不考慮時(shí)隙的延時(shí)要求)。3) 應(yīng)用定時(shí)中斷服務(wù)和NUM數(shù)據(jù),實(shí)現(xiàn)t=N×50ms的方法。4) 實(shí)現(xiàn)某一種模式燈光顯示控制中12個(gè)時(shí)隙一個(gè)周期,共重復(fù)四次的控制方法。要求在初始化時(shí)采樣開關(guān)輸入數(shù)據(jù)NUM,并以此控制每一時(shí)隙的延時(shí)時(shí)間;在每一時(shí)隙結(jié)束時(shí),檢查有無(wú)鍵按下,若是退出鍵按下,則結(jié)束燈光控制,返回DOS系統(tǒng),若是其他鍵就返回主菜單,重新輸入控制模式數(shù)據(jù)。5) 通過(guò)人機(jī)對(duì)話,輸入8種燈光顯示控制模式的任意個(gè)數(shù)、任意次序連接組合的控制模式數(shù)據(jù)串(以ENTER鍵結(jié)尾)。對(duì)輸入的數(shù)據(jù)進(jìn)行檢查,若數(shù)據(jù)都在1 - 8之間,則存入INBUF;若有錯(cuò)誤,則通過(guò)屏幕顯示輸入錯(cuò)誤,準(zhǔn)備重新輸入燈光顯示控制模式數(shù)據(jù)。6) 依次讀取INBUF中的控制模式數(shù)據(jù)進(jìn)行不同模式的燈光顯示控制,在沒有任意鍵按下的情況下,系統(tǒng)從第一個(gè)控制模式數(shù)據(jù)開始,順序工作到最后一個(gè)控制模式數(shù)據(jù)后,又返回到第一個(gè)控制模式數(shù)據(jù),不斷重復(fù)循環(huán)進(jìn)行燈光顯示控制。7) 本系統(tǒng)的軟件在總體上有兩部份,即主程序(MAIN)和實(shí)時(shí)中斷服務(wù)程序(INTT)。討論以功能明確、相互界面分割清晰的軟件程序模塊化設(shè)計(jì)方法。即確定有關(guān)功能模塊,并畫出以功能模塊表示的主程序(MAIN)流程框圖和定時(shí)中斷服務(wù)程序的流程框圖。 六、硬件電路設(shè)計(jì) 以微機(jī)實(shí)驗(yàn)平臺(tái)和PC機(jī)資源為硬件設(shè)計(jì)的基礎(chǔ),不需要外加電路。主要利用了以下的資源:1.8255并行口電路8255并行口電路主要負(fù)責(zé)數(shù)據(jù)的輸入與輸出,可以輸出數(shù)據(jù)控制發(fā)光二極管的亮滅和讀取乒乓開關(guān)的數(shù)據(jù)。實(shí)驗(yàn)時(shí)可以將8255的A口、B口和一組發(fā)光二極管相連,C口和乒乓開關(guān)相連。2.8253定時(shí)/計(jì)數(shù)器8253定時(shí)/計(jì)數(shù)器和8259中斷控制器一起實(shí)現(xiàn)時(shí)隙定時(shí)。本設(shè)計(jì)的定時(shí)就是采用的t=N×50ms的方法,50ms由8253定時(shí)/計(jì)數(shù)器的計(jì)數(shù)器0控制定時(shí),N是在中斷服務(wù)程序中軟件計(jì)時(shí)。8253的OUT0接到IRQ2,產(chǎn)生中斷請(qǐng)求信號(hào)。8253定時(shí)/計(jì)數(shù)器定時(shí)結(jié)束會(huì)發(fā)出中斷信號(hào),進(jìn)入中斷服務(wù)程序。3.PC機(jī)資源本設(shè)計(jì)除了利用PC機(jī)作為控制器之外,還利用了PC機(jī)的鍵盤和顯示器。鍵盤主要是輸入控制模式數(shù)據(jù),顯示器就是顯示提示信息。 七、軟件設(shè)計(jì) 軟件主要分為主程序(MAIN)和中斷服務(wù)程序(INTT),主程序包含系統(tǒng)初始化、讀取乒乓開關(guān)、讀取控制模式數(shù)據(jù)以及按鍵處理等模塊。中斷服務(wù)程序主要是定時(shí)時(shí)間到后根據(jù)控制模式數(shù)據(jù)點(diǎn)亮相應(yīng)的發(fā)光二極管。1.主程序主程序的程序流程圖如圖1所示。
上傳時(shí)間: 2014-04-05
上傳用戶:q986086481
單片機(jī)音樂中音調(diào)和節(jié)拍的確定方法:調(diào)號(hào)-音樂上指用以確定樂曲主音高度的符號(hào)。很明顯一個(gè)八度就有12個(gè)半音。A、B、C、D、E、F、G。經(jīng)過(guò)聲學(xué)家的研究,全世界都用這些字母來(lái)表示固定的音高。比如,A這個(gè)音,標(biāo)準(zhǔn)的音高為每秒鐘振動(dòng)440周。 升C調(diào):1=#C,也就是降D調(diào):1=BD;277(頻率)升D調(diào):1=#D,也就是降E調(diào):1=BE;311升F調(diào):1=#F,也就是降G調(diào):1=BG;369升G調(diào):1=#G,也就是降A(chǔ)調(diào):1=BA;415升A調(diào):1=#A,也就是降B調(diào):1=BB。466,C 262 #C277 D 294 #D(bE)311 E 330 F 349 #F369 G 392 #G415A 440. #A466 B 494 所謂1=A,就是說(shuō),這首歌曲的“導(dǎo)”要唱得同A一樣高,人們也把這首歌曲叫做A調(diào)歌曲,或叫“唱A調(diào)”。1=C,就是說(shuō),這首歌曲的“導(dǎo)”要唱得同C一樣高,或者說(shuō)“這歌曲唱C調(diào)”。同樣是“導(dǎo)”,不同的調(diào)唱起來(lái)的高低是不一樣的。各調(diào)的對(duì)應(yīng)的標(biāo)準(zhǔn)頻率為: 單片機(jī)演奏音樂時(shí)音調(diào)和節(jié)拍的確定方法 經(jīng)常看到一些剛學(xué)單片機(jī)的朋友對(duì)單片機(jī)演奏音樂比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識(shí)做一些簡(jiǎn)介,但愿能對(duì)單片機(jī)演奏音樂比較有興趣而又不知其解的朋友能有所啟迪。 一般說(shuō)來(lái),單片機(jī)演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能象電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個(gè)音符唱多高的頻率,節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。 在音樂中所謂“音調(diào)”,其實(shí)就是我們常說(shuō)的“音高”。在音樂中常把中央C上方的A音定為標(biāo)準(zhǔn)音高,其頻率f=440Hz。當(dāng)兩個(gè)聲音信號(hào)的頻率相差一倍時(shí),也即f2=2f1時(shí),則稱f2比f(wàn)1高一個(gè)倍頻程, 在音樂中1(do)與 ,2(來(lái))與 ……正好相差一個(gè)倍頻程,在音樂學(xué)中稱它相差一個(gè)八度音。在一個(gè)八度音內(nèi),有12個(gè)半音。以1—i八音區(qū)為例, 12個(gè)半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。這12個(gè)音階的分度基本上是以對(duì)數(shù)關(guān)系來(lái)劃分的。如果我們只要知道了這十二個(gè)音符的音高,也就是其基本音調(diào)的頻率,我們就可根據(jù)倍頻程的關(guān)系得到其他音符基本音調(diào)的頻率。 知道了一個(gè)音符的頻率后,怎樣讓單片機(jī)發(fā)出相應(yīng)頻率的聲音呢?一般說(shuō)來(lái),常采用的方法就是通過(guò)單片機(jī)的定時(shí)器定時(shí)中斷,將單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反,或者說(shuō)來(lái)回清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時(shí)器予置不同的定時(shí)值就可實(shí)現(xiàn)。那么怎樣確定一個(gè)頻率所對(duì)應(yīng)的定時(shí)器的定時(shí)值呢?以標(biāo)準(zhǔn)音高A為例: A的頻率f = 440 Hz,其對(duì)應(yīng)的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反的時(shí)間應(yīng)為:t = T/2 = 2272/2 = 1136μs這個(gè)時(shí)間t也就是單片機(jī)上定時(shí)器應(yīng)有的中斷觸發(fā)時(shí)間。一般情況下,單片機(jī)奏樂時(shí),其定時(shí)器為工作方式1,它以振蕩器的十二分頻信號(hào)為計(jì)數(shù)脈沖。設(shè)振蕩器頻率為f0,則定時(shí)器的予置初值由下式來(lái)確定: t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時(shí)器待確定的計(jì)數(shù)初值。因此定時(shí)器的高低計(jì)數(shù)器的初值為: TH = THL / 256 = ( TALL – t* f0/12) / 256 TL = THL % 256 = ( TALL – t* f0/12) %256 將t=1136μs代入上面兩式(注意:計(jì)算時(shí)應(yīng)將時(shí)間和頻率的單位換算一致),即可求出標(biāo)準(zhǔn)音高A在單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(shù)器的予置初值為 : TH440Hz = (65536 – 1136 * 12/12) /256 = FBH TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據(jù)上面的求解方法,我們就可求出其他音調(diào)相應(yīng)的計(jì)數(shù)器的予置初值。 音符的節(jié)拍我們可以舉例來(lái)說(shuō)明。在一張樂譜中,我們經(jīng)常會(huì)看到這樣的表達(dá)式,如1=C 、1=G …… 等等,這里1=C,1=G表示樂譜的曲調(diào),和我們前面所談的音調(diào)有很大的關(guān)聯(lián), 、 就是用來(lái)表示節(jié)拍的。以 為例加以說(shuō)明,它表示樂譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。比如: 其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),3、4的時(shí)長(zhǎng)為八分音符的一半,即為十六分音符長(zhǎng),5的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),6的時(shí)長(zhǎng)為四分音符長(zhǎng)。那么一拍到底該唱多長(zhǎng)呢?一般說(shuō)來(lái),如果樂曲沒有特殊說(shuō)明,一拍的時(shí)長(zhǎng)大約為400—500ms 。我們以一拍的時(shí)長(zhǎng)為400ms為例,則當(dāng)以四分音符為節(jié)拍時(shí),四分音符的時(shí)長(zhǎng)就為400ms,八分音符的時(shí)長(zhǎng)就為200ms,十六分音符的時(shí)長(zhǎng)就為100ms。可見,在單片機(jī)上控制一個(gè)音符唱多長(zhǎng)可采用循環(huán)延時(shí)的方法來(lái)實(shí)現(xiàn)。首先,我們確定一個(gè)基本時(shí)長(zhǎng)的延時(shí)程序,比如說(shuō)以十六分音符的時(shí)長(zhǎng)為基本延時(shí)時(shí)間,那么,對(duì)于一個(gè)音符,如果它為十六分音符,則只需調(diào)用一次延時(shí)程序,如果它為八分音符,則只需調(diào)用二次延時(shí)程序,如果它為四分音符,則只需調(diào)用四次延時(shí)程序,依次類推。通過(guò)上面關(guān)于一個(gè)音符音調(diào)和節(jié)拍的確定方法,我們就可以在單片機(jī)上實(shí)現(xiàn)演奏音樂了。具體的實(shí)現(xiàn)方法為:將樂譜中的每個(gè)音符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲(chǔ)器中,通過(guò)程序取出一個(gè)音符的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個(gè)音符的相關(guān)參數(shù)……,如此直到播放完畢最后一個(gè)音符,根據(jù)需要也可循環(huán)不停地播放整個(gè)樂曲。另外,對(duì)于樂曲中的休止符,一般將其音調(diào)參數(shù)設(shè)為FFH,F(xiàn)FH,其節(jié)拍參數(shù)與其他音符的節(jié)拍參數(shù)確定方法一致,樂曲結(jié)束用節(jié)拍參數(shù)為00H來(lái)表示。下面給出部分音符(三個(gè)八度音)的頻率以及以單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(shù)器的予置初值 : C調(diào)音符 頻率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC調(diào)音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7頻率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C調(diào)音符 頻率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02
上傳時(shí)間: 2013-10-20
上傳用戶:哈哈haha
電子密碼鎖的設(shè)計(jì)與實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康?nbsp;1.進(jìn)一步掌握鍵盤掃描和LED顯示的程序設(shè)計(jì)。 2.了解按鍵消抖的方法。 3.綜合運(yùn)用微機(jī)原理的軟硬件知識(shí)。 二、實(shí)驗(yàn)內(nèi)容與要求 1.基本要求 (1)具有密碼輸入功能,密碼最多為6位;(2)設(shè)置退格鍵,以便刪除輸入錯(cuò)誤的密碼;(3)在輸入的密碼時(shí)數(shù)碼管上只顯示8,并根據(jù)輸入位數(shù)依次橫移;(4)設(shè)置確認(rèn)鍵,當(dāng)確認(rèn)鍵按下后,判斷輸入密碼是否正確;(5)當(dāng)輸入密碼正確時(shí),點(diǎn)亮發(fā)光二極管;當(dāng)輸入密碼不正確時(shí),發(fā)光二極管不亮并且蜂鳴器報(bào)警,重新輸入,當(dāng)三次密碼輸入不正確時(shí),系統(tǒng)應(yīng)鎖定鍵盤10s。2.提高要求 將用戶分為管理者和使用者,管理者擁有超級(jí)密碼,可以修改其他人的密碼。使用者不能修改密碼。 三、實(shí)驗(yàn)報(bào)告要求 1.設(shè)計(jì)目的和內(nèi)容 2.總體設(shè)計(jì) 3.硬件設(shè)計(jì):原理圖(接線圖)及簡(jiǎn)要說(shuō)明 4.軟件設(shè)計(jì)框圖及程序清單5.設(shè)計(jì)結(jié)果和體會(huì)(包括遇到的問題及解決的方法) 四、總體設(shè)計(jì) 電子密碼鎖的原理是:從鍵盤輸入一組密碼,CPU把該密碼和設(shè)置密碼比較,對(duì)則將鎖打開(不同鎖的控制方式不一樣,比如加電控制電磁鐵抽回,從而打開),錯(cuò)則要求重新輸入,并記錄錯(cuò)誤次數(shù),如果三次錯(cuò)誤,則被強(qiáng)制鎖定并報(bào)警,除非超級(jí)密碼或者其他的手段打開,比如延時(shí)一段時(shí)間。 初步設(shè)計(jì)思路如下: 1.輸入密碼用矩形鍵盤,包括數(shù)字鍵和功能鍵,功能鍵包括退格鍵和確認(rèn)鍵。 2.LED數(shù)碼管顯示輸入密碼,但是只是輸出顯示符號(hào)8 。采用動(dòng)態(tài)掃描輸出。 3.用發(fā)光二極管模擬鎖的情況,鎖關(guān)時(shí)發(fā)光二極管滅,打開時(shí)發(fā)光二極管亮。 4.輸入密碼錯(cuò)誤時(shí)報(bào)警,3次輸入錯(cuò)誤時(shí)鍵盤鎖定10s,鍵盤無(wú)法接收數(shù)據(jù)。 軟件的設(shè)計(jì)主要包括矩形鍵盤鍵值的讀取、LED動(dòng)態(tài)掃描輸出程序、密碼判斷程序和報(bào)警程序。 五、硬件設(shè)計(jì) 根據(jù)設(shè)計(jì)思路,硬件電路可通過(guò)實(shí)驗(yàn)平臺(tái)上的一些功能模塊電路組成,由于實(shí)驗(yàn)平臺(tái)上的各個(gè)功能模塊已經(jīng)設(shè)計(jì)好,用戶在使用時(shí)只要設(shè)計(jì)模塊間電路的連接,因此,硬件電路的設(shè)計(jì)及實(shí)現(xiàn)相對(duì)簡(jiǎn)單。完整系統(tǒng)的硬件連接如圖1所示。硬件電路由LED數(shù)碼管顯示模塊、按鍵模塊、發(fā)光二極管電路和蜂鳴器模塊組成。各個(gè)模塊的詳細(xì)說(shuō)明:1.LED數(shù)碼管模塊實(shí)驗(yàn)平臺(tái)上提供一組六個(gè)LED數(shù)碼管。插孔CS1用于數(shù)碼管段選的輸出選通,插孔CS2用于數(shù)碼管位選信號(hào)的輸出選通。本設(shè)計(jì)用6個(gè)數(shù)碼管來(lái)動(dòng)態(tài)顯示時(shí)分秒,動(dòng)態(tài)顯示的定時(shí)時(shí)間由8253定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)。8253主要是實(shí)現(xiàn)每位顯示時(shí)間1ms,由8253的計(jì)數(shù)器0來(lái)實(shí)現(xiàn)。Clk0接實(shí)驗(yàn)平臺(tái)分頻電路輸出Q6,f=46875hz。GATE0接8255的PA0,由8255的PA0輸出來(lái)控制計(jì)數(shù)器的起停。OUT0接8259的IRQ2,定時(shí)完成請(qǐng)求中斷,進(jìn)入中斷服務(wù)程序。軟件在中斷服務(wù)程序中LED數(shù)碼管顯示。
標(biāo)簽: 電子密碼鎖
上傳時(shí)間: 2013-10-16
上傳用戶:15070202241
PC機(jī)之間串口通信的實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康?nbsp;1.熟悉微機(jī)接口實(shí)驗(yàn)裝置的結(jié)構(gòu)和使用方法。 2.掌握通信接口芯片8251和8250的功能和使用方法。 3.學(xué)會(huì)串行通信程序的編制方法。 二、實(shí)驗(yàn)內(nèi)容與要求 1.基本要求主機(jī)接收開關(guān)量輸入的數(shù)據(jù)(二進(jìn)制或十六進(jìn)制),從鍵盤上按“傳輸”鍵(可自行定義),就將該數(shù)據(jù)通過(guò)8251A傳輸出去。終端接收后在顯示器上顯示數(shù)據(jù)。具體操作說(shuō)明如下:(1)出現(xiàn)提示信息“start with R in the board!”,通過(guò)調(diào)整乒乓開關(guān)的狀態(tài),設(shè)置8位數(shù)據(jù);(2)在小鍵盤上按“R”鍵,系統(tǒng)將此時(shí)乒乓開關(guān)的狀態(tài)讀入計(jì)算機(jī)I中,并顯示出來(lái),同時(shí)顯示經(jīng)串行通訊后,計(jì)算機(jī)II接收到的數(shù)據(jù);(3)完成后,系統(tǒng)提示“do you want to send another data? Y/N”,根據(jù)用戶需要,在鍵盤按下“Y”鍵,則重復(fù)步驟(1),進(jìn)行另一數(shù)據(jù)的通訊;在鍵盤按除“Y”鍵外的任意鍵,將退出本程序。2.提高要求 能夠進(jìn)行出錯(cuò)處理,例如采用奇偶校驗(yàn),出錯(cuò)重傳或者采用接收方回傳和發(fā)送方確認(rèn)來(lái)保證發(fā)送和接收正確。 三、設(shè)計(jì)報(bào)告要求 1.設(shè)計(jì)目的和內(nèi)容 2.總體設(shè)計(jì) 3.硬件設(shè)計(jì):原理圖(接線圖)及簡(jiǎn)要說(shuō)明 4.軟件設(shè)計(jì)框圖及程序清單5.設(shè)計(jì)結(jié)果和體會(huì)(包括遇到的問題及解決的方法) 四、8251A通用串行輸入/輸出接口芯片由于CPU與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串行接口中,必須要有“接收移位寄存器”(串→并)和“發(fā)送移位寄存器”(并→串)。能夠完成上述“串←→并”轉(zhuǎn)換功能的電路,通常稱為“通用異步收發(fā)器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251。8251A異步工作方式:如果8251A編程為異步方式,在需要發(fā)送字符時(shí),必須首先設(shè)置TXEN和CTS#為有效狀態(tài),TXEN(Transmitter Enable)是允許發(fā)送信號(hào),是命令寄存器中的一位;CTS#(Clear To Send)是由外設(shè)發(fā)來(lái)的對(duì)CPU請(qǐng)求發(fā)送信號(hào)的響應(yīng)信號(hào)。然后就開始發(fā)送過(guò)程。在發(fā)送時(shí),每當(dāng)CPU送往發(fā)送緩沖器一個(gè)字符,發(fā)送器自動(dòng)為這個(gè)字符加上1個(gè)起始位,并且按照編程要求加上奇/偶校驗(yàn)位以及1個(gè)、1.5個(gè)或者2個(gè)停止位。串行數(shù)據(jù)以起始位開始,接著是最低有效數(shù)據(jù)位,最高有效位的后面是奇/偶校驗(yàn)位,然后是停止位。按位發(fā)送的數(shù)據(jù)是以發(fā)送時(shí)鐘TXC的下降沿同步的,也就是說(shuō)這些數(shù)據(jù)總是在發(fā)送時(shí)鐘TXC的下降沿從8251A發(fā)出。數(shù)據(jù)傳輸?shù)牟ㄌ芈嗜Q于編程時(shí)指定的波特率因子,為發(fā)送器時(shí)鐘頻率的1、1/16或1/64。當(dāng)波特率指定為16時(shí),數(shù)據(jù)傳輸?shù)牟ㄌ芈示褪前l(fā)送器時(shí)鐘頻率的1/16。CPU通過(guò)數(shù)據(jù)總線將數(shù)據(jù)送到8251A的數(shù)據(jù)輸出緩沖寄存器以后,再傳輸?shù)桨l(fā)送緩沖器,經(jīng)移位寄存器移位,將并行數(shù)據(jù)變?yōu)榇袛?shù)據(jù),從TxD端送往外部設(shè)備。在8251A接收字符時(shí),命令寄存器的接收允許位RxE(Receiver Enable)必須為1。8251A通過(guò)檢測(cè)RxD引腳上的低電平來(lái)準(zhǔn)備接收字符,在沒有字符傳送時(shí)RxD端為高電平。8251A不斷地檢測(cè)RxD引腳,從RxD端上檢測(cè)到低電平以后,便認(rèn)為是串行數(shù)據(jù)的起始位,并且啟動(dòng)接收控制電路中的一個(gè)計(jì)數(shù)器來(lái)進(jìn)行計(jì)數(shù),計(jì)數(shù)器的頻率等于接收器時(shí)鐘頻率。計(jì)數(shù)器是作為接收器采樣定時(shí),當(dāng)計(jì)數(shù)到相當(dāng)于半個(gè)數(shù)位的傳輸時(shí)間時(shí)再次對(duì)RxD端進(jìn)行采樣,如果仍為低電平,則確認(rèn)該數(shù)位是一個(gè)有效的起始位。若傳輸一個(gè)字符需要16個(gè)時(shí)鐘,那么就是要在計(jì)數(shù)8個(gè)時(shí)鐘后采樣到低電平。之后,8251A每隔一個(gè)數(shù)位的傳輸時(shí)間對(duì)RxD端采樣一次,依次確定串行數(shù)據(jù)位的值。串行數(shù)據(jù)位順序進(jìn)入接收移位寄存器,通過(guò)校驗(yàn)并除去停止位,變成并行數(shù)據(jù)以后通過(guò)內(nèi)部數(shù)據(jù)總線送入接收緩沖器,此時(shí)發(fā)出有效狀態(tài)的RxRDY信號(hào)通知CPU,通知CPU8251A已經(jīng)收到一個(gè)有效的數(shù)據(jù)。一個(gè)字符對(duì)應(yīng)的數(shù)據(jù)可以是5~8位。如果一個(gè)字符對(duì)應(yīng)的數(shù)據(jù)不到8位,8251A會(huì)在移位轉(zhuǎn)換成并行數(shù)據(jù)的時(shí)候,自動(dòng)把他們的高位補(bǔ)成0。 五、系統(tǒng)總體設(shè)計(jì)方案根據(jù)系統(tǒng)設(shè)計(jì)的要求,對(duì)系統(tǒng)設(shè)計(jì)的總體方案進(jìn)行論證分析如下:1.獲取8位開關(guān)量可使用實(shí)驗(yàn)臺(tái)上的8255A可編程并行接口芯片,因?yàn)橹灰@取8位數(shù)據(jù)量,只需使用基本輸入和8位數(shù)據(jù)線,所以將8255A工作在方式0,PA0-PA7接實(shí)驗(yàn)臺(tái)上的8位開關(guān)量。2.當(dāng)使用串口進(jìn)行數(shù)據(jù)傳送時(shí),雖然同步通信速度遠(yuǎn)遠(yuǎn)高于異步通信,可達(dá)500kbit/s,但由于其需要有一個(gè)時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端和接收端之間的同步,硬件電路復(fù)雜,通常計(jì)算機(jī)之間的通信只采用異步通信。3.由于8251A本身沒有時(shí)鐘,需要外部提供,所以本設(shè)計(jì)中使用實(shí)驗(yàn)臺(tái)上的8253芯片的計(jì)數(shù)器2來(lái)實(shí)現(xiàn)。4:顯示和鍵盤輸入均使用DOS功能調(diào)用來(lái)實(shí)現(xiàn)。設(shè)計(jì)思路框圖,如下圖所示: 六、硬件設(shè)計(jì)硬件電路主要分為8位開關(guān)量數(shù)據(jù)獲取電路,串行通信數(shù)據(jù)發(fā)送電路,串行通信數(shù)據(jù)接收電路三個(gè)部分。1.8位開關(guān)量數(shù)據(jù)獲取電路該電路主要是利用8255并行接口讀取8位乒乓開關(guān)的數(shù)據(jù)。此次設(shè)計(jì)在獲取8位開關(guān)數(shù)據(jù)量時(shí)采用8255令其工作在方式0,A口輸入8位數(shù)據(jù),CS#接實(shí)驗(yàn)臺(tái)上CS1口,對(duì)應(yīng)端口為280H-283H,PA0-PA7接8個(gè)開關(guān)。2.串行通信電路串行通信電路本設(shè)計(jì)中8253主要為8251充當(dāng)頻率發(fā)生器,接線如下圖所示。
上傳時(shí)間: 2013-12-19
上傳用戶:小火車?yán)怖怖?/p>
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1