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.

主站蜘蛛池模板: 日本欧美一二三区色视频| 久久精品人人做人人综合试看| 欧美激情网址| 国产毛片网站| 日本精品视频一区二区| 伊人成人在线视频| 免费网站成人亚洲| 国产一二三区视频| 亚洲精选无码久久久| 国产精品无码AV中文| 亚洲视频黄| 美女被操黄色视频网站| 思思热精品在线8| 天天色综网| 亚洲色图欧美激情| 国产精品太粉嫩高中在线观看| 欧美日在线观看| 国产视频大全| 91精品专区| 亚洲天堂视频在线观看免费| 国产亚洲精品资源在线26u| 欧美福利在线观看| 日韩av资源在线| 国产人碰人摸人爱免费视频| 国产成本人片免费a∨短片| 国产午夜精品鲁丝片| 色噜噜狠狠狠综合曰曰曰| 青草视频久久| 麻豆国产精品一二三在线观看| 久久人搡人人玩人妻精品| 国产国产人在线成免费视频狼人色| 国产成人综合亚洲欧美在| 精品三级网站| 欧美午夜视频在线| 国产传媒一区二区三区四区五区| 欧美日韩综合网| 日韩欧美国产成人| 视频二区中文无码| 99久久精彩视频| 成人精品视频一区二区在线 | 一区二区三区四区在线| 中文无码日韩精品| 亚洲午夜国产片在线观看| 国产精品尤物铁牛tv| 亚洲国产黄色| 亚洲欧美精品在线| 国产精品手机在线播放| 亚洲成肉网| 激情无码字幕综合| 婷婷开心中文字幕| 亚洲va在线∨a天堂va欧美va| 欧美国产菊爆免费观看 | 国产在线日本| 人妻丰满熟妇AV无码区| 2020国产精品视频| 国产日韩精品一区在线不卡| 新SSS无码手机在线观看| 91成人免费观看| 亚洲品质国产精品无码| 中文字幕无线码一区| 美女亚洲一区| 91黄色在线观看| 久久精品国产精品青草app| 午夜国产在线观看| 99久久精品国产综合婷婷| 97国产成人无码精品久久久| 久久精品视频亚洲| 77777亚洲午夜久久多人| 国产一区二区三区免费观看| 国产成人久久777777| 在线色国产| 亚洲黄色成人| 亚洲αv毛片| 亚洲视频欧美不卡| 国产第二十一页| 精品国产成人av免费| 日韩欧美综合在线制服| 欧美一级在线播放| 亚洲国产成熟视频在线多多| 宅男噜噜噜66国产在线观看| 亚洲熟女中文字幕男人总站| 国产熟睡乱子伦视频网站|