【正文】
(3) 具有 64字節(jié)的自定義字符 RAM,可自定義 8個(gè) 5 7或 4個(gè) 5 10點(diǎn)陣字符。 熱敏電阻包括正溫度系數(shù)( PTC)和負(fù)溫度系數(shù)( NTC)熱敏電阻,以及臨界溫度熱敏電阻( CTR). 本設(shè)計(jì)采用 NTC 熱敏電阻 。Vdd和 Vss是 S08MCU主要的電源引腳,工作電壓范圍是 ~,在該電路中提供的是 5V電壓。 4 溫度測(cè)量顯示系統(tǒng)軟件設(shè)計(jì) 微控制器程序的開發(fā)環(huán)境及語言 在前面,本設(shè)計(jì)已經(jīng)選擇了 MC9S08AW60微控制器,飛思卡爾的微控制器有其專用的開發(fā)環(huán)境軟件 CodeWarrior IDE。在 MC9S08AW60芯片中集成了一個(gè) 8位 /10位精度可選的逐次逼近式 ADC模塊,使用時(shí)不需再擴(kuò)展片外的 A/D轉(zhuǎn)換器。重復(fù)上述過程,直到確定 SAR最低位為止。 /*禁止轉(zhuǎn)換完成中斷,單次轉(zhuǎn)換 */ 13 } /******************************************************\ * *函數(shù)名稱: convert_begin() * *作用:?jiǎn)?dòng) A/D轉(zhuǎn)換 \******************************************************/ unsigned int convert_begin(void) { unsigned int Vtemp。當(dāng)表中沒有對(duì)應(yīng)的電壓值時(shí),可找出電壓值在表中的區(qū)域,然后在區(qū)間的相鄰兩點(diǎn)經(jīng)線性插值得出對(duì)應(yīng)溫度值。 /* 當(dāng) A/D 轉(zhuǎn)換值在 240~255 時(shí),按 40 攝氏度賦值 */ else { for(i=1。 /* 沒有,找到區(qū)間并插值 */ T=V_T_table[1][i]+T/100。 /*光標(biāo)移動(dòng) 每輸入一次該指令 光標(biāo)向右移一格 整體畫面不滾動(dòng) */ RS_RW_E_init()。 /*需要顯示的字符的地址 */ RS_RW_E_init()。 LCD1602_DB(0x02,0x08)。 通過本次實(shí)驗(yàn),我學(xué)習(xí)了很多關(guān)于 S08AW60 的知識(shí),并能通過所學(xué)設(shè)計(jì)一款基于 S08AW60 的溫度測(cè)量顯示系統(tǒng),雖然有很多不足,也有很多不理解的地方,但是通過學(xué)習(xí)和討論,一一得到了解決,受益匪淺。 /*數(shù)據(jù)處理程序 */ void adc_init(void) 。 /*寫數(shù)據(jù)程序 */ void LCD1602_display(void)。 /*高速模式 8 位精度, ADCK=總線頻率 */ ADC1SC2=0X00。 int i。amp。 /* 取正 */ } else neg_flag=0。 } /******************************************************\ * *函數(shù)名稱 LCD1602_DB() * *作用:數(shù)據(jù)接口 \******************************************************/ void LCD1602_DB(char x ,char y) { LCD1602_D03_PTB03 =x。 22 LCD1602_DB(0x06 ,0x00)。 delay40us(10000)。 } LCD1602_DB(0x01,0x08)。 PTGDD=0XFF。 data_deal()。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。 、圖表要求: 1)文字通順,語言流暢,書寫字跡工整,打印字體及大小符合要求,無錯(cuò)別字,不準(zhǔn)請(qǐng)他人代寫 2)工程設(shè)計(jì)類題目的圖紙,要求部分用尺規(guī)繪制,部分用計(jì)算機(jī)繪制,所有圖紙應(yīng)符合國家 技術(shù)標(biāo)準(zhǔn)規(guī)范。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。 __RESET_WATCHDOG()。 LCD1602_init()。 LCD1602_write_dat(Disp_Value[0][s],Disp_Value[1][s])。 } /******************************************************\ * *函數(shù)名稱: LCD1602_display() * *作用 LCD1602 顯示 \******************************************************/ void LCD1602_display(void) { if(neg_flag) /* 如果是負(fù),最高位顯示 */ { LCD1602_DB(0x00,0x08)。 LCD1602_DB(0x01 ,0x00)。 } /******************************************************\ * *函數(shù)名稱: LCD1602_init() * *作用 LCD1602 初始化 \******************************************************/ void LCD1602_init(void) { LCD1602_DB(0x08 ,0x03)。 /* 分離十位 */ g= Temperatures*10。 T=T*(ValueV_T_table[0][i])。 /* 當(dāng) A/D 轉(zhuǎn)換值在 0~16 時(shí),按 79 攝氏度賦值 */ else if(Value= V_T_table[0][15]) T=V_T_table[1][15]。 /*禁止轉(zhuǎn)換完成中斷,單次轉(zhuǎn)換 */ } /******************************************************\ * *函數(shù)名稱: convert_begin() * *作用:?jiǎn)?dòng) A/D 轉(zhuǎn)換 \******************************************************/ unsigned int convert_begin(void) { unsigned int Vtemp。 /*I/O 口初始化程序 */ //***********************************************************// /***************************************************\ * *函數(shù)名稱: delay40us() * *作用:延時(shí) \***************************************************/ void delay40us(int count) { int i。 /*查表得到溫度程序 */ unsigned int convert_begin(void)。 /*存放顯示段碼 */ const signed int V_T_table[2][17]={{0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,255}, {0,79,56,43,34,27,21,15,10,5,1,6,11,18,26,40,0} /*存放 A/D 轉(zhuǎn)換值和溫度值的表 */ } 。 LCD1602_write_dat(Disp_Value[0][g],Disp_Value[1][g])。 } else /* 如果是正 ,最高位顯示 +*/ { LCD1602_DB(0x00,0x08)。 /* 屏幕開關(guān) 打開顯示屏 不顯示光標(biāo) 不閃爍 */ RS_RW_E_init()。 } } 15 } return T。i++) { if(Value== V_T_table[0][i]) /* 表中是否有值 */ { T=V_T_table[1][i]。這里以選 16 個(gè)點(diǎn)為例,選 8 位模式 A/D 可轉(zhuǎn)換結(jié)果范圍是 0~255,因此每?jī)蓚€(gè)點(diǎn)的間隔是 16。 /* 寫 ADC1SC1啟動(dòng)轉(zhuǎn)換 */ while(!(ADC1SC1_COCO))。 本設(shè)計(jì)中,由于在 S08AW60芯片中的 SCI數(shù)據(jù)寄存器只有 8位,所以模數(shù)轉(zhuǎn)換選擇 8位精度,以滿足實(shí)際情況。逐次逼近式 ADC用 DAC的輸出電壓來驅(qū)動(dòng)比較器的反相端。本設(shè)計(jì)使用 ,其界面如圖 ,只要在右邊打開 窗口就可以進(jìn)行程序編寫。 1 2 3 4 5 6ABCD654321DCBAT i t l eN um b e r R e v i s i o nS i z eBD a t e : 1 2 J a n 2 0 11 S he e t of F i l e : E : \ c r e a t _ p r e t e l \ M y D e s i gn 孫延召 .d dbD r a w n B y :P T B 0P T B 1P T B 2P T B 3P T D 0P T D 1V s s a dV dd a dP T D 2P T D 3P T G 3VrefhVreflBKGDPTG5PTG6VssPTC0PTC1PTC2PTC3PTC5P T C 4I R QR E S E TP T F 0P T F 1P T F 4P T F 5P T E 0P T E 1P T E 2P T E 3PTE4PTE5PTE6PTE7VssVddPTG0PTG1PTG2PTA0PTA1M C 9S 0 8A W 6 0 4 4 P i n L Q F P4MR11MC12 7p FC22 7p FC30 .1 uFR24 .7 kS1C40 .1 uFV C CC51 0u FV