精品欧美一区二区精品久久_日韩精品国产自在久久现线拍_亚洲欧美国产日韩天堂在线视_欧美激情久久久久久久久

聯系方式
聯系人:黃小姐
聯系電話:0755-25848978, 83738778
傳真號碼:0755-83738639
公司地址:深圳市寶安區西鄉街道寶源路深圳市名優工業產品展示采購中心B座1區五樓508號
Email:sales@sandat.com
郵編:518102
公司網址:http://www.sandat.com
文章詳情

SMT16030溫度傳感器與 68HC11 型單片機的連接

日期:2025-12-09 10:21
瀏覽次數:8324
摘要:

SMT16030溫度傳感器 68HC11 型單片機的連接

H. Liefting

這個操作說明書描述了Smartec溫度傳感器如何與68HC11單片機連接。

支持兩種輸入形式: 捕獲輸入和規則輸入。 

A. 使用捕獲輸入

SMARTEC溫度傳感器有一個占空因數輸出: 

                       全周期

為了計算占空因數,必須獲得兩個測量結果。一個是一個全周期所用的時間,另一個是信號為高電平('1')的時間。兩種時間都可以使用輸入捕獲計時器來測量。

當輸入由邏輯'1'跳變為'0'時計時器啟動。信號由'0''1',存儲計時器中的內容。周期末端當信號由再次'1' '0'時,再次存儲計時器中的內容。現在我們可以計算占空因數了。

