PC機之間串口通信的實現(xiàn)一、實驗?zāi)康?nbsp;1.熟悉微機接口實驗裝置的結(jié)構(gòu)和使用方法。 2.掌握通信接口芯片8251和8250的功能和使用方法。 3.學(xué)會串行通信程序的編制方法。 二、實驗內(nèi)容與要求 1.基本要求主機接收開關(guān)量輸入的數(shù)據(jù)(二進制或十六進制),從鍵盤上按“傳輸”鍵(可自行定義),就將該數(shù)據(jù)通過8251A傳輸出去。終端接收后在顯示器上顯示數(shù)據(jù)。具體操作說明如下:(1)出現(xiàn)提示信息“start with R in the board!”,通過調(diào)整乒乓開關(guān)的狀態(tài),設(shè)置8位數(shù)據(jù);(2)在小鍵盤上按“R”鍵,系統(tǒng)將此時乒乓開關(guān)的狀態(tài)讀入計算機I中,并顯示出來,同時顯示經(jīng)串行通訊后,計算機II接收到的數(shù)據(jù);(3)完成后,系統(tǒng)提示“do you want to send another data? Y/N”,根據(jù)用戶需要,在鍵盤按下“Y”鍵,則重復(fù)步驟(1),進行另一數(shù)據(jù)的通訊;在鍵盤按除“Y”鍵外的任意鍵,將退出本程序。2.提高要求 能夠進行出錯處理,例如采用奇偶校驗,出錯重傳或者采用接收方回傳和發(fā)送方確認來保證發(fā)送和接收正確。 三、設(shè)計報告要求 1.設(shè)計目的和內(nèi)容 2.總體設(shè)計 3.硬件設(shè)計:原理圖(接線圖)及簡要說明 4.軟件設(shè)計框圖及程序清單5.設(shè)計結(jié)果和體會(包括遇到的問題及解決的方法) 四、8251A通用串行輸入/輸出接口芯片由于CPU與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串行接口中,必須要有“接收移位寄存器”(串→并)和“發(fā)送移位寄存器”(并→串)。能夠完成上述“串←→并”轉(zhuǎn)換功能的電路,通常稱為“通用異步收發(fā)器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251。8251A異步工作方式:如果8251A編程為異步方式,在需要發(fā)送字符時,必須首先設(shè)置TXEN和CTS#為有效狀態(tài),TXEN(Transmitter Enable)是允許發(fā)送信號,是命令寄存器中的一位;CTS#(Clear To Send)是由外設(shè)發(fā)來的對CPU請求發(fā)送信號的響應(yīng)信號。然后就開始發(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端送往外部設(shè)備。在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ù)。一個字符對應(yīng)的數(shù)據(jù)可以是5~8位。如果一個字符對應(yīng)的數(shù)據(jù)不到8位,8251A會在移位轉(zhuǎn)換成并行數(shù)據(jù)的時候,自動把他們的高位補成0。 五、系統(tǒng)總體設(shè)計方案根據(jù)系統(tǒng)設(shè)計的要求,對系統(tǒng)設(shè)計的總體方案進行論證分析如下:1.獲取8位開關(guān)量可使用實驗臺上的8255A可編程并行接口芯片,因為只要獲取8位數(shù)據(jù)量,只需使用基本輸入和8位數(shù)據(jù)線,所以將8255A工作在方式0,PA0-PA7接實驗臺上的8位開關(guān)量。2.當使用串口進行數(shù)據(jù)傳送時,雖然同步通信速度遠遠高于異步通信,可達500kbit/s,但由于其需要有一個時鐘來實現(xiàn)發(fā)送端和接收端之間的同步,硬件電路復(fù)雜,通常計算機之間的通信只采用異步通信。3.由于8251A本身沒有時鐘,需要外部提供,所以本設(shè)計中使用實驗臺上的8253芯片的計數(shù)器2來實現(xiàn)。4:顯示和鍵盤輸入均使用DOS功能調(diào)用來實現(xiàn)。設(shè)計思路框圖,如下圖所示: 六、硬件設(shè)計硬件電路主要分為8位開關(guān)量數(shù)據(jù)獲取電路,串行通信數(shù)據(jù)發(fā)送電路,串行通信數(shù)據(jù)接收電路三個部分。1.8位開關(guān)量數(shù)據(jù)獲取電路該電路主要是利用8255并行接口讀取8位乒乓開關(guān)的數(shù)據(jù)。此次設(shè)計在獲取8位開關(guān)數(shù)據(jù)量時采用8255令其工作在方式0,A口輸入8位數(shù)據(jù),CS#接實驗臺上CS1口,對應(yīng)端口為280H-283H,PA0-PA7接8個開關(guān)。2.串行通信電路串行通信電路本設(shè)計中8253主要為8251充當頻率發(fā)生器,接線如下圖所示。
上傳時間: 2013-12-19
上傳用戶:小火車啦啦啦
單片機系統(tǒng)軟件抗干擾方法:在提高硬件系統(tǒng)抗干擾能力的同時,軟件抗干擾以其設(shè)計靈活、節(jié)省硬件資源、可靠性好越來越受到重視。下面以MCS-51單片機系統(tǒng)為例,對微機系統(tǒng)軟件抗干擾方法進行研究。1、軟件抗干擾方法的研究在工程實踐中,軟件抗干擾研究的內(nèi)容主要是: 消除模擬輸入信號的嗓聲(如數(shù)字濾波技術(shù)); 程序運行混亂時使程序重入正軌的方法。本文針對后者提出了幾種有效的軟件抗干擾方法。1.1 指令冗余CPU取指令過程是先取操作碼,再取操作數(shù)。當PC受干擾出現(xiàn)錯誤,程序便脫離正常軌道“亂飛”,當亂飛到某雙字節(jié)指令,若取指令時刻落在操作數(shù)上,誤將操作數(shù)當作操作碼,程序?qū)⒊鲥e。若“飛”到了三字節(jié)指令,出錯機率更大。在關(guān)鍵地方人為插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫稱為指令冗余。通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個字節(jié)以上的NOP。這樣即使亂飛程序飛到操作數(shù)上,由于空操作指令NOP的存在,避免了后面的指令被當作操作數(shù)執(zhí)行,程序自動納入正軌。此外,對系統(tǒng)流向起重要作用的指令如RET、RETI、LCALL、LJMP、JC等指令之前插入兩條NOP,也可將亂飛程序納入正軌,確保這些重要指令的執(zhí)行。1.2 攔截技術(shù)所謂攔截,是指將亂飛的程序引向指定位置,再進行出錯處理。通常用軟件陷阱來攔截亂飛的程序。因此先要合理設(shè)計陷阱,其次要將陷阱安排在適當?shù)奈恢谩?.2.1 軟件陷阱的設(shè)計當亂飛程序進入非程序區(qū),冗余指令便無法起作用。通過軟件陷阱,攔截亂飛程序,將其引向指定位置,再進行出錯處理。軟件陷阱是指用來將捕獲的亂飛程序引向復(fù)位入口地址0000H的指令。通常在EPROM中非程序區(qū)填入以下指令作為軟件陷阱:
標簽: 單片機 系統(tǒng)軟件 抗干擾
上傳時間: 2013-10-29
上傳用戶:大三三
基于單片機的紅外門進控制系統(tǒng)設(shè)計與制作:我們所做的創(chuàng)新實驗項目“基于單片機的紅外門控系統(tǒng)”已基本完成,現(xiàn)將其工作原理簡要說明。該系統(tǒng)主要分為兩大部分:一是紅外傳感器部分。二是單片機計數(shù)顯示控制部分。基本電路圖如下:其中紅外傳感器部分我們采用紅外對管實現(xiàn),紅外對管平行放置,平常處于接收狀態(tài),經(jīng)比較器輸出低電平,當有人經(jīng)過時,紅外線被擋住,接收管接收不到紅外線,經(jīng)比較器輸出高電平。這樣,當有人經(jīng)過時便會產(chǎn)生一個電平的跳變。單片機控制部分主要是通過外部兩個中斷判斷是否有人經(jīng)過,如果有人經(jīng)過,由于電平跳變的產(chǎn)生,進入中斷服務(wù)程序,這里我們采用了兩對紅外傳感器接到兩個外部中斷口,中斷0作為入口,實現(xiàn)加1操作,中斷1作為出口,實現(xiàn)減1操作。另外,我們通過P0口控制室內(nèi)燈的亮暗,當寄存器計數(shù)值為0時,熄燈,不為0時,燈亮。顯示部分,采用兩位數(shù)碼管動態(tài)顯示,如有必要,可以很方便的擴展為四位計數(shù)。精益求精!在實驗過程中,我們走了非常多的彎路,做出來的東西根本不是自己想要的,我們本想做成室內(nèi)只有一個門的進出計數(shù),原理已清楚,即在門的兩邊放置兩對紅外對管,進出時,擋住兩對對管的順序不同,因此,可判斷是進入還是出去,從而實現(xiàn)加減計數(shù),編程時,可分別在兩個中斷服務(wù)程序的入口置標志位,根據(jù)標志位判斷進出,詳細內(nèi)容在程序部分。理論如此,但在實際過程中,還是發(fā)現(xiàn)實現(xiàn)不了上述功能,我們初步判定認為是程序掌握得不夠好,相信隨著自己對單片機了解的深入,應(yīng)該會做出更好的 (因為我們是臨時學(xué)的單片機),程序的具體內(nèi)容如下: $MOD52 ORG 0000H LJMP MAIN ORG 0003H LJMP 0100H ORG 0013H LJMP 0150H ORG 0050HMAIN: CLR A MOV 30H , A ;初始化緩存區(qū) MOV 31H , A MOV 32H , A MOV 33H , A MOV R6 , A MOV R7 , A SETB EA SETB EX0 SETB EX1 SETB IT0 SETB IT1 SETB PX1NEXT1: ACALL HEXTOBCDD ;調(diào)用數(shù)制轉(zhuǎn)換子程序 ACALL DISPLAY ;調(diào)用顯示子程序 LJMP NEXT1 ORG 0100H ;中斷0服務(wù)程序 LCALL DELY mov 70h,#2 djnz 70h,next JBC F0,NEXT SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 MOV A , R7 ADD A , #1 MOV R7, A MOV A , R6 ADDC A , #0 MOV R6 , A CJNE R6 , #07H , NEXT CLR A MOV R6 , A MOV R7 , ANEXT: RETI ORG 0150H ;中斷1服務(wù)程序 LCALL DELY mov 70h,#2 djnz 70h,next2 JBC F0,NEXT2 SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 CLR C MOV A , R7 SUBB A , #1 MOV R7, A MOV A , R6 SUBB A , #0 MOV R6 , A CJNE R6 , #07H , NEXT2 CLR A MOV R6 , A MOV R7 , ANEXT2: RETI ORG 0200HHEXTOBCDD:MOV A , R6 ;由十六進制轉(zhuǎn)化為十進制 PUSH ACC MOV A , R7 PUSH ACC MOV A , R2 PUSH ACC CLR A MOV R3 , A MOV R4 , A MOV R5 , A MOV R2 , #10HHB3: MOV A , R7 ;將十六進制中最高位移入進位位中 RLC A MOV R7 , A MOV A , R6 RLC A MOV R6 , A MOV A , R5 ;每位數(shù)加上本身相當于將這個數(shù)乘以2 ADDC A , R5 DA A MOV R5 , A MOV A , R4 ADDC A , R4 DA A ;十進制調(diào)整 MOV R4 , A MOV A , R3 ADDC A , R3 DJNZ R2 , HB3 POP ACC MOV R2 , A POP ACC MOV R7 , A POP ACC MOV R6 , A RET ORG 0250HDISPLAY: MOV R0 , #30H MOV A , R5 ANL A , #0FH MOV @R0 , A MOV A , R5 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV R0 , #30H MOV R2 , #11111110BAGAIN: MOV A , R2 MOV P2 , A MOV A , @R0 MOV DPTR , #TAB MOVC A , @A+DPTR MOV P1 , A ACALL DELAY INC R0 MOV A , R2 RL A MOV R2 , A JB ACC.4 , AGAIN RETTAB: DB 03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH ;七段碼表DELY: MOV R1,#80D1: MOV R2,#100 DJNZ R2,$ DJNZ R1,D1 RET DELAY: MOV TMOD , #01H ;延時子程序 MOV TL0 , #0FEH MOV TH0 , #0FEH SETB TR0WAIT: JNB TF0 , WAIT CLR TF0 CLR TR0 RETDELY0: MOV R1, #200D3: MOV R2,#250 DJNZ R2,$ DJNZ R1,D3 RET END 該系統(tǒng)實際應(yīng)用廣泛。可用在生產(chǎn)線上產(chǎn)品數(shù)量統(tǒng)計、公交車智能計數(shù)問候(需添加語音芯片)、超市內(nèi)人數(shù)統(tǒng)計等公共場合。另外,添加串口通信部分便可實現(xiàn)與PC數(shù)據(jù)交換的功能。 由于,實驗簡化了,剩下不少零件和資金,所以我們又做了兩項其他的實驗。
標簽: 單片機 紅外 控制系統(tǒng)設(shè)計 原理圖
上傳時間: 2013-12-22
上傳用戶:tangsiyun
當拿到一張CASE單時,首先得確定的是能用什么母體才能實現(xiàn)此功能,然后才能展開對外圍硬件電路的設(shè)計,因此首先得了解每個母體的基本功能及特點,下面大至的介紹一下本公司常用的IC:單芯片解決方案• SN8P1900 系列– 高精度 16-Bit 模數(shù)轉(zhuǎn)換器– 可編程運算放大器 (PGIA)• 信號放大低漂移: 2V• 放大倍數(shù)可編程: 1/16/64/128 倍– 升壓- 穩(wěn)壓調(diào)節(jié)器 (Charge-Pump Regulator)• 電源輸入: 2.4V ~ 5V• 穩(wěn)壓輸出: e.g. 3.8V at SN8P1909– 內(nèi)置液晶驅(qū)動電路 (LCD Driver)– 單芯片解決方案 • 耳溫槍 SN8P1909 LQFP 80 Pins• 5000 解析度量測器 SN8P1908 LQFP 64 Pins• 體重計 SN8P1907 SSOP 48 Pins單芯片解決方案• SN8P1820 系列– 精確的12-Bit 模數(shù)轉(zhuǎn)換器– 可編程運算放大器 (PGIA)• Gain Stage One: Low Offset 5V, Gain: 16/32/64/128• Gain Stage One: Low Offset 2mV, Gain: 1.3 ~ 2.5– 升壓- 穩(wěn)壓調(diào)節(jié)器• 電源輸入: 2.4V ~ 5V• 穩(wěn)壓輸出: e.g. 3.8V at SN8P1829– 內(nèi)置可編程運算放大電路– 內(nèi)置液晶驅(qū)動電路 – 單芯片解決方案 • 電子醫(yī)療器 SN8P1829 LQFP 80 Pins 高速/低功耗/高可靠性微控制器• 最新SN8P2000 系列– SN8P2500/2600/2700 系列– 高度抗交流雜訊能力• 標準瞬間電壓脈沖群測試 (EFT): IEC 1000-4-4• 雜訊直接灌入芯片電源輸入端• 只需添加1顆 2.2F/50V 旁路電容• 測試指標穩(wěn)超 4000V (歐規(guī))– 高可靠性復(fù)位電路保證系統(tǒng)正常運行• 支持外部復(fù)位和內(nèi)部上電復(fù)位• 內(nèi)置1.8V 低電壓偵測可靠復(fù)位電路• 內(nèi)置看門狗計時器保證程序跳飛可靠復(fù)位– 高抗靜電/栓鎖效應(yīng)能力– 芯片工作溫度有所提高: -200C ~ 700C 工規(guī)芯片溫度: -400C ~ 850C 高速/低功耗/高可靠性微控制器• 最新 SN8P2000 系列– SN8P2500/2600/2700 系列– 1T 精簡指令級結(jié)構(gòu)• 1T: 一個外部振蕩周期執(zhí)行一條指令• 工作速度可達16 MIPS / 16 MHz Crystal– 工作消耗電流 < 2mA at 1-MIPS/5V– 睡眠模式下消耗電流 < 1A / 5V額外功能• 高速脈寬調(diào)制輸出 (PWM)– 8-Bit PWM up to 23 KHz at 12 MHz System Clock– 6-Bit PWM up to 93 KHz at 12 MHz System Clock– 4-Bit PWM up to 375 KHz at 12 MHz System Clock• 內(nèi)置高速16 MHz RC振蕩器 (SN8P2501A)• 電壓變化喚醒功能• 可編程控制沿觸發(fā)/中斷功能– 上升沿 / 下降沿 / 雙沿觸發(fā)• 串行編程接口
上傳時間: 2013-10-21
上傳用戶:jiahao131
P C B 可測性設(shè)計布線規(guī)則之建議― ― 從源頭改善可測率PCB 設(shè)計除需考慮功能性與安全性等要求外,亦需考慮可生產(chǎn)與可測試。這里提供可測性設(shè)計建議供設(shè)計布線工程師參考。1. 每一個銅箔電路支點,至少需要一個可測試點。如無對應(yīng)的測試點,將可導(dǎo)致與之相關(guān)的開短路不可檢出,并且與之相連的零件會因無測試點而不可測。2. 雙面治具會增加制作成本,且上針板的測試針定位準確度差。所以Layout 時應(yīng)通過Via Hole 盡可能將測試點放置于同一面。這樣就只要做單面治具即可。3. 測試選點優(yōu)先級:A.測墊(Test Pad) B.通孔(Through Hole) C.零件腳(Component Lead) D.貫穿孔(Via Hole)(未Mask)。而對于零件腳,應(yīng)以AI 零件腳及其它較細較短腳為優(yōu)先,較粗或較長的引腳接觸性誤判多。4. PCB 厚度至少要62mil(1.35mm),厚度少于此值之PCB 容易板彎變形,影響測點精準度,制作治具需特殊處理。5. 避免將測點置于SMT 之PAD 上,因SMT 零件會偏移,故不可靠,且易傷及零件。6. 避免使用過長零件腳(>170mil(4.3mm))或過大的孔(直徑>1.5mm)為測點。7. 對于電池(Battery)最好預(yù)留Jumper,在ICT 測試時能有效隔離電池的影響。8. 定位孔要求:(a) 定位孔(Tooling Hole)直徑最好為125mil(3.175mm)及其以上。(b) 每一片PCB 須有2 個定位孔和一個防呆孔(也可說成定位孔,用以預(yù)防將PCB反放而導(dǎo)致機器壓破板),且孔內(nèi)不能沾錫。(c) 選擇以對角線,距離最遠之2 孔為定位孔。(d) 各定位孔(含防呆孔)不應(yīng)設(shè)計成中心對稱,即PCB 旋轉(zhuǎn)180 度角后仍能放入PCB,這樣,作業(yè)員易于反放而致機器壓破板)9. 測試點要求:(e) 兩測點或測點與預(yù)鉆孔之中心距不得小于50mil(1.27mm),否則有一測點無法植針。以大于100mil(2.54mm)為佳,其次是75mil(1.905mm)。(f) 測點應(yīng)離其附近零件(位于同一面者)至少100mil,如為高于3mm 零件,則應(yīng)至少間距120mil,方便治具制作。(g) 測點應(yīng)平均分布于PCB 表面,避免局部密度過高,影響治具測試時測試針壓力平衡。(h) 測點直徑最好能不小于35mil(0.9mm),如在上針板,則最好不小于40mil(1.00mm),圓形、正方形均可。小于0.030”(30mil)之測點需額外加工,以導(dǎo)正目標。(i) 測點的Pad 及Via 不應(yīng)有防焊漆(Solder Mask)。(j) 測點應(yīng)離板邊或折邊至少100mil。(k) 錫點被實踐證實是最好的測試探針接觸點。因為錫的氧化物較輕且容易刺穿。以錫點作測試點,因接觸不良導(dǎo)致誤判的機會極少且可延長探針使用壽命。錫點尤其以PCB 光板制作時的噴錫點最佳。PCB 裸銅測點,高溫后已氧化,且其硬度高,所以探針接觸電阻變化而致測試誤判率很高。如果裸銅測點在SMT 時加上錫膏再經(jīng)回流焊固化為錫點,雖可大幅改善,但因助焊劑或吃錫不完全的緣故,仍會出現(xiàn)較多的接觸誤判。
標簽: PCB 可測性設(shè)計 布線規(guī)則
上傳時間: 2014-01-14
上傳用戶:cylnpy
微型計算機課程設(shè)計論文—通用微機發(fā)聲程序的匯編設(shè)計 本文講述了在微型計算機中利用可編程時間間隔定時器的通用發(fā)聲程序設(shè)計,重點講述了程序的發(fā)聲原理,節(jié)拍的產(chǎn)生,按節(jié)拍改變的動畫程序原理,并以設(shè)計一個簡單的樂曲評分程序為引子,分析程序設(shè)計的細節(jié)。關(guān)鍵字:微機 8253 通用發(fā)聲程序 動畫技術(shù) 直接寫屏 1. 可編程時間間隔定時器8253在通用個人計算機中,有一個可編程時間間隔定時器8253,它能夠根據(jù)程序提供的計數(shù)值和工作方式,產(chǎn)生各種形狀和各種頻率的計數(shù)/定時脈沖,提供給系統(tǒng)各個部件使用。本設(shè)計是利用計算機控制發(fā)聲的原理,編寫演奏樂曲的程序。 在8253/54定時器內(nèi)部有3個獨立工作的計數(shù)器:計數(shù)器0,計數(shù)器1和計數(shù)器2,每個計數(shù)器都分配有一個斷口地址,分別為40H,41H和42H.8253/54內(nèi)部還有一個公用的控制寄存器,端地址為43H.端口地址輸入到8253/54的CS,AL,A0端,分別對3個計數(shù)器和控制器尋址. 對8353/54編程時,先要設(shè)定控制字,以選擇計數(shù)器,確定工作方式和計數(shù)值的格式.每計數(shù)器由三個引腳與外部聯(lián)系,見教材第320頁圖9-1.CLK為時鐘輸入端,GATE為門控信號輸入端,OUT為計數(shù)/定時信號輸入端.每個計數(shù)器中包含一個16位計數(shù)寄存器,這個計數(shù)器時以倒計數(shù)的方式計數(shù)的,也就是說,從計數(shù)初值逐次減1,直到減為0為止. 8253/54的三個計數(shù)器是分別編程的,在對任一個計數(shù)器編程時,必須首先講控制字節(jié)寫入控制寄存器.控制字的作用是告訴8253/54選擇哪個計數(shù)器工作,要求輸出什么樣的脈沖波形.另外,對8253/54的初始化工作還包括,向選定的計數(shù)器輸入一個計數(shù)初值,因為這個計數(shù)值可以是8為的,也可以是16為的,而8253/5的數(shù)據(jù)總線是8位的,所以要用兩條輸出指令來寫入初值.下面給出8253/54初始化程序段的一個例子,將計數(shù)器2設(shè)定為方式3,(關(guān)于計數(shù)器的工作方式參閱教材第325—330頁)計數(shù)初值為65536. MOV AL,10110110B ;選擇計數(shù)器2,按方式3工作,計數(shù)值是二進制格式 OUT 43H,AL ; j將控制字送入控制寄存器 MOV AL,0 ;計數(shù)初值為0 OUT 42H,AL ;將計數(shù)初值的低字節(jié)送入計數(shù)器2 OUT 42H,AL ;將計數(shù)初值的高字節(jié)送入計數(shù)器2 在IBM PC中8253/54的三個時鐘端CLK0,CLK1和CLK2的輸入頻率都是1.1931817MHZ. PC機上的大多數(shù)I/O都是由主板上的8255(或8255A)可編程序外圍接口芯片(PPI)管理的.關(guān)于8255A的結(jié)構(gòu)和工作原理及應(yīng)用舉例參閱教材第340—373頁.教材第364頁的”PC/XT機中的揚聲器接口電路”一節(jié)介紹了揚聲器的驅(qū)動原理,并給出了通用發(fā)聲程序.本設(shè)計正是基于這個原理,通過編程,控制加到揚聲器上的信號的頻率,奏出樂曲的.2.發(fā)聲程序的設(shè)計下面是能產(chǎn)生頻率為f的通用發(fā)聲程序:MOV AL, 10110110B ;8253控制字:通道2,先寫低字節(jié),后寫高字節(jié) ;方式3,二進制計數(shù)OUT 43H, AL ;寫入控制字MOV DX, 0012H ;被除數(shù)高位MOV AX, 35DEH ;被除數(shù)低位 DIV ID ;求計數(shù)初值n,結(jié)果在AX中OUT 42H, AL ;送出低8位MOV AL, AHOUT 42H,AL ;送出高8位IN AL, 61H ;讀入8255A端口B的內(nèi)容MOV AH, AL ;保護B口的原狀態(tài)OR AL, 03H ;使B口后兩位置1,其余位保留OUT 61H,AL ;接通揚聲器,使它發(fā)聲
上傳時間: 2013-10-17
上傳用戶:sunjet
HI-TECH PICC C 的使用說明. 這里我們只講述了PICC C 與標準C 的不同,它不是一本C 語言的教程, 并且我們假定你有C 語言的基礎(chǔ). 為了對PIC 單片機有更好的支持,PICC 在標準C 的基礎(chǔ)上作了一些擴充: 定義I/O 函數(shù),以便在你的硬件系統(tǒng)中使用<stdio.h>中定義的函數(shù)。 用C 語言編寫中斷服務(wù)程序 用C 語言編寫I/O 操作程序 C 語言與匯編語言間的接口1-1 與標準C 的不同PICC 只在一處與標準C 不同:函數(shù)的重入。因為PIC 單片機的寄存器及堆棧有限,所以PICC 不支持可重入函數(shù)。1-2 支持的PIC 芯片PICC 支持很多PIC 單片機,支持PIC 單片機的類型在LIB 目錄下的picinfo.ini文件中有定義。1-3 PICC 包含一些標準庫1-4 PICC 編譯器可以輸出一些格式的目標文件,缺省設(shè)置為輸出Bytecraft 的'COD'格式和 Intel 的'HEX'格式。你可以用表1-1 中的命令來指定輸出格式。
上傳時間: 2013-10-10
上傳用戶:781354052
鍵盤是一個由開關(guān)組成的矩陣,是重要的輸入設(shè)備,在小型微機系統(tǒng)中,如單板微計算機、帶有微處理器的專用設(shè)備中,鍵盤的規(guī)模小,可采用簡單實用的接口方式,在軟件控制下完成鍵盤的輸入功能。小型鍵盤結(jié)構(gòu)框圖行線接口:8位并行輸出口,驅(qū)動行線。列線接口:8位并行輸出口,讀取列線 代碼。電阻:列線提取電阻,行線的限流電阻 保護行線接口輸出電路。二極管:防止兩條行線上按鍵同時按下 時,可能對行線接口電路造成 的損害。行掃描法識別鍵按下的軟件方法行線接口輸出電路輸出一個8位掃描碼,其中有一位為0,其余位全為1。輸出為0行線的邏輯0電平,被有鍵按下的列線輸入接口讀入。 軟件根據(jù)列線輸入接口讀入的列值(只一位為0)判斷出按下鍵的座標位置,形成鍵號。根據(jù)鍵號轉(zhuǎn)到相應(yīng)的鍵處理程序中去。
上傳時間: 2013-10-15
上傳用戶:wsf950131
技術(shù)說明:線圈總長度應(yīng)在20 ~ 30米左右,地感線應(yīng)用橫截面大于等于0.5 平方毫米的耐高溫絕緣線;用切地機在堅硬水泥地面切槽,深度為 5~10 cm 左右,寬以切刻片厚度為準一般為5mm;然后將線一圈一圈放入槽中,再用水泥將槽封固,注意線不可浮出地面,在放入線圈時注意不要把線的絕緣層破壞,以免造成漏電或短路.引出線要雙絞在一起并行接入地感兩個LOOP 端,長度不能超過4米,每米中雙絞數(shù)不能少于30個.
上傳時間: 2013-11-04
上傳用戶:zhaoq123
8086總線操作:8086微處理器與片外存儲器或I/O接口進行數(shù)據(jù)傳輸時,經(jīng)BIU執(zhí)行8086規(guī)定的總線操作。總線周期的組成:8086的基本總線周期為4個時鐘周期,每個時鐘周期間隔稱為一個T狀態(tài)。8086的中斷系統(tǒng):8086微處理器可處理256種中斷。8086對外部硬件中斷請求INTR的響應(yīng): 當INTR有一高電平,即有可屏蔽中斷請求。若此時IF=1且當前指令執(zhí)行完,進入中斷響應(yīng)周期,處理過程如下:INTA#在兩個總線周期中分別發(fā)出有效信號,第二周期中8086讀到中斷類型碼保護現(xiàn)場:標志寄存器入棧,清除IF和TF標志位,保護斷點(下一條指令地址入棧)。8086總線請求:在一個系統(tǒng)中,若存在多個可控制總線的主模塊時,總線使用權(quán)的轉(zhuǎn)移存在著一個請求與響應(yīng)的過程。
標簽: 8086 總線 中斷系統(tǒng) 操作
上傳時間: 2013-10-21
上傳用戶:皇族傳媒
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1