单片机双机通信报告

合集下载

单片机双击串行通信C语言设计报告(含代码)

单片机双击串行通信C语言设计报告(含代码)

探※※※※※※※※2012 级单片机接口课程设计探※※※※※※※※石家庄铁道大学四方学院集中实践报告书课题名称双机串行通信设计姓名邢志杰学号系、部电气工程系专业班级方1210-4指导教师马丽2015年7月3日一、设计任务及要求:设计任务:双机串行通信设计设计要求:1、两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。

串行口工作方式为方式1的全双工串行通信。

2、两个单片机之间进行通讯波特率的设定,最终归结到对定时计数器T1计数初值TH1、TL1进行设定。

故本题目本质上是通过键盘扫描得到设定的波特率,从而载入相应的T1计数初值TH1、TL1实现的。

3、要求发送方读入按键值,发送到接收方,接收方接受数据并显示在数码管上。

4、要求做出实物。

、指导教师评语:二、成绩指导教师签名:_________________年月日目录第1章设计目的.................................................... 错误!未定义书签。

第2章设计要求.................................................... 错误!未定义书签。

第3章硬件电路设计................................................ 错误!未定义书签。

3.1系统框图 (1)3.2 STC89C52单片机最小系统 (2)3.3按键电路 (3)3.4主电路设计................................................. 错误!未定义书签。

第4章软件程序设计. (4)4.1主程序流程图 (4)4.2键盘扫描子程序流程图 (5)4.3从机主程序流程图 (6)4.4从机中断子程序流程图 (7)4.5程序调试 (8)4.6双机串行通信源程序 (9)第5章结论 (13)参考文献 (13)第 1 章设计目的1.1 设计目的(1)掌握单片机实际系统的开发步骤。

单片机双机串行实验报告

单片机双机串行实验报告

单片机双机串行实验报告实验报告:单片机双机串行通信实验一、实验目的本实验旨在通过单片机实现双机间的串行通信,包括数据的发送和接收,并利用这种通信方式完成一定的任务。

二、实验原理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)配置串口通信的波特率、数据位、校验位和停止位,并打开串口接收中断。

单片机双机通信课程设计报告

单片机双机通信课程设计报告
(4)写出课程设计报告。
工作计划与进度安排:
第16—19周:布置课程设计任务;
查阅资料;
分组设计原理图;
编写程序代码。
第20周:系统仿真调试,验收,答辩,编写课程设计报告。
指导教师:
马秀丽 巍长军
2013年12月6日
专业负责人:
2013年12月6日
学院教学副院长:
2013年12月6日
1.题目设计要求...........................................4
0x92,0x82,0xF8,0x80,0x90,0xff};
uchar num;
//------延时------
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//------串行口发送函数------
void transfer(uchar c)
#define uint unsigned int
#define uchar unsigned char
sbit led1=P1^0;
sbit led2=P1^3;
sbit key=P1^7;
//------共阳极数码管段码---------
uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,
零,也可以作为奇偶校验位,在方式1中是停止位。
RB8:在方式2和方式3中,是被接收的第9位数据(来自第TB8位);在方式
中,RB8收到的是停止位,在方式0中不用。
TI——串行口发送中断请求标志位:当发送完一帧串行数据后,由硬件置1;在转

单片机双机通信课程设计报告

单片机双机通信课程设计报告

目录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接收。

需要注意的是一定要保证主从机相同的数据传输速率,即要求设置相同的波特率。

双机通信实验报告.doc

双机通信实验报告.doc

双机通信实验报告。

单片机实验报告(自动化15级)实验名称:串行通信实验1.实验1的目的。

掌握单片机串口的工作模式;2.掌握双机通信的接口电路设计和程序设计。

2.实验设备1。

个人电脑;2.单片机最小系统教学实验模块:3.数码管显示模块三、实验内容1。

两套单片机测试装置(两个实验组)共同完成了实验。

我们U1是机器A,U2是机器B。

机器A将学生的学号后的8位数字发送到机器B。

机器B接收到这8位数字,并将其显示在8位数字的电子管上。

该电路如图1所示。

串行通信模式要求为模式1,波特率为2400位/秒,不是双倍,单片机外部晶振频率为11.0592米。

图1双机通信原理附加要求示意图:机器b收到后,该机器(机器b)的学生编号的最后8位数字被送回机器a,并显示在数码管上。

2.单片机与PC机之间的通信单片机向PC机发送数据。

单片机将本机的学生号(学生本人)反复发送到PC机,发送波特率为1200,采用模式1,单片机外部晶振频率为11.0592米四、实验原理4.1串行通信模式在串行通信中,有两种基本通信模式:异步通信。

异步串行通信规定了字符数据的传输格式,即每个数据以相同的帧格式传输。

每个帧信息由起始位、数据位、奇偶校验位和停止位组成。

本实验主要研究异步通信的实现方法。

在异步通信中,每个字符使用一个起始位和一个停止位作为字符开始和结束的符号,因此占用时间。

因此,为了提高传输数据块时的通信速度,这些标记通常被去除,并采用同步通信。

同步通信不像异步通信那样依赖起始位在每个字符数据的开头发送和接收同步。

相反,同步字符用于在每个数据块传输开始时同步发送方和接收方。

根据通信方式,数据传输线可分为三种类型:单工模式、半双工模式、全双工模式。

(1)单工模式在单工模式中,通信线路的一端连接到发射机,另一端连接到接收机,这形成单向连接,并且仅允许数据在固定方向上传输。

