• 
    

    
    

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

      基于AT89C51芯片的多任務(wù)驅(qū)動(dòng)設(shè)計(jì)

      2014-11-25 11:00:39文輝余麗萍
      數(shù)字化用戶 2014年18期
      關(guān)鍵詞:多任務(wù)

      文輝  余麗萍

      【摘 要】文章以單片機(jī)芯片AT89C51為依托,利用高級(jí)編程C語(yǔ)言設(shè)計(jì)出8位單片機(jī)的多任務(wù)處理的方法。介紹了其設(shè)計(jì)的原理,從單任務(wù)入手逐步分析多任務(wù)處理的具體過(guò)程,從而實(shí)現(xiàn)多任務(wù)并發(fā)執(zhí)行的功能。

      【關(guān)鍵詞】AT89C51;C語(yǔ)言;多任務(wù)

      傳統(tǒng)的單片機(jī)程序一般采用單任務(wù)機(jī)制。所謂"單任務(wù)機(jī)制"是指該系統(tǒng)不能支持多任務(wù)并發(fā)操作,宏觀串行地執(zhí)行一個(gè)任務(wù)。由于程序只能按順序依次執(zhí)行,缺乏靈活性。多任務(wù)機(jī)制則可以宏觀并行(微觀上是串行)地"同時(shí)"執(zhí)行多個(gè)任務(wù)。筆者設(shè)計(jì)的這種多任務(wù)機(jī)制,不需使用匯編,采用常用的C語(yǔ)言編寫,按照所給出的參數(shù),添加自己的任務(wù)代碼,就可以實(shí)現(xiàn)多任務(wù)的并發(fā)執(zhí)行。

      1、單片機(jī)多任務(wù)機(jī)制的工作流程

      本文采用美國(guó) ATMEL 公司生產(chǎn)的 MCS51 系列兼容芯片,在通常的單片 AT89C51應(yīng)用情況下,程序被設(shè)計(jì)成一段無(wú)限循環(huán)的代碼while(1),即構(gòu)成一個(gè)連續(xù)執(zhí)行的單任務(wù)系統(tǒng)。

      2、多任務(wù)并發(fā)設(shè)計(jì)

      假設(shè)要控制一個(gè)LED燈的閃爍,其實(shí)現(xiàn)過(guò)程為:點(diǎn)亮LED,延時(shí),關(guān)閉LED,延時(shí),依次循環(huán)下去。但是,如果需要控制兩個(gè)LED燈的閃爍,一個(gè)是每一秒閃爍一次,另一個(gè)沒(méi)0.5秒閃爍一次,這就需要考慮將處理器的時(shí)間進(jìn)行分割,不同的任務(wù)獲得一定時(shí)間片段來(lái)執(zhí)行程序,當(dāng)這個(gè)時(shí)間片到期了,就中斷轉(zhuǎn)而由另外任務(wù)來(lái)獲得處理器的資源。本文所設(shè)計(jì)的方法為:采用一個(gè)自定義的進(jìn)程控制器(變量stp)將其分成四個(gè)部分。在LEDLight()函數(shù)中實(shí)現(xiàn)的偽代碼如下。

      void LEDLight(vopid){

      switch(stp)

      {case 0:亮燈;stp++;break;

      case 1:延時(shí);stp++;break;

      case 2:滅燈;stp++;break;

      case 3:延時(shí);stp=0;break;}}

      每次進(jìn)入LEDLight這個(gè)函數(shù)只執(zhí)行了其中的一個(gè)小部分。接下來(lái),對(duì)其中的每個(gè)小部分進(jìn)行改進(jìn)為某個(gè)小的任務(wù),而每個(gè)小任務(wù)又分成多個(gè)小部分。這樣,就形成了如下圖1所示的多任務(wù)機(jī)制。

      圖1 多任務(wù)結(jié)構(gòu)程序流程圖

      由于每個(gè)任務(wù)的執(zhí)行時(shí)間不盡相同,因此引入定時(shí)器來(lái)處理不同的延時(shí)。其工作原理是程序判定任務(wù)的記時(shí)器是否滿足條件而決定任務(wù)是否繼續(xù)執(zhí)行。因此上面的程序就改為:

      void LEDLight(void){

      static unsigned int stp=0;

      switch(stp)

      {case 0:亮燈;stp++;定時(shí)器初始化;break;

      case 1:if(定時(shí)器未到)break;stp++;break;

      case 2:滅燈;stp++;定時(shí)器初始化;break;

      case 3: if(定時(shí)器未到)break;;stp=0;break;}}

      定時(shí)器就是用變量做累加或者遞減,當(dāng)所設(shè)定的值自增或自減到了一定數(shù)量后(即消耗掉一定的時(shí)間)則作為一種程序的判定,如果定時(shí)器未到,則轉(zhuǎn)為下一個(gè)任務(wù)執(zhí)行,如果定時(shí)器到了,就開始執(zhí)行本地的任務(wù)。為了使軟件定時(shí)器更精準(zhǔn),就可以對(duì)硬件定時(shí)器的溢出次數(shù)計(jì)數(shù)。那軟件定時(shí)器的定時(shí)時(shí)間就是硬件定時(shí)器溢出時(shí)間的整數(shù)倍。因此程序改為:

      unsigned char Timer[2]; /*兩個(gè)軟件定時(shí)器*/

      void Timere0Irq(void) interrupt 1

      {Timer[0]++;Timer[1]++;}

      void LEDLight(void){

      static unsigned int stp=0;

      switch(stp)

      {case 0:亮燈;stp++;Timer [i]=0;break;

      case 1:if(Timer[i]

      case 2:滅燈;stp++;Timer[i]=0;break;

      case 3: if(Timer[i]

      3、結(jié)束語(yǔ)

      實(shí)現(xiàn)多任務(wù)操作除了本文中所介紹的方法之外還有其他的方法,如ARM開發(fā)常用的?C/OS-II、RTX-51TINY等。但是RTX-51TINY必須采用Keil公司的C51編譯器,?C/OS-II則對(duì)芯片的RAM空間要求比較高,51系列的芯片內(nèi)存空間有限無(wú)法裝入此?C/OS-II系統(tǒng)。

      文章所采用的方法其結(jié)構(gòu)清晰,不需使用匯編語(yǔ)言,所用代碼較少,易于理解有效的提高了單片機(jī)處理器的效率。

      作者簡(jiǎn)介:

      文輝(1979-),男,漢族,江西萍鄉(xiāng)人,江西信息應(yīng)用職業(yè)技術(shù)學(xué)院計(jì)算機(jī)技術(shù)系網(wǎng)絡(luò)教研室教師,研究方向:嵌入式系統(tǒng)。

      余麗萍(1985-),女,漢族,江西進(jìn)賢人,南昌航空大學(xué)自動(dòng)化學(xué)院06級(jí)信號(hào)與信息處理碩士研究生,研究方向:圖像處理與模式識(shí)別。

      參考文獻(xiàn):

      [1] 阿占文等.單片機(jī)多任務(wù)操作的多功能采集卡設(shè)計(jì)[J].自動(dòng)化儀表.2014(1).

      [2]郭天祥.新概念 51 單片機(jī) C 語(yǔ)言教程: 入門、提高、開發(fā)、拓展全攻略[M]. 北京: 電子工業(yè)出版社.2009.

      [3] 錢宜平.基于單片機(jī)應(yīng)用系統(tǒng)的多任務(wù)程序結(jié)構(gòu)設(shè)計(jì)[J].無(wú)錫職業(yè)技術(shù)學(xué)院學(xué)報(bào).2014(3).

      猜你喜歡
      多任務(wù)
      異構(gòu)混合云服務(wù)下的多任務(wù)算力度量方法
      數(shù)字時(shí)代的注意困境:媒體多任務(wù)的視角*
      小型無(wú)人艇編隊(duì)的多任務(wù)協(xié)同控制方法
      結(jié)合自監(jiān)督學(xué)習(xí)的多任務(wù)文本語(yǔ)義匹配方法
      面向多任務(wù)的無(wú)人系統(tǒng)通信及控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      基于中心化自動(dòng)加權(quán)多任務(wù)學(xué)習(xí)的早期輕度認(rèn)知障礙診斷
      基于判別性局部聯(lián)合稀疏模型的多任務(wù)跟蹤
      電測(cè)與儀表(2016年5期)2016-04-22 01:13:46
      一類完全由內(nèi)積構(gòu)造的多任務(wù)核的幾個(gè)性質(zhì)
      基于單片機(jī)應(yīng)用系統(tǒng)的多任務(wù)程序結(jié)構(gòu)設(shè)計(jì)
      徐闻县| 水富县| 儋州市| 喀喇沁旗| 吉木萨尔县| 长子县| 东阳市| 饶阳县| 阳谷县| 收藏| 长阳| 平凉市| 宽甸| 藁城市| 特克斯县| 兴海县| 台东市| 元朗区| 斗六市| 香格里拉县| 崇义县| 太仆寺旗| 昭苏县| 伊吾县| 儋州市| 民丰县| 梓潼县| 东至县| 秦安县| 平果县| 米易县| 临朐县| 河西区| 涪陵区| 额济纳旗| 邵武市| 商洛市| 昌乐县| 定州市| 丰城市| 元朗区|