亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式系統(tǒng)中數(shù)據(jù)與字符串的轉(zhuǎn)換及應(yīng)用

        2012-09-25 03:00:10權(quán)建軍胡佩琦
        關(guān)鍵詞:浮點(diǎn)數(shù)字符串語(yǔ)句

        權(quán)建軍,胡佩琦

        (蘭州石化職業(yè)技術(shù)學(xué)院 電子電氣工程系,蘭州 730050)

        引 言

        在嵌入式應(yīng)用系統(tǒng)的開(kāi)發(fā)中,經(jīng)常遇到通過(guò)LCD顯示數(shù)據(jù)、通過(guò)鍵盤(pán)鍵入數(shù)據(jù)之類(lèi)的問(wèn)題。

        LCD顯示,由于顯示方式靈活、界面友好,在嵌入式應(yīng)用系統(tǒng)中得到了廣泛的應(yīng)用。在嵌入式應(yīng)用系統(tǒng)中,較為常用的LCD有字符型的1602、點(diǎn)陣型的LCM12864,以及帶漢字庫(kù)的12864Z等。無(wú)論哪種LCD,其顯示字符都用ASCII碼。而要顯示數(shù)值,就必須進(jìn)行數(shù)值到字符串的變換。

        同樣,在嵌入式系統(tǒng)中,經(jīng)常使用矩陣鍵盤(pán)進(jìn)行數(shù)據(jù)等的鍵入,如輸入“幅值”、“相位”等數(shù)據(jù)信息。對(duì)于數(shù)字的鍵入,就必然涉及字符串到數(shù)據(jù)的轉(zhuǎn)換問(wèn)題。

        1 數(shù)據(jù)轉(zhuǎn)字符串的方法及應(yīng)用

        從數(shù)據(jù)到字符串的轉(zhuǎn)換,典型方法是先進(jìn)行字位分離,將每個(gè)字轉(zhuǎn)為ASCII碼(數(shù)字+0x30即轉(zhuǎn)為ASCII碼)后送LCD顯示。這種方法比較繁瑣,每次顯示都要進(jìn)行這樣的工作。

        當(dāng)然,也可以利用itoa函數(shù)編寫(xiě)從整型到字符串的轉(zhuǎn)換函數(shù),把整型數(shù)轉(zhuǎn)換為字符串,進(jìn)而送LCD顯示。下面就是把整型數(shù)轉(zhuǎn)為字符串的程序:

        這種方法對(duì)空間占用不大,對(duì)于無(wú)符號(hào)整型數(shù)是比較方便的;對(duì)于有符號(hào)的整型數(shù),需要判斷正負(fù),程序編寫(xiě)方法也類(lèi)似;對(duì)于浮點(diǎn)數(shù),編制這種程序比較繁瑣。

        其實(shí),除此之外,KEIL C和ICC還提供了更為有效的方法,實(shí)現(xiàn)數(shù)據(jù)到字符串的轉(zhuǎn)換。

        1.1 KEIL C環(huán)境下數(shù)據(jù)到字符串的轉(zhuǎn)換

        在KEIL C的stdio.h中提供了sprintf語(yǔ)句可以進(jìn)行數(shù)據(jù)到字符串的格式轉(zhuǎn)換。以下是在KEIL C環(huán)境下編寫(xiě)的LCD1602顯示整型數(shù)和浮點(diǎn)數(shù)的程序:

        運(yùn)行的結(jié)果是在LCD1602第1行顯示“a=-1235”,第2行顯示“b=1.235”。

        程序中,“sprintf(Buf1,"a=%d",a)”是將整型變量a轉(zhuǎn)換為字符型變量,并存在數(shù)組Buf1[10]中;“sprintf(Buf2,"b=%2.3f",b)”是將浮點(diǎn)變量b轉(zhuǎn)換為字符型變量,并存在數(shù)組Buf2[10]中。若使用“sprintf(Buf2,"%2.3f",b)”語(yǔ)句,產(chǎn)生的hex代碼要增加約7KB。

        1.2 ICC開(kāi)發(fā)環(huán)境下數(shù)據(jù)到字符串的轉(zhuǎn)換

        在AVR系統(tǒng)中,ICC開(kāi)發(fā)平臺(tái)允許使用sprintf語(yǔ)句進(jìn)行數(shù)據(jù)到字符串的格式轉(zhuǎn)換。同時(shí),為了高精度顯示,AVR允許使用浮點(diǎn)數(shù)。下面是整型數(shù)和浮點(diǎn)數(shù)轉(zhuǎn)換為字符串顯示的例子:

        需要注意的是,使用sprintf語(yǔ)句時(shí),要在ICC開(kāi)發(fā)平臺(tái)下project的option選項(xiàng)中,對(duì)target選項(xiàng)進(jìn)行設(shè)置,在PRINTF Version中選擇float選項(xiàng),同時(shí),將return stack size設(shè)為30。

        采用此方法的缺點(diǎn)是生成的代碼較大(增加約7.5 KB)。最后的顯示結(jié)果為:第1行顯示“ch0:1256”;第2行顯示“ch1:-3579”;第3行顯示“ch2:127.5”;第4行顯示”ch3:-0.985”。

        注意,如要將小數(shù)后位數(shù)保留2位,采用sprintf(Buf4,"%2.2f",w)時(shí)編譯不能通過(guò)。字符串的長(zhǎng)度是通過(guò)“unsigned char Buf1[7],Buf2[7],Buf3[7],Buf4[7];”來(lái)定義的。

        2 字符串轉(zhuǎn)換為數(shù)據(jù)的方法及應(yīng)用

        字符串到數(shù)據(jù)轉(zhuǎn)換的常規(guī)方法是用數(shù)位分離的方法,如下面的程序:

        采用該方法對(duì)整型數(shù)進(jìn)行轉(zhuǎn)換時(shí),必須知道數(shù)據(jù)長(zhǎng)度,而且,對(duì)其他類(lèi)型的數(shù)據(jù)轉(zhuǎn)換不太方便。

        其實(shí),在KEIL和ICC中,都提供了頭文件stdlib.h,利用該文件提供的atoi轉(zhuǎn)換函數(shù)可以方便實(shí)現(xiàn)轉(zhuǎn)換。該文件可以在KEIL和ICC的安裝路徑下看到。

        2.1 MCS51開(kāi)發(fā)中字符串到數(shù)據(jù)的轉(zhuǎn)換

        在KEIL的安裝根目錄下的INC文件夾中,可以查看stdlib.h文件,該文件提供了字符串到數(shù)據(jù)的轉(zhuǎn)換函數(shù),使用這些函數(shù)必須包含該頭文件。

        下面的程序?qū)崿F(xiàn)了字符串轉(zhuǎn)換為整型數(shù)和浮點(diǎn)數(shù):

        2.2 AVR開(kāi)發(fā)中字符串到數(shù)據(jù)的轉(zhuǎn)換

        在AVR的ICC開(kāi)發(fā)平臺(tái)中也有“stdlib.h”頭文件,它提供的atoi函數(shù)可以實(shí)現(xiàn)字符串轉(zhuǎn)數(shù)字。程序如下:

        在AVR Studio的VIEW窗口進(jìn)行調(diào)試時(shí),觀察p、q分別為-598和-5.98。

        結(jié) 語(yǔ)

        介紹了MCS51和AVR開(kāi)發(fā)中,LCD應(yīng)用開(kāi)發(fā)中經(jīng)常使用的數(shù)據(jù)到字符串的轉(zhuǎn)換方法,以及鍵盤(pán)應(yīng)用開(kāi)發(fā)中從字符串到數(shù)據(jù)的轉(zhuǎn)換方法。該方法充分利用KEIL和ICC開(kāi)發(fā)平臺(tái)資源,可有效提高開(kāi)發(fā)效率。

        [1]戴佳,戴衛(wèi)恒.51單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例[M].北京:電子工業(yè)出版社,2006:123-135.

        [2]彭偉.單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例——基于AVR+Proteus[M].北京:北京航空航天大學(xué)出版社,2011.

        [3]劉建清.輕松玩轉(zhuǎn)AVR單片機(jī)C語(yǔ)言[M].北京:北京航空航天大學(xué)出版社,2011.

        猜你喜歡
        浮點(diǎn)數(shù)字符串語(yǔ)句
        四種Python均勻浮點(diǎn)數(shù)生成方法
        重點(diǎn):語(yǔ)句銜接
        精彩語(yǔ)句
        在C語(yǔ)言中雙精度浮點(diǎn)數(shù)線性化相等比較的研究
        非精確浮點(diǎn)數(shù)乘法器設(shè)計(jì)
        一種新的基于對(duì)稱(chēng)性的字符串相似性處理算法
        如何搞定語(yǔ)句銜接題
        依據(jù)字符串匹配的中文分詞模型研究
        一種針對(duì)Java中字符串的內(nèi)存管理方案
        Visual Basic處理浮點(diǎn)DSP芯片數(shù)據(jù)的方法
        久久综合伊人77777麻豆| 久久老子午夜精品无码| 人成视频在线观看免费播放| 久久亚洲免费精品视频| 国产精品极品美女自在线观看免费| 亚洲精品乱码久久久久久蜜桃图片 | 欧美情侣性视频| 国产真实乱对白在线观看| 久久人妻精品免费二区| 欧洲美熟女乱又伦av影片| 老熟女重囗味hdxx70星空| a级福利毛片| 在线观看免费视频发布白白色| 国99精品无码一区二区三区| 夜夜未满十八勿进的爽爽影院| 国产成人亚洲综合无码DVD| 后入少妇免费在线观看| 亚洲国产婷婷香蕉久久久久久| 人妻少妇精品中文字幕av蜜桃| 国产精品国产三级在线高清观看| 亚洲av成人无网码天堂| 精品精品国产高清a毛片| 日本又黄又爽gif动态图| 久久亚洲av成人无码软件| 我揉搓少妇好久没做高潮| 人妻精品久久无码区| 久久精品久久精品中文字幕| 日韩有码中文字幕第一页| 日本视频一区二区三区一| 国产又a又黄又潮娇喘视频| 久久精品一区二区三区av| A阿V天堂免费无码专区| 狼人精品剧情av在线观看| 午夜精品射精入后重之免费观看| 欧美黑人又粗又大久久久| 日韩av一区二区三区精品| 极品一区二区在线视频观看| 四虎国产精品免费久久| 精品在免费线中文字幕久久| 白白色视频这里只有精品| 国产免费拔擦拔擦8x高清在线人|