(2)半双工模式在半双工模式下,系统中的每个通信设备由一个发射机和一个接收机组成,它们通过收发器开关连接到通信线路,如图33所示-1.实验1的目的。

双机通讯实验报告

双机通讯实验报告

单片机实验报告(自动化15级)实验名称:串行通讯实验一、实验目得1。

掌握单片机串行口工作方式;2。

掌握双机通讯得接口电路设计及程序设计。

二、实验设备1、PC机;2.单片机最小系统教学实验模块;3、数码管显示模块三、实验内容1.双机通信由两套单片机试验装置(两个实验小组)共同完成该实验。

我们U1为甲机,U2为乙机。

甲机发送本机(学生本人)学号后8位给乙机,乙机接收该8位数据,并显示在8位数码管上.电路如图1所示。

要求串行通信方式为方式1,波特率为2400bit/s,不加倍,单片机外部晶振频率为11、0592M。

图1 双机通信原理示意图附加要求:乙机接收完毕后,将本机(乙机)得学号后8位发送回甲机,甲机显示在数码管上。

2、单片机与PC机通信单片机向PC机发送数据。

单片机向PC机重复发送本机(学生本人)学号,发送波特率为1200,采用方式1,单片机外部晶振频率为11、0592M。

四、实验原理4.1串行通讯得方式在串行通讯中,有两种基本得通讯方式:异步通讯,同步通讯.异步串行通讯规定了字符数据得传送格式,既每个数据以相同得帧格式发送.每个帧信息由起始位、数据位、奇偶校验位与停止位组成。

本实验主要学习异步通讯得实现方法。

在异步通讯中,每一个字符要用起始位与停止位作为字符开始与结束得标志,以至占用了时间。

所以在数据块传送时,为了提高通讯速度,常去掉这些标志,而采用同步通讯.同步通讯不像异步通讯那样,靠起始位在每个字符数据开始时发送与接受同步.而就是通过同步字符在每个数据块传送开始时使收/发双方同步.按照通讯方式,又可将数据传输线路分成三种:单工方式、半双工方式、全双工方式。

(1)单工方式在单工方式下,通讯线得一端联接发送器,另一端联接接收器,它们形成单向联接,只允许数据按照一个固定得方向传送。

(2)半双工方式在半双工方式下,系统中得每个通讯设备都由一个发送器与一个接收器组成,通过收发开关接到通讯线路上,如图33—1所示。

双机串行通讯设计实验报告

双机串行通讯设计实验报告
洛阳理工学院实验报告
系别
计算机系
班级
B140502
学号
B14050226
姓名
韩亚辉
课程名称
单片机原理及组成
实验日期
2016/5/28
实验名称
双机串行通讯设计
成绩
实验目的:1.用全双共数据传送法实现两机互相通信。
2.完成双机通信的设计制作及仿真。
实验条件:计算机,Keil uVision4,ISIS 7 Professional,实验箱
(1)数据缓冲器(SBUF)
(2)串行控制寄存器(PCON)
(3)输入移位寄存器
(4)波特率发生器
(5)电源控制寄存器PCON
(6)波特率计算
三.实验电路图:
四.实验程序代码:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define duan P1
#define dis P2
void main()
{
uchar key_in=0xff; //I/O口作输入时,检测外设状态,允许输出高电平
TMOD=0x20;//设置为定时器1方式2
TH1=0xfd;//装初值,波特率设为9600
TL1=0Xfd;
EA=1;//开总中断
一.实验要求:
1)能本机显示按键的数值。
2)能向对方机发送按键的数。
3)能接收对方机发送的数并显示。
4)发送数及按键用中断实现。
5)用串行口的全双工方式通信。
二、实验原理:
(1)单片机串行接口通信功能
计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。

单片机双机通信实验报告

单片机双机通信实验报告

单片机双机通信实验报告
实验目的:
1. 了解单片机之间的串口通信原理;
2. 掌握单片机之间的双机通信方法;
3. 实现单片机之间的数据互相传输。

实验器材:
1. 单片机开发板(两块);
2. USB转串口模块(两个);
3. 杜邦线若干;
4. 电脑。

实验步骤:
首先,将单片机开发板和USB转串口模块进行连接,具体的连接方法如下:
1. 将USB转串口模块的TXD引脚连接到单片机开发板的RXD引脚上;
2. 将USB转串口模块的RXD引脚连接到单片机开发板的TXD引脚上;
3. 将USB转串口模块的GND引脚连接到单片机开发板的GND引脚上;
4. 将USB转串口模块的VCC引脚连接到单片机开发板的VCC引脚上。

接下来的步骤如下:
1. 打开两台电脑上的串口调试助手软件,并分别将波特率设置为相同的数值(例如9600);
2. 在一台电脑上,发送数据给另一台电脑。

具体的操作是在串口调试助手软件上输入要发送的数据,然后点击发送按钮;
3. 在另一台电脑上,接收来自第一台电脑发送的数据。

具体的操作是在串口调试助手软件上点击接收按钮,然后可以看到接收到的数据。

实验结果:
通过实验可以看到,单片机之间成功地实现了数据的双向传输。

一台单片机发送的数据可以被另一台单片机接收到。

实验总结:
本实验通过串口通信的方式实现了单片机之间的双机通信。

通过这种方式,可以方便地实现单片机之间的数据互相传输,可以用于各种应用场景,如传感器与控制器之间的数据传输等。

同时要注意,串口通信的波特率要设置一致,否则数据将无法正确接收。

基于单片机的双机通信实训报告

基于单片机的双机通信实训报告

