• 
    

    
    

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

      ?

      聯(lián)合Keil C51在Multisim 10平臺下實現(xiàn)單片機(jī)的仿真

      2012-09-02 07:24:58楊蓮紅
      昌吉學(xué)院學(xué)報 2012年2期
      關(guān)鍵詞:昌吉元件調(diào)試

      王 超 楊蓮紅 楊 奇

      (1,2,3.昌吉學(xué)院物理系新疆昌吉831100)

      聯(lián)合Keil C51在Multisim 10平臺下實現(xiàn)單片機(jī)的仿真

      王 超1楊蓮紅2楊 奇3

      (1,2,3.昌吉學(xué)院物理系新疆昌吉831100)

      針對傳統(tǒng)單片機(jī)課程實驗、實訓(xùn)教學(xué)中出現(xiàn)的各種難點(diǎn),將Keil C51編譯軟件與Multisim 10仿真軟件相結(jié)合引入到教學(xué)中,借助第三方軟件的優(yōu)勢完成實踐教學(xué)任務(wù),可以提高單片機(jī)的教學(xué)效果、縮短開發(fā)周期、節(jié)省成本,提高學(xué)生的動手操作能力。

      Keil C 51;Multisim 10;單片機(jī);仿真

      1 引言

      《單片機(jī)應(yīng)用技術(shù)》課程是電子、電氣信息類學(xué)生的必修課程,而實踐、實驗教學(xué)是該課程的重要組成部分,傳統(tǒng)的方法是設(shè)計電路-面包板或?qū)嶒炏鋵嶒灒瓢娴纫幌盗羞^程。但是,該過程開發(fā)周期長、調(diào)試繁瑣,而且修改電路也比較困難,利用仿真軟件Multisim 10則可以很好的解決這些問題。另外,借助于第三方編程調(diào)試軟件Keil C51與Multisim 10聯(lián)調(diào)可以在沒有硬件實物的環(huán)境下建立虛擬硬件仿真平臺,利用Keil C51軟件強(qiáng)大的調(diào)試功能可以加快開發(fā)進(jìn)程,更容易實現(xiàn)實驗、實踐的教學(xué),為教學(xué)、實驗提供一個方便靈活的環(huán)境,豐富實驗內(nèi)容,節(jié)約實驗費(fèi)用,而且仿真成功的電路可以直接在產(chǎn)品開發(fā)中使用。

      2 Multisim 10與Keil C51

      2.1 Multisim 10特點(diǎn)

      Multisim 10軟件是美國國家儀器(NI)公司推出的電子電路仿真軟件,是目前的最新版本,它在原有基礎(chǔ)上更新和改進(jìn)了某些功能[1]。

      (1)增加了大量的VHDL元件模型,可以仿真更復(fù)雜的數(shù)字元件、單片機(jī)。

      (2)增強(qiáng)了軟件的仿真測試功能,大大擴(kuò)充了元件庫中的數(shù)目,特別是增加了大量與實際元件對應(yīng)的元件模型,使得仿真結(jié)果更精確、更可靠、更實用。

      (3)加強(qiáng)了對匯編語言和C語言的支持,增加了反匯編以及調(diào)試功能。

      (4)增加了部分3D實物元件和面包板,便于教學(xué)和實驗使用。

      2.2 Keil C51簡介

      Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用,用過匯編語言后再使用C來開發(fā),體會更加深刻。軟件本身支持?jǐn)?shù)百種51系列單片機(jī)芯片,可以用來編譯C源碼、匯編源程序、連接和重定位目標(biāo)文件和庫文件、創(chuàng)建HEX文件、調(diào)試目標(biāo)程序等,是一種集成化的文件管理編譯環(huán)境,具有強(qiáng)大的開發(fā)工具。雖然Multisim 10也支持C語言,但它的功能遠(yuǎn)不如Keil C51[2]。

      目前在單片機(jī)的開發(fā)應(yīng)用中,C語言已經(jīng)成為主要的編程語言,用C語言編寫單片機(jī)應(yīng)用程序與標(biāo)準(zhǔn)的C語言程序在語法規(guī)則、程序結(jié)構(gòu)及程序設(shè)計方法等方面基本相同,但C51程序與標(biāo)準(zhǔn)的C程序在以下幾個方面是不同的:

      (1)C51中定義的庫函數(shù)和標(biāo)準(zhǔn)C語言定義的庫函數(shù)不同;

      (2)C51中數(shù)據(jù)類型與標(biāo)準(zhǔn)C的數(shù)據(jù)類型也有區(qū)別,在C51中還增加了集中針對MCS-51單片機(jī)特有的數(shù)據(jù)類型;

      (3)C51變量的存儲模式與C中變量的存儲模式不一樣,C51中變量的存儲模式與MCS-51單片機(jī)的存儲結(jié)構(gòu)緊密相關(guān)的;

      (4)C51與標(biāo)準(zhǔn)C的輸入輸出處理方式不一樣,C51中的輸入輸出是通過MCS-51串行口來完成的,輸入輸出指令執(zhí)行前必須對串行口進(jìn)行初始化;

      (5)C51與標(biāo)準(zhǔn)C在函數(shù)使用方面也有一定的區(qū)別,C51中有專門的中斷函數(shù)。

      3 仿真實例

      下面以一個簡單的0-99計數(shù)器電路為例介紹利用Multisim 10與Keil C51相結(jié)合實現(xiàn)單片機(jī)仿真的過程。

      3.1硬件電路設(shè)計

      (1)打開一個新的電路原理圖并從元件庫中放置8051單片機(jī);

      (2)根據(jù)MCU向?qū)е鸩綀?zhí)行:

      首先,定義Workspace文件,包括Workspace的文件路徑和文件名;然后再定義工程,包括工程類型、編程語言、匯編器/編譯器工具和工程名;最后需要定義源文件,包括源文件的名字等。

      按照同樣步驟,放置電路中的其它元件,如果希望查看該元件的屬性,可以采用右鍵單擊選擇屬性即可,所有組件都可以采用默認(rèn)設(shè)置來使用,硬件電路圖如圖1所示。

      圖1 硬件電路圖

      3.2軟件程序設(shè)計

      在Keil C51環(huán)境下,采用C語言完成軟件程序的設(shè)計,在用C語言編寫過程中要注意符合C語言的語法規(guī)則。

      #include"htc.h"

      unsigned char code table[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};

      unsigned char count;

      void delay10ms(void);延時函數(shù)

      {unsigned char i,j;

      for(i=02;i>0;i--)

      for(j=02;j>0;j--);}

      void main()

      {count=0;

      P3=table[count/10];個位數(shù)據(jù)

      P1=table[count%10];十位數(shù)據(jù)

      while(1)

      {if(P37==0);檢測P3.7的電平

      {delay10ms();調(diào)用延時子程序

      if(P37==0)

      {count++;

      if(count==100)

      {count=0;}

      P3=table[count/10];

      P1=table[count%10];}}

      在Keil C51環(huán)境下,選中Creat HEX File復(fù)選框以便生成“*.Hex”文件,如圖2所示。

      圖2 設(shè)置HEX格式

      3.3仿真調(diào)試

      Multisim10支持第三方的編譯器,可以將第三方編譯器(Keil 51)生成的可執(zhí)行代碼,如“*.Hex”文件,直接導(dǎo)入到MCU中,然后進(jìn)行仿真。

      (1)建立外部可執(zhí)行文件工程

      在工程類型(project type)選項中選擇Load External Hex File選項并命名,如圖3所示。

      圖3 建立外部可執(zhí)行文件

      圖4 添加外部可執(zhí)行文件

      (2)添加外部可執(zhí)行文件

      激活相應(yīng)的工程文件后,打開“MCU CodeManager”對話框,即可加載相應(yīng)的“*.Hex”文件,如圖4所示。

      (3)仿真運(yùn)行

      ①執(zhí)行菜單MCU/MCU8051/BUILD,對源程序進(jìn)行編譯,在窗口下方會顯示編譯時間,編譯信息。編譯會通過給出“0 error(s)0 warning(s)”的提示。如果有錯會給出錯誤的行和錯誤的原因,以方便查錯。編譯顯示結(jié)果如圖5所示

      圖5 編譯結(jié)果

      ②單步調(diào)試、設(shè)置斷點(diǎn)觀察結(jié)果

      執(zhí)行MCU/MCU8051U1/Debug View命令,進(jìn)人調(diào)試窗口,在調(diào)試之前,執(zhí)行MCU/MCU8051U1/ Memory View命令,打開存儲器窗口,可以觀察指令后的執(zhí)行情況??梢圆榭碨FR、內(nèi)部RAM、內(nèi)部ROM,外部RAM等存儲器的狀態(tài),這些操作對于調(diào)試非常重要,另外,在調(diào)試過程中還可以在反匯編中窗口中設(shè)置斷點(diǎn)、單步執(zhí)行和連續(xù)執(zhí)行等命令進(jìn)行調(diào)試。調(diào)試過程如圖6所示。

      圖6 調(diào)試過程

      ③單擊運(yùn)行按鈕,就可以得到仿真運(yùn)行結(jié)果,如圖7所示。

      圖7 運(yùn)行結(jié)果

      4 結(jié)束語

      本文介紹了在Multisim 10平臺下聯(lián)合編譯軟件Keil C51對單片機(jī)進(jìn)行仿真的一種方法,該方法可以把傳統(tǒng)的硬件設(shè)計、軟件調(diào)試、仿真集成在一個軟件環(huán)境下,能夠做到邊設(shè)計、邊實驗、邊修改電路。在Multisim 10平臺下全部采用的是虛擬元件和測量器件,實驗成本低,速度快,修改調(diào)試也非常方便,突破了實驗教學(xué)中的實驗內(nèi)容固定不變的局限。另外,借助第三方軟件的優(yōu)勢,可以加速實驗進(jìn)程,增強(qiáng)學(xué)生的創(chuàng)新意識和提高學(xué)生的實際應(yīng)用能力。對于單片機(jī)實踐教學(xué)尤其是綜合性實驗、課程設(shè)計、電子競賽等,這種仿真調(diào)試軟件的使用會起到積極的推動作用。

      [1]聶典,丁偉.Multisiml0計算機(jī)仿真在電子電路設(shè)計中的應(yīng)用[M].北京:電子工業(yè)出版社,2009:20-50.

      [2]范立南,李震,周勝來等.基于Keil C51的軟件開門狗電路的設(shè)計[J].計算機(jī)發(fā)展與展望,2009,19(1):154-156.

      (責(zé)任編輯:馬海燕)

      O411.3

      A

      1671-6469(2012)02-0075-06

      2012-03-12

      昌吉學(xué)院教學(xué)研究項目(11jyyb011)

      王超(1980-),男,新疆瑪納斯縣人,昌吉學(xué)院物理系,講師,研究方向:自動化應(yīng)用技術(shù)。

      猜你喜歡
      昌吉元件調(diào)試
      適宜在昌吉春麥區(qū)種植的早熟高產(chǎn)春小麥品種篩選
      以十九大精神為指引 展現(xiàn)新作為新氣象,開創(chuàng)昌吉學(xué)院發(fā)展新局面
      基于航拍無人機(jī)的設(shè)計與調(diào)試
      電子制作(2018年12期)2018-08-01 00:47:44
      FOCAS功能在機(jī)床調(diào)試中的開發(fā)與應(yīng)用
      無線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
      電子制作(2017年19期)2017-02-02 07:08:38
      在昌吉,我們品嘗到了豐收的味道——新疆昌吉漢和7S店無人機(jī)飛防作業(yè)小記
      QFN元件的返工指南
      調(diào)壓柜的調(diào)試與試運(yùn)行探討
      在新興產(chǎn)業(yè)看小元件如何發(fā)揮大作用
      寶馬i3高電壓元件介紹(上)
      铜鼓县| 临朐县| 澄江县| 本溪市| 深泽县| 龙胜| 辽阳市| 墨脱县| 达拉特旗| 沙坪坝区| 普安县| 胶州市| 胶南市| 忻城县| 靖江市| 延庆县| 嘉峪关市| 英德市| 灵丘县| 饶平县| 都昌县| 共和县| 鸡西市| 信丰县| 阿荣旗| 尖扎县| 弋阳县| 河曲县| 紫金县| 炎陵县| 洪江市| 屏东市| 喜德县| 微山县| 青铜峡市| 闸北区| 梨树县| 凯里市| 莱州市| 大荔县| 马关县|