<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于PIC16F877A的方波信號發(fā)生器電路設計

基于PIC16F877A的方波信號發(fā)生器電路設計

作者: 時(shí)間:2012-11-27 來(lái)源:網(wǎng)絡(luò ) 收藏

在數字電路系統中,方波是經(jīng)常使用的信號源,具有非常廣泛的應用范圍。在普通的電路設計中,經(jīng)常利用555構成多諧振蕩器產(chǎn)生方波信號,雖然比較簡(jiǎn)單,但頻率準確精度不高,若要產(chǎn)生不同頻率的方波信號,更換電阻和電容又比較麻煩?;谶@個(gè)出發(fā)點(diǎn),本文采用單片機進(jìn)行電路設計,利用軟件編程控制代替硬件的更換,可靈活簡(jiǎn)單地產(chǎn)生不同頻率的方波信號,而且電路更為簡(jiǎn)單、頻率更準確、性能更穩定。

1 軟件平臺及芯片介紹
目前的單片機有很多種型號,有Intel公司的8051系列、Motorola公司的M68系列、ATMEL公司的AT系列、Microchip公司的PIC系列等等。本文主要介紹Microchip公司開(kāi)發(fā)的基于MPLAB-IDE 6.62集成開(kāi)發(fā)環(huán)境的PIC單片機的電路設計。MPLAB-IDE集成開(kāi)發(fā)軟件是專(zhuān)門(mén)設計對PIC系列單片機進(jìn)行文本編輯,在線(xiàn)調方式及編譯的開(kāi)發(fā)工具。PIC芯片采用,40腳封裝、具有5個(gè)輸入/輸出端口,每個(gè)端口中的每條引腳由用戶(hù)按需要單獨編程,設定為輸出引腳或輸入引腳。

2 電路設計
2.1 硬件電路分析
利用中的/計數器TMR0模塊作為硬件控制端口引腳RC0上產(chǎn)生不同頻率的方波。由于TMR0為8位寬,有一個(gè)可選的預分頻器,故可產(chǎn)生8種方波信號;同時(shí)通過(guò)設置不同的初始值,可產(chǎn)生不同的頻率。本設計初始值設為131,計數125個(gè)指令周期產(chǎn)生溢出,即TMR0從計數到開(kāi)始溢出需要125us。通過(guò)改變分頻比,來(lái)達到產(chǎn)生不同頻率的目的。TMR0溢出一次就使端口引腳RC0的輸出電平反轉一次,每反轉兩次引腳電平就形成方波信號的一個(gè)周期。當分頻比為1:256時(shí),TMRO的延時(shí)為125 us×256=32000 us,方波信號周期為32000 us×2=64000 us=64 ms,對應的方波信號頻率為最低檔的15.625 Hz;當分頻比為1:2時(shí),TMR0的延時(shí)為125 us×2=250 us,方波信號周期為250 us×2=500 us=0.5 ms,對應的方波信號頻率為最高檔的2000 Hz。改變TMR0的初始值,可分別產(chǎn)生15.625 Hz,32.25 Hz,62.5 Hz,125 Hz,250 Hz,500 Hz,1000 Hz,2000 Hz 8種方波信號。其工作原理如圖1所示,接在端口引腳RB0上的按鈕開(kāi)關(guān)SW1作為循環(huán)切換控制開(kāi)關(guān);按在MCLR引腳上的按鈕開(kāi)關(guān)SW2用作單片機復位開(kāi)關(guān);端口RC0作為方波信號輸出,并接上一個(gè)發(fā)光二極管和蜂嗚器作為輸出指示;R3和C1構成RC振蕩方式,接在OSC1作為單片機系統時(shí)鐘的輸入,其優(yōu)點(diǎn)是經(jīng)濟、節省成本。
基于PIC16F877A的方波信號發(fā)生器電路設計
圖1 硬件電路工作原理示意圖
2.2 軟件設計
單片機中,與定時(shí)器/計數器TMR0相關(guān)的特殊功能寄存器有4個(gè),累加計數寄存器TMR0、中斷控制寄存器INTCON、選項寄存器OPTION_REG和端口RA方向控制寄存器TRISA,其中選項寄存器OPTION_REG的各位含義為:
基于PIC16F877A的方波信號發(fā)生器電路設計
當其第5位(TOCS)置1時(shí),TMR0模塊被設置為計數器模式,其分頻比由OPTION_REG的D2:DO(PS2~PS0)決定,分別為1:2,1:4,1:8,1:16,1:32,1:64,1:128,1:256,由此可產(chǎn)生8種分頻信號,即8種方波信號。其源程序采用匯編編語(yǔ)言編寫(xiě),如下:

程序清單fbxh.asm
LIST P=16F877A
INCLUDE "P16F877A.INC"
TMR0 EQU 01H
;定時(shí)器/計數器0寄存器地址
STATUS EQU 3H
OPTION_REG EQU 81H
OPTION_B EQU 22H
INTCON EQU 0BH
PORTB EQU 6H ;端口B的地址
TRISB EQU 86H
PORTC EQU 7H ;端口C的地址
TRISC EQU 87H
TMR0B EQU D'256'-D'125'
;定義TMR0初值
RP0 EQU 5H

電路相關(guān)文章:電路分析基礎


負離子發(fā)生器相關(guān)文章:負離子發(fā)生器原理
分頻器相關(guān)文章:分頻器原理
塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理
離子色譜儀相關(guān)文章:離子色譜儀原理

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>