Proteus中实现单片机双机通信实验

时间:2024-04-22 点赞:44152 浏览:85306 作者原创标记本站原创

本文是一篇单片机论文范文,单片机相关毕业论文参考文献格式,关于Proteus中实现单片机双机通信实验相关毕业论文参考文献格式范文。适合单片机及电路及参考文献方面的的大学硕士和本科毕业论文以及单片机相关开题报告范文和职称论文写作参考文献资料下载。

【摘 要】本文针对单片机项目设计中出现的问题和基本方法,提出了将Proteus仿真软件和Keil软件引入到单片机项目式开发中.以“单片机双机通信实验”项目为例,详细阐述Proteus软件在单片机课程教学中的使用方法和仿真调试过程.实践证明,该方法能激发开发热情,锻炼创新能力和单片机软硬件综合开发能力,是提高单片机开发效率和设计产品质量的一种有效方法.

【关 键 词】单片机开发,Proteus软件,仿真调试

引言

单片机开发是一项综合性、实践性、应用性很强的技术.传统的单片机开发采用“先理论设计,再动手实验”的开发模式,该模式造成编程与之实验结果分离,不便于调试,效果并不理想.鉴于此,本文将Proteus和引入到单片机的项目式开发中,通过仿真的直观性和真实感,不仅节约了硬件资源的投入,而且提高了单片机开发效率和产品质量.

一、Proteus简介

Proteus软件是英国Labcenterelectronics公司开发的电路分析与实物仿真软件,它除了具有其他EDA工具的原理布图、PCB自动或人工布线、电路仿真等功能外,Proteus最大的特点是基于微控制器的设计连同所有的电路一起仿真,可直接在单片机虚拟系统上对MCU编程,并可对软件源代码进行实时调试.同时,它具有电路互动仿真功能,通过动态外设模型,如键盘、LED/LCD等,可实时显示系统输入、输出结果,以实现交互仿真,或配合Proteus配置的虚拟仪器如示波器、逻辑分析仪等,使单片机虚拟系统实现预期的实验效果.

此处还需要用Keil软件来协助.Keil软件是美国KeilSoftware公司出品的兼容单片机C语言软件的开发系统,是目前世界上最好的51单片机开发工具之一.它提供了丰富的库函数和功能强大的集成开发调试工具,生成的目标代码效率高,多数语句生成的汇编代码很紧凑,容易理解.

Proteus和Keil各自都可以进行仿真调试,但效果不是很理想,如把两者结合起来相互配合,则可发挥Proteus和Keil的优势使其在仿真过程中的软件调试和硬件设计更加便捷、高效.

二、仿真项目教学案例

(一)项目要求

本项目要求用两片AT89C51单片机实现A机检测输入键盘信息,并通过串行通信方式,传送给B机,在B机用数码管显示A机所按下的对应按键代号,“0-9”显示对应数字,其余按键显示“-”.

(二)任务分析

项目开发过程是紧紧围绕一个或多个完整的项目展开的,因此项目的设计,是单片机课程教学成败的关键.按照本项目要求,通过分析,该项目实际上是一个双机单向通信项目,只要掌握了该项目,双向通信问题不难理解.具体思路是:

1.A、B单片机均采用AT89C51,A机须完成矩阵键盘扫描识别、键盘代码串行传送两项任务.B机须完成串行接收代码、数码显示两项任务.本项目程序的关键就是串行通信程序部分.

2.A机通过检测P2口外接的矩阵键盘信息,并进行识别处理,产生相应的键盘代码,然后通过串行发送端TXD/P3.1发送给B机,

3.B机收到A机发送的键盘代码后,通过处理,从P0口输出七段数码管段码信号,驱动共阳极七段数码管显示键盘代码.

图1

图2

图3

(三)硬件仿真图绘制

通过以上的任务分析,我们先设计出硬件电路,并将电路在Proteus中绘制出来.电源电路用5V,具体电路省略.时钟电路用来产生时钟信号供单片机工作,晶振采用12MHz,平衡电容采用3F.复位电路在系统上电或运行过程中对单片机进行初始化操作.

图4

图5

1.单片机最小系统

本案例所用单片机型号为AT89C51,其结构简单,控制灵活.其最小系统主要包括主芯片、电源电路、时钟电路、复位电路.

2.本例单片机最小系统

在这里要特别说明的是,在Proteus中单片机可以默认以最小系统工作.即可以不加上电源电路、复位电路、时钟电路也可以工作.不过为了便于直观观察,我们还是画出这些路.在绘制时,双机只画出单机的这些电路,另一个不画.并且为了不产生标号冲突,B机的引脚标号用数字表示.

本例中A机的主电路、电源电路、时钟电路、复位电路见附图.B机的系统图和A机系统大同小异.

3.本例输入、输出系统及通信连接

本例中的输入系统是矩阵键盘电路,从A机输入.利用P2口作为键盘检测口,P2.0-P2.3为行线扫描,P2.4-P2.7为列线检测.

