单片机双机之间的串行通信设计
单片机双机串口通信
单片机双机串口通信在现代电子技术领域,单片机的应用无处不在。
而单片机之间的通信则是实现复杂系统功能的关键之一。
其中,双机串口通信是一种常见且重要的通信方式。
什么是单片机双机串口通信呢?简单来说,就是让两个单片机能够通过串口相互交换数据和信息。
想象一下,两个单片机就像是两个小伙伴,它们需要交流分享彼此的“想法”和“知识”,串口通信就是它们交流的“语言”。
串口通信,顾名思义,是通过串行的方式来传输数据。
这和我们日常生活中并行传输数据有所不同。
在并行传输中,多个数据位同时传输;而在串行传输中,数据一位一位地按顺序传送。
虽然串行传输速度相对较慢,但它所需的硬件连线简单,成本较低,对于单片机这种资源有限的设备来说,是一种非常实用的通信方式。
在进行单片机双机串口通信时,我们首先要了解串口通信的一些基本参数。
比如波特率,它决定了数据传输的速度。
就像两个人说话的快慢,如果波特率设置得不一致,那么双方就无法正常理解对方的意思,数据传输就会出错。
常见的波特率有 9600、115200 等。
还有数据位、停止位和校验位。
数据位决定了每次传输的数据长度,常见的有 8 位;停止位表示一个数据帧的结束,通常是 1 位或 2 位;校验位则用于检验数据传输的正确性,有奇校验、偶校验和无校验等方式。
为了实现双机串口通信,我们需要在两个单片机上分别进行编程。
编程的主要任务包括初始化串口、设置通信参数、发送数据和接收数据。
初始化串口时,我们要配置好相关的寄存器,使其工作在我们期望的模式下。
比如设置波特率发生器的数值,以确定合适的波特率。
发送数据相对来说比较简单。
我们将要发送的数据放入特定的寄存器中,然后启动发送操作,单片机就会自动将数据一位一位地通过串口发送出去。
接收数据则需要我们不断地检查接收标志位,以确定是否有新的数据到来。
当有新数据时,从接收寄存器中读取数据,并进行相应的处理。
在实际应用中,单片机双机串口通信有着广泛的用途。
比如在一个温度监测系统中,一个单片机负责采集温度数据,另一个单片机则负责将数据显示在屏幕上或者上传到网络。
单片机单片机课程设计-双机串行通信
单片机单片机课程设计-双机串行通信单片机课程设计双机串行通信在当今的电子信息领域,单片机的应用无处不在。
而双机串行通信作为单片机系统中的一个重要环节,为实现设备之间的数据交换和协同工作提供了关键的技术支持。
一、双机串行通信的基本原理双机串行通信是指两个单片机之间通过串行接口进行数据传输的过程。
串行通信相较于并行通信,具有线路简单、成本低、抗干扰能力强等优点。
在串行通信中,数据是一位一位地按顺序传输的。
常见的串行通信协议有 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 模块进行初始化。
单片机串行通信实验报告(实验要求、原理、仿真图及例程)
《嵌入式系统原理与实验》实验指导实验三调度器设计基础一、实验目的和要求1.熟练使用Keil C51 IDE集成开发环境,熟练使用Proteus软件。
2.掌握Keil与Proteus的联调技巧。
3.掌握串行通信在单片机系统中的使用。
4.掌握调度器设计的基础知识:函数指针。
二、实验设备1.PC机一套2.Keil C51开发系统一套3.Proteus 仿真系统一套三、实验容1.甲机通过串口控制乙机LED闪烁(1)要求a.甲单片机的K1按键可通过串口分别控制乙单片机的LED1闪烁,LED2闪烁,LED1和LED2同时闪烁,关闭所有的LED。
b.两片8051的串口都工作在模式1,甲机对乙机完成以下4项控制。
i.甲机发送“A”,控制乙机LED1闪烁。
ii.甲机发送“B”,控制乙机LED2闪烁。
iii.甲机发送“C”,控制乙机LED1,LED2闪烁。
iv.甲机发送“C”,控制乙机LED1,LED2停止闪烁。
c.甲机负责发送和停止控制命令,乙机负责接收控制命令并完成控制LED的动作。
两机的程序要分别编写。
d.两个单片机都工作在串口模式1下,程序要先进行初始化,具体步骤如下:i.设置串口模式(SCON)ii.设置定时器1的工作模式(TMOD)iii.计算定时器1的初值iv.启动定时器v.如果串口工作在中断方式,还必须设置IE和ES,并编写中断服务程序。
(2)电路原理图Figure 1 甲机通过串口控制乙机LED闪烁的原理图(3)程序设计提示a.模式1下波特率由定时器控制,波特率计算公式参考:b.可以不用使用中断方式,使用查询方式实现发送与接收,通过查询TI和RI标志位完成。
2.单片机与PC串口通讯及函数指针的使用(1)要求:a.编写用单片机求取整数平方的函数。
b.单片机把计算结果向PC机发送字符串。
c.PC机接收计算结果并显示出来。
d.可以调用Keil C51 stdio.h 中的printf来实现字符串的发送。
基于51单片机的多机通信系统设计
基于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.通信协议:需要定义主机和从机之间的通信协议,包括数据的格式、传输方式等,以便实现正确的数据交互。
双机通讯实验报告
单片机实验报告(自动化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所示。
单片机的双机串口通信原理
单片机的双机串口通信原理单片机的双机串口通信原理是通过串口连接两个单片机,使它们能够进行数据的传输和通信。
串口是一种常见的通信方式,它使用两条信号线进行数据的传输:一条是串行数据线(TXD),用于发送数据;另一条是串行接收线(RXD),用于接收数据。
通过串口通信,两个单片机可以进行双向的数据传输,实现信息的互相交流和共享。
在双机串口通信中,一台单片机充当主机(Master),另一台单片机充当从机(Slave)。
主机负责发起通信请求并发送数据,从机负责接收并响应主机发送的数据。
通信过程中,主机和从机需要遵守相同的协议和通信规则,以确保数据的正确和可靠传输。
双机串口通信的主要步骤如下:1. 端口初始化:在双机串口通信开始之前,两台单片机的串口端口需要初始化。
主机和从机需要设置相同的波特率(Baud Rate),数据位数(Data Bits)、停止位数(Stop Bits)和校验方式(Parity Bit),确保两台单片机之间的通信能够正常进行。
2. 数据发送:主机将要发送的数据写入到串口发送寄存器中,然后通过串口发送线路将数据位一位一位地发送给从机。
主机发送完所有数据位后,等待从机的响应。
3. 数据接收:从机通过串口接收线路接收主机发送的数据位,然后将接收到的数据位存放在串口接收寄存器中,等待从机的处理。
4. 数据处理:从机接收到主机发送的数据后,根据通信协议和通信规则进行数据处理。
从机可能需要对数据进行校验、解析和执行相应的操作,然后将处理结果写入到串口发送寄存器中,以供主机进行相应的处理。
5. 响应发送:从机将处理结果写入到串口发送寄存器中,然后通过串口发送线路将数据位一位一位地发送给主机。
从机发送完所有数据位后,等待主机的进一步操作。
6. 数据接收:主机通过串口接收线路接收从机发送的数据位,然后将接收到的数据位存放在串口接收寄存器中,等待主机的处理。
7. 数据处理:主机接收到从机发送的数据后,根据通信协议和通信规则进行数据处理。
单片机双机串行实验报告
单片机双机串行实验报告实验目的:通过单片机实现双机串行通信功能,掌握串行通信的原理、方法和程序设计技巧。
实验原理:双机串行通信是指通过串行口将两台单片机连接起来,实现数据的传输和互动。
常用的串行通信方式有同步串行通信和异步串行通信。
异步串行通信是指通过发送和接收数据时的起始位、停止位和校验位进行数据的传输。
而同步串行通信是指通过外部时钟信号进行数据的同步传输。
实验器材:1.两台单片机开发板(MCU7516)2.两个串口线3.两台计算机实验步骤:1.将两台单片机开发板连接起来,通过串口线连接它们的串行口。
2.在两台计算机上分别打开串口调试助手软件,将波特率设置为相同的数值(例如9600)。
3.在编程软件中,编写两个程序分别用于发送数据和接收数据。
4.在发送数据的程序中,首先要设置串口的波特率、数据位、停止位和校验位,并将数据存储在缓冲区中。
然后利用串口发送数据的指令将数据发送出去。
5.在接收数据的程序中,同样要设置串口的参数。
然后使用串口接收数据的指令将接收到的数据存储在缓冲区中,并将其打印出来。
实验结果与分析:经过实验,我们成功地实现了单片机之间的双机串行通信。
发送数据的单片机将数据发送出去后,接收数据的单片机能够正确地接收到数据,并将其打印出来。
实验中需要注意的是,串口的波特率、数据位、停止位和校验位必须设置为相同的数值。
否则,发送数据的单片机和接收数据的单片机无法正常进行通信。
同时,在实验之前,需要了解单片机开发板支持的串口通信相关的指令和函数。
实验总结:通过本次实验,我们深入了解了单片机之间的双机串行通信原理和方法。
掌握了串口的设置和使用方法,以及相关的指令和函数。
在实验中,我们学会了如何通过串行口实现数据的传输和互动,为今后的单片机应用和开发打下了基础。
同时,我们还发现,双机串行通信在实际应用中有着广泛的用途。
例如,可以通过串行通信实现两台计算机之间的数据传输,或者实现单片机与计算机之间的数据收发。
基于STC89C52RC单片机间的串口通信程序设计
基于STC89C52RC 单片机间的串口通信程序设计叶林勇(三峡电力职业学院,湖北宜昌443000)1概述在工控系统和工程应用中,当需要实现主从节点间的控制时,常需要使用单片机的串口通信功能。
因而主从式分布式系统成为现代工业广泛应用的模式。
它们大多由MCS 原51单片机组成。
由于单片机具有功能强、体积小、价格低廉、开发应用方便,能实现全双工串行通讯的特点,在智能仪表、数据采集、工业控制等方面都有广泛的应用。
本文中两块实验板的R1与L2、R2与L1、两机的地线分别相连,如图1所示。
图1STC89C512MCS-51串口介绍2.1串行接口数据缓冲器(SBUF )SBUF 是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。
通过指令来区别读写的是接收缓冲器还是发送缓冲器。
串行口对外也有两条独立的收发信号线RxD(P3.0)、TxD (P3.1),可以同时发送、接收数据,实现全双工。
2.2串行口控制寄存器(PCON )SCON 寄存器用来控制串行口的工作方式和状态,它可以按位寻址。
在复位时所有位被清零,字节地址为98H 。
各位含义如下:SM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。
串行接口工作方式特点见下表SM2:多机通信控制位。
REN :接收允许控制位。
软件置1允许接收;软件置0禁止接收。
TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。
RB8:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。
TI :发送中断标志。
用于指示一帧数据发送是否发送完毕。
在方式0时,当串行发送第8位数据结束时,或在其他方式,串行发送停止位的开始时,由内部硬件使TI 置1,向CPU 发中断请求。
在中断服务程序中,必须用软件将其清0,取消此中断申请。
单片机之间串口通信
专业课程设计Ⅰ题目单片机间串口通信设计院系:自动化学院专业班级:智能0903班小组成员:指导教师:日期:2012.03.26-2012.04.061.课程设计描述近年来,单片机以其极高的性价比越来越多的在智能式仪表和工业过程控制中得到广泛的应用。
但由于其本身资源有限,在一些复杂过程或功能较多的控制中就难以满足要求,需要将单片机的数据送到上一级的微机进行处理。
因此实现上位机(PC机)与下位机(单片机)之间的数据可靠通信是必须解决的主要问题之一,在数据传输量不大的情况下,按照RS232标准进行串行通信越来越多的服务于各种应用系统中。
实验要求利用简单的51单片机实现双机通信使得两片51都能够发送并接收信息。
2. 课程设计具体要求2.1 了解单片机及其应用,明确课程学习内容及目标2.2学会仿真图的设计2.3选一个带有232接口的单片机,和电脑进行通信,或者两个都带有232接口的单片机,相互通信,一个做人机界面和通信程序.另外一个做采集程序和通信程序,通过人机界面获取命令,然后通过通信程序发送到另外一个单片机,另外一个单片机接收到命令后做相应的采集处理。
3.主要元器件两片C52,两个11.0592晶振,烙铁,学生电源,104瓷片电容8个,22pf电容4个,4个LED灯,四脚开关两个,max232两个。
4.基本原理阐述串行通信是指数据按位顺序传送的通信。
串行数据传送的特点是:通信线路简单,最多只需一对传输线即可实现通信,成本低但速度慢,其通信线路既能传送数据信息,又能传送控制信息。
它对信息的传送格式有固定要求,具体分为异步和同步两种信息格式.与此相应有异步通信和同步通信两种方式;在串行通信中,对信息的逻辑定义与TTL 不兼容,需要进行逻辑电平转换:计算机与外界的数据传送大多是串行的,其传送的距离可以从几米到几千公里。
单片机中使用的串行通信通常都是异步方式的。
5.实验方案5.1:硬件设计5.2 软件程序甲机程序://说明:甲机向乙机发送字符,本身也完成相应动作#include<reg52.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 code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //数码管代码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=0xff;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<=10) P0=DSY_CODE[SBUF];else P0=0xff;}}乙机程序:// 说明:乙机接收到甲机发送的信号后,根据相应信号控制LED完成不同闪烁动作。
单片机双机通信原理
单片机双机通信原理双机通信是指通过单片机(Microcontroller,MCU)系统中的串行通信接口,在两个单片机之间进行数据传输和交换的过程。
其中一个单片机被定义为主机(Master),另一个被定义为从机(Slave)。
双机通信可以实现不同单片机之间的数据共享和协作,使得系统具备更高的可靠性、灵活性和性能。
在双机通信的原理中,主机负责发起通信和控制通信过程,从机负责接收主机发送的指令并执行相应的操作。
通信的过程一般包括以下几个步骤:1. 主机初始化:主机在通信开始前需要进行初始化设置,包括选择合适的通信波特率(Baud Rate),设置通信参数和接收/发送缓冲区等。
2. 建立连接:主机通过发送一个特定的请求信号来与从机建立通信连接。
请求信号可以是一个特定的命令码或者特定的数据帧。
3. 从机响应:从机接收到主机发送的请求信号后,通过发送一个响应信号来回复主机。
响应信号可以是一个应答码或者相应的数据帧。
4. 数据传输:一旦建立了连接并完成了响应过程,主机和从机可以开始进行数据传输。
主机通过发送数据帧给从机,从机则接收并处理这些数据。
5. 错误处理:在数据传输过程中,可能会发生数据错误或者通信错误。
主机和从机通过相应的机制(如校验和)来检测和处理这些错误,以保证通信的可靠性和准确性。
6. 断开连接:当数据传输完成后,主机和从机可以通过发送断开连接的信号来结束通信过程。
断开连接的信号可以是特定的命令码或者特定的数据帧。
总的来说,双机通信的原理是通过主机和从机之间的串行通信接口进行数据传输和交换。
通过建立连接、数据传输和断开连接等步骤,实现两个单片机之间的数据共享和协作。
这种通信方式广泛应用于各种嵌入式系统中,如智能家居系统、工业自动化系统等。
推荐-基于MCS51的两片单片机之间的串行通信接口设计
昆明学院20XX 届毕业(设计)(设计)题目基于MCS51的两片单片机之间的串行通信接口设计子课题题目姓名学号所属院系自动控制与机械工程学院专业年级 10级通信技术专业指导教师任杰20XX年 5月随着电子技术的发展,单片机的应用也越来越多及越来越重要,而串行通信理论和单片机的开发相结合使电路板的线路少,成本低了,而且在远距离传输时,避免了很多条的线路特性不同而被广泛地使用。
而RS232是一种比较成熟的串口,所以本次设计使用RS232串口,用串口通信时发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。
本次设计就是要利用单片机来完成一个系统,实现两单片机之间的串行通信。
并且使用DS18B20温度传感器,由一台单片机测量温度后传到另外一台单片机上显示。
串口通讯是单片机的一个重要应用,它既可以实现单片机对计算机的数据传输,同时计算机也可以对单片机进行控制。
在本次设计中,我需要克服的问题有怎样把两串口与单片机连接和设置传输的格式,和怎样采集温度,怎样显示等问题,总之,在本次设计中我需要对单片机有一定的基础,同时数电和模电也需要好好温习下。
对于画设计的系统电路图有很大的帮助。
而且我希望通过本次设计,可以很好的学习单片机,同时喜欢上单片机的设计。
其中单片机中,MCS51单片机上的通用异步接收/发送器UART,通过RXD 和TXD可与部电路进行串行异步通信,数据的发送由TXD端送出,数据的接收由RXD 端输入。
关键词:串行通信RS-232串口波特率MCU serial munication is a important application. In munication field, there are two types of data munication mode: parallel munication and serial munication. With the development of puter network and hierarchical distributed microputer application system, the function of the munication is more and more important. munication refers to puter information transmission to the outside world, both transmission between the puter and the puter,Also includes the puter and external device, such as terminals, printers, and transmission between devices such as disk. Serial munication refers to using a data line, to transmit data a bit a ground in turn, each data holds a fixed length of time. Its just a few lines can exchange information between the systems, especially used in puter and puter, puter and remote munication between the peripherals. When using a serial port munication sending and receiving to each and every one of the characters are in fact a a delivery, each one is or is zero.This design is to use single chip microputer to plete a system, realize the serial munication between the two MCU. And USES DS18B20 temperature sensor, temperature is measured by a single-chip puter and send to other displayed on a single chip microputer. For single chip microputer serial port munication is of great significance, not only can realize the MCU data transmission to the puter side, but also can realize the puter control of the microcontroller. Due to its less cable, wiring simple, so in the long distance transmission, has been widely used, MCS - 51 series microcontroller with a universal asynchronous receiver/transmitter UART, RXD by pin [P3. O] and TXD [P3.1] with external sound circuit B full duplex serial asynchronous munication, send data sent by the TXD end, when receiving data from the RXD input.Keywords: serial munications RS - 232 serial port baud rate目录8第一章绪论为了提高系统管理的先进性和安全性,计算机工业自动控制和检测系统越来越多地采用集总分散系统。
单片机串行通信
1.单片机串行通信的概述在通信领域内,有两种数据通信方式:并行通信和串行通信。
随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。
通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。
串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。
其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。
使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。
在串行通信中,把通信接口只能发送或接收的单向传送办法叫单工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送。
在双工传送方式中又分为半双工传送和全双工传送。
半双工传送是两机之间不能同时进行发送和接收,任一时该,只能发或者只能收信息。
51系列单片机有一个可编程的全双工串行通信接口,它可作异步接收发送器用,也可做同步移位寄存器用,其帧格式可有8位、10位或11位,并能设置各种波特率,给使用带来很大的灵活性。
51系列单片机有两个物理上独立的接收、发送缓冲器SBUF,它们只占用同一地址99H,可同时发送、接送数据。
发送缓冲器只能写入,不能读出,接收缓冲器只能读出、不能写入。
串行发送接收的速率与波特率发生器产生的移位脉冲同频。
51系列单片机用定时器T1或直接用CPU时钟作为通信波特率发生器的输入,在串行接口的不同工作方式中,波特率发生器从两个输入信号中选择一个分频,产生移位脉冲来同步串口的接收和发送,移位脉冲的速率即是波特率。
接收器是双缓冲结构,在前一个字节被从接收缓冲器SBUF读出之前,第二字节即开始被接收。
但是,若在第二个字节接收完毕后,前一个字节还未被CPU 读取的话,第二个字就会覆盖第一个字节,造成第一个字节的丢失。
接收器是双缓冲结构,串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写的。
双机通信实验报告
一、实验目的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,检查接收到的数据是否正确。
单片机双机之间的串行通信设计
单片机双机之间的串行通信设计1.引言单片机双机之间的串行通信是指两个或多个单片机之间通过串口进行数据传输和通信的过程。
串行通信是一种逐位传输数据的方式,与并行通信相比,它占用的硬件资源更少,且传输距离较远。
本文将介绍单片机双机之间串行通信的设计过程,包括硬件设计和软件编程。
2.硬件设计串行通信需要使用到两个主要的硬件部件:串口芯片和通信线路。
串口芯片负责将要发送或接收的数据转换成串行数据流,并通过通信线路进行传输。
通信线路通常包括两根传输数据的线路(TX和RX)、地线和时钟线。
2.1串口芯片的选择常用的串口芯片有MAX232、MAX485、CH340等。
选择合适的芯片需要考虑通信距离、通信速率、系统的功耗等因素。
对于较短的通信距离和较低的通信速率,可以选择MAX232芯片;而对于长距离通信和较高的通信速率,可以选择MAX485芯片。
2.2通信线路设计通信线路的设计需要考虑信号的传输质量和抗干扰能力。
通常使用双绞线或者屏蔽线路来减小信号的串扰和干扰。
对于短距离通信,双绞线即可满足需求;而对于长距离通信,需要采用屏蔽线路来减小串扰和干扰。
3.软件设计串行通信的软件设计主要包括通信协议的制定和数据包的格式规定。
3.1通信协议的选择通信协议是指数据传输的一套规则和约定,它规定了数据的格式、传输顺序、误码校验等内容。
常用的通信协议有UART、RS232、SPI、I2C等。
UART是最常用的通信协议,它一般使用异步通信方式,并具有较高的通信速率和稳定性。
3.2数据包的格式规定数据包是一组有意义的数据的集合,它包括起始位、数据位、停止位和校验位等。
起始位用于标识一个数据包的开始,通常为逻辑低电平;数据位用于存储要传输的数据;停止位用于标识数据包的结束,通常为逻辑高电平;校验位用于检测数据传输过程中是否发生错误。
校验位可以是奇校验、偶校验、无校验等。
4.实验步骤4.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)配置串口通信的波特率、数据位、校验位和停止位,并打开串口接收中断。
双机串行通信的设计与实现
双机串行通信的设计与实现一、设计要求1.单机自发自收串行通信。
接收键入字符,从8251A的发送端发送,与同一个8251A的接收端接收,然后在屏幕上显示出来。
2.双机串行通信,在一台PC机键入字符,从8251A的发送端发送给另一台PC机,另一台PC机的8251A的接收端接收,然后在屏幕上显示出来。
二、所用设备IBM-PC机两台(串行通信接口8251A两片,串行发送器MC1488和串行接收器MC1489各两片,定时器/计数器8253,终端控制器8259等),串口线一根串行直连电缆用于两台台电脑通过串行口直接相连,电缆两端的插头都是9 针的母插头:三、硬件方案1.设计思想计算机传输数据有并行和串行两种模式。
在并行数据传输方式中,使用8条或更多的导线来传送数据,虽然并行传送方式的速度很快,但由于信号的衰减或失真等原因,并行传输的距离不能太长,在串行通信方式中,通信接口每次由CPU得到8位的数据,然后串行的通过一条线路,每次发送一位将该数据放送出去。
串行通信采用两种方式:同步方式和异步方式。
同步传输数据时,一次传送一个字节,而异步传输数据是一次传送一个数据块。
串口是计算机上一种非常通用设备串行通信的协议。
大多数计算机包含两个基于RS232的串口。
串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:(1)地线,(2)发送,(3)接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但是不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通行的端口,这些参数必须匹配:RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。
可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。
单片机双机通信与PCB设计
单片机双机通信与PCB设计单片机双机通信是指通过两个或多个单片机之间的通信实现数据传输和交互。
在嵌入式系统中,常常需要多个单片机之间进行通信,以实现系统的协同工作。
而PCB设计则是在电路板上布局和连接各种电子元器件的过程,必要时需要考虑通信线路和接口的设计。
常见的串行通信协议有UART、SPI、I2C等,它们都可以在两个单片机之间进行数据传输。
其中,UART协议是最常用的一种,它可以采用异步通信方式,通过一个引脚进行数据传输。
UART通信需要定义好波特率、数据位、停止位等参数,以确保数据的正常传输。
SPI(Serial Peripheral Interface)是一种同步的串行通信协议,可以支持多主机进行数据传输。
SPI通信需要定义好时钟极性、时钟相位等参数,并且需要至少三个引脚进行数据传输。
I2C(Inter-Integrated Circuit)是一种串行通信协议,它可以通过两根引脚进行数据传输。
I2C通信需要定义好从机地址、时钟频率等参数,以确保数据的正常传输。
在进行单片机双机通信时,需要考虑的因素有很多。
首先是通信协议的选择,根据实际需求选择合适的通信协议。
其次是硬件接口的设计,需要设计好数据线、时钟线、复位线等硬件接口。
还需要考虑数据的传输方向和速率等参数,以确保通信的稳定性和可靠性。
在进行单片机双机通信的PCB设计时,需要首先确定好电路板上各个元器件的布局。
要考虑到各个元器件之间的连接关系和通信线路的走向。
同时还要注意信号线和电源线的分离,以减少干扰。
另外,还要注意防止信号的串扰和干扰,采取适当的布线方式和屏蔽措施。
在进行单片机双机通信的PCB设计时,还需要注意电路板的大小和形状。
尽量使电路板尺寸小巧,以节约空间。
同时还要注意电路板的层次和层数,以满足通信线路的需求。
在单片机双机通信的PCB设计中,还需要进行电磁兼容性测试和可靠性测试。
电磁兼容性测试是为了确保电路板的电磁辐射和抗干扰能力达到规定的标准,不会对周围的设备产生干扰。
单片机多机串行通信设计方法分析
二 、 多机 通 信 过 程
在 多 机 通 信 时 串 口必 须 工 作 在 方 式 2 或方式3 , 根 据 通 信 要 求 设 置 单 片机 通 信 控 制 寄存 器 S C O N中 的每 一 位 。 多 机 通信 的过 程 如 下 。 第 一 ,所 有 从 机 处 于 地址 帧 接 收 状 态 ( S M2 = I ) 。 第 二 ,主 机 先 发送 一个 地 址 帧 ,其 中前 8 位 数 据 表 示要 寻址 的从 机 地 址 ,第 9 位 为 1( T B 8 = I )表 示该 帧 为 地址 帧 。 第 三 , 所 有 从 机 接 收 到 地 址 帧 后 ,把 接 收到 的地 址 与
E X P I O B 盯I O _l 探索
单片机多机串行通信设计方法分析
文/ 孙 慧 汤 宇
摘
要 :本 文从 多机 通信 协 议 入 手 ,重 点 研 究 了如 何 利 用查 询 法 和 中 断法 实现 主从 式通 信 ,并 通过 P r o t e u s 仿 真 软 件 对
两种 通 信 方 法进 行 了仿 真 验证 。查 询 法 通 信 易 于 实现 ,但 占用单 片机 内部 资 源较 多。 中断 法通 信 更 稳 定 可 靠 ,可 以大 大提 高 单 片机 的 工作 效率 。 关 键 词 :单 片机 多机 通 信 查询 法 中断 法 P r o t e u s 仿 真
断 ,进 入 相 应 的 中 断 服 务 程 序 ,把 接 收 到 的 地 址 和 本 机 地
址 进 行 比较 。 如 果 相符 合 就 令 其 S M2 =O,并 向主 机发 回本 机 地 址 以 作 应 答 ,主 机 得 到 应 答 信 号 并 校 验 成 功 后 ,就 与 该 从 机 联 通 实 现 双 机 通 信 ,准 备 接 收 主 机 发 来 的 命 令 或 数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
专业方向课程设计报告
题目:单片机双机之间的串行通信设计
单片机双机之间的串行通信设计
一.设计要求:
两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。
二、方案论证:
方案一:以两片51单片机作为通信部件,以4*4矩阵键盘作为数据输入接口,通过16个不同键值输入不同的信息,按照51单片机的方式3进行串口通信,从机采用中断方式接收信息并按照通信协议改变波特率或者用I/O口输出、CD4511译码、数码管显示相关数据,整个系统的软件部分采用C语言编写。
方案二:整个系统的硬件设计与方案一样,但是通信方式采用方式一进行通信,主从机之间的访问采用查询方式,数据输出直接由单片机的译码程序输出译码数据,同时软件编写采用汇编语言。
两种方式从设计上来说各有特色,而且两种方式都应该是可行的。
方案一中按照方式三通信可以输出九位数据而方式一只能输出八位数据,但就本题的要求来说方式一就可以了。
主从机之间的交流采用中断方式是一种高效且保护单片机的选择,但是相比之下本人对查询方式的理解更好一些。
数
码管的显示若采用CD4511译码则直接输出数据就可以了,但是这样会增加硬件陈本,而且单片机的资源大部分都还闲置着,所以直接编写一段译码程序是比较好的做法。
另外在软件编写上,采用C语言在后续设计中对硬件的考虑稍少一些,换言之采用汇编可以使自己对整个通信过程及单片机的部分结构有更清晰地认识所以综合考虑采用方案二。
三、理论设计:
采用AltiumDesigner绘制的原理图(整图)
本系统主要包括五个基本模块:单片机最小系统(包括晶振电路、电源、复位电路及相关设置电路)、4*4矩阵键盘、功能控制电路、数据显示电路、波特率更改指示电路。
本设计的基本思路是通过控制口选择将要实现的功能,然后矩阵键盘输入数据,单片机对数据进行处理(加校验码、
设置功能标志位),然后与从机握手,一切就绪之后后就开始发送数据,然后从机对接收数据校验,回发校验结果,主机根据校验结果进行下一步动作,或者重发,或者进入下一数据的发送过程,然后按照此过程不段循环,直到结束。
单片机最小系统:接上电源和地,
晶振电路提供脉冲,加上复位电路,将
EA接入高电电平选择片内程序存储器。
这是一个单片机能够工作的最低设置。
4*4矩阵键盘:将矩阵键盘接入
p1口通过按键扫描程序读写P1口从而
判断有无安键按下,通过查键值程序
确定其键值从而得到输入数据。
这是
整个系统的输入接口。
功能控制电路:控制键(图中为
K3)被按下时p0.0为低电平,否则为
高电平,这样就可以根据读入的p0.0
的电平差别控制通信系统的功能。
高
电平时让从机显示接收到的数据,低电平从机更改波特率。
数据显示模块:译码程序将获得的
数据译成可直接显示的段码输到p2
口,用数码管显示。
为防止单片机的带
负载能力不足,本设计中加了上拉电阻
使数码管显示更清晰。
波特率更改指示电路:在从机更改波特率之后同时给P1口写数是相应指示灯亮,指示此时两机之间通信的波特率为多少。
开始
开始
初始化,设置初始波特率及相应寄存器 发送呼叫信号0EH,并等待从机回答
调用发送程序准备发送数据 初始化,设置初始波特率及相应寄存器
键按下?
01H?
N Y
等待从机回答
对键值加校验位,发送
0FH?
P1.0==1?
Y
N
N N
Y
显示接收数据
回发0FH
回发F0H
回发
02H
回发01H
等待主机发送数据并校验
更改波特率,及相关处理
等待主机握手
等待从机回答
对键值加校验位,加标志位,等待发送
0FH? Y
N
Y
N
Acc.5==1?
无错?
收OEH ?
返回
N
Y
N
Y
四、电路仿真及仿真结果分析:
Y
返回
控制键未被按下
控制键未被按下时,从机显示
接收到到的数据
指示灯未亮表明此时从机未设置波特率,以初始波特率工作
指示灯亮表明通信系统此时以指定波特率工作
控制键被按下时,从机不显示数据
两机之间数字
信号的传输
用示波器观察两机之间的信息交流
下图是系统软件仿真的结果,以下现象表明系统能正常工作并实现预设结果。
五、作品功能和使用说明: 接上电源系统开始工作,功能件控制从机功能,键盘输入数据,主机发送数据,从机接收数据。
当控制键未
被按下时,从机显示接收到的数据;控制键被按下时从机不再显示数据,只更改波特率,同时点亮相应的指示灯。
指示灯会指示当前工作的波特率,灯不亮时单片机以默认波特率工作。
系统断电时结束通信。
控制键被按下
波特率指示灯
电源接口及开关
六、心得体会:
经过这几天的努力终于将设计完成了。
整个过程虽然遇到很多问题,但是确实感觉又学到了了不少东西。
整个系统的设计很快就决定下来了,但是在软件编写完之后进行软件仿真时,一直不能不能成功。
然后一步步的查错,从功能流程图开始,一步步检查,理清系统的时序逻辑关系。
确保逻辑功能没问题后,对软件进行调试,逐步调试、设置相关寄存器、查看相应的io 口,然后发现这里也没什么问题。
于是直接在程序中设置标志位,观察程序的运行情况。
后来发现问题主要出现在两个地方:一是软件不能自动返回,重复执行,于是在程序中增加了循环语句和返回语句;二是没有正确保存数据和取数据,主要体现在查键值后没有保护数据及进行校验后没有进行重取原数据,这是两个非常易错的问题。
另外功能上单片机之间的“握手”和等待通讯
从机只显示数据
从机更改波特率,不显示数据
过程也是非常重要的。
另外在硬件制作时也遇到了一些问题,主要是在制作PCB板时由于腐蚀过度导致出现了很多断路,以至调试时得检查电路,同时对整个系统的美观造成很大影响。
不过,这次设计确实让我对通信过程有更深的理解。
七、参考文献
[1]李建忠.单片机原理及应用(第二版.西安电子科技大学出版社)
[2]何小艇.电子系统设计(第四版.浙江大学出版社)
系统程序:
/*************************************************************************
* 约定:主机发送呼叫信号"0EH",咨询从机是否可以接受数据*
* 从机发送"01H"表示可以接受,否则发送"02H"表示暂时不能接受数据*
* 主机只有收到了应答信号"01H"才向从机发送数据,否则继续呼叫*
* 主机收到"0FH"表示发送正确,收到"F0H"表示发送错误*
* 设置:串口工作于方式1 ,定时器做波特率发生器工作于方式2,SMOD=1, *
* 波特率为1200时计数初值为D0, 2400--E8H, 4800-F4H, 9600-FAH *
* 两片单片机开始波特率设为4800 *
* 通过按键进行功能选择,按下P0.0=0设置波特率未按P0.0=1数据显示* *************************************************************************/
主机程序:
/*****************发送程序********************/
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV SP,#60H
MOV TMOD, #20H ;置定时器/计数器1工作于方式2定时
MOV TL1, #0F4H ;置定时器/计数器1初值,初始波特率为4800
MOV TH1, #0F4H ;置重装值
MOV PCON,#80H ;SMOD=1
MOV SCON,#50H ;串行口工作于方式1
SETB TR1
/****************首先进行查键子程序***************/ BEGAIN: ACALL KEY
MOV R1,A
ACALL HUJIAO
AJMP BEGAIN
/************按键扫描****************/
KEY: ACALL KS1 ;调用判断有无键按下子程序JNZ LK1 ;有键按下(A)=0,
AJMP KEY
LK1: ACALL DELAY
ACALL KS1
JNZ CKEY
AJMP KEY
CKEY: MOV R2,#7FH
MOV R4,#00H
CKEY1: MOV P1,R2
JB P1.0,LONE
MOV A,#00H
AJMP LPK ;转到键值计算子程序LONE: JB P1.1,LTWO
MOV A,#04H
AJMP LPK
LTWO: JB P1.2,LTHR
MOV A,#08H
AJMP LPK
LTHR: JB P1.3,NEXT0
MOV A,#0CH
LPK: ADD A,R4
PUSH ACC
LK3: ACALL KS1
JNZ LK3
ACALL DELAY
POP ACC。