999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Proteus中實現單片機雙機通信實驗

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

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

【關鍵詞】單片機開發(fā);Proteus軟件;仿真調試

引言

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

一、Proteus簡介

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

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

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

二、仿真項目教學案例

(一)項目要求

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

(二)任務分析

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

1.A、B單片機均采用AT89C51,A機須完成矩陣鍵盤掃描識別、鍵盤代碼串行傳送兩項任務。B機須完成串行接收代碼、數碼顯示兩項任務。本項目程序的關鍵就是串行通信程序部分。

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

3.B機收到A機發(fā)送的鍵盤代碼后,通過處理,從P0口輸出七段數碼管段碼信號,驅動共陽極七段數碼管顯示鍵盤代碼。

圖1

圖2

圖3

(三)硬件仿真圖繪制

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

圖4

圖5

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

本案例所用單片機型號為AT89C51,其結構簡單,控制靈活。其最小系統(tǒng)主要包括主芯片、電源電路、時鐘電路、復位電路。

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

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

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

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

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

本例中的通信連接是將雙機的RXD和TXD兩腳,即P3.0和P3.1交叉相邊即可。B機的這兩腳標號和A機對應。

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

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

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

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

圖6

圖7

圖8

附1 雙機通信實驗仿真電路原理圖

附2 電源原理圖

(五)Proteus ISIS載入仿真

1.加加載源程序和目標程序文件、目標代碼文件、設置時鐘頻率

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

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

2.PROTEUS交互仿真

代碼裝載完畢后即可進行仿真,只需點擊運行仿真按鈕即可運行仿真。仿真運行效果如圖8所示。

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

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

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

A機檢測發(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延時程序

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

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

void delay();

/*--------------Xms延時程序----------------*/

void delayms(uint xms)

{ " " " "uint i,j;

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

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

}

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

{省略}

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

main(){

uchar i;

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

SCON=0x40;//方式1,波特率與T1溢出率相關

TMOD=0x20;//T1方式2

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

TL1=0xfd;

TR1=1;//啟動T1

while(1){

key_4x4_scan();

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

while(1)

{

if(TI==1)

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

TI=0;//清中斷

break;

}

}

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

}

}

void delay(){

unsigned int i;

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

}

}

B機接收顯示程序:

#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;//啟動T1

while(1){

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

P0=d[SBUF];//顯示

RI=0;//清中斷

}

}

}

三、結論

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

參考文獻

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

[2]李全利.單片機原理及應用技術.北京:高等教育出版社,2001.7.

主站蜘蛛池模板: www.亚洲一区二区三区| 国产精品美乳| 欧美一级特黄aaaaaa在线看片| 色悠久久综合| 国产福利微拍精品一区二区| 国产免费网址| 亚洲欧美在线综合图区| 亚国产欧美在线人成| 亚洲成人在线免费| 国产最爽的乱婬视频国语对白 | 亚洲区第一页| 一级爆乳无码av| 女同久久精品国产99国| 一区二区偷拍美女撒尿视频| 亚洲三级影院| 中文字幕久久波多野结衣| 国产一区二区免费播放| 无码在线激情片| 秋霞一区二区三区| 亚洲第一精品福利| av尤物免费在线观看| 全色黄大色大片免费久久老太| 思思99思思久久最新精品| 亚洲免费黄色网| 亚洲精品777| 亚洲欧洲日产国产无码AV| 国产91在线|日本| 极品尤物av美乳在线观看| 91在线丝袜| 9999在线视频| 日韩专区欧美| 久久亚洲日本不卡一区二区| 亚洲视频三级| 伊人无码视屏| 免费一级α片在线观看| 香蕉伊思人视频| www中文字幕在线观看| 亚洲无码高清免费视频亚洲| 91福利一区二区三区| 亚洲一区二区黄色| 国内丰满少妇猛烈精品播 | 九色91在线视频| 无码专区国产精品一区| 国产女人综合久久精品视| 青青久在线视频免费观看| 免费va国产在线观看| 成人福利在线免费观看| 青青国产视频| 波多野结衣中文字幕久久| 欧美日韩一区二区三区在线视频| 少妇精品网站| 国产欧美视频在线观看| 色网站在线免费观看| 青青青伊人色综合久久| 成人免费黄色小视频| 日韩少妇激情一区二区| 亚洲男人在线天堂| 青青青视频91在线 | 成年网址网站在线观看| 最新国产精品第1页| 国产亚洲精品在天天在线麻豆| 色网站在线视频| 日韩无码精品人妻| 国产精品亚洲五月天高清| 国产一区二区精品福利| 亚洲精品另类| 91亚洲精选| 91青青草视频| 中文字幕啪啪| 五月丁香在线视频| JIZZ亚洲国产| 97国产在线播放| 国产精品观看视频免费完整版| www.91在线播放| 97超爽成人免费视频在线播放| 久久公开视频| a毛片免费观看| 波多野结衣视频网站| 亚洲中字无码AV电影在线观看| 国产欧美日韩免费| 国产正在播放| 欧美狠狠干|