一.设计方案根据题目分析可知硬件电分为主机模块和从机模块。

主机模块中包含单片机子模块、lcd1602显示子模块和矩阵键盘模块,从机模块则包括单片机子模块、LED显示模块。

在主模块中由AT89C51单片机担任主机,LCD1602担任显示设备和由4位独立按键做矩阵键盘。

在整个系统中有一个从机模块,有一片AT89C51单片机担任从机模块的控制模块,串口采用单工及异步通信方式。

整个硬件结构原下图所示。

主机从机二.硬件分析(1)控制模块控制模块采用AT89C51作为主控芯片,11.0592MHZ的晶振频率作为时钟震荡电路。

基本电路图如下所示。

仿真图由于在protues里面,单片机内部默认自带晶振,所以不需要再连接振荡电路。

控制模块原理图(2)显示模块采用LCD1602作为显示模块,LCD1602用来显示当前从机LED的状态。

仿真图如下所示:仿真图在画原理图时,由于没有LCD1602的封装。

所以,本人直接用16跟引脚的排针代替。

然后在给相应的引脚表上网络位口。

但是再画PCB,必须控制好原件之间的距离,以免导致制版时,元件位置冲突。

原理图如下所示:原理图(3)矩阵键盘模块矩阵键盘用来给单片机输入一个电平值,然后再通过主机CPU发送给从机,最后从机CPU接收,并通过LED显示出结果。

当按键按下,相当于给主机CPU 送入一个低电平,主机再把这个电平值发送给从机。

因为LED是采用共阳连接的方式,所以可以点亮LED。

矩阵键盘仿真图,以及原理图如下所示:仿真图原理图(4)LED显示模块LED显示模块,主要用来显示主机送给从机的电平值是高电平还是低电平,同时也可以用来检测,整个通信系统是否能够正常工作。

为了整个电路简化,以及效果更明显,所以决定采用共阳连接的方式。

LED显示模块的仿真图,以及原理图如下所示:仿真图原理图三.软件分析根据题目分析可知硬件电分为主机模块和从机模块。

AT89C51单片机担任主机模块和从机模块的控制模块,串口采用单工及异步通信方式。

单片机双机串行实验报告

单片机双机串行实验报告

单片机双机串行实验报告实验目的:通过单片机实现双机串行通信功能,掌握串行通信的原理、方法和程序设计技巧。

实验原理:双机串行通信是指通过串行口将两台单片机连接起来,实现数据的传输和互动。

常用的串行通信方式有同步串行通信和异步串行通信。

异步串行通信是指通过发送和接收数据时的起始位、停止位和校验位进行数据的传输。

而同步串行通信是指通过外部时钟信号进行数据的同步传输。

实验器材:1.两台单片机开发板(MCU7516)2.两个串口线3.两台计算机实验步骤:1.将两台单片机开发板连接起来,通过串口线连接它们的串行口。

2.在两台计算机上分别打开串口调试助手软件,将波特率设置为相同的数值(例如9600)。

3.在编程软件中,编写两个程序分别用于发送数据和接收数据。

4.在发送数据的程序中,首先要设置串口的波特率、数据位、停止位和校验位,并将数据存储在缓冲区中。

然后利用串口发送数据的指令将数据发送出去。

5.在接收数据的程序中,同样要设置串口的参数。

然后使用串口接收数据的指令将接收到的数据存储在缓冲区中,并将其打印出来。

实验结果与分析:经过实验,我们成功地实现了单片机之间的双机串行通信。

发送数据的单片机将数据发送出去后,接收数据的单片机能够正确地接收到数据,并将其打印出来。

实验中需要注意的是,串口的波特率、数据位、停止位和校验位必须设置为相同的数值。

否则,发送数据的单片机和接收数据的单片机无法正常进行通信。

同时,在实验之前,需要了解单片机开发板支持的串口通信相关的指令和函数。

实验总结:通过本次实验,我们深入了解了单片机之间的双机串行通信原理和方法。

掌握了串口的设置和使用方法,以及相关的指令和函数。

在实验中,我们学会了如何通过串行口实现数据的传输和互动,为今后的单片机应用和开发打下了基础。

同时,我们还发现,双机串行通信在实际应用中有着广泛的用途。

例如,可以通过串行通信实现两台计算机之间的数据传输,或者实现单片机与计算机之间的数据收发。

单片机单片机课程设计报告-双机串行通信

单片机单片机课程设计报告-双机串行通信

基于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〔通用异步承受和发送器〕用,也可以作为同步移位存放器用。

单片机双机之间的串行通讯设计报告

单片机双机之间的串行通讯设计报告

单片机双机之间的串行通讯设计报告摘要:本文介绍了一种基于单片机的双机之间的串行通讯设计。

该设计使用两个单片机,通过串行通信协议进行数据传输。

通讯过程中,两台单片机之间通过数据线连接,并使用中断方式进行数据接收和发送。

同时,本文还介绍了串行口工作方式 0 的应用,以及如何使用移位寄存器进行串行口扩展。

通过该设计,可以实现两台单片机之间的高速数据传输,并且具有良好的稳定性和可靠性。

关键词:单片机,串行通讯,中断方式,移位寄存器,串行口扩展一、引言串行通讯是计算机系统中常用的一种数据传输方式,它可以实现不同设备之间的数据传输。

在单片机应用中,串行通讯也是一种常见的数据传输方式。

本文介绍了一种基于单片机的双机之间的串行通讯设计,该设计使用两个单片机通过串行通信协议进行数据传输。

本文还介绍了串行口工作方式 0 的应用,以及如何使用移位寄存器进行串行口扩展。

