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

正文內(nèi)容

基于s08的溫度檢測顯示系統(tǒng)的設計(編輯修改稿)

2025-08-15 11:30 本頁面
 

【文章內(nèi)容簡介】 /*禁止轉(zhuǎn)換完成中斷,單次轉(zhuǎn)換 */ 13 } /******************************************************\ * *函數(shù)名稱: convert_begin() * *作用:啟動 A/D轉(zhuǎn)換 \******************************************************/ unsigned int convert_begin(void) { unsigned int Vtemp。 ADC1SC1=0X00。 /* 寫 ADC1SC1啟動轉(zhuǎn)換 */ while(!(ADC1SC1_COCO))。 /* 等待轉(zhuǎn)換結束 */ Vtemp=ADC1RL。 /*讀取轉(zhuǎn)換結果 */ return Vtemp。 /* 返回結果 */ } 熱敏電阻阻值和溫度的非線性對性模塊原理及程序 熱敏電阻的阻值溫度特性曲線是一條指數(shù)曲線,非線性度較大,因此在使用時要進行線性化處理??刹捎煤唵蔚?查表法從電壓值中查出相應的溫度值。預先將一系列溫度與電壓對應值存貯到 AW60 微控制器程序存儲器中的一個表內(nèi),當給定任意一個電壓值時,即可通過查表得出所對應的溫度值。當表中沒有對應的電壓值時,可找出電壓值在表中的區(qū)域,然后在區(qū)間的相鄰兩點經(jīng)線性插值得出對應溫度值。存入表中點的多少影響溫度值的精度。這里以選 16 個點為例,選 8 位模式 A/D 可轉(zhuǎn)換結果范圍是 0~255,因此每兩個點的間隔是 16。使用插值算法如下: ? ? ? ?? ? ? ?1_12/121 xV a lu eADxxyyyT ?????? ( ) 式中: T —— 當前溫度; ValueAD_ —— 當前溫度的 A/D 轉(zhuǎn)換值; 2y , 1y —— 相鄰點的溫度值; 2x , 1x —— 相鄰點的 A/D 轉(zhuǎn)換值; 當 A/D 轉(zhuǎn)換結果在區(qū)間 0~16 或 240~255 時,不再計算,直接按溫度值 79℃或40℃處理。 14 C語言編寫的獲得溫度值的節(jié)選程序代碼如下: /******************************************************\ * *函數(shù)名稱: GetTemperature() * *作用:查表及插值程序得到溫度值 \******************************************************/ signed int GetTemperature(int Value) { signed int T。 int i。 if(Value= V_T_table[0][1]) T=V_T_table[1][1]。 /* 當 A/D 轉(zhuǎn)換值在 0~16 時,按 79 攝氏度賦值 */ else if(Value= V_T_table[0][15]) T=V_T_table[1][15]。 /* 當 A/D 轉(zhuǎn)換值在 240~255 時,按 40 攝氏度賦值 */ else { for(i=1。i=14。i++) { if(Value== V_T_table[0][i]) /* 表中是否有值 */ { T=V_T_table[1][i]。 /* 有值,賦值給 T */ break。 } else if((Value V_T_table[0][i])amp。amp。(Value V_T_table[0][i+1])) { T=((V_T_table[1][i+1]V_T_table[1][i])*100)/16。 T=T*(ValueV_T_table[0][i])。 /* 沒有,找到區(qū)間并插值 */ T=V_T_table[1][i]+T/100。 break。 } } 15 } return T。 /* 返回溫度值 T */ } 溫度顯示模塊程序 LCD1602 采用 +5V 電壓驅(qū)動,其數(shù)據(jù)接口和讀寫 控制引腳與 MC9S08AW60 單片機的 I/O 口直接相連。 MC9S08AW60 單片機將采集到的模擬電壓值經(jīng)過 A/D 轉(zhuǎn)換后,查表得到溫度值,通過 I/O 口傳輸給 LCD1602 顯示。 C語言編寫的溫度值顯示的節(jié)選程序代碼如下: /******************************************************\ * *函數(shù)名稱: LCD1602_init() * *作用 LCD1602初始化 \******************************************************/ void LCD1602_init(void) { LCD1602_DB(0x08 ,0x03)。 /*顯示模式 8位總線 雙行顯示 5*7點陣 */ RS_RW_E_init()。 LCD1602_DB(0x04 ,0x01)。 /*光標移動 每輸入一次該指令 光標向右移一格 整體畫面不滾動 */ RS_RW_E_init()。 LCD1602_DB(0x0C ,0x00)。 /* 屏幕開關 打開顯示屏 不顯示光標 不閃爍 */ RS_RW_E_init()。 LCD1602_DB(0x06 ,0x00)。 //輸入方式 RS_RW_E_init()。 LCD1602_DB(0x01 ,0x00)。 //清屏 RS_RW_E_init()。 } /******************************************************\ * *函數(shù)名稱: LCD1602_display() * *作用 LCD1602 顯示 16 \******************************************************/ void LCD1602_display(void) { if(neg_flag) /* 如果是負,最高位顯示 */ { LCD1602_DB(0x00,0x08)。 /*需要顯示的字符的地址 */ RS_RW_E_init()。 LCD1602_write_dat(0x0d,0x02)。 } else /* 如果是正 ,最高位顯示 +*/ { LCD1602_DB(0x00,0x08)。 /*需要顯示的字符的地址 */ RS_RW_E_init()。 LCD1602_write_dat(0x0b,0x02)。 } LCD1602_DB(0x01,0x08)。 /*需要顯示的字符的地址 */ RS_RW_E_init()。 LCD1602_write_dat(Disp_Value[0][s],Disp_Value[1][s])。 LCD1602_DB(0x02,0x08)。 /*需要顯示的字符的地址 */ RS_RW_E_init()。 LCD1602_write_dat(Disp_Value[0][g],Disp_Value[1][g])。 } 17 總結 硬件方面。選擇硬件,要比較同類產(chǎn)品的穩(wěn)定性、功耗、體積、價格等,另外還要符合設計的全部要求。在顯示方案上,利用 LCD1602 顯示,程序簡單,在硬件電路的設計方面,用 Protel繪制電路圖時要標明元件的大小,有些封裝元件要標明名稱和封裝。 其次,軟件方面。把程序分塊編寫能夠有效地提高正確性和編程效率。 通過本次實驗,我學習了很多關于 S08AW60 的知識,并能通過所學設計一款基于 S08AW60 的溫度測量顯示系統(tǒng),雖然有很多不足,也有很多不理解的地方,但是通過學習和討論,一一得到了解決,受益匪淺。 18 參考文獻 [1] 王威.嵌入式微控制器 S08AW 原理與實踐 [M].北京 :北京航空航天大學出版社, 20xx [2] 陳杰 . 傳感器與檢測技術 [M].北京 :高教出版社, 20xx [3] 邵貝貝 . 龔光華 .單片機認識與實踐 [M].北京 :北京航空航天大學出版 社,20xx [4] 閻石 .數(shù)字電子技術基礎(第三版) . 北京:高等教育出版社, 1989 [5] 沈蘭蓀 .數(shù)據(jù)采集與處理 [M]北京 :能源出版社 ,1987 [6] 沙占友、王彥朋、孟志永 .單片機外圍電路設計 .電子工業(yè)出版社, 20xx [7] 謝宜仁 .單片機實用技術問答 . 人民郵電出版社, 20xx [8] 孫傳友、漢澤西 .測控系統(tǒng)原理與設計 .北京航空航天大學出版社, 20xx [9] 章吉良,周勇,戴旭涵等 . 微傳感器原理、技術及應用 [M]. 上海 : 上海交通大學出版社, 20xx 19 附錄 A 溫度采集與顯示程序 /*****************************************************\ * *文件名 * *MCU: MC9S08AW60 * *調(diào)試環(huán)境: CodeWarrior * *日期: \****************************************************/ include /* for EnableInterrupts macro */ include /* include peripheral declarations */ const unsigned char Disp_Value[2][10]={{0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}, {0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03}} 。 /*存放顯示段碼 */ const signed int V_T_table[2][17]={{0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,2
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1