版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、帶 ATiny 的時(shí)間(shjin)/間隔(jin g)測(cè)量?jī)x 作者(zuzh):Vladimir Mitrovic, Croatia 本項(xiàng)目要說明的是,用很少的硬件就能做一 個(gè)多功能時(shí)間和間隔測(cè)量表,還帶易于讀數(shù) 的 LCD 顯示器的。 一種 ATtiny2313 型號(hào)的 AVR 微控制器可以測(cè)量輸入針腳 PD2 和 PD3 的脈沖的兩個(gè)連續(xù)邏輯電平轉(zhuǎn)換之間的時(shí)間間 隔。在微秒級(jí),測(cè)量時(shí)間間隔的范圍為 10 微 秒到 30 分鐘,測(cè)量精度為 1 微秒。 在毫 秒級(jí),測(cè)量時(shí)間間隔的范圍為 1 毫秒到 4 小 時(shí),測(cè)量精度為 1 毫秒。 在電路中,DIP 開關(guān)組 S2 決定了儀器的設(shè) 置,具體如
2、下: S2 1-8: 選擇脈沖邊沿(上升或下降)開始測(cè)量。 S2 2-7: 選擇脈沖邊沿(上升或下降)結(jié)束測(cè)量。 S2 3-6: 測(cè)量單位和精度(微秒或毫秒) S2 4-5: 測(cè)量模式(連續(xù)或單次/保持) 開關(guān)組功能和選項(xiàng)的詳細(xì)說明 見表1。 測(cè)量結(jié)果顯示在一個(gè) LC 顯示屏上,分兩行顯 示共 16 個(gè)字符。 第一行顯示所選的時(shí)間間 隔、測(cè)量單位和測(cè)量模式,第二行顯示測(cè)量結(jié) 果(時(shí)間)。 表 1 S2 1-8 S2 2-7 S2 3-6 S2 4-5 標(biāo)準(zhǔn)時(shí)間間隔 關(guān) 關(guān) x x 從下降邊沿到下一個(gè)下降邊沿。 關(guān) 開 x x 從下降沿到上升沿(2 個(gè)正脈沖的時(shí)間間隔)。 開 關(guān) x x 從上升
3、沿到下降沿(正脈沖持續(xù)時(shí)間)。 開 開 x x 從上升沿到下一個(gè)上升沿。 x x 開 x 測(cè)量單位為 s (t(min)=10s, t(max)=1800s (30m)。 x x 關(guān) x 測(cè)量單位為 ms (t(min)=1ms, t(max)=14400s (4h)。 x x x 關(guān) 連續(xù)測(cè)量:當(dāng)一次測(cè)量已結(jié)束且其結(jié)果已顯示時(shí), 開始新的一次測(cè)量 x x x 開 單次測(cè)量:當(dāng)一次測(cè)量結(jié)束其結(jié)果顯示時(shí),程序停止。 (x = 無關(guān)項(xiàng)) 元件列表 電阻器 R1,R3 = 10k R2 = 1k R4 = 39 R5 = 1k8 P1 = 10k 預(yù)設(shè) 電容器 C1 = 22F 35V radial
4、 C2,C3,C6 = 100nF C4 = 47pF 微調(diào) C5 = 22pF 半導(dǎo)體 D1 = 1N4001 D2,D3 = BAT41 D4 = 低電流 LED IC1 = 78L05 IC2 = ATtiny2313, Elektor Shop # 080876-41 其他 S1 = 觸覺開關(guān),6mm 尺寸 S2 = 4 路 DIP 開關(guān) K1,K2 = PCB 安裝端子,引腳間距 5mm (0.2“) K3 = 10 路方形針座 X1 = 8MHz 石英晶體 LCD1 = LCD 模塊,2 行,16 字符 LCD 針座 16 路 1 行 0.1 間距 LCD 插座條 16 路 1 行
5、 0.1 間距 PCB, 參考 080876-I LED D4 在測(cè)量(cling)期間會(huì)亮燈,而在兩次測(cè)量的 間隔(jin g)以及 Hold 期內(nèi)則熄滅(xmi)。 其主要目的是, 在較長(zhǎng)的測(cè)量期內(nèi)指示測(cè)量正在進(jìn)行中。 當(dāng)然你也,可以略去 LED 和 R5。 在微秒級(jí),ATtiny2313 內(nèi)的 8位 計(jì)時(shí)器/計(jì)數(shù) 器 0 設(shè)置為普通模式,比較匹配輸出 B 處在開動(dòng)狀態(tài),計(jì)時(shí)器計(jì)算預(yù)分頻 的系統(tǒng)同步脈沖發(fā)生器脈沖。 由于使用了一個(gè) 8MHz 石英晶體 且分頻器的除數(shù)設(shè)定為 8 ,計(jì)時(shí)器/計(jì)數(shù)器 0 的值每 微秒增加 1。 輸出比較寄 存器 B 設(shè)定為 255,每到 第 256 個(gè)脈沖時(shí)會(huì)觸
6、發(fā)輸出 比較針腳 (OC0D) 。OC0D 針腳內(nèi)在地與計(jì)時(shí)器/計(jì)數(shù)器 1 的輸入端相連,而計(jì)時(shí)器/計(jì) 數(shù)器 1 計(jì)算 OC0D 上收到的 這些脈沖,計(jì)算精度為 16 位, 如此我們便制作了一個(gè) 25 位的 硬件計(jì)數(shù)器(16 位 T/C1+OC0D 位 +8 位 T/C0)。 軟件能實(shí)現(xiàn)額外的 6 位精度,在測(cè)量過程 中,程序循環(huán)運(yùn)行,等待停止測(cè)量信號(hào),且不 斷收集計(jì)時(shí)器/計(jì)數(shù)器 1 的溢位旗標(biāo) TOV1。 如果設(shè)定了 TOV1 的值,則程序?qū)?6 位 SW 計(jì)數(shù)器的值增加 1,并且清除 TOV1。 這 里不用中斷,因?yàn)橹袛嗫赡軙?huì)延遲識(shí)別停 止?fàn)顟B(tài)。 一個(gè) 31 位的計(jì)數(shù)器可以計(jì)算高達(dá) 2,1
7、47,483,647 微秒。 出于實(shí)用的考慮,微秒級(jí)最大測(cè)量(cling)時(shí)間定為 1,800,000,000 微秒(30 分鐘)。 毫秒級(jí)也 是通過大致相同的方式(fngsh)實(shí)現(xiàn),除了將系統(tǒng)時(shí)鐘 的分頻(fn pn)系數(shù)設(shè)定為 8 外。 在測(cè)量后,把結(jié)果 除以 125,得出最大值 17,179,869 毫秒。 同 樣出于實(shí)用的考慮,毫秒級(jí)最大測(cè)量時(shí)間定為 14,400,000 毫秒(4 小時(shí))。 當(dāng) ATtiny 的針腳 PD2( 觸發(fā)斜率取決于 S2 1-8 的 設(shè)置)識(shí)別到一個(gè)下降或 上升邊沿時(shí),測(cè)量開始, 同時(shí)執(zhí)行外部中斷向量 INT0。 當(dāng)針腳 PD3( 觸發(fā)斜率取決于 S2 2-
8、7 的設(shè)置)識(shí)別到一個(gè)下 降或上升邊沿時(shí),測(cè) 量停止,同時(shí)執(zhí)行外 部中斷向量 INT1。 為該項(xiàng)目編寫的程序可以從1免費(fèi)下載。 程 序是用 BascomAVR 編寫的,內(nèi)嵌有中斷匯 編碼并插入了對(duì)計(jì)時(shí)關(guān)鍵的程序。 在主循環(huán) 內(nèi),程序一直監(jiān)視 S2 中的開關(guān),啟動(dòng)測(cè)量并 顯示測(cè)量結(jié)果。 與之前的讀數(shù)相比,開關(guān)的 設(shè)置一發(fā)生變化,新的測(cè)量級(jí)別、模式和/或 開始/停止斜率就將被確定,顯示屏上的第一 行顯示內(nèi)容將會(huì)相應(yīng)地更新。 在量測(cè)例行程序的開頭,計(jì)時(shí)器/計(jì)數(shù)器以及 軟件計(jì)數(shù)器(對(duì) 26-31 位)被清零,OC0B 位 被重置,且外部中斷 INT0 啟動(dòng)。之后程序 循環(huán)運(yùn)行,等待 INT0 中斷發(fā)生
9、,觸發(fā) INT0 中斷程序。在該程序中,計(jì)時(shí)器/計(jì)數(shù)器 0 啟 動(dòng),一些計(jì)數(shù)器被設(shè)置成初始值,LED D3 亮 燈,INT0 中斷被關(guān)閉避免再次觸發(fā),而 INT1 中斷被開啟。程序繼續(xù)循環(huán)運(yùn)行,等待 INT1 中斷發(fā)生,INT1 發(fā)生將觸發(fā) INT1 中斷程序。 在該程序中,計(jì)時(shí)器/計(jì)數(shù)器 0 被停止,且往 后的外部中斷被關(guān)閉。 程序開始時(shí),計(jì)時(shí)器/計(jì)數(shù)器 1 被啟動(dòng),并且 在程序運(yùn)行過程中無需停止和重新啟動(dòng);因?yàn)?它計(jì)算來自計(jì)時(shí)器/計(jì)數(shù)器 0 的脈沖,因此它 將與計(jì)時(shí)器/計(jì)數(shù)器 0 同時(shí)開始和停止。 當(dāng)測(cè)量程序探測(cè)到兩個(gè)外部中斷都被關(guān)閉時(shí), 一次測(cè)量即告完成。測(cè)量結(jié)果從硬件 (HW) 和軟件
10、 (SW) 寄存器收集得來,LED D3 被關(guān) 閉,進(jìn)行一些計(jì)算后測(cè)得的時(shí)間間隔顯示在顯 示器的下一行(第二行)。 至于精確度,計(jì)數(shù)器的硬件部分計(jì)算時(shí)鐘脈 沖,因此不可能有錯(cuò)誤計(jì)數(shù)。 軟件部分計(jì)算 計(jì)時(shí)器/計(jì)數(shù)器 1 溢位,會(huì)有幾個(gè)周期數(shù)的延 遲。 但是,當(dāng)計(jì)時(shí)器被停止時(shí),HW 部分能 實(shí)現(xiàn)與硬件部分同步。 INT0 與 INT1 中斷程 序是精心編寫的,從程序開始到計(jì)時(shí)器/計(jì)數(shù) 器 0 在一個(gè)程序開始、在另一個(gè)程序停止這段 時(shí)間內(nèi),延遲是完全相同的。 在外部中斷被 觸發(fā)到中斷程序開始啟動(dòng)這段時(shí)間內(nèi),會(huì)有短 時(shí)間的延遲。 這段延遲的長(zhǎng)短取決于中斷被 觸發(fā)時(shí)正在被執(zhí)行的指令。 指令在 1-4 同
11、步 脈沖發(fā)生器周期內(nèi)執(zhí)行,因此差異最大可達(dá) 3 個(gè)同步脈沖發(fā)生器周期。 但是,由于計(jì)時(shí)器/ 計(jì)數(shù)器 0 計(jì)算的系統(tǒng)時(shí)鐘要除以 8,一次在兩 個(gè)級(jí)別(微秒和毫秒)的最終計(jì)數(shù)僅產(chǎn)生一個(gè) 1 的誤差。 因此,對(duì)總體精度有顯著影響的 唯一因素就是晶體精度 - 考慮當(dāng)您在顯示屏上 看到 t=123456789 s 的情形。 第二個(gè)需要(xyo)考慮的是測(cè)量時(shí)間,在毫秒級(jí),測(cè) 量時(shí)間(shjin)可能持續(xù)幾個(gè)小時(shí)。 因此(ync)一個(gè)特別的 SW 計(jì)數(shù)器在等待循環(huán)中(在測(cè)量期內(nèi)有兩個(gè) 等待循環(huán);等待開始信號(hào)和等待停止信號(hào))被 啟動(dòng)。 該計(jì)數(shù)器可能計(jì)算到預(yù)先設(shè)定的測(cè)量 時(shí)間的最大值,在這種情況下,計(jì)數(shù)器停止
12、繼 續(xù)測(cè)量,并顯示 t14400000。 起初,測(cè) 量時(shí)間的最大值被設(shè)定為允許的最大值,即微 秒級(jí)為 30 分鐘,毫秒級(jí)為 4 小時(shí)。 與其他開關(guān)一樣,測(cè)量開始前,讀取 S2 4-5。 但是,如果該開關(guān)被關(guān)閉(并且單次/保持模 式被激活)則程序以另一種方式運(yùn)行: 在等待開始信號(hào)時(shí),測(cè)量時(shí)間最大值計(jì)數(shù)器被 阻止,但在等待停止信號(hào)時(shí)(在等待一次非重 復(fù)的脈沖發(fā)生時(shí),允許無限時(shí)等待時(shí)間,盡 管脈沖持續(xù)時(shí)間仍被限制在測(cè)量時(shí)間最大值之 內(nèi)),它被再次開啟。 當(dāng)測(cè)量結(jié)果顯示在顯示屏上時(shí),程序在循環(huán)中 等待,通常監(jiān)視 S2 4-5,一旦打開開關(guān),會(huì)立 即繼續(xù)運(yùn)行。 供應(yīng)給該項(xiàng)目的 TmeterElektor
13、.bas 程序應(yīng) 在第一次使用前寫入 ATtiny2313 微控制器。 必須確保為外部晶體諧振器 (CKSEL31,0 = 1111) 的Flash 熔絲位 CKSEL3.0 設(shè)一個(gè)合 適的值,因?yàn)槟J(rèn)選擇的是內(nèi)部 RC 振蕩器。 晶體的頻率必須剛好等于 8,000 MHz,這非常 重要,因?yàn)檫@決定了總體精度。 使用一個(gè)微 調(diào)電容器 C4 用來微調(diào)晶體頻率。 如果您對(duì) 晶體的頻率很滿意,則用一個(gè)固定電容器代 替 C4。 您也可以用一個(gè)精確的石英振蕩器來 驅(qū)動(dòng)微控制器;此時(shí)可不用 C4、C5 以及 X1 ,而把振蕩器的輸出端連接到 XTAL1 的輸入 端。 調(diào)節(jié) P1 以獲得最佳的顯示對(duì)比度。
14、在程序中,起初測(cè)量時(shí)間的最大值被設(shè)定為 常數(shù): Const Tmax_us_default = 1800 max measuring time for us range s Const Tmax_ms_default = 14400 max measuring time for ms range s 推薦使用(shyng)上面所列的值作為測(cè)量時(shí)間最大值, 當(dāng)然用戶(yngh)可以用適當(dāng)?shù)谋容^小的值來代替這些 推薦值,例如(lr): Const Tmax_us_default = 60 max measuring time for us range s Const Tmax_ms_default
15、 = 300 max measuring time for ms range s 這樣就會(huì)把測(cè)量時(shí)間的最大值縮短到 60 微秒 (微秒級(jí)的情況下)和 300 秒(毫秒級(jí)的情 況下)。 當(dāng)然,改變這些最大值之后需要重 新編寫程序并把改寫的程序重新寫入微控制 器。 選擇測(cè)量時(shí)間的最佳最大值非常重要, 因?yàn)槿绻斎腚娖讲蛔儠r(shí)(或者,如果電平躍 遷發(fā)生過于緩慢時(shí),程序?qū)⒌却L(zhǎng)達(dá)兩倍的測(cè) 量時(shí)間最大值),程序循環(huán)運(yùn)行并等待,等待 的時(shí)間等于測(cè)量時(shí)間最大值。 改變測(cè)量時(shí)間最大值的另一個(gè)方法是在微控 制器的 EEPROM 中把合適的值編成 16 位無 符號(hào)的二進(jìn)制值,參見表 2。 這些值應(yīng)以秒 為單位。 程
16、序的原理如下: 如果 EEPROM 為空 (FFh),則使用程序中預(yù) 先設(shè)定的測(cè)量時(shí)間最大值。 如果微秒級(jí)的 EEPROM 的值大于 1800,則 使用程序中為微秒級(jí)預(yù)設(shè)的測(cè)量時(shí)間最大值。 如果毫秒級(jí)的 EEPROM 的值大于 14400,則 使用程序中為毫秒級(jí)預(yù)設(shè)的測(cè)量時(shí)間最大值。 任何在允許范圍內(nèi)的 EEPROM 值將被使用, 這種情況下就不是用程序中為該測(cè)量級(jí)別預(yù)設(shè) 的測(cè)量時(shí)間最大值。 表 2 EEPROM 數(shù)值 EEPROM 評(píng)價(jià) 000 0000 LSB 最大微秒級(jí)測(cè)量時(shí)間 s 000 0001 MSB 000 0010 LSB 最大毫秒級(jí)測(cè)量時(shí)間 s 000 0011 MSB 在主程序循環(huán)開始時(shí),將讀取配置開關(guān)組。 長(zhǎng)時(shí)間的測(cè)量可能會(huì)造成混淆,因?yàn)樵谡谶M(jìn) 行的測(cè)量未結(jié)束且測(cè)量結(jié)果未顯示出來之前, 顯示屏上顯示的是舊的設(shè)置以及前一次的測(cè)量 結(jié)果。 您只要在新的開關(guān)設(shè)置之后立即重新 設(shè)置微控制器,即可加快這個(gè)過程。 如要重 新設(shè)置微控制器,按重設(shè)按鍵。 在單次/保持模式下,您可以按下述方法開始 新的測(cè)量: 開啟(kiq) S2 4-5 以重新啟動(dòng)持續(xù)(chx)測(cè)量模式或重新 設(shè)置(shzh)微控制器以重新啟動(dòng)單次/保持模式(用 這種方法,您無法通過快速打
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈陽理工大學(xué)《大學(xué)生心理健康》2021-2022學(xué)年第一學(xué)期期末試卷
- 哈工大建筑工程法規(guī)與合同試題
- 食品安全與營(yíng)養(yǎng)健康科普大賽
- 2024酒店會(huì)議服務(wù)合同
- 專題11.分析人物形象-2023年四升五語文暑期閱讀專項(xiàng)提升(統(tǒng)編版)
- 2024【外架工操作證】正規(guī)的外架工程班組勞務(wù)包干合同
- 2024家庭保姆雇傭合同新
- 規(guī)劃課題申報(bào)范例:大學(xué)生畢業(yè)實(shí)習(xí)課程化管理的體制機(jī)制建構(gòu)(附可修改技術(shù)路線圖)
- 規(guī)劃課題申報(bào)范例:“雙減”背景下小學(xué)數(shù)學(xué)教學(xué)提質(zhì)增效策略研究(附可修改技術(shù)路線圖)
- 深圳大學(xué)《中國(guó)民俗文化》2022-2023學(xué)年第一學(xué)期期末試卷
- 牙用漂白凝膠市場(chǎng)環(huán)境與對(duì)策分析
- 2024年山東省濟(jì)南市中考英語試題卷(含答案)
- 人教版七年級(jí)道德與法治上冊(cè) 期中復(fù)習(xí)知識(shí)梳理
- 3.1 農(nóng)業(yè)區(qū)位因素及其變化 課件 高一地理人教版(2019)必修第二冊(cè)
- 建筑施工企業(yè)(安全管理)安全生產(chǎn)管理人員安全生產(chǎn)考試參考題及答案
- 鍋爐應(yīng)急預(yù)案演練方案
- 《11~20各數(shù)的認(rèn)識(shí)》(教案)-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)人教版
- 關(guān)于高技能人才培養(yǎng)問題的思考高技能人才培養(yǎng)方案
- 2024新信息科技四年級(jí)《第三單元 有趣的編碼應(yīng)用》大單元整體教學(xué)設(shè)計(jì)
- 中國(guó)航天發(fā)展史主題班會(huì) 課件
- 正向管理課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論