通过该设计,可以实现两台单片机之间的高速数据传输,并且具有良好的稳定性和可靠性。

二、设计原理该串行通讯设计使用两个单片机,分别为发送单片机和接收单片机。

发送单片机将数据通过串行口发送到接收单片机,接收单片机再将接收到的数据进行处理。

两台单片机之间通过数据线连接,并使用中断方式进行数据接收和发送。

在串行通讯中,数据是通过串行口进行传输的。

串行口工作方式0 是一种常见的串行口工作方式,它使用移位寄存器进行数据接收和发送。

在移位寄存器中,数据被移位到寄存器中进行传输,从而实现了数据的串行传输。

三、设计实现1. 硬件设计在该设计中,发送单片机和接收单片机分别使用一个串行口进行数据传输。

发送单片机将数据通过串行口发送到接收单片机,接收单片机再将接收到的数据进行处理。

两台单片机之间通过数据线连接,并使用中断方式进行数据接收和发送。

硬件设计主要包括两个单片机、串行口、数据线和中断控制器。

其中,两个单片机分别拥有自己的串行口,并且都能够接收和发送数据。

数据线将两台单片机连接在一起,中断控制器用于处理数据的接收和发送。

单片机实验报告流水灯双机通信交通灯定时时钟

单片机实验报告流水灯双机通信交通灯定时时钟

实验一流水灯实验一、实验目的1)简单 I/O 引脚的输出2)掌握软件延时编程方法3)简单按键输入捕捉判断二、实验实现的功能1)开机是点亮 12 发光二极管,闪耀三下2)依据顺时针循环挨次点亮发光二极管3)经过按键将发光二极管的显示改为顺逆时针方式三、系统硬件设计流水灯原理图四、系统软件设计演示程序按键正转闪耀反转五、实验过程中碰到的问题及解决方法1) 每次循环不论正转仍是反转程序,总先是先履行P1 口的 8 位 led 灯。

原由:在利用 KEIL 自带的库函数中的 _crol_ 和_cror_ 时,在正转和反转程序中应当调动次序的,开始没注意到。

更正后显示正常。

2)在开始实验的时候推行的是向来循环的方式,利用按键嵌套。

以后发现不理想,每次按键按到三次以上后进入死循环。

解决方案:利用一个按键,显示一次。

并加入按键开释,防备误动作。

指导老师署名:日期:实验一程序 :/******************************************************************** **************工程说明:本工程主要达成了一下功能:1,复位后演示全部功能2,灯闪耀三次3,流水灯正转4,流水灯反转函数说明:yanshi() :演示程序dengss() :闪耀程序right():正转程序left():反转程序scankey() :按键扫描********************************************************************* **************/#ifndef _led_h#define _led_h#define uint unsigned int#define uchar unsigned charuchar i,j,a,b,c,d;uchar flag=0;//亮灯判断标记uchar aa,bb,cc,dd,ss;sbit H1=P3^6;sbit key1=P0^5;sbit key2=P0^6;sbit key3=P0^7;void delay(uint);//1ms 延时void yanshi(void);//演示全部亮灯方式void dengss(void);//闪耀三次void left(void); //左循环亮灯void right(void);//右循环亮灯void scankey(); //按键扫描#endif#include"stc10.h"#include<intrins.h>#include<led.h> //包含各样变量定义及函数申明main(){yanshi();delay(2000); //两秒后进入可控大循环while(1){scankey();if(flag==0)right();if(flag==1)left();if(flag==2)dengss();}}void delay(uint x){uint i,j;for(i=110;i>0;i--)for(j=x;j>0;j--);}void yanshi(){dengss();right();left();P2=0XFF;P3=0XFF;}void dengss(){for(ss=3;ss>0;ss--)P2=0;P3=0xc3;delay(1000);P2=0xff;P3=0xff;delay(1000);}flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void right(){aa=0xfe;for(a=8;a>0;a--){P2=aa;aa=_crol_(aa,1);delay(500);}bb=0xfb;P2=0xff;//熄灭循环后亮着的for(b=4;b>0;b--){P3=bb;bb=_crol_(bb,1);delay(500);}//D12 保存发亮flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void left(){cc=0xdf;for(c=4;c>0;c--){P3=cc;cc=_cror_(cc,1);delay(500);P3=0xff;// 熄灭 D9dd=0x7f;for(d=8;d>0;d--){P2=dd;dd=_cror_(dd,1);delay(500);}//D1 保存发亮flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void scankey(){H1=0;if(key1==0){delay(10);if(key1==0){flag=0;while(!key1);//等候按键开释}}if(key2==0){delay(10);if(key2==0){flag=1;while(!key2);//等候按键开释}}if(key3==0){delay(10);if(key3==0){flag=2;while(!key3);//等候按键开释}}}实验二准时器或实不时钟实验一、实验目的1)数码管动向显示技术2)准时器的应用3)按键功能定义二、实验实现的功能1) 经过按键能够设定准不时间,启动准时器,准不时间到,让12 个发光二极管闪耀,达成准时器功能。

双机通信实验报告

双机通信实验报告

电子信息工程专业单片机原理及应用课程设计班级1004学号姓名侯振锋指导教师何英昊日期2012.10.14一、设计题目《甲机通过串PC口控制乙机LED》(所有的正文均用小四号字)二、设计内容1、内容本次设计,对于两片89C51,采用RS232进行双机通信。

发送方的数据串行口TXD段输出。

接受方接受后,灯亮。