本例中的通信连接是将双机的RXD和TXD两脚,即P3.0和P3.1交叉相边即可.B机的这两脚标号和A机对应.

本例中的输出系统是单个LED共阳数码管显示电路,从B机P0输出段码控制信号.

4.本例硬件仿真总图见附1.

(四)软件系统流程图

A机主程序流程图如图1所示,键盘扫描检测程序流程图如图2所示,B机主程序流程图如图3所示.具体的程序见附3.编程输入KeiuVsion4软件并生成A机和B机的”.hex”格式可执行文件.

图6

图7

图8

附1双机通信实验仿真电路原理图

附2电源原理图

(五)ProteusISIS载入仿真

1.加加载源程序和目标程序文件、目标代码文件、设置时钟频率

在ISIS菜单中单击Source(源程序),弹出下拉菜单,点击“Add/RemoveSourceFile等”,弹出如图1.9所示的对话框,选取A机芯片,点击,加入源程序“双机通信实验A机发送程序.C”,如图4所示,选取B机芯片,点击,加入源程序“双机通信实验B机接收程序.C”,如图5所示.点击确定.在ISIS编辑窗口中双击A机AT89C51芯片,在弹出的对话框中点击如图6所示的按钮,选择前面所生成的“双机通信实验A机发送程序.hex”代码文件,再在ClockFrequency:栏中设置时钟为12MHz,点击“OK”即可.B机同样设置.如图7所示.

2.PROTEUS交互仿真

代码装载完毕后即可进行仿真,只需点击运行仿真按钮即可运行仿真.仿真运行效果如图8所示.

(六)本例仿真电路原理图及程序部分源代码

1.本例仿真电路原理图(附1、附2)

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

A机检测发送程序:

#include<,at89x51.h>,

#defineucharunsignedchar

#defineuintunsignedint

#definekey_4x4_portP2//定义P3口为键盘输入

ucharkey,//按键值

voiddelayms(uintxms),//1ms延时程序

voidkey_4x4_scan(),//键盘扫描指示程序

uchard[11]等于{0,1,2,3,4,5,6,7,8,9,10},//发送的数据

voiddelay(),

/*--------------Xms延时程序----------------*/

voiddelayms(uintxms)

{uinti,j,

for(i等于xms,i>,0,i--)//i等于xms时延时xms

for(j等于110,j>,0,j--),

}

/*---------------键盘扫描指示程序--------------*/

{省略}

/*---------------A机检测发送程序--------------*/

main(){

uchari,

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],//启动串口并发送数据

while(1)

{

if(TI等于等于1)

{//检测,发送完发送下一数据

TI等于0,//清中断

break,

}

}

delay(),//发送速度控制

}

}

voiddelay(){

unsignedinti,

for(i等于0,i<,40,i++){

}

}

B机接收显示程序:

#include<,at89x51.h>,

unsignedcharcoded[11]等于//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的使用方法,将其与KeiluVsion4有机结合,使用该软件有利于直观观察仿真结果,培养单片机综合应用能力,明显地提高单片机开发效率和教学质量.

相关论文

PC机与单片机的无线通信

本文是一篇无线通信论文范文,关于无线通信相关硕士毕业论文,关于PC机与单片机的无线通信相关毕业论文范文。适合无线通信及通信技术及单片机。

基于单片机的多机通信系统设计

本文是一篇单片机论文范文,单片机方面有关毕业论文模板,关于基于单片机的多机通信系统设计相关大学毕业论文范文。适合单片机及计算机及集成。

PC机与单片机的无线通信

本文是一篇无线通信论文范文,关于无线通信类硕士论文开题报告,关于PC机与单片机的无线通信相关专升本毕业论文范文。适合无线通信及单片机及。

单片机多机串行通信设计方法

本文是一篇通信论文范文,通信有关硕士毕业论文,关于单片机多机串行通信设计方法相关毕业论文范文。适合通信及主机及地址方面的的大学硕士和。

移动通信实验教学开放体系的构建

本文是一篇移动通信论文范文,移动通信有关电大毕业论文,关于移动通信实验教学开放体系的构建相关大学毕业论文范文。适合移动通信及实验教学。

PDA与单片机串口通信的实现

本文是一篇操作系统论文范文,操作系统类毕业论文提纲,关于PDA与单片机串口通信的实现相关在职毕业论文范文。适合操作系统及嵌入式及单片机。

单片机与PC机的串行通信

本文是一篇通信技术论文范文,关于通信技术方面大学毕业论文,关于单片机与PC机的串行通信相关本科毕业论文范文。适合通信技术及单片机通信及。

PC机与单片机的串行通信设计

本文是一篇软件设计论文范文,软件设计类有关本科毕业论文,关于PC机与单片机的串行通信设计相关毕业论文格式模板范文。适合软件设计及软件开。