freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的4位數(shù)字頻率計(jì)設(shè)計(jì)論文含程序(編輯修改稿)

2025-07-09 08:50 本頁面
 

【文章內(nèi)容簡介】 為允許接收位, REM 置 1 時(shí)串口允許接收,置 0 時(shí)禁止接收。 REM 是由軟件置位或清零。如果在一個(gè)電路中接收和發(fā)送引腳 , 都和上位機(jī)相連,在軟件上有串口中斷處理程序,當(dāng)要求在處理某個(gè)子程序時(shí)不允許串口被上位機(jī)來的控制字符產(chǎn)生中斷,那么可以在這個(gè)子程序的開始處加入 REM=0 來禁止接收,在子程序結(jié)束處加入 REM=1 再次打開串口接收。大家也可以用上面的實(shí)際源碼加入 REM=0 來進(jìn)行實(shí)驗(yàn)。 TB8 發(fā)送數(shù)據(jù)位 8,在模式 2 和 3 是要發(fā)送的第 9 位。該位可以用軟件根據(jù)需要置位或清除,通常這位在通信協(xié)議中做奇偶位,在多處理機(jī)通信中這一位則用于表示是地址幀還是數(shù)據(jù)幀。 RB8 接收數(shù)據(jù)位 8,在模式 2 和 3 是已接收數(shù)據(jù)的第 9 位。該位可能是奇偶位,地址 /數(shù)據(jù)標(biāo)識位。在模式 0 中, RB8 為保留位沒有被使用。在模式 1 中,當(dāng) SM2=0, RB8 是已接收數(shù)據(jù)的停止位。 TI 發(fā)送中斷標(biāo)識位。在模式 0,發(fā)送完第 8 位數(shù)據(jù)時(shí),由硬件置位。其它模式中則是在發(fā)送停止位之初,由硬件置位。 TI 置位后,申請中斷,CPU 響應(yīng)中斷后,發(fā)送下一幀數(shù)據(jù)。在任何模式下, TI 都必須由軟件來清除,也就是說在數(shù)據(jù)寫入到 SBUF 后,硬件發(fā)送數(shù)據(jù),中斷響應(yīng)(如中斷打開),這時(shí) TI=1,表明發(fā)送已完成, TI 不會由硬件清除,所以這時(shí)必須用軟件對其清零。 RI 接收中斷標(biāo)識位。在模式 0,接收第 8 位結(jié)束時(shí),由硬件置位。其它模式中則是在接收停止位的半中間,由硬件置位。 RI=1,申請中斷,要求CPU 取走數(shù) 據(jù)。但在模式 1 中, SM2=1 時(shí),當(dāng)未收到有效的停止位,則不會對 RI 置位。同樣 RI 也必須要靠軟件清除。常用的串口模式 1 是傳輸 10 個(gè)位的, 1 位起始位為 0,8 位數(shù)據(jù)位,低位在先, 1 位停止位為 1。它的波特率是可變的,其速率是取決于定時(shí)器 1 或定時(shí)器 2 的定時(shí)值(溢出速率)。AT89C51 和 AT89C2051 等 51 系列芯片只有兩個(gè)定時(shí)器,定時(shí)器 0 和定時(shí)器 1,而定時(shí)器 2 是 89C52 系列芯片才有的。 波特率在使用串口做通訊時(shí),一個(gè)很重要的參數(shù)就是波特率,只有上下位機(jī)的波特率一樣時(shí)才可以進(jìn)行正 常通訊。波特率是指串行端口每秒內(nèi)可以傳輸?shù)牟ㄌ匚粩?shù)。有一些初學(xué)的朋友認(rèn)為波特率是指每秒傳輸?shù)淖止?jié)數(shù),如數(shù)字頻率計(jì)實(shí)驗(yàn)報(bào)告 202171 12 標(biāo)準(zhǔn) 9600 會被誤認(rèn)為每秒種可以傳送 9600 個(gè)字節(jié),而實(shí)際上它是指每秒可以傳送 9600 個(gè)二進(jìn)位,而一個(gè)字節(jié)要 8 個(gè)二進(jìn)位,如用串口模式 1 來傳輸那么加上起始位和停止位,每個(gè)數(shù)據(jù)字節(jié)就要占用 10 個(gè)二進(jìn)位, 9600 波特率用模式 1 傳輸時(shí),每秒傳輸?shù)淖止?jié)數(shù)是 9600247。10 = 960 字節(jié)。 51 芯片的串口工作模式 0 的波特率是固定的,為 fosc/12,以一個(gè) 12M 的晶振來計(jì)算,那么它的波特率可以達(dá)到 1M。模 式 2 的波特率是固定在 fosc/64 或fosc/32,具體用那一種就取決于 PCON 寄存器中的 SMOD 位,如 SMOD 為 0,波特率為 focs/64,SMOD 為 1,波特率為 focs/32。模式 1 和模式 3 的波特率是可變的,取決于定時(shí)器 1 或 2( 52 芯片)的溢出速率。那么我們怎么去計(jì)算這兩個(gè)模 式的波特率設(shè)置時(shí)相關(guān)的寄存器的值呢?可以用以下的公式去計(jì)算。 波特率=( 2SMOD247。32 ) 定時(shí)器 1 溢出速率 上式中如設(shè)置了 PCON 寄存器中的 SMOD 位為 1 時(shí)就可以把波特率提升2 倍。通常會使 用定時(shí)器 1 工作在定時(shí)器工作模式 2 下,這時(shí)定時(shí)值中的TL1 做為計(jì)數(shù), TH1 做為自動重裝值 ,這個(gè)定時(shí)模式下,定時(shí)器溢出后,TH1 的值會自動裝載到 TL1,再次開始計(jì)數(shù),這樣可以不用軟件去干預(yù),使得定時(shí)更準(zhǔn)確。在這個(gè)定時(shí)模式 2 下定時(shí)器 1 溢出速率的計(jì)算公式如下: 溢出速率=(計(jì)數(shù)速率) /(256- TH1) 上式中的 “ 計(jì)數(shù)速率 ” 與所使用的晶體振蕩器頻率有關(guān),在 51 芯片中定時(shí)器啟動后會在每一個(gè)機(jī)器周期使定時(shí)寄存器 TH 的值增加一,一個(gè)機(jī)器周期等于十二個(gè)振蕩周期,所以可以得知 51 芯片的計(jì)數(shù)速率為 晶體振蕩器頻率的 1/12,一個(gè) 12M 的晶振用在 51 芯片上,那么 51 的計(jì)數(shù)速率就為1M。通常用 晶體是為了得到標(biāo)準(zhǔn)的無誤差的波特率,那么為何呢?計(jì)算一下就知道了。如我們要得到 9600 的波特率,晶振為 和 12M,定時(shí)器 1 為模式 2, SMOD 設(shè)為 1,分別看看那所要求的 TH1 為何值。代入公式: 9600= (2247。32)(()/(256 TH1)) TH1= 250 數(shù)字頻率計(jì)實(shí)驗(yàn)報(bào)告 202171 13 12M 9600= (2247。32)((12M/12) /(256TH1)) TH1≈ 上面的計(jì)算可以看出使用 12M 晶體的時(shí)候計(jì)算出來的 TH1 不為整數(shù),而 TH1 的值只能取整數(shù),這樣它就會有一定的誤差存在不能產(chǎn)生精確的9600 波特率。當(dāng)然一定的誤差是可以在使用中被接受的,就算使用 的晶體振蕩器也會因晶體本身所存在的誤差使波特率產(chǎn)生誤差,但晶體本身的誤差對波特率的影響是十分之小的,可以忽略不計(jì)。 DAC0832芯片: DAC0832 是 8 分辨率的 D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個(gè)DA 芯片以其價(jià)格低廉、接口簡 單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。 D/A 轉(zhuǎn)換器由 8 位輸入鎖存器、 8 位 DAC 寄存器、 8位 D/A 轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。 DAC0832 的主要特性參數(shù)如下: * 分辨率為 8 位; * 電流穩(wěn)定時(shí)間 1us; * 可單緩沖、雙緩沖或直接數(shù)字輸入; * 只需在滿量程下調(diào)整其線性度; * 單一電源供電( +5V~ +15V); * 低功耗, 200mW。 DAC0832 結(jié)構(gòu): * D0~ D7: 8 位數(shù)據(jù)輸入線, TTL 電平,有效時(shí)間應(yīng)大于 90ns(否則鎖存器的數(shù)據(jù)會出錯(cuò) ); 數(shù)字頻率計(jì)實(shí)驗(yàn)報(bào)告 202171 14 * ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效; * CS:片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效; * WR1:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于 500ns)有效。由 ILE、 CS、 WR1 的邏輯組合產(chǎn)生 LE1,當(dāng) LE1 為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換, LE1 的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存; * XFER:數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負(fù)脈沖(脈寬應(yīng)大于500ns)有效; * WR2: DAC寄存器選通輸入線,負(fù)脈沖(脈寬應(yīng)大于 500ns)有效。由WR XFER 的邏輯組合產(chǎn)生 LE2,當(dāng) LE2 為高電平時(shí), DAC 寄存器的輸出隨寄存器的輸入而變化, LE2的負(fù)跳變時(shí)將數(shù)據(jù)鎖存器的內(nèi)容打入 DAC 寄存器并開始 D/A 轉(zhuǎn)換。 * IOUT1:電流輸出端 1,其值隨 DAC 寄存器的內(nèi)容線性變化; * IOUT2:電流輸出端 2,其值與 IOUT1 值之和為一常數(shù); * Rfb:反饋信號輸入線,改變 Rfb 端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度; * Vcc:電源輸入端, Vcc 的范圍為 +5V~ +15V; * VREF:基準(zhǔn)電壓輸入線, VREF 的范圍為 10V~ +10V; * AGND:模擬信號地 * DGND:數(shù)字信號地 DAC0832 的工作方式: 根據(jù)對 DAC0832 的數(shù)據(jù)鎖存器和 DAC 寄存器的不同的控制方式,DAC0832 有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。 數(shù)字頻率計(jì)實(shí)驗(yàn)報(bào)告 202171 15 二、系統(tǒng)總體設(shè)計(jì) 計(jì)數(shù)器鎖存器分頻器控 制 器輸出待 測 信 號1 0 2 4 H z 標(biāo) 準(zhǔn) 時(shí) 鐘系 統(tǒng) 框 圖R E S E T小數(shù)點(diǎn) 數(shù)字頻率計(jì)實(shí)驗(yàn)報(bào)告 202171 16 1 2 N0 考慮到測量方便,將數(shù)字頻率計(jì)劃分為 四檔: 10~ 99Hz、 100~ 999Hz、 1000~ 9999Hz、10000~ 99999Hz。 這樣可以保證每一檔三位 有效數(shù)字,而且第三位有效數(shù)字誤差在177。 2以內(nèi)時(shí)即可達(dá)到精度要求。 三個(gè) 輸入信號: 待測信號 、 標(biāo)準(zhǔn)時(shí)鐘脈沖信號 和 復(fù)位脈沖信號。 設(shè)計(jì)細(xì)化要求: 頻率計(jì) 能根據(jù) 輸入待測信號頻率 自動 選擇量程,并在超過最大量程時(shí) 顯示過量程, 當(dāng)復(fù)位脈沖到來時(shí),系統(tǒng)復(fù)位,重新開始計(jì)數(shù)顯示頻率?;谏鲜鲆?,可以將系統(tǒng)基本劃分為四個(gè)模塊,分別為分頻、計(jì)數(shù)、鎖存和控制,并可以確定基本的連接和反饋,如上圖所示。 三、系統(tǒng)及模塊設(shè)計(jì)與說明 如左圖所示為數(shù)字頻率計(jì)測量頻率的原理圖。已知給定標(biāo)準(zhǔn)時(shí)鐘脈沖高電平時(shí)間0T ,將此高電平信號作為計(jì)數(shù)器閘門電平,通過計(jì)數(shù)器得到 0T 時(shí)間內(nèi)待測脈沖 的個(gè)數(shù) N,則有0TNf? 。由圖示可以看出,一個(gè)閘門電平時(shí)間內(nèi)計(jì)數(shù)的最大誤差為 N177。 1,為保證誤差要求取 N≥ 100。經(jīng)計(jì)算,四檔的閘門電平時(shí)間 0T 分別為 10s、1s、 和 。僅對計(jì)數(shù)器計(jì)數(shù)值 N進(jìn)行簡單的移位即可得到結(jié)果。產(chǎn)生閘門電平的工作由分頻器完成。 分頻器 采用 計(jì)數(shù)分頻的方法,產(chǎn)生計(jì)數(shù)閘門電平和一系列控制脈沖,并接受計(jì)數(shù)器和控制器的反饋。 控制器 主要用來判斷計(jì)數(shù)器計(jì)數(shù)是否有效,從而控制檔位轉(zhuǎn)換,鎖存器打開、關(guān)閉和設(shè)定值。 計(jì)數(shù)器 在分頻器和控制器的作用下對輸入待測信號計(jì)數(shù),并把計(jì)數(shù)值輸出,在計(jì)數(shù)溢出時(shí)向控制器和分頻器發(fā)送溢出脈沖。數(shù)字頻率計(jì)實(shí)驗(yàn)報(bào)告 202171 17 鎖存器 用來儲存有效計(jì)數(shù)值,以穩(wěn)定輸出。 四、系統(tǒng)及模塊具體實(shí)現(xiàn)與說明 系統(tǒng)總體結(jié)構(gòu)圖見附圖 1,下面對每一個(gè)模塊的具體功能、引腳分配和Verilog HDL 語言編程實(shí)現(xiàn)進(jìn)行詳細(xì)說明。 在分模塊介紹之前先說明兩個(gè)重要的寄存器狀態(tài) STAT[1..0]和LATCH_STAT[1..0]。 STAT[1..0] 用來保存當(dāng)前檔位信息, STAT[1..0]等于 0 則為第一檔,等于 1則為第二檔,依此類推,共可標(biāo)記四檔,它位于控制模塊中,也是輸出,這樣其他模塊可以通過訪問它得到當(dāng)前檔位信息,而控制模塊可以修改它從而調(diào)整檔位(注:在系統(tǒng)總圖中由于所有與 STAT[1..0]相連的線路均為對應(yīng)順序連接,故沒有才用MAX+plus II 中默認(rèn)的總線連接,而是采用單根線)。 LATCH_STAT[1..0] 用來保存鎖存器狀態(tài)信息, LATCH_STAT[1..0]= 0 時(shí),鎖存器在 CLK 作用下打開關(guān) 閉。 LATCH_STAT[1..0] = 1 時(shí) ,鎖存 器強(qiáng) 制置零 , CLK 無效。LATCH_STAT[1..0]= 2 時(shí),鎖存器強(qiáng)制置 1FFFF, CLK無效。它也在控制器中,這樣可以通過對其改變數(shù)值達(dá)到控制鎖存器鎖存、復(fù)位和顯示過量程的功能。 計(jì)數(shù)器 COUNTER 計(jì)數(shù)器設(shè)計(jì)圖見附圖 1 右上部分,由四個(gè)十進(jìn)制計(jì)數(shù)器級聯(lián)。四個(gè)輸入端口:時(shí)鐘脈沖 CLK、使能端 EN、清零端 CLRN、檔位狀態(tài)端 STAT[1..0]。五個(gè)輸出端口:四個(gè)四位十進(jìn)制 BCD 碼輸出 OUT1[3..0]~ OUT4[3..0]、過量程溢出 OF。功能表見下: 表格 1 十進(jìn)制計(jì)數(shù)器功能表 每個(gè)十進(jìn)制計(jì)數(shù)器用Verilog HDL語言編程實(shí)現(xiàn)。源程序如下: CLK EN CLRN STAT[1..0] OUT4~1 OF H L 0,1,2 3 位加一計(jì)數(shù) OF等于第
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1