0.5ms可以獲得一次全周期所用的時間 (t ) 和信號為高電平('1')時的時間 (t 

利用這些時間來計算傳感器的溫度傳感器的規格書中給出了下面的公式:

 

占空因數 (d.c.)= 0.31924 + 0.00472 x 溫度 ()

所以溫度是:211.9 x ( d.c. - 0.31924)。為了簡便,在方程兩邊乘以(65536)來出去小數部分:

溫度 x 65536 = 211.9 x ( 2 x d.c. - 20922),

 

309 x 溫度 = 2 x d.c. – 20922

變量 d.c. x 2可以計算如下::信號是高電平的時間除以全周期時間。使用 'fdiv' 指令來進行除法操作。'fdiv' 指令乘完除數2之后將劃分兩個16-bit數。這正是我們需要的。在從計算結果中減20922。之后我們獲得309*溫度。25度的溫度將產生一個數值25 x 309 = 7725。使用這些數可以簡化進一步的計算。

傳感器輸出信號頻率在1 kHz4 kHz 之間。 這表明每毫秒都能獲得一個測量值。能夠充分滿足一般需求。我們測量不止一個值,而是測量100個周期然后取平均值。

 

*************************************************

溫度測量

*************************************************

在輸入信號的still_to_do階段測量結果累加

* -周期總數表示為periodsum

* -信號總數中信號為'1' 的時間表示為signalsum

 

* 在每個周期的結束時,still_to_do低于電平1

如果保持信號still_to_do降為零測量完成求和將不再增加

經過一段時間調整,'meas_on' 標志位將被重置

 

開始測量:

* - 'meas_on' 標志位必須設置為 '1'

* -在測量過程中,必須用測量的平均周期數來初始化'still_to_do' *       

* - 周期總數和信號總數必須設為0

程序段

 

溫度測量的數據區

DATA    space

still_to_do       rmb 1          |number of periods to accumulate

meas_on         rmb 1          |flag to indicate the measurement is running

periodsum        rmb 3          |accumulates period times

signalsum        rmb 3          |accumulates '1' time of the signal

 

存儲以便內部應用

periodstart    rmb 2           |startingtime of a period

starttime1      rmb 2           |time at which the signal became '1'

 

溫度測量初始化

程序段

                clr meas_on

                clr still_to_do  |no measurement active

                ldab #$7E        |initialize the interrupt vector

                stab tic1int

                ldd #sensorint

                std tic1int+1

                ldx #regsbeg    |start measuring a falling edge

                bclr tctl2-regsbeg,x,edg1a

                bset tctl2-regsbeg,x,edg1b

                ldab #ic1f       clear possibly pending interrupt

                stab tflg1-regsbeg,x

                bset tmsk1-regsbeg,x,ic1i

jmp tempend     |end of the initialization

 

 

溫度測量子程序

程序段

*******輸入中斷程序 *******

sensorint       equ $

                ldx #regsbeg    |let IX point at the I/O registers

**次設置中斷標志位

                ldab #ic1f

                stab tflg1-regsbeg,x

確定是上升沿還是下降沿

                brclr tctl2-regsbeg,x,edg1a,sensorint1

 

*如果是上升沿我們是在測量中間階段

記錄下上升沿時間

                ldd tic1-regsbeg,x

                std starttime1

等待下降沿

                bclr tctl2-regsbeg,x,edg1a

                bset tctl2-regsbeg,x,edg1b

                bra sensorint9

如果處于下降沿,我們處于周期的結束

一個周期的結束同時也是另一個周期的開始

sensorint1      equ $

                tst meas_on      |check if the measurement should be taken

                beq sensorint4

當進行測量的時候

累計信號為“1”的總時間

                ldd tic1-regsbeg,x

                subd starttime1

                addd signalsum+1

                std signalsum+1

                ldaa signalsum

                adca #0

                staa signalsum

存儲總的周期時間

                ldd tic1-regsbeg,x

                subd periodstart

                addd periodsum+1

                std periodsum+1

                ldaa periodsum

               adca #0

                staa periodsum

* one more period done, one less to do

                dec still_to_do

                bne sensorint4

*如果需要測量更多的周期,測量是準備好的

                clr meas_on

記錄下新的周期開始的時間

sensorint4      ldd tic1-regsbeg,x

                std periodstart

等待一個上升沿

                bset tctl2-regsbeg,x,edg1a

                bclr tctl2-regsbeg,x,edg1b

sensorint9      rti

 

開始測量100個周期

startmeas       equ $

                tpa              |save the condition-code register on the stack

                psha             |(using A)

                sei              |temporarily block the interrupts

                ldaa #100

                staa still_to_do

                ldd #0

                std periodsum   |clear the results

                staa periodsum+2

                std signalsum

                staa signalsum+2

                ldab #1          |start the measurement

                stab meas_on

                pula             |retrieve the condition-code register

                tap              |from the stack (using A)

               rts

***** 主程序的應用程序

程序段

測量溫度,并將結果放在D中。結果表示為攝氏溫度* 309的數值

grad            equ 309

meas_temp    equ $

                pshx             |save IX on the stack

                bsr startmeas    |start a measurement of 256 periods

meas_temp0    tst meas_on      |wait until the measurement is ready

                bne meas_temp0

mess_temp1     ldab periodsum  |scale both times back to values that

                orab signalsum  |will fit in 16 bits

                beq meas_temp2   |do this by dividing both values by 2

                lsr periodsum    |until both are within the 16-bit range

                ror periodsum+1

                ror periodsum+2

                lsr signalsum

                ror signalsum+1

                ror signalsum+2

                bra mess_temp1

 

meas_temp2    ldx periodsum+1

                ldd signalsum+1

                fdiv            |calculate the duty-cycle

                xgdx             |put the result into D

               subd #20922    |then correct (see explanation in handbook)

               pulx             |retrieve IX from the stack

               rts

B. 使用規則輸入信號

輸入捕獲計時器是SMARTEC溫度傳感器的優選輸入。但.SMARTEC傳感器也能夠和規則輸入連接。程序要對輸入進行掃描,然后確定掃描信號的信號/周期比率。這要通過積累抽樣次數、信號為“1“的次數、然后用后面的除以前面的。

使用這種方法時,要考慮以下幾點。

測量結果的分辨率由用來計算占空因數的抽樣數目來決定。由于掃描處理很緩慢,在一個合理的時間內不可能積累大量的抽樣信號。小數量的抽樣將取得一個不太**的占空因數和溫度。多次的掃描可以得到大量的抽樣。但是在這樣的情況下,測量值對溫度的響應不夠好。

記住非常重要的一點,傳感器信號與抽樣處理之間完全沒有聯系。如果傳感器信號頻率是(或是整數倍的)等于掃描信號頻率,你會得到一個錯誤的結果。注意:傳感器信號頻率隨溫度變化很大。確保掃描是在傳感器信號周期內隨機進行的。

下面的編碼可以由主程序調用來測量溫度。在這個例子中假定測量程序作為主掃描循環的一部分,以固定間隔被調用。為了確保測量程序是在smartecs周期內的隨機時間被調用,測量程序中引入了一個隨機延遲。如果你能保證測量程序是隨機被訪問的,也可以不引入隨機延遲。測量值來自所有測量結果的累計,所以溫度的讀數將是相對大的數量取樣的平均,也不會對溫度的改變迅速響應。如果需要快速檢測溫度變化,那么不要累計測量結果,但要在每次測量前清空累加器。

*************************************************

*大長度隨機發生器

*************************************************

隨機發生器由一個7位的移位寄存器實現,此移位寄存器的bit5和bit6異或后反饋給bit0.

DATA            space

seed            rmb 1            |the shift register's seed

PROGRAM         space

** 初始化

                 ldaa #1

                 staa seed        |init. the register to anything but 0

                 jmp randomend

******* get a random number (1..127) from the generator into (B)

getrandom      equ $

                 ldab seed        |get current seed

                 aslb             |shift left to XOR bit6 with bit5

                 eorb seed

                 aslb

                 aslb             |resulting bit is now in the carry flag

                 rol seed         |rotate new bit into shift register

                 ldab seed      |get the new random number

                 andb #$7F

                 rts

randomend      equ $

 

       

*************************************************

溫度測量

*************************************************

多次累計

* - 在periodsum中有多少個取樣

* - 在signalsum中為1的信號數

任何時候兩個累加器中的值都超過 65535 (16 bits) ,兩個寄存器中的值都除以2.

程序段

tempstart       equ $            |the starting address of this module

溫度測量數據區

DATA            space

periodsum      rmb 3           |counts samples taken

signalsum       rmb 3          |counts samples valued '1'

溫度測量初始化

PROGRAM     space

                ldd #0

                std periodsum   |clear the counters

                staa periodsum+2

                std signalsum

                staa signalsum+2

                jmp tempend     |end of the initialization

*溫度測量的子程序

程序段

******* 從傳感器取一次樣

take_sample   equ $

                ldab porta       |get the signal into bit0 of accumulator (B)

asrb

asrb

andb #bit0      |mask out only the smartec signal

clra             |add sample to accumulator

addd signalsum+1

std signalsum+1

ldaa signalsum

adca #0

staa signalsum

ldd #1           |add one more sample to the sample coun

addd periodsum+1

std periodsum+1

ldaa periodsum

adca #0

staa periodsum

rts

*******從傳感器連續多次取樣

******* 取樣次數放入 (B)

take_samples  equ $

                pshb             |take the required number of samples

                bsr take_sample

                pulb

                decb

                bne take_samples

take_samples0 ldab periodsum  |scale both accumulators back to values that

                orab signalsum   |will fit in 16 bits

                beq take_samps9  |do this by dividing both values by 2

                lsr periodsum  |until both are within the 16-bit range

               ror periodsum+1

               ror periodsum+2

                lsr signalsum

                ror signalsum+1

                ror signalsum+2

                bra take_samples0

take_samps9    rts

 

溫度測量結果放在 D結果是

度數 (攝氏的溫度) * 309

meas_temp    equ $

                pshx

                jsr getrandom   |get a random number into (B)

meas_temp0    decb             |and use that to generate a random delay

                bne meas_temp0

                ldab #50

                bsr take_samples

                ldx periodsum+1

                ldd signalsum+1

                fdiv             |calculate the duty-cycle

                xgdx             |put the result into D

                subd #20922    |then correct (see explanation in handbook)

                pulx             |retrieve IX from the stack

                rts

tempend         equ $            |end of this module

* the number of bytes this module requires in the PROGRAM area

tempsize        equ tempend-tempstart

粵公網安備 44030602001744號

精品欧美一区二区精品久久_日韩精品国产自在久久现线拍_亚洲欧美国产日韩天堂在线视_欧美激情久久久久久久久
91亚洲精华国产精华精华液| 亚洲欧美日韩国产另类专区| 亚洲h在线观看| k8久久久一区二区三区| 日韩欧美国产午夜精品| 午夜视频一区在线观看| 91在线播放网址| 国产精品美女久久久久久2018| 蓝色福利精品导航| 91麻豆精品国产91久久久久久久久| 中文字幕日韩一区| 东方aⅴ免费观看久久av| 精品91自产拍在线观看一区| 三级久久三级久久| 欧美精品粉嫩高潮一区二区| 樱桃国产成人精品视频| av在线不卡网| 亚洲欧洲av在线| www.成人网.com| 综合久久综合久久| 99久久综合99久久综合网站| 国产精品久久久久久久久图文区 | av在线播放一区二区三区| 国产午夜精品久久| 懂色中文一区二区在线播放| 国产欧美日韩另类视频免费观看| 国产老肥熟一区二区三区| 久久精品视频一区二区三区| 国产成人免费在线观看不卡| 国产午夜精品一区二区三区四区| 国产成人日日夜夜| 国产精品乱码久久久久久| 91亚洲大成网污www| 亚洲精品中文在线影院| 欧美日韩国产中文| 免费成人小视频| 久久伊人中文字幕| 成人动漫一区二区在线| 亚洲视频网在线直播| 欧美在线一区二区| 日本美女视频一区二区| 2014亚洲片线观看视频免费| 国产精品一级在线| 亚洲免费观看高清| 欧美精品一级二级三级| 精品亚洲免费视频| 中文字幕亚洲在| 欧美三级日韩三级| 国产一区二区美女| 亚洲女人的天堂| 欧美一区二区三区小说| 国产91精品在线观看| 一区二区三区小说| 精品少妇一区二区三区在线播放| 国产iv一区二区三区| 亚洲综合色区另类av| 精品久久国产字幕高潮| 9i在线看片成人免费| 日韩电影在线一区二区三区| 久久久另类综合| 欧美在线不卡一区| 久久www免费人成看片高清| 中文字幕一区免费在线观看| 欧美日韩dvd在线观看| 国产69精品久久久久777| 亚洲午夜久久久久久久久电影院 | 国产aⅴ综合色| 亚洲国产成人tv| 国产欧美综合色| 538在线一区二区精品国产| 成人午夜电影小说| 美腿丝袜亚洲色图| 一区二区三区日韩精品| 欧美国产一区视频在线观看| 欧美久久高跟鞋激| 色婷婷精品大在线视频| 国产高清在线精品| 美日韩一级片在线观看| 亚洲影视在线播放| 国产精品乱码人人做人人爱| 精品乱人伦小说| 欧美日韩亚洲国产综合| 91丨porny丨在线| 国产精品亚洲人在线观看| 日本视频一区二区| 亚洲香肠在线观看| 中文字幕亚洲精品在线观看| 欧美韩日一区二区三区| wwww国产精品欧美| 欧美一区二区成人| 欧美日韩国产系列| 欧美在线观看一区| 一本大道av一区二区在线播放| 国产乱码精品一区二区三区五月婷| 日韩电影在线看| 日韩黄色小视频| 亚洲国产综合人成综合网站| 亚洲色图一区二区| 亚洲三级免费观看| 亚洲人成在线播放网站岛国| 日韩理论片在线| 亚洲欧美日韩国产一区二区三区| 中国色在线观看另类| 欧美高清在线一区| 国产精品美女一区二区在线观看| 久久久久久99久久久精品网站| 欧美成人猛片aaaaaaa| 精品国产乱码久久久久久浪潮| 欧美一级xxx| 制服丝袜亚洲播放| 欧美一级一区二区| 日韩美女一区二区三区四区| 精品日本一线二线三线不卡| 欧美草草影院在线视频| 久久综合色之久久综合| 国产日韩欧美制服另类| 国产精品二三区| 亚洲黄色av一区| 日韩中文欧美在线| 美女视频黄 久久| 国产精品一区二区视频| 99久久99久久精品免费看蜜桃| 一本色道久久综合狠狠躁的推荐| 91久久精品网| 欧美一级免费观看| 久久久美女毛片| 亚洲毛片av在线| 日韩电影在线观看电影| 国产乱理伦片在线观看夜一区| 成人中文字幕合集| 在线视频中文字幕一区二区| 欧美久久久久免费| 国产三级三级三级精品8ⅰ区| 国产精品国产三级国产普通话三级 | 尤物av一区二区| 七七婷婷婷婷精品国产| 国产精品一级二级三级| 一本高清dvd不卡在线观看| 91麻豆精品国产91久久久| 久久久久久日产精品| 一区二区三区日韩精品视频| 麻豆专区一区二区三区四区五区| 大尺度一区二区| 欧美日韩国产另类不卡| 久久精品一区八戒影视| 亚洲欧美日韩国产另类专区| 美腿丝袜亚洲色图| 色av成人天堂桃色av| 欧美大片拔萝卜| 亚洲欧美成aⅴ人在线观看| 麻豆91免费看| 欧美三级视频在线播放| 日本一区二区综合亚洲| 丝袜美腿高跟呻吟高潮一区| 不卡一区中文字幕| 日韩欧美色综合网站| 亚洲蜜臀av乱码久久精品| 国内精品伊人久久久久av一坑| 色欧美日韩亚洲| 国产视频一区二区在线观看| 日本伊人精品一区二区三区观看方式| 成人性生交大合| 欧美电视剧免费观看| 亚洲午夜在线电影| av资源站一区| 2023国产精华国产精品| 日韩精品一二三区| 日本韩国视频一区二区| 国产精品婷婷午夜在线观看| 久久99国内精品| 制服视频三区第一页精品| 亚洲裸体xxx| 99综合电影在线视频| 国产亚洲欧美中文| 国产一区二区在线观看视频| 91精品国产综合久久久久久漫画| 一区二区视频在线| 91在线视频免费观看| 亚洲国产成人一区二区三区| 国产一区二区91| 日韩你懂的在线观看| 免费观看久久久4p| 欧美理论在线播放| 亚洲成人福利片| 欧美视频一区二| 亚洲国产视频网站| 欧美乱熟臀69xxxxxx| 午夜精品久久久久久久99樱桃| 在线观看中文字幕不卡| 艳妇臀荡乳欲伦亚洲一区| 在线观看一区二区视频| 亚洲夂夂婷婷色拍ww47| 在线观看成人小视频| 亚洲国产中文字幕| 欧美酷刑日本凌虐凌虐| 免费看黄色91| 精品88久久久久88久久久| 国产精品99久久久久| 国产精品人人做人人爽人人添| 9i看片成人免费高清|