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

        ?

        Proteus中實(shí)現(xiàn)單片機(jī)雙機(jī)通信實(shí)驗(yàn)

        2014-12-31 00:00:00龔安順
        電子世界 2014年20期

        【摘要】本文針對單片機(jī)項(xiàng)目設(shè)計(jì)中出現(xiàn)的問題和基本方法,提出了將Proteus仿真軟件和Keil軟件引入到單片機(jī)項(xiàng)目式開發(fā)中。以“單片機(jī)雙機(jī)通信實(shí)驗(yàn)”項(xiàng)目為例,詳細(xì)闡述Proteus軟件在單片機(jī)課程教學(xué)中的使用方法和仿真調(diào)試過程。實(shí)踐證明,該方法能激發(fā)開發(fā)熱情,鍛煉創(chuàng)新能力和單片機(jī)軟硬件綜合開發(fā)能力,是提高單片機(jī)開發(fā)效率和設(shè)計(jì)產(chǎn)品質(zhì)量的一種有效方法。

        【關(guān)鍵詞】單片機(jī)開發(fā);Proteus軟件;仿真調(diào)試

        引言

        單片機(jī)開發(fā)是一項(xiàng)綜合性、實(shí)踐性、應(yīng)用性很強(qiáng)的技術(shù)。傳統(tǒng)的單片機(jī)開發(fā)采用“先理論設(shè)計(jì),再動(dòng)手實(shí)驗(yàn)”的開發(fā)模式,該模式造成編程與之實(shí)驗(yàn)結(jié)果分離,不便于調(diào)試,效果并不理想。鑒于此,本文將Proteus和引入到單片機(jī)的項(xiàng)目式開發(fā)中,通過仿真的直觀性和真實(shí)感,不僅節(jié)約了硬件資源的投入,而且提高了單片機(jī)開發(fā)效率和產(chǎn)品質(zhì)量。

        一、Proteus簡介

        Proteus軟件是英國Labcenter electronics公司開發(fā)的電路分析與實(shí)物仿真軟件,它除了具有其他EDA工具的原理布圖、PCB自動(dòng)或人工布線、電路仿真等功能外,Proteus最大的特點(diǎn)是基于微控制器的設(shè)計(jì)連同所有的外圍電路一起仿真,可直接在單片機(jī)虛擬系統(tǒng)上對MCU編程,并可對軟件源代碼進(jìn)行實(shí)時(shí)調(diào)試。同時(shí),它具有電路互動(dòng)仿真功能,通過動(dòng)態(tài)外設(shè)模型,如鍵盤、LED/LCD等,可實(shí)時(shí)顯示系統(tǒng)輸入、輸出結(jié)果,以實(shí)現(xiàn)交互仿真,或配合Proteus配置的虛擬儀器如示波器、邏輯分析儀等,使單片機(jī)虛擬系統(tǒng)實(shí)現(xiàn)預(yù)期的實(shí)驗(yàn)效果。

        此處還需要用Keil軟件來協(xié)助。Keil軟件是美國Keil Software公司出品的兼容單片機(jī)C語言軟件的開發(fā)系統(tǒng),是目前世界上最好的51單片機(jī)開發(fā)工具之一。它提供了豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,生成的目標(biāo)代碼效率高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。

        Proteus和Keil各自都可以進(jìn)行仿真調(diào)試,但效果不是很理想,如把兩者結(jié)合起來相互配合,則可發(fā)揮Proteus和Keil的優(yōu)勢使其在仿真過程中的軟件調(diào)試和硬件設(shè)計(jì)更加便捷、高效。

        二、仿真項(xiàng)目教學(xué)案例

        (一)項(xiàng)目要求

        本項(xiàng)目要求用兩片AT89C51單片機(jī)實(shí)現(xiàn)A機(jī)檢測輸入鍵盤信息,并通過串行通信方式,傳送給B機(jī),在B機(jī)用數(shù)碼管顯示A機(jī)所按下的對應(yīng)按鍵代號(hào),“0-9”顯示對應(yīng)數(shù)字,其余按鍵顯示“-”。

        (二)任務(wù)分析

        項(xiàng)目開發(fā)過程是緊緊圍繞一個(gè)或多個(gè)完整的項(xiàng)目展開的,因此項(xiàng)目的設(shè)計(jì),是單片機(jī)課程教學(xué)成敗的關(guān)鍵。按照本項(xiàng)目要求,通過分析,該項(xiàng)目實(shí)際上是一個(gè)雙機(jī)單向通信項(xiàng)目,只要掌握了該項(xiàng)目,雙向通信問題不難理解。具體思路是:

        1.A、B單片機(jī)均采用AT89C51,A機(jī)須完成矩陣鍵盤掃描識(shí)別、鍵盤代碼串行傳送兩項(xiàng)任務(wù)。B機(jī)須完成串行接收代碼、數(shù)碼顯示兩項(xiàng)任務(wù)。本項(xiàng)目程序的關(guān)鍵就是串行通信程序部分。

        2.A機(jī)通過檢測P2口外接的矩陣鍵盤信息,并進(jìn)行識(shí)別處理,產(chǎn)生相應(yīng)的鍵盤代碼,然后通過串行發(fā)送端TXD/P3.1發(fā)送給B機(jī);

        3.B機(jī)收到A機(jī)發(fā)送的鍵盤代碼后,通過處理,從P0口輸出七段數(shù)碼管段碼信號(hào),驅(qū)動(dòng)共陽極七段數(shù)碼管顯示鍵盤代碼。

        圖1

        圖2

        圖3

        (三)硬件仿真圖繪制

        通過以上的任務(wù)分析,我們先設(shè)計(jì)出硬件電路,并將電路在Proteus中繪制出來。電源電路用5V,具體電路省略。時(shí)鐘電路用來產(chǎn)生時(shí)鐘信號(hào)供單片機(jī)工作,晶振采用12MHz,平衡電容采用33pF。復(fù)位電路在系統(tǒng)上電或運(yùn)行過程中對單片機(jī)進(jìn)行初始化操作。

        圖4

        圖5

        1.單片機(jī)最小系統(tǒng)

        本案例所用單片機(jī)型號(hào)為AT89C51,其結(jié)構(gòu)簡單,控制靈活。其最小系統(tǒng)主要包括主芯片、電源電路、時(shí)鐘電路、復(fù)位電路。

        2.本例單片機(jī)最小系統(tǒng)

        在這里要特別說明的是,在Proteus中單片機(jī)可以默認(rèn)以最小系統(tǒng)工作。即可以不加上電源電路、復(fù)位電路、時(shí)鐘電路也可以工作。不過為了便于直觀觀察,我們還是畫出這些路。在繪制時(shí),雙機(jī)只畫出單機(jī)的這些電路,另一個(gè)不畫。并且為了不產(chǎn)生標(biāo)號(hào)沖突,B機(jī)的引腳標(biāo)號(hào)用數(shù)字表示。

        本例中A機(jī)的主電路、電源電路、時(shí)鐘電路、復(fù)位電路見附圖。B機(jī)的系統(tǒng)圖和A機(jī)系統(tǒng)大同小異。

        3.本例輸入、輸出系統(tǒng)及通信連接

        本例中的輸入系統(tǒng)是矩陣鍵盤電路,從A機(jī)輸入。利用P2口作為鍵盤檢測口,P2.0-P2.3為行線掃描,P2.4-P2.7為列線檢測。

        本例中的通信連接是將雙機(jī)的RXD和TXD兩腳,即P3.0和P3.1交叉相邊即可。B機(jī)的這兩腳標(biāo)號(hào)和A機(jī)對應(yīng)。

        本例中的輸出系統(tǒng)是單個(gè)LED共陽數(shù)碼管顯示電路,從B機(jī)P0輸出段碼控制信號(hào)。

        4.本例硬件仿真總圖見附1。

        (四)軟件系統(tǒng)流程圖

        A機(jī)主程序流程圖如圖1所示,鍵盤掃描檢測程序流程圖如圖2所示,B機(jī)主程序流程圖如圖3所示。具體的程序見附3。編程輸入Kei uVsion4軟件并生成A機(jī)和B機(jī)的”.hex”格式可執(zhí)行文件。

        圖6

        圖7

        圖8

        附1 雙機(jī)通信實(shí)驗(yàn)仿真電路原理圖

        附2 電源原理圖

        (五)Proteus ISIS載入仿真

        1.加加載源程序和目標(biāo)程序文件、目標(biāo)代碼文件、設(shè)置時(shí)鐘頻率

        在ISIS菜單中單擊Source(源程序),彈出下拉菜單,點(diǎn)擊“Add/Remove Source File…”,彈出如圖1.9所示的對話框,選取A機(jī)芯片,點(diǎn)擊 ,加入源程序“雙機(jī)通信實(shí)驗(yàn)A機(jī)發(fā)送程序.C”,如圖4所示;選取B機(jī)芯片,點(diǎn)擊 ,加入源程序“雙機(jī)通信實(shí)驗(yàn)B機(jī)接收程序.C”,如圖5所示。點(diǎn)擊確定。

        在ISIS編輯窗口中雙擊A機(jī)AT89C51芯片,在彈出的對話框中點(diǎn)擊如圖6所示的按鈕,選擇前面所生成的“雙機(jī)通信實(shí)驗(yàn)A機(jī)發(fā)送程序.hex”代碼文件,再在Clock Frequency:欄中設(shè)置時(shí)鐘為12MHz,點(diǎn)擊“OK”即可。B機(jī)同樣設(shè)置。如圖7所示。

        2.PROTEUS交互仿真

        代碼裝載完畢后即可進(jìn)行仿真,只需點(diǎn)擊運(yùn)行仿真按鈕即可運(yùn)行仿真。仿真運(yùn)行效果如圖8所示。

        (六)本例仿真電路原理圖及程序部分源代碼

        1.本例仿真電路原理圖(附1、附2)

        2.本例程序部分源代碼(附3)

        A機(jī)檢測發(fā)送程序:

        #include lt;at89x51.hgt;

        #define uchar unsigned char

        #define uint unsigned int

        #define key_4x4_port P2 "http://定義P3口為鍵盤輸入

        uchar key; " "http://按鍵值

        void delayms(uint xms);//1ms延時(shí)程序

        void key_4x4_scan(); " "http://鍵盤掃描指示程序

        uchar d[11]={0,1,2,3,4,5,6,7,8,9,10}; //發(fā)送的數(shù)據(jù)

        void delay();

        /*--------------Xms延時(shí)程序----------------*/

        void delayms(uint xms)

        { " " " "uint i,j;

        for(i=xms;igt;0;i--) //i=xms時(shí)延時(shí)xms

        for(j=110;jgt;0;j--);

        }

        /*---------------鍵盤掃描指示程序--------------*/

        {省略}

        /*---------------A機(jī)檢測發(fā)送程序--------------*/

        main(){

        uchar i;

        PCON=0x80;//波特率加倍

        SCON=0x40;//方式1,波特率與T1溢出率相關(guān)

        TMOD=0x20;//T1方式2

        TH1=0xfd;//串口速度為19.2Kb/s

        TL1=0xfd;

        TR1=1;//啟動(dòng)T1

        while(1){

        key_4x4_scan();

        SBUF=d[key];//啟動(dòng)串口并發(fā)送數(shù)據(jù)

        while(1)

        {

        if(TI==1)

        {//檢測,發(fā)送完發(fā)送下一數(shù)據(jù)

        TI=0;//清中斷

        break;

        }

        }

        delay();//發(fā)送速度控制

        }

        }

        void delay(){

        unsigned int i;

        for(i=0;ilt;40;i++){

        }

        }

        B機(jī)接收顯示程序:

        #include lt;at89x51.hgt;

        unsigned char code d[11]= "http://LED字符碼

        { "0xc0,0xF9,0xA4,0xB0,0x99,

        0x92,0x82,0xF8,0x80,0x90,0xbf

        };

        main(){

        PCON=0x80;//波特率加倍

        SCON=0x50;//方式1,允許接收

        IE=0x90;//開串口中斷

        TMOD=0x20;//T1方式2

        TH1=0xfd;//串口速度為19.2Kb/s

        TL1=0xfd;

        TR1=1;//啟動(dòng)T1

        while(1){

        if(RI==1){//檢測

        P0=d[SBUF];//顯示

        RI=0;//清中斷

        }

        }

        }

        三、結(jié)論

        通過本次實(shí)驗(yàn),可以熟悉單片機(jī)串行通信的編程方法,提高鍵盤掃描檢測程序、定時(shí)器的使用技巧,熟悉ProteusISIS的使用方法,將其與Keil uVsion4有機(jī)結(jié)合,使用該軟件有利于直觀觀察仿真結(jié)果,培養(yǎng)單片機(jī)綜合應(yīng)用能力,明顯地提高單片機(jī)開發(fā)效率和教學(xué)質(zhì)量。

        參考文獻(xiàn)

        [1]谷秀榮,單片機(jī)原理與應(yīng)用(C51版),北京交大出版社,2009.7.

        [2]李全利.單片機(jī)原理及應(yīng)用技術(shù).北京:高等教育出版社,2001.7.

        久久久久亚洲av无码专区喷水| 亚洲一区二区视频蜜桃| 亚洲成在人线天堂网站 | 老妇高潮潮喷到猛进猛出| 狠狠色噜噜狠狠狠狠米奇777| 一级片久久| 性视频毛茸茸女性一区二区| av黄页网国产精品大全| 九色九九九老阿姨| 一区一级三级在线观看 | 白嫩少妇高潮喷水av| 少妇爆乳无码专区| 永久免费无码av在线网站| 亚洲人成网站18男男| 国产高清视频在线不卡一区| 色视频线观看在线网站| 亚洲另类国产综合第一| 亚洲女同精品久久女同| 24小时免费在线观看av| 国产又色又爽又刺激在线播放| 最新国产拍偷乱偷精品| 一本久道在线视频播放| 无码一区二区三区| 牛鞭伸入女人下身的真视频| 精品日韩欧美一区二区三区在线播放| 中文字幕亚洲入口久久 | 97午夜理论片影院在线播放| 免费的毛片视频| 男女羞羞的视频免费网站| 久久精品一区午夜视频| 成熟丰满熟妇高潮xxxxx视频| 亚洲一区二区三区久久不卡| 国产极品大秀在线性色| 人妻av无码一区二区三区| 最近日韩激情中文字幕| 少妇高潮太爽了免费网站| 手机在线看片| 又爆又大又粗又硬又黄的a片| 久久久精品国产亚洲麻色欲 | 日韩一区二区,亚洲一区二区视频 国产一区二区三区经典 | 亚洲成人激情深爱影院在线|