基于51单片机的双机串行通信课程设计
51单片机串行课程设计
![51单片机串行课程设计](https://img.taocdn.com/s3/m/ed6d0a10f6ec4afe04a1b0717fd5360cbb1a8d57.png)
51单片机串行课程设计一、课程目标知识目标:1. 学生能理解51单片机的基本原理和结构,掌握串行通信的基本概念和原理;2. 学生能掌握51单片机串行口编程方法,包括串行通信协议的设置和数据的发送与接收;3. 学生能了解并运用51单片机串行通信接口进行简单的实际应用。
技能目标:1. 学生能够运用所学知识,编写简单的51单片机串行通信程序;2. 学生能够利用调试工具对串行通信程序进行调试和故障排查;3. 学生能够通过小组合作,完成一个基于51单片机串行通信的综合性项目。
情感态度价值观目标:1. 学生通过课程学习,培养对单片机及电子技术的兴趣和热情;2. 学生在学习过程中,养成积极思考、主动探究的良好学习习惯;3. 学生通过小组合作,培养团队协作精神,增强沟通与表达能力;4. 学生能够认识到电子技术在实际应用中的重要性,激发对科技创新的热情。
课程性质:本课程为实践性较强的课程,旨在帮助学生将所学的51单片机知识与实际应用相结合,提高学生的动手能力和编程技能。
学生特点:学生为初中或高中年级,具备一定的电子技术基础和编程能力,对单片机有一定了解。
教学要求:注重理论与实践相结合,强调动手实践,鼓励学生主动思考、提问和解决问题,培养学生团队协作能力和创新能力。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高解决实际问题的能力。
二、教学内容1. 51单片机基础回顾:包括51单片机的结构、工作原理、寄存器等基础知识,重点复习串行口相关寄存器的作用和使用方法。
2. 串行通信原理:介绍串行通信的基本概念、通信协议、波特率的设置等,使学生理解数据是如何通过串行口进行发送和接收的。
3. 串行口编程:详细讲解51单片机串行口的编程方法,包括初始化程序编写、发送接收程序编写,以及常见错误分析。
- 教材章节:第三章《51单片机串行口及应用》- 列举内容:串行口初始化、发送接收程序、中断处理等。
4. 实践操作:设计一系列实践操作,如串行通信程序的编写、调试与运行,使学生能够将理论知识应用到实践中。
单片机单片机课程设计-双机串行通信
![单片机单片机课程设计-双机串行通信](https://img.taocdn.com/s3/m/a4835782ac51f01dc281e53a580216fc710a5311.png)
单片机单片机课程设计-双机串行通信单片机课程设计双机串行通信在当今的电子信息领域,单片机的应用无处不在。
而双机串行通信作为单片机系统中的一个重要环节,为实现设备之间的数据交换和协同工作提供了关键的技术支持。
一、双机串行通信的基本原理双机串行通信是指两个单片机之间通过串行接口进行数据传输的过程。
串行通信相较于并行通信,具有线路简单、成本低、抗干扰能力强等优点。
在串行通信中,数据是一位一位地按顺序传输的。
常见的串行通信协议有 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 模块进行初始化。
单片机双机串口通信课程设计
![单片机双机串口通信课程设计](https://img.taocdn.com/s3/m/2e77c89864ce0508763231126edb6f1aff00716f.png)
单片机双机串口通信课程设计一、课程设计意义单片机双机串口通信是电子信息类专业中的一门基础课程,包括数据传输原理、串口通信协议等知识点,对于学生的PCB设计、嵌入式系统开发等方向的学习和深入研究都具有非常重要的作用。
通过本课程的设计,学生将能够系统地掌握串口通信技术的原理和实现方法,从而为后续相关课程的学习打下坚实的基础。
二、课程设计步骤1、理论知识讲授首先,需要对串口通信的基本概念、串口的物理接口、RS232、RS485等通信协议及其实现原理进行讲解,学生需要认真记录相关知识点,为后续的实验操作打下基础。
2、实验前准备为了进行单片机双机串口通信实验,需要准备单片机开发板、双机串口通信线、USB转串口模块、连接线等工具。
学生需要根据实验指导书上的引导,仔细按照需求准备好所需要的工具,并理清各项连接关系。
3、实验操作实验是本课程的重头戏,学生需要通过实验来巩固自己所学的相关知识。
在实验过程中,学生需要详细阅读实验指导书,并按照指导书上的步骤完成整个实验过程。
实验完成后,需要仔细分析实验结果,确认实验结果是否正确。
4、实验报告实验完成后,学生需要根据实验结果撰写实验报告,报告需要包括实验过程、实验结果分析、实验总结等内容。
报告需要清晰明了,文本内容清晰、简洁明了,图表简洁、清晰,规范地描写出整个实验过程,总结实验结果,以保证实验教学的质量。
三、课程效果评估通过老师的教学和学生的自主学习,学生能够达到掌握单片机双机串口通信的基本概念和实现方法的目标。
同时,在这个过程中,学生也能够提高实验操作的能力和数据分析的能力,为他们日后的学习和研究打下基础。
基于51单片机的双机串行通信课程设计-1000110061
![基于51单片机的双机串行通信课程设计-1000110061](https://img.taocdn.com/s3/m/597fa8c87c1cfad6195fa7d0.png)
基于51单片机的双机串行通信课程设计-1000110061基于AT89C51单片机的双机串行通信设计姓名:杨应伟学号:100110061专业:机械设计制造及其制动化班级:机电二班前言单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。
串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。
在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。
单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。
同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。
各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。
串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。
在通信过程中,使用通信协议进行通信。
在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。
单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。
同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。
各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。
51单片机双机串行通信设计
![51单片机双机串行通信设计](https://img.taocdn.com/s3/m/2ef043660622192e453610661ed9ad51f11d5479.png)
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.中断服务程序:在双机串行通信中,使用中断可以提高通信的效率。
单片机双机通信课程设计报告
![单片机双机通信课程设计报告](https://img.taocdn.com/s3/m/2f0a96f26c175f0e7dd1376f.png)
目录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接收。
需要注意的是一定要保证主从机相同的数据传输速率,即要求设置相同的波特率。
基于单片机的双机串行通信
![基于单片机的双机串行通信](https://img.taocdn.com/s3/m/788c2db30975f46527d3e17c.png)
基于单片机的双机串行通信Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】河南机电高等专科学校2015-2016学年第1学期通信实训报告系别:电子通信工程系班级: xxxxxx学号: 13xxxxxxxxx姓名: xxxxxxx2015年12月基于51单片机的双机串行通信摘要:串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。
在通信过程中,使用通信协议进行通信。
关键字:通信双机一、总体设计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]中的数据送给从机。
二、硬件设计单片机串行通信功能计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。
51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。
串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。
51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。
单片机双机串口通信课程设计
![单片机双机串口通信课程设计](https://img.taocdn.com/s3/m/928d43224b7302768e9951e79b89680203d86bfb.png)
单片机双机串口通信课程设计
本课程设计旨在通过单片机双机串口通信的实践,帮助学生掌握串口通信的原理和实现方法,提高学生的嵌入式系统设计能力。
具体内容包括:
1. 串口通信基础知识:串口通信的原理、常用通信协议、串口通信的特点等。
2. 单片机串口通信实践:使用Keil C编程语言,结合串口调试助手等工具,实现单片机之间的串口通信。
包括单向通信、双向通信、数据校验等。
3. 单片机双机串口通信实践:通过两个单片机之间的串口通信,实现数据的互传和双向控制。
包括数据的发送和接收、控制指令的编写等。
4. 应用实践:将所学知识应用到实际项目中,如智能家居、工业控制等领域。
学生需要设计和实现一个具有实际应用价值的小型嵌入式系统。
通过本课程设计,学生将学习到如何使用单片机实现串口通信,掌握串口通信的原理和实现方法,提高嵌入式系统设计能力。
同时,通过实际应用实践,培养学生的综合素质和实践能力。
- 1 -。
基于单片机的双机串行通信课程设计
![基于单片机的双机串行通信课程设计](https://img.taocdn.com/s3/m/1de94eabde80d4d8d05a4f66.png)
基于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单片机的双机串行通信设计组单片机课程设计
![基于51单片机的双机串行通信设计组单片机课程设计](https://img.taocdn.com/s3/m/c38d6f10a300a6c30c229ff7.png)
基于51单片机的双机串行通信设计一、设计任务设计要求:两个AT89C51单片机使用串口进行通信。
1)1机发送,二机接收时。
使用1机发送一个数字0xAA给2机。
2)如果2机收到数据后要给1机回复,回复0xBB。
3)1机收到回复后要下发数据,下发的同时要将数据显示出来,下发的数据通过4*4的矩阵键盘产生,可以由用户进行控制。
4)2机收到后将这些数值显示出来,一次传输完毕要回复0x00。
可以使用点阵显示或者数码管显示或者 LCD显示。
二、硬件设计1、单片机串行通信功能AT89C51计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。
51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。
串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。
51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。
51单片机串行接口的结构如下:(1)数据缓冲器(SBUF)接受或发送的数据都要先送到SBUF缓存。
有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。
(2)串行控制寄存器(PCON)SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下:SM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10, 11对应于工作方式0、1、2、3。
串行接口工作方式特点见下表SM2:多机通信控制位。
REN:接收允许控制位。
软件置1允许接收;软件置0禁止接收。
TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。
RB9:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。
(完整版)51单片机串行通信课程设计
![(完整版)51单片机串行通信课程设计](https://img.taocdn.com/s3/m/3e6d7b990b4c2e3f56276327.png)
.................................................................................................................................................................. 22
设计方案 ..................................................................................................................................................... 9
硬件设计 ..................................................................................................................................................... 9
号:
绩:
1 摘 要 通信技术根据传输方式的不同,分为串行通信和并行通信,而单片机在现代通信中非常实用。本次课程设计就是要利用单片机来完成一个系统,实现单片机双机串行通信。通信的结果用数码管进行显示,数码管采用查表方式显示。两个单片机之间采用RS232接口标准进行双机通信。在通信过程中,使用通信协议进行通信,实现两个单片机之间串行异步通信。 关键词:51单片机,串行通信,RS-232接口;
基于AT89C51的双机串行通信设计
![基于AT89C51的双机串行通信设计](https://img.taocdn.com/s3/m/9121c23c482fb4daa58d4b9f.png)
基于AT89C51的双机串行通信设计摘要本文利用ATMEL公司的两片单片机AT89C51,采用RS232,通过KEIL软件汇编编程和PROTUES软件仿真,最终完成双机的串行通信。
设计要求为:两片单片机之间进行串行通信,发送端通过串行口TXD将0~F循环发送到接收端,完成后在接收端的LED灯亮。
软件部分设计:通过通信协议进行发送接收,主机收到从机的接收信号后,向从机发送16个数据与校验和,从机接收数据并与校验和比较,若相同则灯亮。
关键词:AT89C51单片机;汇编程序;接口技术;仿真及封装The design of the Dual Serial Communications system based onthe AT89C51 ABSTRACTThis paper uses two pieces of microcontroller AT89C51 made by ATMEL Corporation, using RS232, programming by KEIL software compilation and simulatting by PROTUES software, then carries out the final completion of the serial communication double machine. Design requirements: serial communication between two microcontrollers, the sender sends 0 ~ F to the receiver by via serial port TXD, at the receiving end after the completion of LED lights. Software part of the design: transmitting and receiving via the communication protocol, the host machine after receiving a signal from the slave machine ,sends 16 datas and the checksum, then the slave machine receives datas and compares with the checksum ,if the same is lights.Key words: AT89C51 sngle chip microcomputer; Assemble program; Interface technology; Encapsulation and simulation1引言 (1)2总体设计 (2)3硬件系统设计 (3)3.1AT89C51简介 (3)3.2整体电路设计 (4)4软件系统设计 (5)4.1串行通信软件实现 (5)4.2程序流程图 (6)4.3源程序 (7)4.4系统调试 (10)5设计总结 (11)参考文献 ....................................... (12)计算机与计算机的数据传送可以采用串行通讯和并行通讯两种方式。
单片机双机之间的串行通信设计
![单片机双机之间的串行通信设计](https://img.taocdn.com/s3/m/434322ed294ac850ad02de80d4d8d15abe230081.png)
单片机双机串行实验报告实验报告:单片机双机串行通信实验一、实验目的本实验旨在通过单片机实现双机间的串行通信,包括数据的发送和接收,并利用这种通信方式完成一定的任务。
二、实验原理1.串行通信:串行通信是将数据一个个位发送或接收的方式。
数据通过一个线路逐位发送或接收,可以减少通信所需的线路数目。
2. UART串口通信:UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)的简称,是一种最常用的串口通信方式,通常用于单片机与计算机、单片机与单片机之间的通信。
3.串口模块:串口模块是负责将数据转变为串行传输的硬件模块,包括发送端和接收端。
通过设置波特率、数据位、校验位和停止位等参数,可以实现数据的可靠传输。
4.单片机串口通信:单片机内部集成了UART串口通信接口,只需要通过相应的寄存器配置,可以实现串口通信功能。
5.双机串行通信:双机串行通信是通过串口将两台单片机进行连接,一台单片机作为发送端,负责将数据发送出去;另一台单片机作为接收端,负责接收并处理发送的数据。
三、实验器材与软件1.实验器材:两台单片机、USB转TTL模块、杜邦线若干。
2. 实验软件:Keil C51集成开发环境。
四、实验内容与步骤1.配置发送端单片机(1)连接单片机和USB转TTL模块,将USB转TTL模块的TXD端连接到单片机的P3口,将GND端连接到单片机的地线。
(2)在Keil C51环境下创建新工程,编写发送端程序。
(3)配置串口通信的波特率、数据位、校验位和停止位,并打开串口发送中断。
(4)循环发送指定的数据。
2.配置接收端单片机(1)连接单片机和USB转TTL模块,将USB转TTL模块的RXD端连接到单片机的P3口,将GND端连接到单片机的地线。
(2)在Keil C51环境下创建新工程,编写接收端程序。
(3)配置串口通信的波特率、数据位、校验位和停止位,并打开串口接收中断。
51双机通讯课程设计
![51双机通讯课程设计](https://img.taocdn.com/s3/m/a0c77e162a160b4e767f5acfa1c7aa00b52a9da5.png)
51 双机通讯课程设计一、课程目标知识目标:1. 学生能理解双机通讯的基本概念,掌握双机通讯的基本原理。
2. 学生能掌握双机通讯中常用的数据传输协议和通信接口。
3. 学生能了解双机通讯在现实生活中的应用场景。
技能目标:1. 学生能够运用所学知识,独立完成双机通讯的硬件连接和软件配置。
2. 学生能够运用编程语言实现双机之间的数据传输,具备简单通信程序的开发能力。
3. 学生能够通过实际操作,解决双机通讯过程中遇到的问题,具备一定的故障排查能力。
情感态度价值观目标:1. 学生通过学习双机通讯,培养对信息科技的兴趣和热情,提高探索新技术的积极性。
2. 学生能够在团队合作中发挥自己的优势,培养良好的沟通能力和团队协作精神。
3. 学生能够认识到双机通讯在科技发展中的重要性,增强对科技创新的社会责任感。
本课程针对初高中年级学生,结合课程性质、学生特点和教学要求,将双机通讯知识分解为具体的学习成果。
课程设计注重理论与实践相结合,旨在提高学生的动手操作能力和实际问题解决能力,为培养具备创新精神和实践能力的优秀人才奠定基础。
二、教学内容1. 双机通讯基本概念:介绍双机通讯的定义、分类及发展历程,使学生了解双机通讯的背景和基本知识。
教材章节:《信息技术》第5章第1节。
2. 双机通讯原理:讲解双机通讯的工作原理,包括信号传输、编码解码、数据帧等基本概念。
教材章节:《信息技术》第5章第2节。
3. 数据传输协议与通信接口:介绍常用的数据传输协议(如串行通信协议、USB通信协议等)及通信接口(如串口、并口、USB等)。
教材章节:《信息技术》第5章第3节。
4. 双机通讯应用场景:分析双机通讯在现实生活中的应用实例,如智能家居、工业控制等领域。
教材章节:《信息技术》第5章第4节。
5. 硬件连接与软件配置:讲解双机通讯的硬件连接方法、软件配置步骤及注意事项。
教材章节:《信息技术》第5章第5节。
6. 编程实现双机通讯:通过实例教学,指导学生运用编程语言(如C语言、Python等)实现双机之间的数据传输。
51单片机双机串行通信设计
![51单片机双机串行通信设计](https://img.taocdn.com/s3/m/9c11de076d175f0e7cd184254b35eefdc8d315e3.png)
51单⽚机双机串⾏通信设计******************实践教学*******************XXXXX⼤学计算机与通信学院2013年秋季学期通信系统综合训练课程设计题⽬:51单⽚机双机串⾏通信设计专业班级:通信⼯程x班姓名:xx学号:xx指导教师:xx成绩:摘要双机通信的实质就是解决两单⽚机串⾏通信问题。
针对于89C51单⽚机全双⼯异步串⾏通信⼝,我们采⽤单⽚机直接交叉互连的串⾏通信⽅式。
考虑到本设计应⽤于短距离传输、两单⽚机具有相同的数据格式及电平且为使设计简单,我们最终决定本系统采⽤⽅式⼀单⽚机直接交叉连接的串⾏通信⽅式,上位机发送的数据由串⾏⼝TXD端输出,直接由下位机的串⾏⼝数据接收端RXD接收。
本设计的硬件电路分为数码管显⽰模块、单⽚机⼯作的基本复位电路以及晶振模块。
编程采⽤C语⾔加以实现。
通信的结果使⽤数码管进⾏显⽰,数码管采⽤查表⽅式显⽰,两个单⽚机之间采⽤RS-232进⾏双向通信。
关键字:51单⽚机串⾏通信 RS-232接⼝标准前⾔ (1)1 基本原理 (2)1.1 串⾏通信概述 (2)1.2 串⾏通信的分类 (2)1.3 串⾏通信技术标准 (2)1.4串⾏通信协议 (3)1.5串⾏通信与并⾏通信区别 (4)1.6MCS-51串⾏接⼝的基本特点 (5)1.7波特率选择 (7)1.8通信协议的使⽤ (7)1.951单⽚机的结构和作⽤ (7)1.10双机通信 (8)2 系统分析 (9)2.1汇编语⾔和C语⾔的特点及选择 (9)2.2并⾏通信与串⾏通信的⽐较 (9)2.3串⾏通信程序设计的⽐较 (9)2.4同步通信与异步通信的区别 (9)3 系统设计 (11)3.1设计要求 (11)3.2设计⽅案 (11)3.3硬件设计 (11)3.4软件设计 (14)4 系统调试 (20)总结 (21)参考⽂献 (22)致谢 (26)随着电⼦技术的飞速发展,单⽚机也步如⼀个新的时代,越来越多的功能各异的单⽚机为我们的设计提供了许多新的⽅法与思路。
51单片机串行通信课程设计
![51单片机串行通信课程设计](https://img.taocdn.com/s3/m/feaccb3391c69ec3d5bbfd0a79563c1ec5dad716.png)
51单片机串行通信课程设计一、课程设计背景随着科技的发展,各种设备和系统之间的数据交换变得越来越普遍。
而串行通信正是其中一种常用的数据交换方式。
51单片机已经成为了许多嵌入式系统的主要控制芯片,其中串行通信是一项非常重要的技术。
因此,本文将介绍如何通过51单片机完成串行通信,帮助读者更好地了解该技术,且能够设计出简单的串行通信系统。
二、课程设计目标本课程设计主要包括以下几个目标:1.掌握51单片机的串行通信原理和基本知识;2.理解串行通信的概念、特点和应用;3.学会设计简单的串行通信系统, 并能正确处理串口数据。
三、课程设计内容1.串行通信原理和基本知识介绍–串行通信的概念和特点–常用的串口协议(如UART、SPI、I2C等)–串口通信的通信协议2.51单片机串行通信实验–串口配置和初始化–数据发送和接收的实现–模拟串口通信3.串口通信协议实验–实现一个简单的通信协议–验证串口通信协议的可靠性4.应用实验–设计一个可以向计算机发送字符并显示字符的系统。
四、课程设计步骤1.掌握串行通信原理和基本知识,了解常用的串口协议。
2.学习51单片机串行通信的相关知识。
3.对串口进行配置和初始化,包括参数设置和波特率;4.实现数据的发送和接收,通过模拟实现串口通信的过程;5.实现一个简单的通信协议,并验证其可靠性;6.设计一个简单的串行通信系统,向计算机发送并显示字符。
7.总结串行通信的过程和应用,提高对该技术的理解。
五、课程设计总结通过本次课程设计,我们了解并掌握了串行通信的原理和基本知识,学习了51单片机串行通信的相关知识,同时学会了串口的配置和初始化方法,以及数据发送和接收的实现方法。
此外,我们还学会了如何设计一个简单的通信协议,并验证其可靠性,最终设计出了一个能够向计算机发送并显示字符的系统。
总之,本次课程设计使我们更深入地了解了串行通信的应用场景和实现过程,是一次非常有意义的学习经历。
单片机双机之间的串行通信设计精选文档
![单片机双机之间的串行通信设计精选文档](https://img.taocdn.com/s3/m/bfacefa60242a8956bece4e4.png)
单片机双机之间的串行通信设计精选文档 TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-专业方向课程设计报告题目:单片机双机之间的串行通信设计单片机双机之间的串行通信设计一.设计要求:两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。
二、方案论证:方案一:以两片51单片机作为通信部件,以4*4矩阵键盘作为数据输入接口,通过16个不同键值输入不同的信息,按照51单片机的方式3进行串口通信,从机采用中断方式接收信息并按照通信协议改变波特率或者用I/O口输出、CD4511译码、数码管显示相关数据,整个系统的软件部分采用C语言编写。
方案二:整个系统的硬件设计与方案一样,但是通信方式采用方式一进行通信,主从机之间的访问采用查询方式,数据输出直接由单片机的译码程序输出译码数据,同时软件编写采用汇编语言。
两种方式从设计上来说各有特色,而且两种方式都应该是可行的。
方案一中按照方式三通信可以输出九位数据而方式一只能输出八位数据,但就本题的要求来说方式一就可以了。
主从机之间的交流采用中断方式是一种高效且保护单片机的选择,但是相比之下本人对查询方式的理解更好一些。
数码管的显示若采用CD4511译码则直接输出数据就可以了,但是这样会增加硬件陈本,而且单片机的资源大部分都还闲置着,所以直接编写一段译码程序是比较好的做法。
另外在软件编写上,采用C语言在后续设计中对硬件的考虑稍少一些,换言之采用汇编可以使自己对整个通信过程及单片机的部分结构有更清晰地认识所以综合考虑采用方案二。
三、理论设计:采用AltiumDesigner绘制的原理图(整图)本系统主要包括五个基本模块:单片机最小系统(包括晶振电路、电源、复位电路及相关设置电路)、4*4矩阵键盘、功能控制电路、数据显示电路、波特率更改指示电路。
本设计的基本思路是通过控制口选择将要实现的功能,然后矩阵键盘输入数据,单片机对数据进行处理(加校验码、设置功能标志位),然后与从机握手,一切就绪之后后就开始发送数据,然后从机对接收数据校验,回发校验结果,主机根据校验结果进行下一步动作,或者重发,或者进入下一数据的发送过程,然后按照此过程不段循环,直到结束。
51单片机 双机通信
![51单片机 双机通信](https://img.taocdn.com/s3/m/6c4ab932580216fc700afdd1.png)
实验三双机通信实验一、实验目的a)UART 串行通信接口技术应用二、实验实现的功能a)甲机向乙机发送按键的键值,同时将乙机发送的键值在数码管上显示并且LED相应的闪烁b)乙机接收甲机发送的键值并在数码管上显示,同时也能向甲机发送键值三、系统硬件设计甲机和乙机的连接一样,将甲机的RXD和乙机的TXD连接,甲机的TXD和乙机的RXD连接,再将两个单片机的GND连接四、系统软件设计甲机发送程序:#include <stc10.h>#define uchar unsigned char#define uint unsigned int#define N 50ucharcodevalue[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0 X5E,0X79,0X71};//0--F的共阴极字段码表uchar codetab[]={0XFD,0X3F,0XFA,0X3F,0XF7,0X1F,0XEF,0X2F,0XDF,0X37,0XBF,0X3B,0X7F,0X3F}; //花型显示uchar ptr=0;sbit P36=P3^6;sbit P37=P3^7;void delay(uint x) //延时函数{uchar i;while(x--){for(i=0;i<120;i++);}}void display(uchar n) //显示函数{P0=0XF7;P1=codevalue[n];delay(N/2);}uchar scan_key()//按键扫描{uchar i,m;P36=0;P37=1;for(i=0;i<2;i++){m=P0;switch(m&0xe0){case 0xc0: ptr=i*3+1;return ptr;break;case 0xa0: ptr=i*3+2;return ptr;break;case 0x60: ptr=i*3+3;return ptr;break;}P36=1;P37=0;}}void shun() //顺时针转{int a,b,i;a=0x01;b=0x04;for(i=0;i<8;i++){P2=~a;a<<=1;delay(5N);}P2=0XFF;for(i=0;i<4;i++){P3&=(~b);b<<=1;delay(5N);}P3=0X3f;}void ni() //逆时针转{int a,b,i;a=0x80;b=0x20;for(i=0;i<4;i++){P3&=(~b);b>>=1;delay(5N);}P3=0X3F;for(i=0;i<8;i++){P2=~a;a>>=1;delay(5N);}P2=0XFF;}void shan() //绿黄红依次点亮{P2=0XB6;P3=0X37;delay(10N);P2=0X6D;P3=0X2F;delay(10N);P2=0XDB;P3=0X1B;delay(10N);P2=0XFF;P3=0X3F;delay(10N);}void hua(){int t;for(t=0;t<7;t++){P2=tab[t*2];P3=tab[t*2+1];delay(20N);}}void sent()//串口发送{SBUF=ptr;while(!TI);TI=0;}void receive() //串口接收并在led上显示{while(!RI);RI=0;switch(SBUF){case 1: display(SBUF);shun();break;case 2: display(SBUF);ni();break;case 3: display(SBUF);shan();break;case 4: display(SBUF);hua();break;case 5: display(SBUF);P2=0x00;P3=0x03;break;case 6: display(SBUF);P2=0xff;P3=0xff;break;}}void main(void){P1M0=0XFF;P1M1=0X00;TMOD=0X20; //T1工作模式2TH1=0XF4; //波特率2400TL1=0XF4;SCON=0XD0; //串口模式3,允许接收PCON=0X00; //波特率不倍增TR1=1;while(1){scan_key();sent();receive();}}乙机接收程序:#include <stc10.h>#define uchar unsigned char#define uint unsigned int#define N 10uchar codevalue[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71};//0--F的共阴极字段码表uchar Num_Buffer[]={0,0,0,0};//缓冲区初始化uchar keyvalue=0,ptr=0;void delay(uint x) //延时函数{uchar i;while(x--){for(i=0;i<120;i++);}}void display(uchar n) //显示函数{Num_Buffer[3]=n/1000;Num_Buffer[2]=n/100%10;Num_Buffer[1]=n/10%10;Num_Buffer[0]=n%10;P0=0XFE;P1=codevalue[Num_Buffer[3]];delay(N/2);P0=0XFD;P1=codevalue[Num_Buffer[2]];delay(N/2);P0=0XFB;P1=codevalue[Num_Buffer[1]];delay(N/2);P0=0XF7;P1=codevalue[Num_Buffer[0]];delay(N/2);}uchar scan_key() //按键扫描函数{uchar a=0x40,i,m;for(i=0;i<2;i++){P3=~a;delay(N);m=P0;switch(m&0xe0){case 0xc0: ptr=i*3+1;return ptr;break;case 0xa0: ptr=i*3+2;return ptr;break;case 0x60: ptr=i*3+3;return ptr;break;}a=a<<1;}}void sent()//串口发送{SBUF=ptr;while(!TI);TI=0;}void receive()//串口接收{while(!RI){display(keyvalue);}RI=0;keyvalue=SBUF;}void main(void){P1M0=0XFF;P1M1=0X00;TMOD=0X20; //T1工作模式2TH1=0XF4; //波特率2400TL1=0XF4;SCON=0XD0; //串口模式3,允许接收PCON=0X00; //波特率不倍增TR1=1;while(1){scan_key(); //获取键值sent();receive();}}五、实验过程中遇到的问题及解决方法问题1:和实验一一样,按键扫描时对P3口赋值会影响LED的显示解决:将按键扫描程序改为uchar scan_key()//按键扫描{uchar i,m;P36=0;P37=1;for(i=0;i<2;i++){m=P0;switch(m&0xe0){case 0xc0: ptr=i*3+1;return ptr;break;case 0xa0: ptr=i*3+2;return ptr;break;case 0x60: ptr=i*3+3;return ptr;break;}P36=1;P37=0;}}问题2:甲机在接收到5后12个LED全亮,然后无论乙机发送什么,甲机都是12个LED 全亮,不会改变状态解决:反复调试检查发现P3口的最低两位为发送与接收端口,在最开始的程序中接收5的程序为case 5: display(SBUF);P2=0x00;P3=0x00;break;,此时P3的最低两位清零,使发送和接收位都无效,所以在以后无论乙机发送什么甲机都无法接收,将其改为case 5:display(SBUF);P2=0x00;P3=0x03;break;后正常问题3:怎样让乙机在开始的时候显示0,解决:开始时写的程序为void receive()//串口接收{while(!RI) ;RI=0;keyvalue=SBUF;display(keyvalue);}这时运行后上电后数码管不显示,分析得出开始时SBUF为空,所以不显示,应当把显示函数放在while后面显示即程序改为void receive()//串口接收{while(!RI){display(keyvalue);}RI=0;keyvalue=SBUF;}指导老师签字:日期:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于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语言程序,实现了实验的要求。
通过两个星期的学习,我们在巩固和学习硬件知识的同时,用软件控制协调硬件实现现实功能,通过硬件完成软件的功能等方面的融会贯通,取得了一定的效果。
软件编写时,对于某些指令的功能,功能模块的连接,等都到了小问题,不过我们查阅资料得到了解决,与此同时,了解了不少的问题。
在这次设计中,我收获不少东西,也遇到了不少的问题。