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

正文內(nèi)容

基于單片機(jī)的頻率測(cè)量?jī)x的設(shè)計(jì)(已改無(wú)錯(cuò)字)

2022-12-05 13:01:54 本頁(yè)面
  

【正文】 20 送入全部 DDRAM(數(shù)據(jù)顯示寄存器 )地址中,是 DDRAM 中的內(nèi)容全部清除, 清除顯示 ;地址計(jì)數(shù)器AC=0,自動(dòng)增 1 模式;顯示歸位或者閃爍回到屏幕左上角; 但 并不改變移位設(shè)置模式。 0x38:設(shè)置 16 2 顯示, 5 7 點(diǎn)陣, 8 位數(shù)據(jù)接口。 0x0f:開(kāi)顯示,顯示光標(biāo),光標(biāo)閃爍。 0x08:只開(kāi)顯示。 0x06:地址加 1 模式,當(dāng)寫入數(shù)據(jù)的時(shí)候光標(biāo)右移。 0x18:光標(biāo)和顯示一起向左移動(dòng)。 顯示部分電路的設(shè)計(jì) 由 LCD1602 的引腳功能,不難設(shè)計(jì)出顯示電路。由于本設(shè)計(jì)使用的 I/O 不多,所以這里 LCD1602 使用了并行的通信方式,使電路簡(jiǎn)明易了,也提高了通訊速度。在這里需要注意的是, STC89C52RC 這款單片機(jī)的 P0 口是 8 位開(kāi)漏 極 輸出,當(dāng) 作為 普通 I/O 口使用的時(shí)候必須加上拉電阻,否則 LCD1602 液晶模塊就無(wú)法正常工作了。經(jīng)過(guò)測(cè)試,對(duì)比度調(diào)節(jié)端使用 1K 電阻就能達(dá)到很滿意的對(duì)比度,故沒(méi)有使用滑動(dòng)變阻器來(lái)進(jìn)行對(duì)比度的調(diào)節(jié)。具體電路圖如圖 所示。 第三章 硬件設(shè)計(jì)原理 19 圖 LCD1602 測(cè)量結(jié)果顯示電路 最終硬件設(shè)計(jì)圖 前文根據(jù)硬件系統(tǒng)框架已經(jīng)對(duì)各個(gè)模塊進(jìn)行了詳盡的敘述,然后把時(shí)鐘電路,復(fù)位電路,低通濾波器,過(guò)零比較器,分頻電路, MCU 電路,測(cè)量結(jié)果顯示電路都按要求連接起來(lái),至此就完成了原理圖的設(shè)計(jì)。電路如圖 所示。 20 基于單片機(jī)的頻率測(cè)量?jī)x的設(shè)計(jì) 圖 總體設(shè)計(jì)原理圖 元件的布局及 PCB 設(shè)計(jì) Protel DXP 的介紹 Protel DXP 是 首個(gè) 將所有 的 設(shè)計(jì)工具集 成在一起 的板級(jí)設(shè)計(jì) 軟件 ,設(shè)計(jì)者 們可從 輕松的從最初的項(xiàng)目設(shè)計(jì),到最后的項(xiàng)目實(shí)施,都使用 Protel DXP 進(jìn)行處理 ,Protel DXP 運(yùn)行在 經(jīng)過(guò)不斷 優(yōu)化的設(shè)計(jì)瀏覽器平臺(tái)上, 而且具有現(xiàn)今設(shè)計(jì)的絕大部分優(yōu)點(diǎn) , 不但能夠繪制龐大的原理圖,還 能夠 對(duì)非常 復(fù)雜的 PCB 設(shè)計(jì)過(guò)程 進(jìn)行處理 , 設(shè)計(jì)者們可以通過(guò) 設(shè)計(jì) 原理圖, 輸入 進(jìn)行 仿真、 PCB 的 繪制編輯、拓?fù)渥詣?dòng)布 局 、信號(hào)完整性分析和設(shè)計(jì)輸出等技術(shù) 相 融合, 快速高效的進(jìn)行產(chǎn)品的開(kāi)發(fā) [10]。 原理圖的繪制和 PCB 布局 使用 Protel DXP 軟件,根據(jù)設(shè)計(jì)好的原理圖先畫出 PCB 原理圖 [11],然后再導(dǎo)入到 Protel DXP 的 PCB 布局模塊中進(jìn)行手動(dòng)布局 [12],由于電路元件不多,所以采用萬(wàn)用洞洞板進(jìn)行焊接,布局的時(shí)候把捕獲網(wǎng)絡(luò)設(shè)置為洞洞板的孔間距 100mil[13],底層用焊錫走線,頂層使用跳線的方式進(jìn)行連接,這樣布局出來(lái)之后就可以直接在萬(wàn)用板上進(jìn)行焊接。 PCB 原理圖和 PCB 布局圖如 和 所示。 第三章 硬件設(shè)計(jì)原理 21 圖 PCB 原理圖的繪制 圖 手動(dòng) PCB 布局結(jié)果 22 基于單片機(jī)的頻率測(cè)量?jī)x的設(shè)計(jì) 第四章 數(shù)字頻率計(jì)軟件系統(tǒng)設(shè)計(jì) 23 第四章 數(shù)字頻率計(jì)軟件系統(tǒng)設(shè)計(jì) 軟件平臺(tái)介紹 Keil C51 是美國(guó) Keil Software 公司 開(kāi)發(fā)出的一款兼容 51 系列 單片機(jī) 的專用 C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng) ,和 匯編相比, C 語(yǔ)言 在可讀性,可維護(hù)性,還有功能上都有著匯編不可比擬的優(yōu)勢(shì) , 因此它 易學(xué)易用。 Keil 提供了 諸如 C 編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境( uVision)將這些部分 有機(jī)的 組合在一起 , 運(yùn)行 Keil軟件需要 WIN9NT、 WIN20 WINXP 等操作系統(tǒng) , 如果 你 使用 C 語(yǔ)言 進(jìn)行單片機(jī)的開(kāi)發(fā) 編程,那么 Keil 就是你最好的選擇 ,即使不使用 C 語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也 會(huì)使你 事半功倍 [14]。 Keil 軟件具有非常之多的優(yōu)點(diǎn) ,是 MCS51 系列 單片機(jī)軟件開(kāi)發(fā)的主流平臺(tái),Keil C51 生成的目標(biāo) 代碼效率 很 高,多數(shù)語(yǔ)句生成的匯編代碼 具有 緊湊,容易理解的優(yōu)點(diǎn), Keil在開(kāi)發(fā)大型 工程 時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì) , 與匯編相比, C 語(yǔ)言 簡(jiǎn)單明了,執(zhí)行效率高,開(kāi)發(fā)周期短,非常適合單片機(jī)的開(kāi)發(fā) , 使 用過(guò)匯編語(yǔ)言后再使用 C 來(lái)開(kāi)發(fā),體會(huì)更加 的 深刻。因此 該 設(shè)計(jì)的軟件開(kāi)發(fā)選擇使用 Keil C51 單片機(jī)軟件開(kāi)發(fā) 平臺(tái) [15]。 軟件設(shè)計(jì)規(guī)劃 本次設(shè)計(jì)要求的測(cè)量的頻率的范圍是 ~15MHz。測(cè)量的思路是在 頻率較高 的時(shí)候,設(shè)定一個(gè) 固定時(shí)間 ,在給 定 的時(shí)間內(nèi)測(cè)量出脈沖個(gè)數(shù), 計(jì)算出頻率。但是頻率比較低的時(shí)候,因?yàn)?F=N247。 T, T 是一定的, N 的個(gè)數(shù)減少,這樣就會(huì)造成很大的誤差,所以在低頻的時(shí)候采用測(cè)寬法進(jìn)行頻率的測(cè)量。所謂測(cè)寬法,就是當(dāng)頻率比較低的時(shí)候,測(cè)量一個(gè)脈沖的 周期 T,根據(jù)公式 F=1247。 T,來(lái)計(jì)算頻率。 高頻使用計(jì)數(shù)法 來(lái)提高精度 ,低頻使用測(cè)寬法 縮短測(cè)量時(shí)間 ,為了 使 數(shù)字式頻率計(jì)更便于使用,需要加入一個(gè) 檔位 自動(dòng)切換功能。思路是先使用給定的 1S 的閘門時(shí)間,測(cè)量一次,如果所得頻率大于等于 100,則所測(cè)得的頻率值就是最終的結(jié)果。如果 在給 定 的 1S 的閘門時(shí)間測(cè)得的頻率值小于 100,則舍棄此次測(cè)量結(jié)果,啟動(dòng)外部中斷 1,設(shè)定為下降沿觸發(fā),在第一個(gè)下降的時(shí)候定時(shí)器開(kāi)始工作,在第24 基于單片機(jī)的頻率測(cè)量?jī)x的設(shè)計(jì) 二個(gè)下降沿的時(shí)候,定時(shí)器停止計(jì)時(shí),中間的這段時(shí)間就是所測(cè)的周期 T,根據(jù)頻率定義 F=1247。 T,就可以計(jì)算得出頻率,這樣精確度比計(jì)數(shù)法提高了很多。 數(shù)字頻率計(jì)軟件設(shè)計(jì) 程序流程圖 由高頻計(jì)數(shù),低頻測(cè)寬的思路確定軟件流程圖。具體流程是單片機(jī)啟動(dòng)之后先對(duì)顯示器件 LCD1602 和定時(shí)器計(jì)數(shù)器 進(jìn)行相應(yīng)的初始化。然后循環(huán)檢測(cè)按鍵是否被按下,如果按鍵被按下, 則 先啟動(dòng)計(jì)數(shù)法測(cè) 量 頻率,使用給定的 1S 的閘門時(shí)間,當(dāng)測(cè)量完成之后,判斷頻率是否大于 100,如果大于 100 則直接顯示測(cè)量結(jié)果,如果小于 100,則舍棄當(dāng)前測(cè)量值,改用測(cè)寬法進(jìn)行低頻信號(hào)的頻率測(cè)量 來(lái)提高精度 。測(cè)量完成之后將結(jié)果在 LCD1602 上進(jìn)行顯示。顯示完成之后再次循環(huán)檢測(cè)是否按下了頻率測(cè)量按鍵。程序流程如圖 所示。 第四章 數(shù)字頻率計(jì)軟件系統(tǒng)設(shè)計(jì) 25 圖 軟件流程圖 計(jì)數(shù)法測(cè)量頻率流程 首先, 在進(jìn)行程序初始化的時(shí)候 ,將定時(shí)器 1 初始化 為模式 1,定時(shí)時(shí)長(zhǎng)為20ms,當(dāng)進(jìn)入中斷 50 次的時(shí)候,時(shí)間是 剛好 1S。當(dāng)開(kāi)始使用計(jì)數(shù)法測(cè)量頻率的時(shí)候,定時(shí)器 1 始計(jì)時(shí),用于產(chǎn)生 1S 的定時(shí)中斷,同時(shí)計(jì)數(shù)器 0 開(kāi)始工作,用來(lái)計(jì)數(shù) 256 分頻器 74LS161 的溢出次數(shù),同時(shí)使用 ConterT0 來(lái)記錄計(jì)數(shù)器 0 的溢出次數(shù)。當(dāng)時(shí)間到了 1S 的時(shí)候,使 74LS161 的 ENP 和 ENT 都為 0, 74LS161 停止計(jì)數(shù)。此時(shí),總脈沖個(gè)數(shù) N=P0+(TL0+TH0 256) 256+conterT0 256 256 256,這時(shí) 1S 的總脈沖個(gè)數(shù) N 是已知的, 則 可以算出頻率 f=N247。 1。如果頻率大于 100則直接顯示,如果小于 100 則啟動(dòng)測(cè)寬法重新測(cè)量。流程圖如圖 所示。 LCD1602,定時(shí)器計(jì)數(shù) 器等初始化 啟動(dòng)測(cè)寬法,測(cè)量頻率 啟動(dòng)計(jì)數(shù)法,測(cè)量頻率 頻率大于 100 Key 被按下 在 LCD1602 上顯示測(cè)量結(jié)果 Y N N Y 開(kāi)始 26 基于單片機(jī)的頻率測(cè)量?jī)x的設(shè)計(jì) 圖 計(jì)數(shù)法測(cè)量頻率流程圖 關(guān)鍵程序如下所示。 void interrupt_timer1() interrupt 3{ //計(jì)時(shí)器 ,用于計(jì)算時(shí)間 TH1 = 0x3c。 //重裝定時(shí)器初值,定時(shí) 50ms TL1 = 0xb0。 conterT1++。 //conterT1=20 的時(shí)候?yàn)?1S if(conterT1 == 20){ PT = 0。 //74LS161 停止計(jì)數(shù) TR1 = 0。 //關(guān)閉定時(shí)器計(jì)數(shù)器 TR0 = 0。 conterT1 = P1。 //讀 P1 口當(dāng)前值 保護(hù)現(xiàn)場(chǎng),進(jìn)入中斷 重裝定時(shí)器初值,定時(shí) 50ms, Conter++ Conter=20?? Conter=0,讀取計(jì)數(shù)器 0 的溢出次數(shù)和當(dāng)前值, P0 的值,并計(jì)算頻率 顯示頻率 返回 頻率大于 100? 啟動(dòng)測(cè)寬法,關(guān)閉定時(shí)器 1 N Y N Y 第四章 數(shù)字頻率計(jì)軟件系統(tǒng)設(shè)計(jì) 27 temp = TL0 + TH0*256。 if(conterT1=241)temp = temp 1 。 //74LS161 在 1111 的時(shí)候就進(jìn)位了 //所以這里需要特殊處理 Hz = conterT1 + temp*256 + conterT0*256*256*256。 //計(jì)算脈沖總個(gè)數(shù) //conterT1 是目前 74LS161 的 數(shù)值 , temp 是定時(shí)器累計(jì)的脈沖個(gè)數(shù) //conterT0 是定時(shí)器溢出次數(shù) TL0 = 0x00。 //對(duì)使用過(guò)的計(jì)數(shù)器和變量進(jìn)行清 0,方便以后測(cè)量 TH0 = 0x00。 conterT0 = 0。 conterT1 = 0。 w_cmd(0x01)。 //LCD1602 清屏,為顯示做準(zhǔn)備 if(Hz100){ //檢測(cè)是否需要啟動(dòng)測(cè)寬法 w_string3(0x80,Fre=)。 //顯示計(jì)數(shù)法測(cè)得的頻率 make_int_hz(0x84,Hz)。 } else isTestWidth = 1。 //啟動(dòng)測(cè)寬法 } } 測(cè)寬法測(cè)量頻率流程 當(dāng)啟動(dòng)測(cè)寬法測(cè)量頻率時(shí),首先打開(kāi)外部中斷 0,并設(shè)置是 IT0=1,為下降沿觸發(fā),這樣進(jìn)入外部中斷 0 兩次之間的時(shí)間就是一個(gè)波長(zhǎng)的周期 T。當(dāng)?shù)谝淮芜M(jìn)入中斷的時(shí)候 Conter=0,此時(shí)啟動(dòng)定時(shí)器 0 開(kāi)始計(jì)時(shí)。當(dāng)遇到第二個(gè)下降沿的時(shí)候,此時(shí) Conter=1 而不是 0,程序此時(shí)停止計(jì)數(shù)器 0,并讀出兩次進(jìn)入中斷之間的時(shí)間間隔,這個(gè)時(shí)間間隔就是周期 T,使用公式 f=1247。 T 就可以計(jì)算得到頻率, 最 后送入到顯示電路進(jìn)行頻率的顯示。其流程圖如圖 所示。 28 基于單片機(jī)的頻率測(cè)量?jī)x的設(shè)計(jì) 圖 測(cè)寬法測(cè)量頻率流程圖 關(guān)鍵程序如下所示。 void interrupt_int0() interrupt 0{ if(isTestDone == 1)TR0 = 1。 //外部中斷 0 測(cè)量周期 T isTestDone++。 //標(biāo)志位 if(isTestDone == 3) { //測(cè)量到第二個(gè)下降沿 TR0 = 0。 EX0 = 0。 isTestDone = 0。 //標(biāo)志位置 0 PT = 0。 //74LS161 停止計(jì)數(shù) MR = 0。 //74LS161 清 0,在 MR 的上升沿 74LS161 清 0 MR = 1。 time =conterT0 * 65536 +TL0+TH0*256。//計(jì)算一個(gè)波長(zhǎng)的時(shí)間 單位 us Hz = 20200000/time。 //計(jì)算頻率 w_cmd(0x01)。 //LCD1602 清屏,為顯示做準(zhǔn)備 TH0 = 0x00。 保護(hù)現(xiàn)場(chǎng),進(jìn)入外部中斷 0(下降沿觸發(fā)) Conter=0? 停止計(jì)時(shí)器 0,讀出當(dāng)前時(shí)間,使用 周期 T 計(jì)算出頻率,關(guān)中斷 0 離開(kāi)中斷,恢復(fù)現(xiàn)場(chǎng) 在 LCD1602 上顯示頻率 Conter++,定時(shí)器 0開(kāi)始計(jì)時(shí),用于測(cè)量被測(cè)信號(hào)的周期 T Y N 第四章 數(shù)字頻率計(jì)軟件系統(tǒng)設(shè)計(jì) 29 TL0 = 0x00。 conterT0 = 0。 EX1 = 1。 //打開(kāi)外部中斷 1,下降沿觸發(fā),用于響應(yīng)按鍵 w_string(0x80,Fre=)。 make_float_hz(0x84,Hz)。 //用 LCD1602 顯示測(cè)寬法測(cè)得的頻率 } } 其他關(guān)鍵程序 該設(shè)計(jì)使用按鍵觸發(fā)的方式開(kāi)始頻率的測(cè)量,按鍵接到外部中斷 INT1 上,設(shè)置 IT1=1 為下降沿觸發(fā),這樣可以防止重復(fù)響應(yīng)。程序如下所示。 void interrupt_int1() interrup
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1