介紹一種運用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位數據位,無校驗位。接收和發送以低位在先(一般模式),采用軟件延時。為節省篇幅,單片機內的通信程序中未提供任何握手協議,用戶可根據自己的需要在軟件中加入握手方式。
上傳時間: 2014-12-27
上傳用戶:偷心的海盜
PIC16F877 單片機的鍵盤和LED 數碼顯示接口 1 PIC16F877單片機與鍵盤和LED數碼顯示的硬件接口電路單片機的許多應用都需要進行人機對話,最簡單的人機對話需要LED 數碼管顯示數字和少量字符;鍵盤是解決計算機輸入的簡單手段;借此可以向計算機輸入程序、置數、送操作命令、控制程序的執行等等,所以使用非常廣泛。圖1 鍵盤、LED數碼顯示與PIC16F877 單片機的接口電路本例中采用8 個按鍵組成的小鍵盤,4 只共陰極的LED 數碼管,采用4 片74LS373 驅動數碼管,采用的驅動方法是靜態方式。使用1 片74LS245 作為鍵盤的接口;這些外圍器件與PIC16F877 單片機的接口電路如圖1 所示,這種連接方法與51 系列的單片機連接方法一樣,其他的連接方法還有好幾種,PIC16F877 單片機的鍵盤輸入接法還有其他特殊而十分方便好用的方式。8 鍵鍵盤通過74LS245 與單片機相連,鍵盤按鍵狀態的數據輸入由RC3 輸出腳控制;當RC3=“0”時,鍵盤狀態從74LS245 的A 端輸出到單片機的PORTB口,此時讀PORTB口的數據即為鍵盤狀態。為了及時地響應鍵盤操作,需要經常對鍵盤進行掃描;掃描的方式有許多種,我們將鍵盤的掃描程序安排在主程序的循環執行過程中的方式,并采用20ms延遲來消除按鍵的抖動問題,此外,為了實現每按鍵一次只響應一次的功能,在執行相應的按鍵程序之前,必須確保按鍵已經松開;在本例中這一措施有效的防止了數據抖動過快的問題。LED 數碼顯示有動態掃描和靜態顯示兩種方式(圖1 采取的方式為靜態方式),在動態掃描方式中,各數碼顯示是輪流點亮的,即控制數碼顯示的位選信號和相應的要顯示的數碼的字形代碼同時逐一送出,反復不已,由于視覺的暫留現象,卻好象全都點亮著,這種電路的接法以后再介紹。在靜態方式中,只要將數據送出鎖存以后,各數碼顯示的數據不需要刷新,只要數據不需改變,就可以不去管他,所以稱為靜態顯示。在圖1 電路中,輸出顯示的操作簡化為對74LS373 的并口操作而已。由于靜態方式的工作原理比較簡單,編程也比較直觀簡單,程序間的相互關聯很少。因此編程容易,但要增加硬件,成本較高;與之相比,動態掃描的編程雖然要復雜一些,但因其所用硬件少,成本低。由數碼轉化為字形代碼可采用軟件譯碼、硬件譯碼等兩種方式。軟件譯碼是將各數碼的字形代碼構成一個表格存儲于內存之中,在顯示數碼時,通過執行查表程序而得到相應的字形代碼,再將之送入數碼顯示輸出電路進行顯示,本例即采用這種方式,這種方式的編程與單片機有關,在程序中給出了PIC16F877 的編程例程,對需要熟悉PIC16F877 單片機的人員有一定的參考價值。硬件譯碼則采用CD4511、74LS46、74LS47、74LS48、74LS49等BCD 碼—7段鎖存、譯碼、驅動芯片直接譯出字形代碼,點亮LED。74LS373 由LE 端對要顯示的數據進行鎖存控制,實現LED 的靜態顯示。采用了PIC16F877 的端口輸出操作,模擬74LS373 的數據鎖存時序,即由軟件實現數據鎖存,這種方法可以十分容易的改變時序和延遲長短,使高速設備可以與低速設備聯系配合好,設計簡單方便,不好的地方是編程較長和稍微復雜一點。這種編程方法在下面的程序中有很好的體現。
上傳時間: 2013-10-29
上傳用戶:cuiyashuo
用單片機AT89C51改造普通雙桶洗衣機:AT89C2051作為AT89C51的簡化版雖然去掉了P0、P2等端口,使I/O口減少了,但是卻增加了一個電壓比較器,因此其功能在某些方面反而有所增強,如能用來處理模擬量、進行簡單的模數轉換等。本文利用這一功能設計了一個數字電容表,可測量容量小于2微法的電容器的容量,采用3位半數字顯示,最大顯示值為1999,讀數單位統一采用毫微法(nf),量程分四檔,讀數分別乘以相應的倍率。電路工作原理 本數字電容表以電容器的充電規律作為測量依據,測試原理見圖1。電源電路圖。 壓E+經電阻R給被測電容CX充電,CX兩端原電壓隨充電時間的增加而上升。當充電時間t等于RC時間常數τ時,CX兩端電壓約為電源電壓的63.2%,即0.632E+。數字電容表就是以該電壓作為測試基準電壓,測量電容器充電達到該電壓的時間,便能知道電容器的容量。例如,設電阻R的阻值為1千歐,CX兩端電壓上升到0.632E+所需的時間為1毫秒,那么由公式τ=RC可知CX的容量為1微法。 測量電路如圖2所示。A為AT89C2051內部構造的電壓比較器,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口輸出變為1。以P3.6口的輸出電平為依據,用AT89C2051內部的定時器T0對充電時間進行計數,再將計數結果顯示出來即得出測量結果。整機電路見圖3。電路由單片機電路、電容充電測量電路和數碼顯示電路等 圖3 部分組成。AT89C2051內部的電壓比較器和電阻R2-R7等組成測量電路,其中R2-R5為量程電阻,由波段開關S1選擇使用,電壓比較器的基準電壓由5V電源電壓經R6、RP1、R7分壓后得到,調節RP1可調整基準電壓。當P1.2口在程序的控制下輸出高電平時,電容CX即開始充電。量程電阻R2-R5每檔以10倍遞減,故每檔顯示讀數以10倍遞增。由于單片機內部P1.2口的上拉電阻經實測約為200K,其輸出電平不能作為充電電壓用,故用R5兼作其上拉電阻,由于其它三個充電電阻和R5是串聯關系,因此R2、R3、R4應由標準值減去1K,分別為999K、99K、9K。由于999K和1M相對誤差較小,所以R2還是取1M。數碼管DS1-DS4、電阻R8-R14等組成數碼顯示電路。本機采用動態掃描顯示的方式,用軟件對字形碼譯碼。P3.0-P3.5、P3.7口作數碼顯示七段筆劃字形碼的輸出,P1.3-P1.6口作四個數碼管的動態掃描位驅動碼輸出。這里采用了共陰數碼管,由于AT89C2051的P1.3-P1.6口有25mA的下拉電流能力,所以不用三極管就能驅動數碼管。R8-R14為P3.0-P3.5、P3.7口的上拉電阻,用以驅動數碼管的各字段,當P3的某一端口輸出低電平時其對應的字段筆劃不點亮,而當其輸出高電平時,則對應的上拉電阻即能點亮相應的字段筆劃。
上傳時間: 2013-12-31
上傳用戶:ming529
本文介紹使用AT89C2051 制作的一種發音電路, 各種聲音通過編程實現, 靈活方便。原理圖如圖1 所示。圖1 發音電路原理該電路利用方波諧波成份豐富的特點,編程采用計時器延遲法發音, 即每個音的半周期計時中斷一次, 而使輸出P110 (或其他IöO 口) 反相, 重復執行產生某種頻率的信號。例如: 中音DO 的頻率為523Hz, 其周期為1912Ls, 半周期為956Ls, 若初始P110= 1, 經956Ls 后應使P110= 0, 再經956Ls 恢復P110= 1, 這樣就可發出中音DO。
上傳時間: 2013-10-11
上傳用戶:Altman
雙線性變換的頻率對應關系雙線性變換法雖然避免了“頻率混疊效應”,但出現了模擬頻率與數字頻率為一種非線性的關系情形。即:可見:模擬濾波器與數字濾波器的響應在對應的頻率關系上發生了“畸變”,也造成了相位的非線性變化,這是雙線性變換法的主要缺點。具體而言,在上刻度為均勻的頻率點映射到上時變成了非均勻的點,而且隨頻率增加越來越密。 雙線性變換法除了不能用于線性相位濾波器設計外,仍然是應用最為廣泛的設計IIR數字濾波器的方法。
上傳時間: 2013-10-12
上傳用戶:aysyzxzm
基于FPGA的循環冗余校驗算法實現
上傳時間: 2013-10-09
上傳用戶:busterman
在衛星通信系統中,非鐵磁性微波無源器件的無源互調(PIM)問題非常嚴重,產生PIM的根源在于天線、波導法蘭等無源器件的非線性效應,例如場發射、量子隧穿、熱電子發射、電致伸縮、微放電等[1]。文中通過對波導法蘭無源互調模型的分析和測量,得出波導間接觸壓力越大,各階PIM越小;PIM階數越高,載波功率之比對其影響越大。
上傳時間: 2014-12-29
上傳用戶:hustfanenze
目前公司產品涉及到消費電子類、工業用電器、光電、太陽能、航天、運輸、交通能源、軍工等廣泛領域。 法拉電容、超級電容器 特點:超低內阻,超低漏電流,提供瞬時功率輸出、兩種動力源互相切換時的功率支持,應用于能量充足,功率匱乏的能源:如太陽能 應用:作為發動機、備用電源、汽車音響、智能廚房衛浴設備、公共汽車、電動汽車、電動手持工具、太陽能計算器、太陽能草坪燈、太陽能道釘燈、高速公路指示燈、太陽能燈、玩具電動機、語音IC、LED發光器等理想的后備電源。 在提高比能量方面取得了很大的突破,在提高比能量同時,提高比功率,并且能夠有很好的循環使用壽命。 產品具有充放電速度快、循環使用壽命長、比功率高、耐低溫性能好、質量輕、免維護、低污染等特點。
上傳時間: 2013-10-16
上傳用戶:huql11633
機電類比法是一種把機械量通過一定的計算等效類比為電量的方法,其在對電子機械系統的分析中應用非常廣泛。它能夠把一個較復雜的機械系統類比為我們熟知的電路系統來進行分析,從而使問題的分析得到簡化。本文通過對振弦式傳感器的分析介紹了機電類比法,并對使用電路進行了相關的分析。 Summary:The electromechanical analogy is assort of analysis which is to analogize the mechanical system by using circuit system , it applied widely in the filed of analysis the electronic-mechanical system. The analysis can take a complex mechanical system analogous to a circuitry that we well-known, which can simplify the problems. In the paper, the electro-mechanical analogy method is briefly introduced by analysis the vibrating wire sensor,and have a correlation analysis about the circuit we used.關鍵詞: 機電類比法 振弦式傳感器 頻率 振蕩 反饋Keyword:electro-mechanical analogy method,vibrating wire sensor,frequency, oscillation, feedback 0 引言振弦式傳感器是屬于頻率式傳感器的一種。所謂頻率式傳感器就是能直接將被測量轉換為振動頻率信號的傳感器,這類傳感器一般是通過測量振弦、振筒、振梁、振膜等彈性振體或石英晶體諧振器的固有諧振頻率來達到測量引起諧振頻率變化的被測非電量的目的,其也稱為諧振式傳感器[1]。在分析該類傳感器中,由于其涉及到頻率,就容易讓人聯想到在電子技術中接觸到的RLC振蕩電路。因此可以嘗試著用類比的方法使之對應起來分析,即機電類比法分析。
上傳時間: 2013-11-16
上傳用戶:paladin
電子元器件 任何一個電子電路,都是由電子元器件組合而成。了解常用元器件的性能、型號規格、組成分類及識別方法,用簡單測試的方法判斷元器件的好壞,是選擇、使用電子元器件的基礎,是組裝、調試電子電路必須具備的技術技能。下面我們首先分別介紹電阻器、電容器、電感器、繼電器、晶體管、光電器件、集成電路等元器件的基本知識1 .電阻器電阻器在電路中起限流、分流、降壓、分壓、負載、匹配等作用。1.1電阻器的分類電阻器按其結構可分為三類,即固定電阻器、可變電阻器(電位器)和敏感電阻器。按組成材料的不同,又可分為炭膜電阻器、金屬膜電阻器、線繞電阻器、熱敏電阻器、壓敏電阻器等。常用電阻器的外形圖如圖1.1 1.2 電阻器的參數及標注方法電阻器的參數很多,通常考慮的有標稱阻值、額定功率和允許偏差等。(1)、標稱阻值和允許誤差 電阻器的標稱阻值是指電阻器上標出的名義阻值。而實際阻值與標稱阻值之間允許的最大偏差范圍叫做阻值允許偏差,一般用標稱阻值與實際阻值之差除以標稱阻值所得的百分數表示,又稱阻值誤差。普通電阻器阻值誤差分三個等級:允許誤差小于±5﹪的稱Ⅰ級,允許誤差小于±10﹪的稱Ⅱ級,允許誤差小于±20﹪的稱Ⅲ級。表示電阻器的阻值和誤差的方法有兩種:一是直標法,二是色標法。直標法是將電阻的阻值直接用數字標注在電阻上;色標法是用不同顏色的色環來表示電阻器的阻值和誤差,其規定如表1.1(a)和(b)。 用色標法表示電阻時,根據阻值的精密情況又分為兩種:一是普通型電阻,電阻體上有四條色環,前兩條表示數字,第三條表示倍乘,第四條表示誤差。二是精密型電阻,電阻體上有五條色環,前三條表示數字,第四條表示倍乘,第五條表示誤差。通用電阻器的標稱阻值系列如表1.2所示,任何電阻器的標稱阻值都應為表1.2所列數值乘以10nΩ,其中n為整數。(2)、電阻器的額定功率 電阻器的額定功率指電阻器在直流或交流電路中,長期連續工作所允許消耗的最大功率。常用的額定功率有1/8W、1/4W、1/2W、1W、2W、5W、10W、25W等。電阻器的額定功率有兩種表示方法,一是2W以上的電阻,直接用阿拉伯數字標注在電阻體上,二是2W以下的炭膜或金屬膜電阻,可以根據其幾何尺寸判斷其額定功率的大小如表1.3。3 電阻器的簡單測試 電阻器的好壞可以用儀表測試,電阻器阻值的大小也可以用有關儀器、儀表測出,測試電阻值通常有兩種方法,一是直接測試法,另一種是間接測試法。(1).直接測試法就是直接用歐姆表、電橋等儀器儀表測出電阻器阻值的方法。通常測試小于1Ω的小電阻時可用單臂電橋,測試1Ω到1MΩ電阻時可用電橋或歐姆表(或萬用表),而測試1MΩ以上大電阻時應使用兆歐表。
上傳時間: 2013-10-26
上傳用戶:windwolf2000