• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      “余數(shù)拆分”算法在簡易數(shù)字電壓表中的應(yīng)用

      2014-09-15 17:40:34李麗郭建勤
      現(xiàn)代電子技術(shù) 2014年18期
      關(guān)鍵詞:算法

      李麗+郭建勤

      摘 要: 為了使單片機(jī)在采用匯編語言設(shè)計(jì)簡易數(shù)字電壓表的小數(shù)部分處理過程中減少利用的寄存器數(shù)量及編程復(fù)雜度,采用“余數(shù)拆分”算法。方法不需要做16位的除法運(yùn)算,仍采用8位的寄存器即可以獲得所要求精度的小數(shù)位數(shù)。對該算法在簡易數(shù)字電壓表中的應(yīng)用進(jìn)行了原理分析,同時(shí)進(jìn)行了軟件設(shè)計(jì),并通過Proteus仿真來驗(yàn)證該處理方法的可行性。該算法使得所需要的硬件資源減少、編程簡單,值得應(yīng)用與推廣。

      關(guān)鍵詞: “余數(shù)拆分”算法; 數(shù)字電壓表; AT89C51; ADC0809

      中圖分類號: TN911?34; TP336 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2014)18?0030?02

      Application of remainder split algorithm in simple digital voltmeter

      LI Li1, GUO Jian?qin2

      (1. Shandong Labor Vocational and Technical College, Jinan 250022, China; 2. Shandong College of Electronic Technology, Jinan 250014, China)

      Abstract: In order to reduce the number of registers used by MCU and programming complexity in the decimal part processing in the simple digital voltmeter designed with assembly language, the remainder split algorithm was adopted, which does not need to do 16?place division operation, but still uses the 8?bit register to obtain the decimal digits of the required accuracy. The principle analysis of algorithm application in simple digital voltage meter is conducted. The software design was made. The feasibility of the processing method was verified by Proteus simulation. The algorithm makes the required hardware resources reduced and the programming simple. It is worth of application and promotion.

      Keywords: remainder split algorithm; digital voltmeter; AT89C51; ADC0809

      在電子測量中,數(shù)字電壓表中小數(shù)位的處理直接影響數(shù)據(jù)的精確度[1],電子工程師們常采用ADC0809及C語言實(shí)現(xiàn)數(shù)字電壓表的顯示[2],常用的處理A/D轉(zhuǎn)換后的數(shù)顯電壓值的方法是通過[U=UrefN255]計(jì)算得出[3]。其中:U為實(shí)際轉(zhuǎn)換出來的電壓值;[Uref]為ADC0809的基準(zhǔn)電壓,通常取5 V;N為A/D轉(zhuǎn)換的數(shù)字值。利用該公式來獲取數(shù)值的優(yōu)點(diǎn)是思路簡單,非常適合采用C語言來實(shí)現(xiàn)[4?5]。但是當(dāng)采用執(zhí)行速度快的匯編語言設(shè)計(jì)和AT89C51單片機(jī)時(shí),由于[Uref]N的值可能會大于8位寄存器的最大值255,這時(shí)要完成上述的除法運(yùn)算的話,則需要多個(gè)8位的寄存器來實(shí)現(xiàn),使所利用的硬件資源增多、編程復(fù)雜化。本文主要是針對簡易數(shù)字電壓表中小數(shù)部分的處理方法作一研究,采用AT89C51單片機(jī)及ADC0809實(shí)現(xiàn),測量范圍在0~5 V之間,采用匯編語言設(shè)計(jì),并通過Proteus仿真來驗(yàn)證該處理方法的可行性。本文提出一種算法,在此稱為“余數(shù)拆分”法,此方法不需要做16位的除法運(yùn)算,仍采用8位的寄存器即可以獲得所要求精度的小數(shù)位數(shù)。

      1 “余數(shù)拆分”算法

      設(shè)電壓測量范圍為0~5 V,某一電壓經(jīng)ADC0809實(shí)現(xiàn)A/D轉(zhuǎn)換后的數(shù)字值為data,則要重顯該電壓值(包括整數(shù)位n和小數(shù)位)時(shí),所采用的處理方法如下:

      (1) 先進(jìn)行如下運(yùn)算:

      [data51=商(即為整數(shù)位n)…… 余數(shù)a(以此獲取第一位小數(shù))]

      式中:除數(shù)51=8位寄存器的最大[值最]大電壓值=[2555。]

      (2) 小數(shù)位的獲取。小數(shù)點(diǎn)后第1位小數(shù)要由 [10a5]取商而得到。當(dāng)a≤25時(shí),由于10a≤250﹤255,即可直接用8位的寄存器來完成該除法運(yùn)算。而當(dāng)26≤a﹤51時(shí),則10a≥260,要完成[10a5],被除數(shù)需要2個(gè)8位的寄存器,使得程序的編寫復(fù)雜。此時(shí)可對余數(shù)a作如下拆分:

      [a=25+b] (1)

      式中:26≤a﹤51,b﹤26。

      則:

      [10a51=1025+b51=250+10b51 =255+10b-551=5+10b-551] (2)

      在式中由于b﹤26,則(10b-5)﹤255,即可以直接用8位的寄存器來完成“[10b-551]”的運(yùn)算。利用[10b-551]的商再加上5就可得到第1位小數(shù)。要想得到第2位小數(shù),則再對[10b-551]運(yùn)算后的余數(shù)按式(1)做拆分,按式(2)來獲取第2位小數(shù)。依次類推,不管獲得小數(shù)點(diǎn)后多少位的精度,8位的寄存器都可以完成。

      2 “余數(shù)拆分”算法在簡易數(shù)字電壓表中的應(yīng)用

      采用AT89C51單片機(jī)、ADC0809模/數(shù)轉(zhuǎn)換器,根據(jù)“余數(shù)拆分”算法,精度保留小數(shù)點(diǎn)后3位、采用能夠直接控制硬件且實(shí)時(shí)性強(qiáng)[6?7]的匯編語言進(jìn)行軟件設(shè)計(jì)。流程圖如圖1所示。

      圖1 軟件流程圖

      3 Proteus仿真

      作為當(dāng)今世界最受歡迎的EDA仿真軟件,Proteus仿真是一種嵌入式系統(tǒng)仿真與開發(fā)平臺,由英國Labcenter公司研發(fā)[8?9]。它支持單片機(jī)系統(tǒng)的硬件電路仿真并提供軟件調(diào)試功能[10],仿真形象生動,接近現(xiàn)實(shí)環(huán)境,省去了現(xiàn)場安裝調(diào)試硬件的環(huán)節(jié),省時(shí)、有效[11?12] 。

      Proteus仿真電路圖設(shè)計(jì)與顯示如圖2所示。在該仿真電路中,當(dāng)電位器的觸頭處于圖中所示位置時(shí),經(jīng)過ADC0809轉(zhuǎn)換后得到的數(shù)字值為11111110B,則利用上述公式得到的保留3位小數(shù)的電壓值應(yīng)是2.490 V,而仿真顯示的數(shù)值即為2.490 V,如圖2所示,說明該算法準(zhǔn)確度高。

      圖2 Protues仿真驗(yàn)證圖

      4 結(jié) 重

      在測量范圍為0~5 V、采用匯編語言設(shè)計(jì)及ADC0809的簡易數(shù)字電壓表中,應(yīng)用“余數(shù)拆分”算法可以有效地避免16位的除法運(yùn)算,減少利用的寄存器數(shù)量及編程的復(fù)雜度,只利用8位的寄存器就可以得到小數(shù)點(diǎn)后所要求的精度的位數(shù)。編程簡單,值得應(yīng)用與推廣。

      參考文獻(xiàn)

      [1] 宋鳳娟,孫君,李國忠.基于89C51單片機(jī)的數(shù)字電壓表設(shè)計(jì)[J].制造業(yè)自動化,2007(2):25?27.

      [2] 楊建成.基于單片機(jī)的數(shù)字電壓表的設(shè)計(jì)與仿真[J].現(xiàn)代電子技術(shù),2012,35(21):170?172.

      [3] 楊志忠.數(shù)字電子技術(shù)[M].4版.北京:高等教育出版社,2013.

      [4] 金春林.AVR系列單片機(jī)C語言編程與應(yīng)用實(shí)例[M].北京:清華大學(xué)出版社,2003.

      [5] 胡輝,李葉紫,胡力平.單片機(jī)原理與應(yīng)用[M].北京:中國水利水電出版社,2007.

      [6] 郭曉偉.匯編語言的優(yōu)越性及實(shí)用性[J].中國科技信息,2006(3):65?66.

      [7] 黎遠(yuǎn)松.匯編語言程序設(shè)計(jì)技術(shù)研究[J].成都大學(xué)學(xué)報(bào):自然科學(xué)版,2006(1):66?69.

      [8] 周潤景.基于Protes的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真[M].北京:北京航空航天大學(xué)出版社,2006.

      [9] 王瑾.基于Protes的數(shù)字電壓表仿真設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,21(1):122?124.

      [10] 王瑞萍.基于Protes的單片機(jī)虛擬開發(fā)環(huán)境[J].現(xiàn)代電子技術(shù),2009,32(8):155?157.

      [11] 陳少航,李山,苗亮亮,等.基于Protes的單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)與仿真[J].現(xiàn)代電子技術(shù),2007,30(6):43?45.

      [12] 鄧鵬.Protes虛擬仿真在單片機(jī)實(shí)驗(yàn)教學(xué)中的應(yīng)用研究[J].現(xiàn)代電子技術(shù),2012,35(16):27?29.

      2 “余數(shù)拆分”算法在簡易數(shù)字電壓表中的應(yīng)用

      采用AT89C51單片機(jī)、ADC0809模/數(shù)轉(zhuǎn)換器,根據(jù)“余數(shù)拆分”算法,精度保留小數(shù)點(diǎn)后3位、采用能夠直接控制硬件且實(shí)時(shí)性強(qiáng)[6?7]的匯編語言進(jìn)行軟件設(shè)計(jì)。流程圖如圖1所示。

      圖1 軟件流程圖

      3 Proteus仿真

      作為當(dāng)今世界最受歡迎的EDA仿真軟件,Proteus仿真是一種嵌入式系統(tǒng)仿真與開發(fā)平臺,由英國Labcenter公司研發(fā)[8?9]。它支持單片機(jī)系統(tǒng)的硬件電路仿真并提供軟件調(diào)試功能[10],仿真形象生動,接近現(xiàn)實(shí)環(huán)境,省去了現(xiàn)場安裝調(diào)試硬件的環(huán)節(jié),省時(shí)、有效[11?12] 。

      Proteus仿真電路圖設(shè)計(jì)與顯示如圖2所示。在該仿真電路中,當(dāng)電位器的觸頭處于圖中所示位置時(shí),經(jīng)過ADC0809轉(zhuǎn)換后得到的數(shù)字值為11111110B,則利用上述公式得到的保留3位小數(shù)的電壓值應(yīng)是2.490 V,而仿真顯示的數(shù)值即為2.490 V,如圖2所示,說明該算法準(zhǔn)確度高。

      圖2 Protues仿真驗(yàn)證圖

      4 結(jié) 重

      在測量范圍為0~5 V、采用匯編語言設(shè)計(jì)及ADC0809的簡易數(shù)字電壓表中,應(yīng)用“余數(shù)拆分”算法可以有效地避免16位的除法運(yùn)算,減少利用的寄存器數(shù)量及編程的復(fù)雜度,只利用8位的寄存器就可以得到小數(shù)點(diǎn)后所要求的精度的位數(shù)。編程簡單,值得應(yīng)用與推廣。

      參考文獻(xiàn)

      [1] 宋鳳娟,孫君,李國忠.基于89C51單片機(jī)的數(shù)字電壓表設(shè)計(jì)[J].制造業(yè)自動化,2007(2):25?27.

      [2] 楊建成.基于單片機(jī)的數(shù)字電壓表的設(shè)計(jì)與仿真[J].現(xiàn)代電子技術(shù),2012,35(21):170?172.

      [3] 楊志忠.數(shù)字電子技術(shù)[M].4版.北京:高等教育出版社,2013.

      [4] 金春林.AVR系列單片機(jī)C語言編程與應(yīng)用實(shí)例[M].北京:清華大學(xué)出版社,2003.

      [5] 胡輝,李葉紫,胡力平.單片機(jī)原理與應(yīng)用[M].北京:中國水利水電出版社,2007.

      [6] 郭曉偉.匯編語言的優(yōu)越性及實(shí)用性[J].中國科技信息,2006(3):65?66.

      [7] 黎遠(yuǎn)松.匯編語言程序設(shè)計(jì)技術(shù)研究[J].成都大學(xué)學(xué)報(bào):自然科學(xué)版,2006(1):66?69.

      [8] 周潤景.基于Protes的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真[M].北京:北京航空航天大學(xué)出版社,2006.

      [9] 王瑾.基于Protes的數(shù)字電壓表仿真設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,21(1):122?124.

      [10] 王瑞萍.基于Protes的單片機(jī)虛擬開發(fā)環(huán)境[J].現(xiàn)代電子技術(shù),2009,32(8):155?157.

      [11] 陳少航,李山,苗亮亮,等.基于Protes的單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)與仿真[J].現(xiàn)代電子技術(shù),2007,30(6):43?45.

      [12] 鄧鵬.Protes虛擬仿真在單片機(jī)實(shí)驗(yàn)教學(xué)中的應(yīng)用研究[J].現(xiàn)代電子技術(shù),2012,35(16):27?29.

      2 “余數(shù)拆分”算法在簡易數(shù)字電壓表中的應(yīng)用

      采用AT89C51單片機(jī)、ADC0809模/數(shù)轉(zhuǎn)換器,根據(jù)“余數(shù)拆分”算法,精度保留小數(shù)點(diǎn)后3位、采用能夠直接控制硬件且實(shí)時(shí)性強(qiáng)[6?7]的匯編語言進(jìn)行軟件設(shè)計(jì)。流程圖如圖1所示。

      圖1 軟件流程圖

      3 Proteus仿真

      作為當(dāng)今世界最受歡迎的EDA仿真軟件,Proteus仿真是一種嵌入式系統(tǒng)仿真與開發(fā)平臺,由英國Labcenter公司研發(fā)[8?9]。它支持單片機(jī)系統(tǒng)的硬件電路仿真并提供軟件調(diào)試功能[10],仿真形象生動,接近現(xiàn)實(shí)環(huán)境,省去了現(xiàn)場安裝調(diào)試硬件的環(huán)節(jié),省時(shí)、有效[11?12] 。

      Proteus仿真電路圖設(shè)計(jì)與顯示如圖2所示。在該仿真電路中,當(dāng)電位器的觸頭處于圖中所示位置時(shí),經(jīng)過ADC0809轉(zhuǎn)換后得到的數(shù)字值為11111110B,則利用上述公式得到的保留3位小數(shù)的電壓值應(yīng)是2.490 V,而仿真顯示的數(shù)值即為2.490 V,如圖2所示,說明該算法準(zhǔn)確度高。

      圖2 Protues仿真驗(yàn)證圖

      4 結(jié) 重

      在測量范圍為0~5 V、采用匯編語言設(shè)計(jì)及ADC0809的簡易數(shù)字電壓表中,應(yīng)用“余數(shù)拆分”算法可以有效地避免16位的除法運(yùn)算,減少利用的寄存器數(shù)量及編程的復(fù)雜度,只利用8位的寄存器就可以得到小數(shù)點(diǎn)后所要求的精度的位數(shù)。編程簡單,值得應(yīng)用與推廣。

      參考文獻(xiàn)

      [1] 宋鳳娟,孫君,李國忠.基于89C51單片機(jī)的數(shù)字電壓表設(shè)計(jì)[J].制造業(yè)自動化,2007(2):25?27.

      [2] 楊建成.基于單片機(jī)的數(shù)字電壓表的設(shè)計(jì)與仿真[J].現(xiàn)代電子技術(shù),2012,35(21):170?172.

      [3] 楊志忠.數(shù)字電子技術(shù)[M].4版.北京:高等教育出版社,2013.

      [4] 金春林.AVR系列單片機(jī)C語言編程與應(yīng)用實(shí)例[M].北京:清華大學(xué)出版社,2003.

      [5] 胡輝,李葉紫,胡力平.單片機(jī)原理與應(yīng)用[M].北京:中國水利水電出版社,2007.

      [6] 郭曉偉.匯編語言的優(yōu)越性及實(shí)用性[J].中國科技信息,2006(3):65?66.

      [7] 黎遠(yuǎn)松.匯編語言程序設(shè)計(jì)技術(shù)研究[J].成都大學(xué)學(xué)報(bào):自然科學(xué)版,2006(1):66?69.

      [8] 周潤景.基于Protes的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真[M].北京:北京航空航天大學(xué)出版社,2006.

      [9] 王瑾.基于Protes的數(shù)字電壓表仿真設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,21(1):122?124.

      [10] 王瑞萍.基于Protes的單片機(jī)虛擬開發(fā)環(huán)境[J].現(xiàn)代電子技術(shù),2009,32(8):155?157.

      [11] 陳少航,李山,苗亮亮,等.基于Protes的單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)與仿真[J].現(xiàn)代電子技術(shù),2007,30(6):43?45.

      [12] 鄧鵬.Protes虛擬仿真在單片機(jī)實(shí)驗(yàn)教學(xué)中的應(yīng)用研究[J].現(xiàn)代電子技術(shù),2012,35(16):27?29.

      猜你喜歡
      算法
      基于MapReduce的改進(jìn)Eclat算法
      Travellng thg World Full—time for Rree
      進(jìn)位加法的兩種算法
      基于CC2530的改進(jìn)TPSN算法
      基于BCH和HOG的Mean Shift跟蹤算法
      算法初步兩點(diǎn)追蹤
      基于增強(qiáng)隨機(jī)搜索的OECI-ELM算法
      一種改進(jìn)的整周模糊度去相關(guān)算法
      一種抗CPS控制層欺騙攻擊的算法
      Wiener核的快速提取算法
      克什克腾旗| 思南县| 十堰市| 鹤岗市| 来安县| 武隆县| 贡觉县| 贡山| 龙山县| 万全县| 高邮市| 桐城市| 通城县| 会泽县| 苍溪县| 海丰县| 威信县| 丹棱县| 临颍县| 广宁县| 香格里拉县| 巴塘县| 宣汉县| 昔阳县| 柯坪县| 廉江市| 清镇市| 山阴县| 陆良县| 兴隆县| 肥东县| 黔西| 景德镇市| 界首市| 清原| 柳州市| 阳春市| 定结县| 虹口区| 都匀市| 龙胜|