基于51单片机的双机串行通信课程设计报告书
- 格式:doc
- 大小:93.00 KB
- 文档页数:11
单片机单片机课程设计-双机串行通信单片机课程设计双机串行通信在当今的电子信息领域,单片机的应用无处不在。
而双机串行通信作为单片机系统中的一个重要环节,为实现设备之间的数据交换和协同工作提供了关键的技术支持。
一、双机串行通信的基本原理双机串行通信是指两个单片机之间通过串行接口进行数据传输的过程。
串行通信相较于并行通信,具有线路简单、成本低、抗干扰能力强等优点。
在串行通信中,数据是一位一位地按顺序传输的。
常见的串行通信协议有 UART(通用异步收发器)、SPI(串行外设接口)和 I2C(内部集成电路)等。
在本次课程设计中,我们主要采用 UART 协议来实现双机串行通信。
UART 协议包括起始位、数据位、奇偶校验位和停止位。
起始位用于标识数据传输的开始,通常为逻辑 0;数据位可以是 5 位、6 位、7 位或 8 位,具体取决于通信双方的约定;奇偶校验位用于检验数据传输的正确性,可选择奇校验、偶校验或无校验;停止位用于标识数据传输的结束,通常为逻辑 1。
二、硬件设计为了实现双机串行通信,我们需要搭建相应的硬件电路。
首先,每个单片机都需要有一个串行通信接口,通常可以使用单片机自带的UART 模块。
在硬件连接方面,我们将两个单片机的发送端(TXD)和接收端(RXD)交叉连接。
即单片机 A 的 TXD 连接到单片机 B 的 RXD,单片机 B 的 TXD 连接到单片机 A 的 RXD。
同时,还需要共地以保证信号的参考电平一致。
此外,为了提高通信的稳定性和可靠性,我们可以在通信线路上添加一些滤波电容和上拉电阻。
三、软件设计软件设计是实现双机串行通信的核心部分。
在本次课程设计中,我们使用 C 语言来编写单片机的程序。
对于发送方单片机,首先需要对 UART 模块进行初始化,设置波特率、数据位、奇偶校验位和停止位等参数。
然后,将要发送的数据放入发送缓冲区,并通过 UART 发送函数将数据一位一位地发送出去。
对于接收方单片机,同样需要对 UART 模块进行初始化。
基于51单片机的双机串行通信课程设计-1000110061基于AT89C51单片机的双机串行通信设计姓名:杨应伟学号:100110061专业:机械设计制造及其制动化班级:机电二班前言单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。
串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。
在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。
单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。
同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。
各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。
串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。
在通信过程中,使用通信协议进行通信。
在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。
单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。
同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。
各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。
51单片机双机串行通信设计51单片机是一款广泛应用于嵌入式系统中的微控制器,具有高性能和低功耗的特点。
在一些场景中,需要使用51单片机之间进行双机串行通信,以实现数据传输和协同工作。
本文将介绍51单片机双机串行通信的设计,包括硬件连接和软件编程。
一、硬件连接1.串行通信口选择:51单片机具有多个串行通信口,如UART、SPI 和I2C等。
在双机串行通信中,可以选择其中一个串行通信口作为数据传输的接口。
一般来说,UART是最常用的串行通信口之一,因为它的硬件接口简单且易于使用。
2.引脚连接:选定UART口作为串行通信口后,需要将两个单片机之间的TX(发送)和RX(接收)引脚相连。
具体的引脚连接方式取决于所使用的单片机和外设,但一般原则上是将两个单片机的TX和RX引脚交叉连接。
二、软件编程1.串行通信初始化:首先需要通过软件编程来初始化串行通信口。
在51单片机中,可以通过设置相应的寄存器来配置波特率和其他参数。
具体的初始化代码可以使用C语言编写,并根据所使用的开发工具进行相应的配置。
2.发送数据:发送数据时,可以通过写入相应的寄存器来传输数据。
在51单片机中,通过将数据写入UART的发送寄存器,即可将数据发送出去。
发送数据的代码通常包括以下几个步骤:(1)设置发送寄存器;(2)等待数据发送完成;(3)清除数据发送完成标志位。
3.接收数据:接收数据时,需要通过读取相应的寄存器来获取接收到的数据。
在51单片机中,可以通过读取UART的接收寄存器,即可获取到接收到的数据。
接收数据的代码通常包括以下几个步骤:(1)等待数据接收完成;(2)读取接收寄存器中的数据;(3)清除数据接收完成标志位。
4.数据处理:接收到数据后,可以进行相应的数据处理。
根据具体的应用场景,可以对接收到的数据进行解析、计算或其他操作。
数据处理的代码可以根据具体的需求进行编写。
5.中断服务程序:在双机串行通信中,使用中断可以提高通信的效率。
目录1.题目设计要求 (4)2.系统的组成及工作原理 (4)2.1系统组成 (4)2.1工作原理 (4)2.3双机通讯的方案选择 (5)3.器件的功能及作用 (6)3.1硬件设计 (6)3.2电气设置 (8)3.3DB-9连接器 (8)4.系统硬件设计 (10)5.软件设计 (11)6.系统仿真调试 (18)7.设计体会和收获 (18)8.參考资料 (19)1.题目设计要求:甲乙两机串口双向通信设计要求:利用51单片机,RS232芯片,LED灯,数码管进行双机通信设计。
甲机可按键控制乙机的LED显示;乙机可按键控制甲机的数码管显示。
完成以下设计环节:1)使用Altium Desinger开发工具,设计电路原理图。
2)使用Uvision2开发平台,采用C语言或汇编语言设计软件程序。
3)使用PROTEUS仿真软件,设计仿真原理图并运行软件程序,完成系统仿真。
2.系统的组成及工作原理2.1系统组成图2.1 总体框图2.2工作原理双机通信系统通过甲乙单片机的串行口来实现数据的收发。
甲单片机通过开关电路来启动发送程序,甲机当开关按下时向乙机发送一个数据,乙机上蜂咛器发出声音提示有数据发送过来,乙机通过接收中断来接收和开关判断是否接收甲机发送过来的数据,并通过编写好的数据代码在8个发光二极管上显示主机发送过来的数据。
乙单片机通过开关电路来启动发送程序,乙机给甲机发送一数据,甲机上蜂咛器发出声音提示有数据发送过来,甲机通过接收中断来接收和开关判断是否接收乙机发送过来的数据,并通过编写好的数据代码在8个发光二极管上显示乙机发送过来的数据。
2.3 双机通讯的方案选择设计方案:该系统采用主从共两片AT89C52单片机来实现上位机对下位机的控制,由于是近距离的双机通信,我们采用单片机直接交叉连接的方式,上位机发送的数据由串行口TXD端输出,直接由下位机的串行口数据接收端RXD接收。
需要注意的是一定要保证主从机相同的数据传输速率,即要求设置相同的波特率。
基于51单片机的多机通信系统设计多机通信系统是指通过一台主机与多台从机之间进行数据交互和通信的系统。
在本设计中,我们将使用51单片机实现一个基于串行通信的多机通信系统。
系统硬件设计如下:1.主机:使用一个51单片机作为主机,负责发送数据和接收数据。
2.从机:使用多个51单片机作为从机,每个从机负责接收数据和发送数据给主机。
3.串口:主机和从机之间通过串口进行通信。
我们可以使用RS232标准通信协议。
系统软件设计如下:1.主机设计:a.初始化串口:设置串口参数,如波特率、数据位、停止位等。
b.发送数据:将需要发送的数据存储在发送缓冲区中,通过串口发送给从机。
c.接收数据:接收从机发送的数据,并存储在接收缓冲区中。
2.从机设计:a.初始化串口:设置串口参数,如波特率、数据位、停止位等。
b.接收数据:接收主机发送的数据,并存储在接收缓冲区中。
c.发送数据:将需要发送的数据存储在发送缓冲区中,通过串口发送给主机。
系统工作流程如下:1.主机启动,执行初始化操作,包括初始化串口。
2.从机启动,执行初始化操作,包括初始化串口。
3.主机发送数据给从机:主机将需要发送的数据存储在发送缓冲区中,通过串口发送给从机。
4.从机接收并处理数据:从机接收主机发送的数据,并存储在接收缓冲区中,对接收到的数据进行处理。
5.从机发送数据给主机:从机将需要发送的数据存储在发送缓冲区中,通过串口发送给主机。
6.主机接收并处理数据:主机接收从机发送的数据,并存储在接收缓冲区中,对接收到的数据进行处理。
7.主机和从机循环执行步骤3-6,实现多机之间的数据交互和通信。
多机通信系统的设计考虑到以下几个方面:1.硬件设计:需要合理选择单片机和串口的类型和参数,确保系统的稳定性和可靠性。
2.软件设计:需要设计适应系统需求的通信协议和数据处理提取方法,保证数据的准确性和完整性。
3.通信协议:需要定义主机和从机之间的通信协议,包括数据的格式、传输方式等,以便实现正确的数据交互。
前言单片机的通信接口是各台仪表之间或仪表与计算机之间进行信息交换和传输的联络装置。
主要有五种类型,串行通信接口、并行通信接口、USB接口、现场总线接口以及以太网接口。
串行通讯是单片机的一个重要应用。
本设计就是利用两块单片机来完成一个系统,实现单片机之间的串行通讯。
随着计算机的不断普及,在我们的周围可能会同时出现多台微型计算机,而且这些计算机的牌号,后型号不同,而且有的格式不兼容。
于是利用单片机串行口实现不同计算机之间的相互通信,以达到信息或程序的共享是非常有用的。
从智能家用电器到工业上的控制系统都采用了上位机与下位机基于串行通信的主从工作方式,这样就充分利用了微机分析处理能力强、速度快的特点及下位机(单片机)面向控制、使用灵活方便的优势。
利用多机通讯构成的分布式系统逐渐普及。
本实验就点对点的双机通信进行训练。
学习串口的工作方式,初始化编程,和单片机与单片机点对点通信的编程方法以及硬件电路的设计方法。
1.总体设计方案1.1 串口通信的设计原理复位电路复位电路单片机单片机电源电路电源电路时钟电路时钟电路按键输入1位LED数码管显示电路图1 串口通信的设计原理框图本次设计用于两片89S51,PC机的串行口采用的是标准的RS232接口,单片机的串行口电平是FTL电平,而TTL电平特性与RS232的电气特性不匹配,因此为了使单片机的串行口能与RS232接口通信,必须将串行口的输入/输出电平进行转换。
通常用MAX232芯片来完成电平转换。
单片机的发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。
接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。
接收方接收后,在数码管上显示接收的信息,实现串口通讯数据的发送和接收,该系统可采用max232进行串口通讯数据传送。
可用LED显示发送的相应据。
1.2 数据传输方案比较与选折在串行通信中,数据是在两个站之间传送的。
课程设计题目串口通信二级学院专业班级学生姓名学号指导教师摘要本课程设计利用两片AT89C51实现双机串口通信;主机发送并显示 10 以下的随机数,从机显示该数的阶乘值,通过开关改变主机输出的数值。
设计电路并编写一个串行口方式1收发程序,实现两片AT89C51之间的通信,甲机将数据发送到乙机并显示出来,同样,乙机也可将数据发送到甲机显示出来。
目录一、概述 (2)1、串口通信的意义 (2)2、本人所做的工作 (2)3、系统主要功能 (2)二、硬件电路设计及描述 (2)1、方案选择及设计思想 (2)2、原理框图,各功能单元之间的逻辑关系 (3)3、工作原理 (3)4、原理电路图,各元器件之间的实际连接关系 (7)5、元器件清单列表 (8)三、软件设计流程及描述 (8)1、系统模块层次结构图 (8)2、程序流程图 (9)3、源程序代码 (11)四、测试 (17)五、总结 (18)六、参考文献 (18)一、概述1、串口通信的意义计算机与外界的信息交换称为通信。
通信的基本方式可分为并行通信和串行通信两种。
所谓并行通信是指数据的各位同时在多根数据线上发送或接收。
串行通信是数据的各位在同一根数据线上依次逐位发送或接收。
串口通信的概念非常简单,串口按位(bit )发送和接收字节。
尽管比按字节(byte )的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
2、本人所做的工作在这次的课程设计中我主要负责从机接收数据及编写程序使LED 正确显示出主机发送数据的阶乘数值,。
3、系统主要功能本设计系统是实现两片AT89C51之间的通信,甲机将数据发送到乙机并显示出来,甲机随机发送0~9的数字,而乙机则显示该数字的阶乘值。
二、硬件电路设计及描述1、方案选择及设计思想一开始设计了两种结构,如下:图1图2Pc 机 电平转换单片机显示阶乘值单片机(主机) 单片机(从机)显示发的数 显示阶乘值2、原理框图,各功能单元之间的逻辑关系3、工作原理在串行通信中,数据是在两个站之间传送的。
基于A789C51单片机的双机串行通信课程设计一、总体设计1设计目的1.通过设计相关模块充分熟悉A789C51单片机的最小系统的组成和原理;2.通过软件仿真熟悉keil和proteus的配合使用;3.通过软件编程熟悉A789C51的CA789C51编程规范;4.通过实际的硬件电路搭设提高实际动手能力。
2.设计要求:两片单片机之间进行串行通信,A机将0x06发送给B机,在B机的数码管上静态显示1,B机将0~f动态循环发送到A机,并在其数码管上显示。
3.设计方案:软件部分,通过通信协议进行发送接收,A机先送0x06(B机数码管显示1)给B机(B机静态显示),当从机接收到后,向B机发送代表0-f的数码管编码数组。
B收到0x06后就把数码表TAB[16]中的数据送给从机。
二、硬件设计单片机串行通信功能图(52)计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。
A789C51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。
串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。
A789C51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。
A789C51单片机串行接口的结构如下:(1)数据缓冲器(SBUF)接受或发送的数据都要先送到SBUF缓存。
有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。
(2)串行控制寄存器(PCON)SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下:SM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。
串行接口工作方式特点见下表SM2:多机通信控制位。
基于51单片机的双机串行通信设计【摘要】串行通信是单片机的一个重要应用。
本次课程设计就是要利用单片机来完成一个系统,实现双片单片机串行通信。
通信的结果实用数码管进展显示,数码管采用查表方式显示。
两个单片机之间采用RS232进展双机通信。
在通信过程中,使用通信协议进展通信。
【关键字】51单片机,串行通信,接口一、总体设计1.设计要求:两片单片机之间进展串行通信,发送端将0~f循环发送到接收端,并在接收端显示。
2.设计方案:本次设计,对于两片89C51,采用RS232进展双机通信。
发送方的数据由串行口TXD 段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。
接收方也使用MAX232芯片进展电平转换后,信号到达接收方串行口的接收端。
承受方接收后,在数码管上显示接收的信息。
为提高抗干扰能力,还可以在输入输出端加光耦合进展光电隔离。
软件局部,通过通信协议进展发送接收,主机先送AAH给从机,当从机接收到AAH 后,向主机答复BBH。
主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。
从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进展比拟,假设检验和一样那么发送00H给主机;否那么发送FFH给主机,重新承受。
从机收到16个正确数据后送到一个数码管显示。
二、硬件设计1.51单片机串行通信功能图1.AT89C51计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。
51单片机用4个接口与外界进展数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,本钱高,传输的距离较近。
串行通信的特点是只用两条信号线〔一条信号线,再加一条地线作为信号回路〕即可完成通信,本钱低,传输的距离较远。
51单片机的串行接口是一个全双工的接口,它可以作为UART〔通用异步承受和发送器〕用,也可以作为同步移位存放器用。
基于51单片机的双机串行通信课程设计一、总体设计1设计目的1.通过设计相关模块充分熟悉51单片机的最小系统的组成和原理;2.通过软件仿真熟悉keil和proteus的配合使用;3.通过软件编程熟悉51的C51编程规;4.通过实际的硬件电路搭设提高实际动手能力。
2.设计要求:两片单片机之间进行串行通信,A机将0x06发送给B机,在B机的数码管上静态显示1,B机将0~f动态循环发送到A机,并在其数码管上显示。
3.设计方案:软件部分,通过通信协议进行发送接收,A机先送0x06(B机数码管显示1)给B机(B 机静态显示),当从机接收到后,向B机发送代表0-f的数码管编码数组。
B收到0x06后就把数码表TAB[16]中的数据送给从机。
二、硬件设计1.51单片机串行通信功能图1.AT89C51(52)计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。
51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。
串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。
51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。
51单片机串行接口的结构如下:(1)数据缓冲器(SBUF)接受或发送的数据都要先送到SBUF缓存。
有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。
(2)串行控制寄存器(PCON)SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下:SM0 SM1 SM2 REN TB8 RB8 TI RI SM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。
串行接口工作方式特点见下表SM0 SM1 工作方式功能波特率SM2:多机通信控制位。
REN:接收允许控制位。
软件置1允许接收;软件置0禁止接收。
TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。
RB9:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。
TI:发送中断标志。
发送完一帧数据后由硬件自动置位,并申请中断。
必须要软件清零后才能继续发送。
RI:接收中断标志。
接收完一帧数据后由硬件自动置位,并申请中断。
必须要软件清零后才能继续接收。
(3)输入移位寄存器接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。
(4)波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。
波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。
(5)电源控制寄存器PCON其最高位为SMOD。
(6)波特率计算当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数率)/(产生溢出所需机器周期)。
由于是定时方式,T1计数率= f ORC/12。
产生溢出所需机器周期数=模M-计数初值X。
3.整体电路设计最终设计电路如下图3所示,发送方的数据由串行口TXD段输出,经过传输线将信号传送到接收端。
信号到达接收方串行口的接收端。
接受方接收后,通过P1口在数码管上显示接收的信息。
图3.串行通信电路三、软件设计(1)串行口工作于方式1;用定时器1产生9600bit/s的波特率,工作于方式2。
(2)功能:将本机ROM中数码表TAB[16]中的16个数发送到从机,并保存在从机部ROM中,从机收到这16个数据后送到一个数码管循环显示。
(3)通信协议:主机首先发送连络信号从机接收到之后返回一个连络信号表示从机已准备好接收。
四、联合调试在protues上进行仿真实验。
首先使用KeilC将编写完成的程序编译生成HEX文件,将HEX文件烧录到两片单片机中,进行仿真实验,结果如下图所示,可以看到,接收端已将接受到的数据完整的显示了出来。
图4.仿真图注:1.仿真的过程中并没有体现出单片机的最小系统的组成元素:时钟电路和复位电路,但是实际的硬件电路中这两部分是必不可少的,此外,在实际测试中,程序是事先烧进单片机里的,所以这里并没有涉及到电平转换的问题(max232芯片和串口的连接)。
2.在数码管的共阴极与地之间接三极管是为了放大数码管的驱动电流,让数码管更加清楚的显示数据。
附:主要器件:两个STC89C52RC晶振模块:两个11.0592M的晶振四个30pf的电容复位模块:两个开关两个10uf的电容两个10K的电阻两个1K的电阻显示模块:两个单显共阴极数码管两个NPN型三极管五、程序清单1.A机程序#include<reg51.h>#include<absacc.h>sbit key=P3^6;void sendrecieve();void main(){P1=0XFF;TMOD=0x20;//定时器1工作作方式2TH1=0XFD;TL1=0XFD;//波特率为9600PCON=0X00;//波特率不加倍TR1=1;SCON=0X50;//串口工作方式为3,即11为可变波特率,//开启允许串口接收中断,多机通讯位SM2置1(广播),TB8置1(表示发送地址)//开发送及接受中断EA=1;key=1;sendrecieve();}void sendrecieve(){SBUF=0X06;while(TI!=1);//等待数据发送完成,发送完则ti置1,否则为0TI=0;while(1){while(RI!=1);//等待接收数据完成RI=0;P1=SBUF; //显示B发送来的数据}}2.B机程序#include<reg51.h>#include<absacc.h>void sendrecieve();sbit key=P3^6;unsigned char code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴极,标准接法(a--h PX.0--PX.7)unsigned int i;delay(unsigned int z){unsigned int x,y;for(x=z;z>0;z--){for(y=6000;y>0;y-- ); //50ms}}void main(){P1=0XFF;TMOD=0x20;//定时器1工作作方式2TH1=0XFD;TL1=0XFD;//波特率为9600PCON=0X00;//波特率不加倍TR1=1;SCON=0X50;//串口工作方式为3,即11为可变波特率,key=1; //开启允许串口接收中断,多机通讯位SM2置1 EA=1;delay(20);sendrecieve();}void sendrecieve(){while(RI!=1);P1=SBUF;RI=0;for(i=0;i<16;i++){SBUF=led[i]; //向A发送信息while(TI!=1);//等待数据发送完成,发送完则ti置1,否则为0TI=0;delay(60); //3s}i=0;}六、课设中遇到的问题及解决办法:1.在数码管显示模块连接三极管时,由于万用表的测试三极管的环节接触不良,着实有点让人头疼,但是最后通过借了别租的表才解决了问题,而且我们找到了三极管上的型号与之性质的对应关系;2.由于这次我们的课设容比较简单,所以我们在软件环节没有没遇到什么困难,在软件仿真时也很顺利,但是在最后焊接板子的时候,我们却遇到了问题:数码管的各管脚的排列顺序不是遵循一定的规律的,所以在焊接时要特别注意布局与布线,在这个环节上我们花费了吗大半的时间。
七、课设中的心得体会:负责总体思路设计,代码编写,软件仿真,并且参与最后的测试工作。
本次课程设计我们组主要研究的是双机通信实验,通过与组成员之间的合作,在开始的前两天中,主要是通过查找资料,或是在图书馆里查看书籍来学习有关双机通信实验的基本要求和实验所需要的器件,以及各实验器件所实现怎样的功能。
经过了我们四个人的协商,由两个人开始编写代码,再由两个人开始设计实验电路。
在编写程序代码的时候,使我学习到了最大的是MCS51单片机的中断程序的编写。
在编写程序的时候由于之前只是在课堂上和书本上学习的有单片机中的中断源以及中断向量,所以在实践的编写代码过程中会遇到很多不懂的问题,需要自己或者与同组成员相互沟通。
并且也学会了单片机的有关中断设计的思想,由于我们是制作双机通信的课程设计,所以在实验中需要用到两片单片机作为主从机来控制信号的接受与发送。
还学习到了单片机在使用中断的时候,如果有中断申请的话,硬件电路会自动把单片机里接受发送中断的TI和RI置1.这样就表示单片机此时有外部中断的申请,必须开中断来接受发送过来的信号。
大概两天的时间,我们就把初步的软件程序和硬件电路设计好了。
并且在PROTEUS的仿真器件中实现了硬件电路的连接,然后我们把PROTEUS的仿真硬件和51的程序下载到单片机过调节实验硬件和共同修改软件程序最终实现了器件的仿真。
接下来就是焊接电路的工作了,由另外的组员来实现大部分的硬件电路的焊接,从中我也学习帮忙,尽快完成我们的全部的设计容。
在完成了所有的焊接的时候,把程序下载到单片机中后,发现了数码管显示的和预期设置的有些不同,在经过简单的修改之后,我们成功的完成了我们的实验作品。
在此次课程设计中我学习到了好多新的知识以及通过了团队小组的合作受益匪浅。
与罗军昌同学一起进行程序设计的思路整合与优化,并采集实验结果,编写报告。
这次课程设计的题目比较简单,我们感觉自己完成的也比较好,至少所用到的知识都是在自己理解的基础之上,我们采用了一位动态显示的数码管,数码管的工作原理;我们在硬件连接完成好以后进行检测,当我们检测所有的焊点都没有问题后,让单片机发送数据。
我们用了C语言程序,实现了实验的要求。
通过两个星期的学习,我们在巩固和学习硬件知识的同时,用软件控制协调硬件实现现实功能,通过硬件完成软件的功能等方面的融会贯通,取得了一定的效果。
软件编写时,对于某些指令的功能,功能模块的连接,等都到了小问题,不过我们查阅资料得到了解决,与此同时,了解了不少的问题。
在这次设计中,我收获不少东西,也遇到了不少的问题。
首先,在完成单片机课程学习任务后,对容的掌握不够,缺乏灵活运用的能力,对于知识的扩展也存在一定的问题,因此,初面对设计课题,无法系统地进行设计思路的拟定。