为提高抗干扰能力,还可以在输入输出端加光耦电阻进行光电隔离。

软件部分,通过通信协议进行发送接收,主机先送AHH给从机,当从机接收到AAH后,向主机回答BBH。

主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。

从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。

从机收到16个正确数据后送到一个数码显示管。

2、元件清单列表三、软件设计1、流程图2、代码(含注释)/* 名称:甲机串口程序说明:甲机向乙机发送控制命令字符,甲机同时接收乙机发送的数字,并显示在数码管上。

*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED1=P1^0;sbit LED2=P1^3;sbit K1=P1^7;uchar Operation_No=0; //操作代码//数码管代码uchar coadDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//延时void DelayMS(uint ms){uchar i;while(ms--) for(i=0;i<120;i++);}//向串口发送字符void Putc_to_SerialPort(uchar c){SBUF=c;while(TI==0);TI=0;}//主程序void main(){LED1=LED2=1;P0=0x00;SCON=0x50; //串口模式1,允许接收TMOD=0x20; //T1 工作模式2PCON=0x00; //波特率不倍增TH1=0xfd;TL1=0xfd;TI=RI=0;TR1=1;IE=0x90; //允许串口中断while(1){DelayMS(100);if(K1==0) //按下K1 时选择操作代码0,1,2,3{while(K1==0);Operation_No=(Operation_No+1)%4;switch(Operation_No) //根据操作代码发送A/B/C 或停止发送{case 0: Putc_to_SerialPort('X');LED1=LED2=1;break;case 1: Putc_to_SerialPort('A');LED1=~LED1;LED2=1;break;case 2: Putc_to_SerialPort('B');LED2=~LED2;LED1=1;break;case 3: Putc_to_SerialPort('C');LED1=~LED1;LED2=LED1;break;}}}}//甲机串口接收中断函数void Serial_INT() interrupt 4{if(RI){RI=0;if(SBUF>=0&&SBUF<=9) P0=DSY_CODE[SBUF];else P0=0x00;}}/* 名称:乙机程序接收甲机发送字符并完成相应动作说明:乙机接收到甲机发送的信号后,根据相应信号控制LED 完成不同闪烁动作。

双机通信实验报告

双机通信实验报告

一、实验目的1. 掌握双机通信的基本原理和实现方法。

2. 熟悉串行通信的硬件接口和软件编程。

3. 通过实验,加深对单片机串行通信的理解和应用。

二、实验原理双机通信是指两台计算机或单片机之间的数据交换。

串行通信是双机通信中常用的一种通信方式,它将数据一位一位地按顺序传送,适合于远距离通信。

本实验采用单片机串行通信,通过串行口实现数据传输。

三、实验设备1. 两套单片机实验装置(如AT89S51单片机最小系统)2. 串行通信线(如RS-232线)3. 串口调试工具(如串口助手)4. 连接线和电源四、实验内容1. 硬件连接将两套单片机实验装置通过串行通信线连接起来,确保连接线正确无误。

2. 软件编程(1)单片机编程编写单片机程序,实现数据的发送和接收。

程序主要包括以下部分:- 初始化串行口:设置波特率、数据位、停止位和校验位等。

- 发送数据:将数据写入发送缓冲区,启动发送。

- 接收数据:检测接收缓冲区是否有数据,读取数据。

(2)PC端编程编写PC端程序,实现数据的发送和接收。

程序主要包括以下部分:- 串口配置:设置串口号、波特率、数据位、停止位和校验位等。

- 发送数据:将数据写入串口缓冲区,启动发送。

- 接收数据:从串口缓冲区读取数据,显示或处理。

3. 调试与测试(1)单片机端调试- 使用串口调试工具,发送数据到单片机。

- 检查单片机接收到的数据是否正确。

(2)PC端调试- 使用串口调试工具,发送数据到PC。

- 检查PC接收到的数据是否正确。

五、实验结果与分析1. 硬件连接硬件连接正确,两套单片机实验装置通过串行通信线连接。

2. 软件编程(1)单片机程序```c// 单片机程序示例(AT89S51)#include <reg51.h>#define BAUDRATE 9600sbit TXD = P3^1; // 发送引脚sbit RXD = P3^0; // 接收引脚void Serial_Init() {TMOD = 0x20; // 定时器1工作在模式2TH1 = 0xFD; // 设置波特率TL1 = 0xFD;TR1 = 1; // 启动定时器1SCON = 0x50; // 设置串行口工作在模式1 }void main() {Serial_Init();while (1) {// 发送数据TXD = 1; // 发送起始位while (!TXD); // 等待发送完成// 发送数据字节for (char i = 0; i < 8; i++) {TXD = 1; // 发送数据位while (!TXD);TXD = 0; // 发送停止位while (!TXD);}// 接收数据RXD = 1; // 接收起始位while (!RXD); // 等待接收完成// 接收数据字节for (char i = 0; i < 8; i++) {RXD = 1; // 接收数据位while (!RXD);RXD = 0; // 接收停止位while (!RXD);}}}```(2)PC端程序```c// PC端程序示例(C#)using System;using System.IO.Ports;class Program {static void Main() {SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);serialPort.Open();while (true) {// 发送数据serialPort.WriteLine("Hello, world!");// 接收数据string receivedData = serialPort.ReadLine();Console.WriteLine("Received: " + receivedData);}serialPort.Close();}}```3. 调试与测试通过串口调试工具,发送数据到单片机和PC,检查接收到的数据是否正确。

单片机双机通信课程设计报告

单片机双机通信课程设计报告

课程设计说明书课程设计名称:单片机课程设计课程设计题目:单片机与单片机之间的串行通讯学院名称:信息工程学院专业:电子信息科学与技术班级: 090431班学号: xxx 姓名: xxx 评分:教师: xxx 2012年6月25日电子信息工程专业课程设计任务书20 10 -20 11学年第2 学期第17 周-20 周注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。

2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档摘要串行通讯是单片机的一个重要应用。

本设计就是利用两块单片机来完成一个系统,实现单片机之间的串行通讯。

随着计算机的不断普及,在我们的周围可能会同时出现多台微型计算机,而且这些计算机的牌号,后型号不同,而且有的格式不兼容。

于是利用单片机串行口实现不同计算机之间的相互通信,以达到信息或程序的共享是非常有用的。

从智能家用电器到工业上的控制系统都采用了上位机与下位机基于串行通信的主从工作方式,这样就充分利用了微机分析处理能力强、速度快的特点及下位机(单片机)面向控制、使用灵活方便的优势。

由于AT09C52系列单片机具有性能稳定、工作可靠、价格低廉等可特点,因此其应用相当广泛。

AT09C52单片机中有异步通信串行接口,能方便的构成双机,多机通讯接口。

随着测量向自动化,智能化,网络化方向的发展。

利用多机通讯构成的分布式系统逐渐普及。

本实验就点对点的双机通信进行训练。

学习串口的工作方式,初始化编程,和单片机与单片机点对点通信的编程方法以及硬件电路的设计方法。

在此基础上可以进一步提高,实现多机通信以及单片机与PC机的通讯,手机通过蓝牙与单片机通讯,电脑通过蓝牙与单片机通讯等一系列功能扩展。

【关键字】双机串行通讯 AT89C52 异步通讯功能扩展目录前言 (1)第一章、系统功能 (2)1.1 设计要求和系统的组成及工作原理 (2)第二章、系统设计方案 (3)2.1硬件设计 (3)2.1.1 AT89C52和RS232说明 (3)2..12 双机通讯的方案选择 (7)2.1软件设计 (8)2.2.1 甲机程序的编写说明 (8)2.2.2 甲机程序的编写说明 (12)第三章、调试与操作 (19)3.1 开发板调试 (19)3.2 测试结果与分析 (20)第四章、结论 ........................ 错误!未定义书签。

单片机双机通信实验报告

单片机双机通信实验报告

单片机双机通信实验报告《单片机双机通信实验报告》摘要:本实验通过使用两台单片机,利用串口通信实现双机之间的信息传输。

在实验过程中,先分别对两台单片机进行初始化设置,并分别确定了波特率和通信协议。

随后,通过串口线连接两台单片机,并编写发送和接收程序,实现了双机之间的信息传输。

实验结果表明,双机通信实验成功,信息传输准确可靠。

关键词:单片机、双机通信、串口通信、波特率、信息传输1.引言:单片机是一种集成电路,内包含了处理器、存储器和各种外设,广泛应用于嵌入式系统中。

双机通信是指两个单片机之间通过一定的通信方式实现信息的传递和交换。

利用双机通信,可以实现多个单片机之间的协同工作,提高系统的性能和可靠性。

本实验旨在通过串口通信方式,实现双机之间的信息传输。

2.实验原理:串口通信是一种常用的通信方式,将信息按照一定的协议格式转换成串行的数据,通过串口线传输。

串口通信需要设置波特率和通信协议。

波特率是指每秒钟传输的位数,通信协议是指发送和接收的数据格式和规则。

本实验使用两台单片机,每台单片机通过串口线连接。

其中一台单片机作为发送机,另一台单片机作为接收机。

发送机将要传输的信息按照通信协议和波特率发送出去,接收机按照相同的通信协议和波特率接收信息。

接收机接收到信息后,进行处理。

3.实验步骤:(1)初始化设置:分别对发送机和接收机进行初始化设置,包括引脚的设置和串口通信设置。

设置引脚为串口通信模式,并确定波特率和通信协议。

(2)连接单片机:将两台单片机通过串口线连接,发送机的发送引脚连接到接收机的接收引脚,接收机的接收引脚连接到发送机的发送引脚。

(3)编写发送程序:在发送机上编写发送程序,将要发送的信息按照通信协议和波特率发送出去。

(4)编写接收程序:在接收机上编写接收程序,按照相同的通信协议和波特率接收信息,并进行处理。

(5)测试实验:将发送机和接收机分别接入电源,观察实验现象。

4.实验结果:通过实验测试,发送机成功将信息发送给接收机,并在接收机上进行了处理。

课题七单片机双机通信

课题七单片机双机通信
课题分析
要实现两个单片机系统之间的通信,首先要 考虑的是两个系统之间的信号的是如何传递问 题,然后再考虑要传递的信号的用途问题。
为了便于对串口的工作及串口程序的编写, 本课题分为与PC通信和双机通信两个任务。
任务一 与PC通信
任务目标
实现单片机通过串口电缆与PC相实现通信,将PC输出的 字符全改为小写,并发回PC。
图7-2 单片机系统电路
程序设计分析
由任务可知,对于一个单片机系统而言,要求程序要完 成的功能一是将本机的按键通过串口用异步通信的方式发送 出去,二是对接收到另一单片机传送到串口的数据,先保存 下来,再送LED数码管依次显示出来。因此,程序将为分三 个部分组成,其一是随时扫描键盘,如果有键按下,则调用 串口发送程序;其二是串口接收程序,只要有数据到了,就 执行数据接收程序,并把数据送到显示数组里;其三是动态 显示程序。为了完成这三个并行任务,最简单的方法采用中 断进行任务分配,将串口接收程序使用串口中断对输入的数 据进行检测和接收,将动态显示程序使用定时中断完成,而 键盘扫描则采用主程序实时检测,程序的流程框图如图7-3 所示。下面就这三个部分的程序进行具体的分析。
本任务的附加条件,要求单片机本身需要设置串行口 波特率设置为9600,选择模式1(无附加的奇偶校验 位),即SCON需要设置的值为0X80,对应的T1应设
置为模式2且TH1的值设置为0XFD。
将字符中的大写字母转换为小写,首先应判断字符 是否为大写字母,然后根据ASCII码的方式,加上小写 字母与大写字母的差值就能完成转换,如下所示的语 句:
if ((ch>='A')&(ch<='Z')) ch=ch+'a'-'A';
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机双机通信接口应用专业班级:电信设计者:??指导老师:?设计时间:2011-11-28 ~12-9一、实验目的与要求:课程设计目的:1.通过课程设计巩固、深化和扩展理论知识与初步的专业技能,提高综合运用知识的能力,逐步增强实际工程训练。

2.培养正确的设计思想,掌握课程设计的主要内容、步骤和方法。

3.培养获取信息和综合处理信息的能力、文字和语言表达能力以及协作工作能力。

4.提高运用所学的理论知识和技能解决实际问题的能力及其基本工程素质。

课程设计要求:1、能够根据设计任务和指标要求,综合运用单片机课程中所学到的理论知识与实践技能独立完成一个设计课题,了解并掌握单片机系统设计的一般设计方法,具备初步的独立设计能力;。

2、根据课题需要选择参考书籍,查阅手册、图表等有关文献资料。

要求通过独立思考、深入钻研课程设计中所遇到的问题,培养自己分析、解决问题的能力。

3、学会撰写课程设计总结报告。

4、通过课程设计,逐步形成严肃认真、一丝不苟、实事求是的工作作风和科学态度,培养学生树立一定的全局观点。

5、在课程设计过程中,要做到团结协作。

意义:单片机应用系统设计是单片机课程的实践性教学环节,既涉及到许多理论知识(设计原理与方法),又强调系统设计能力的锻炼,培养创新设计的能力,养成一丝不苟的工作作风,为今后从事单片机行业的工作打下基础。

二、功能要求:单片机双机通信接口应用。

设计电路并编写程序,完成单片机与单片机之间的通信,甲机发送键盘输入的键号,乙机接收键号并在最右边的LED以十六进制的方式显示出来,通信协议:以方式2工作,波特率为2400b/s,信息格式为8个数据位,无奇偶校验位。

三、方案论证:1、总体设计方案:甲机扫描键盘获得键值,乙机显示键盘的值,使用4*4的矩阵键盘,通信时,当有键按下,甲机先发送0AAH,乙机受到0AAH后发送0BBH表示可以接受,甲机只有收到0BBH后才发送键值,以保证通信的畅通与准确,波特率为2400b/s,故时钟频率为f osc=2400*64或者2400*32,选择不加倍,PCON=00h,仿真时设置如图1-1;甲机:扫描键盘,无键按下发送0FFH,让乙机继续等待,重新扫描;有键按下,先发送0AAH,接受0BBH后发送键值。

乙机:接受数据,不等于0AAH,继续接收数据;等于0AAH,就发送0BBH,然后接受键值并显示键值。

图1-1系统框图设计如图1-2所示:图1-2四、系统硬件设计:(一)、所用的元器件及其常识:按钮,LED数码管,AT89C51芯片。

系统硬件设计如图1-3所示:图1-3 系统硬件设计说明:甲机的与乙机的GND相连,两机RXD与TXD相连,乙机利用P1做I/O口接LED。

五、软件设计:1、程序流程图如图所示:1-4为甲机程序框图,1-5为乙机程序框图图1-4图1-52、程序:(1),甲级的c程序:/*甲机发送,串口控制字为10010000b,1. 单片机双机通信接口应用。

设计电路并编写程序,完成单片机与单片机之间的通信,甲机发送键盘输入的键号,乙机接收键号并在最右边的LED以十六进制的方式显示出来,通信协议:以方式2工作,波特率为2400b/s,信息格式为8个数据位,无奇偶校验位SM2为0,无论TB8和RB8为0或者1,都可以接收,使数据只有八位*/#include<reg52.h>#define uchar unsigned charvoid delay(uchar); // 延时程序uchar scan_key(void); // 键扫描程序void main(void){uchar i=0,j=0,k,keyvalue;SCON=0x90; //串口初始化,方式2,允许接收PCON=0x00; //电源控制,波特率不加倍while(1){keyvalue=scan_key(); //获取键值if(keyvalue==0x0ff) //判断是否有键按下,有键按下为0H到00fH,无键按下为0FFH{ //发送0FF,使乙机继续等待SBUF=0x0ff;while(TI==0){;}TI=0;}else //有键按下{while(1){SBUF=0x0aa; //发送0AAHwhile(TI==0){;}TI=0;while(RI==0){;}RI=0;k=SBUF;if(k==0x0bb) //收到0BBH代表乙机允许接收,不是继续发送0AAH{SBUF=keyvalue; //发送键值while(TI==0);TI=0;break; //发送完后跳出此循环,继续获取键值}} } } }void delay(uchar n) //延时子程序{char j;while(n--)for(j=1;j<122;j++){;}}uchar scan_key(void) // 键盘扫描{uchar i,j,temp_i,temp_j,key_value=0x0ff;uchar a,b;temp_i=0x10;temp_j=0x01;P1=0x0f0;a=P1;if(a!=0x0f0) //判断有无键按下以及消抖{delay(10);if(a!=0x0f0)for(i=0;i<4;i++)for(j=0;j<4;j++){b=~(temp_i<<i);P1=b;a=P1;if((a&(temp_j<<j))==0)key_value=i*4+j;} }return key_value;}(2)甲机汇编程序:ORG 0000HLJMP MAINORG 0100HMAIN: CLR A ;主程序MOV SCON,#90H ;串口初始化MOV PCON,#00H ;波特率不加倍LOOP: LCALL SCAN_KEYLOOP1: CJNE R7,#0FFH,YOUJIAN ;有键按下转移 MOV SBUF,#0FFHWAIT1: JNB TI,WAIT1CLR TISJMP LOOPYOUJIAN: MOV SBUF,#0AAH ;有键按下,先发AA再发键值WAIT2: JNB TI,WAIT2CLR TIWAIT3: JNB RI,WAIT3CLR RIMOV R6,SBUFCJNE R6,#0BBH,YOUJIANMOV SBUF,R7WAIT4: JNB TI,WAIT4CLR TILJMP LOOPDELAY:MOV R5,#04H ;延时子程序,10ms LOOP5:MOV R6,#0FAHLOOP6:DJNZ R6,LOOP6DJNZ R5,LOOP5RETSCAN_KEY:MOV R7,#0FFH ;键扫描通过R7返回 MOV A,#0F0HMOV P1,AMOV A,P1XRL A,#0F0HJZ LOOP1LCALL DELAYMOV A,P1XRL A,#0F0HJZ LOOP1KEY1: MOV A,#0FEHMOV P1,AMOV A,P1CJNE A,#0EEH,S01MOV R7,#00HLJMP LOOP1S01: CJNE A,#0DEH,S02MOV R7,#04HLJMP LOOP1S02: CJNE A,#0BEH,S03MOV R7,#08HLJMP LOOP1S03: CJNE A,#7EH,KEY2MOV R7,#0CHLJMP LOOP1KEY2: MOV A,#0FDHMOV P1,AMOV A,P1CJNE A,#0EDH,S04MOV R7,#01HLJMP LOOP1S04: CJNE A,#0DDH,S05MOV R7,#05HLJMP LOOP1S05: CJNE A,#0BDH,S06MOV R7,#09HLJMP LOOP1S06: CJNE A,#7DH,KEY3MOV R7,#0DHLJMP LOOP1KEY3: MOV A,#0FBHMOV P1,AMOV A,P1CJNE A,#0EBH,S07MOV R7,#02HLJMP LOOP1S07: CJNE A,#0DBH,S08MOV R7,#06HLJMP LOOP1S08: CJNE A,#0BBH,S09MOV R7,#0AHLJMP LOOP1S09: CJNE A,#7BH,KEY4MOV R7,#0EHLJMP LOOP1KEY4: MOV A,#0F7HMOV P1,AMOV A,P1CJNE A,#0E7H,S10MOV R7,#03HLJMP LOOP1S10: CJNE A,#0D7H,S11MOV R7,#07HLJMP LOOP1S11: CJNE A,#0B7H,S12MOV R7,#0BHLJMP LOOP1S12: CJNE A,#77H,S13MOV R7,#0FHLJMP LOOP1S13:LJMP LOOP1 ; RETEND(3)乙机C语言程序:/*串口控制字为10010000b,方式2;foc=2400*32(或者2400*64)SM2为0,无论TB8和RB8为0或者1,都可以接收,使数据只有八位 */#include<reg52.h>#define uchar unsigned charUchar code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00} ;void main(void){uchar i,j,k,h;SCON=0x90; //串口初始化PCON=0x00; //电源控制字,波特率不加倍P1=0x00; //初始状态不显示while(1){REN=1;while(RI==0){;} //接收RI=0;k=SBUF;if(k==0x0aa) //判断接收的是不是0AAH ,不是继续接收{SBUF=0x0bb; //是,发送0BBHwhile(TI==0){;}TI=0;while(RI==0){;} //接收键值RI=0;i=SBUF;P1=table[i]; //显示for(j=0;j<254;j++) //延时{for(h=0;h<254;h++){;}} } } }(4)乙机汇编程序:ORG 0000HAJMP MAINORG 0100HMAIN:MOV SCON,#90H ;串口初始化 MOV PCON,#00HMOV P1,#00HLOOP:SETB RENWAIT1:JNB RI,WAIT1 ;接收发送信号 CLR RIMOV A,SBUFCJNE A,#0AAH,LOOPMOV SBUF,#0BBHWAIT2:JNB TI,WAIT2CLR TIWAIT3:JNB RI,WAIT3CLR RIMOV A,SBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P1,AMOV R5,#01HLOOP1:MOV R6,#0FAHLOOP2:MOV R7,#0FAHLOOP3:DJNZ R7,LOOP3DJNZ R6,LOOP2DJNZ R5,LOOP1LCALL LOOPTABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;显示码表END六、仿真图:如图 1-6所示图1-6仿真图七、心得体会:通过这次单片机应用系统设计,培养了我们的独立设计能力,实际分析问题和动手能力,,获取信息和综合处理信息的能力、文字和语言表达能力以及协作工作能力,养成理论联系实际和一丝不苟的工作作风,使我们更加充分的了解了课本上所学不到的知识,并能够应用于实践当中。

相关文档
最新文档