单片机接口设计 上位机
写上位机的方法

写上位机的方法
上位机是指可以直接发出操控命令的计算机,一般是PC/host computer/master computer/upper computer,屏幕上显示各种信号变化(液压,水位,温度等)。
下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机之类的。
上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。
下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机。
上下位机都需要编程,都有专门的开发系统。
编写上位机程序通常涉及以下步骤:
1. 确定需求:明确上位机程序需要实现的功能和与下位机的通信协议。
2. 选择开发环境:选择适合的编程语言和开发环境,如Visual Studio、Qt、Python 等。
3. 设计用户界面:使用选定的开发环境创建上位机程序的用户界面,包括按钮、文本框、图表等。
4. 建立通信连接:使用适当的通信协议和接口与下位机进行连接,如串口、以太网、USB 等。
5. 数据处理和显示:接收下位机发送的数据,并进行处理和显示,例如将温度数据显示在图表上。
6. 错误处理:编写错误处理代码,以应对通信错误或数据异常情况。
7. 测试和调试:进行全面的测试,确保上位机程序正常工作,与下位机的通信稳定。
8. 发布和维护:完成开发后,将程序发布给用户,并根据需要进行维护和更新。
单片机和上位机协议

单片机和上位机协议一、引言随着科技的快速发展,单片机在各个领域得到了广泛的应用。
而单片机与上位机之间的通信协议也成为了重要的研究方向。
本文将探讨单片机与上位机之间的通信协议,包括协议的基本原理、常见的协议类型以及它们的应用场景等。
二、单片机与上位机之间的通信协议基本原理单片机与上位机之间的通信协议是为了实现两者之间的数据交换和通信而设计的。
协议的基本原理是通过一定的规则和约定,实现数据的传输和解析。
常见的单片机与上位机通信协议包括串口通信、USB通信、以太网通信等。
其中,串口通信是最常见和简单的通信方式。
它通过串口线将单片机与上位机连接起来,通过发送和接收数据来实现通信。
串口通信具有成本低、易于实现等优点,广泛应用于各个领域。
三、常见的单片机与上位机通信协议类型1. 串口通信协议串口通信协议是最常见和简单的通信方式。
它使用串口线将单片机与上位机连接起来,通过发送和接收数据来实现通信。
常见的串口通信协议包括RS232、RS485等。
RS232是一种标准的串行通信接口,广泛应用于计算机、工业自动化等领域;RS485是一种多点通信协议,支持多个设备同时通信,适用于工业控制系统等应用场景。
2. USB通信协议USB通信协议是一种高速、可靠的通信方式。
它通过USB接口将单片机与上位机连接起来,实现数据的传输和通信。
USB通信协议具有带宽大、速度快等优点,广泛应用于外设设备、嵌入式系统等领域。
常见的USB通信协议包括USB1.1、USB2.0、USB3.0等。
3. 以太网通信协议以太网通信协议是一种广域网通信协议,它通过以太网接口将单片机与上位机连接起来,实现数据的传输和通信。
以太网通信协议具有传输速度快、可靠性高等优点,广泛应用于局域网、互联网等领域。
常见的以太网通信协议包括TCP/IP、UDP等。
四、单片机与上位机通信协议的应用场景单片机与上位机通信协议在各个领域都有着广泛的应用。
在工业控制领域,单片机与上位机通信协议被用于监控系统、物联网等方面。
c上位机毕业设计

篇一:单片机课程设计--上位机
《单片机接口设计》
课程设计报告
班级:电1001-2班 姓名:齐春叶学号: XX2496日期:6.26--7.07
一.课程设计要求
1.按时呼唤下面每一个下位机(如5_E(如3_E) 2.可通过按键决定反复呼唤某个地址
参数设置
图2. 软件组织结构
3 上位机用户操作界面的成立
3.1 编程语言及编程环境
3.1.1 C++语言介绍
C++是脱胎自C语言的一种中级语言。从运算机角度看, 它能够嵌入ASM等低端语言; 从面向对象的程序设计角度看, 它有具有OOP的三个大体特点——抽象, 封装和继承。
C语言是结构化和模块化的语言,它是面向进程的。C++保留了C语言原有的所有优势,增加了面向对象的机制。C++与C完全兼容。C++是对C的扩充,是C的超集。它既可用于结构化程序设计,又可用于面向对象的程序设计,功能壮大。
摘要:随着运算机、电子、通信技术的飞速进展,人们关于车间现场设备的运行治理操纵,可视化操作等综合水平提出了新的要求。
为了知足这新的要求,本毕业设计本着“不在现场,远离现场”的原那么,以C语言作为开发语言,VC为开发环境,针对某充电机产品编写了应用程序,将充电机的现场设备界面通过串口通信技术,与上位机界面有机的结合起来,以实现运算机的远程监控功能。另外,该上位机应用软件还实现了查看充电机存储在U盘中的运行记录文件的功能。
C++性能良好,因为它被编译为机械代码。关于VBScript和Java等语言,代码在运行时由程序说明,而且每次运行程序时都要将代码转换为机械码,如此做效率比较低,不单单是已编译过的C++程序运行得较快,而且微软C++编译器已存在连年。这意味着微软的编译器程序员已经把许多优势集中到编译器上,以致于它能产生超级高效的机械码。因为C++是编译语言,而且超级自然,比VB更接近机械代码,因此由C++编译器产生的代码必然比VB的编译代码效率更高。
基于Zigbee(CC2530)的温湿度上位机监测系统设计——毕业设计

基于ZigBee技术的温湿度远程监测系统设计学生:陈园(指导老师:吴琰)(淮南师范学院电子工程学院)摘要: 针对目前温室大棚农作物大面积种植,迫切需要科学的方法进行智能远程监测的研究现状,设计出一套温湿度远程监测系统。
该系统是有多个采集终端和一个协调控制器组成。
多个终端分别放置不同的大棚内进行实时采集数据,协调控制器的作用就是将多个采集终端通过无线传输过来的的数据进行分析并和PC机连接。
PC机上运行上位机软件实时的监测各大棚的温湿度信息。
多个终端和协调控制器均采用TI公司新一代CC2530芯片;温湿度传感器采用市场上比较流行的DHT11;无线传输采用ZigBee协议;上位机软件采用labVIEW编写,并通过RS-232与协调控制器连接通信。
通过实物测试了ZigBee无线传输的稳定可靠性,丢包率在误差范围内。
温湿度采集有0.5s延时时间,满足实时性要求。
关键词:终端;协调控制器;DHT11;CC2530;ZigBee;上位机Design of Remote Monitoring System for Temperature andHumidity based on ZigBee TechnologyStudent: Chen Yuan(Faculty Adviser:Wu Yan)(college of electronic engineering, Huainan Normal University)Abstract:According to the current situation of the research on the intelligent remote monitoring of greenhouse crops, the research status of intelligent remotemonitoring is urgently needed, and a set of remote monitoring system fortemperature and humidity is designed. The system is composed of a plurality ofacquisition terminals and a coordinated controller. Multiple terminals are placed indifferent greenhouses for real-time collection of data, the role of the coordinationcontroller is to collect more than one collection terminal through wireless datatransmission over the data analysis and PC machine connection. Temperature andhumidity information operation software of PC real-time monitoring of thegreenhouse on PC. A plurality of terminals and a coordinated controller are used ina new generation of CC2530 chip of TI company; temperature and humidity sensorused on the market more popular DHT11; wireless transmission based on ZigBeeprotocol; PC software using LabVIEW, and connected with the communicationthrough the RS-232 and coordination controller. The reliability of ZigBee wirelesstransmission stability test through the physical, the packet loss rate is in the rangeof error. Temperature and humidity acquisition 0.5s time delay, meet the real-timerequirements.Keywords:Terminal; coordination controller; DHT11;CC2530; ZigBee; host computer1. 绪论1.1 设计背景和研究意义现如今我国已经成为世界第一粮食生产大国,据有关统计说明,我国农作物设施栽培面积已经超过210万hm2。
AT89C51单片机与PC机串行通信的接口实现

AT89C51单片机与PC机串行通信的接口实现[摘要] 本文介绍了AT89C51单片机与PC机采用RS232C标准进行串行通信的接口实现。
在接口中采用MAX232作电平转换电路,简单的通信协议,PC 机用VB编程,AT89C51单片机采用中断收发方式。
文章给出了相应通信接口电路与程序。
[关键词] 通信协议RS232C 通信接口电路通信接口程序AT89C51是一种带4K字节可编程可擦除只读存储器(FLASH FPEROM)和128字节的存取数据存储器(RAM)的低电压,高性能CMOS8位微处理器。
采用了ATMEL公司的高密度、不容易丢失存储技术,与MCS-51系列的单片机兼容。
具有集成程度高、系统结构简单、价格低廉等优点被广泛应用到控制领域中。
但是在复杂的数据处理、良好的人机交互等方面不能满足需要,常采用PC 机与AT89C51单片机进行通信,AT89C51单片机(下位机)实时采集数据传送给PC机(上位机)处理,然后接收PC机处理的结果,并进行相应的控制的方式来弥补。
本文介绍单片机与PC机进行串行通信的一种接口实现。
一、接口电路的设计(一)接口逻辑电平的转换在PC机系统大都装有异步通信适配器,为标准的RS-232C接口。
RS-232C 为负逻辑,用+3V~+15V表示逻辑“0”, 用-3V~-15V表示逻辑“1”。
AT89C51单片机采用正逻辑TTL电平0和+5V.所以AT89C51与PC机通信时必须进行电平转换。
转换的方法有多种。
常采用MAXIM公司生产的专用的双向电平转换集成电路MAX232。
MAX232引脚排列与外围电路如图1所示。
图1MAX引脚及外围接口图(二)通信接口电路本文采用可靠性高的MAX232作电平转换芯片,选择其中一对发送器与接收器,PC机的串行口与MAX232的电平端口相连,MAX232的逻辑电平端口与单片机的串行口相连,接口电路如图2所示。
图2PC机与AT89C51通信接口图二、通信接口程序(一)通信协议PC机与AT89C51进行通信必须有一定的通信协议,本文采用简单的通信协议。
基于STM32单片机的多路数据采集系统设计毕业设计

基于STM32单片机的多路数据采集系统设计毕业设计摘要:本篇设计主要以STM32单片机为核心,设计了一个多路数据采集系统。
该系统能够实现多路模拟量和数字量信号的采集和显示,并通过串口与上位机进行通信,实现数据上传和控制。
设计中使用了STM32单片机的AD转换功能实现模拟量信号的采集,使用GPIO口实现数字量信号的采集,通过串口与上位机进行通信。
经过实验验证,该系统能够稳定地采集多路数据,并实现远程数据传输和控制功能,具有较高的可靠性和实用性。
关键词:STM32单片机,数据采集,模拟量信号,数字量信号,上位机通信一、引言随着科技的发展,数据采集系统在工业控制、环境监测、生物医学等领域得到了广泛的应用。
数据采集系统可以将现实世界中的模拟量信号和数字量信号转换为数字信号,并进行处理和存储。
针对这一需求,本文设计了一个基于STM32单片机的多路数据采集系统。
二、设计思路本系统的设计思路是通过STM32单片机实现多路模拟量和数字量信号的采集和显示,并通过串口与上位机进行通信,实现数据上传和控制。
该系统采用了模块化设计方法,将系统分为采集模块、显示模块和通信模块。
1.采集模块采集模块通过STM32单片机的AD转换功能实现模拟量信号的采集,通过GPIO口实现数字量信号的采集。
通过在程序中设置采样频率和采样精度,可以对不同类型的信号进行稳定和准确的采集。
2.显示模块显示模块通过LCD显示屏显示采集到的数据。
通过程序设计,可以实现数据的实时显示和曲线绘制,使得用户可以直观地观察到采集数据的变化。
3.通信模块通信模块通过串口与上位机进行通信。
上位机通过串口发送控制命令给STM32单片机,实现对系统的远程控制。
同时,STM32单片机可以将采集到的数据通过串口发送给上位机,实现数据的远程传输。
三、实验结果与分析通过实验验证,本系统能够稳定地采集多路模拟量和数字量信号,并通过串口与上位机进行通信。
系统能够将采集到的数据实时显示在LCD屏幕上,并通过串口传输给上位机。
上位机和单片机串口编程---API函数编程

上位机和单片机串口编程---API函数编程上位机和单片机串口编程不用MSComm控件,那看起来只能是使用Windows API了,因为MFC貌似没有什么类封装了串口API函数的。
用Windows API 编写串口程序本身是有巨大优点的,因为控制能力会更强,效率也会更高,而且对于那些纯绿色软件追求者来说,没有ActiveX控件比什么都重要――呵呵,我也是这么认为。
API编写串口,过程一般是这样的:1、创建串口句柄,用CreateFile;2、对串口的参数进行设置,其中比较重要的是波特率(BaudRate),数据宽度(BytesBits),奇偶校验(Parity),停止位(StopBits),当然,重要的还有端口号(Port);3、然后对串口进行相应的读写操作,这时候用到ReadFile 和WriteFile函数;4、读写结束后,要关闭串口句柄,用CloseFile;下面依次大致讲讲个步骤的过程:第一步,从字面上去理解,大家也可以发现CreateFile实际上表明Windows是把串口当作一个文件来处理的,所以它也有文件那样的缓冲区、句柄、读写错误等,不同的是,这个文件名字只有固定的几个(一般为四个),而且始终存在(__G),而且在调用CreateFile的时候请注意它的参数。
CreateFile函数原型如下:HANDLE CreateFile(__ lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,__ITY___TES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile );lpFileName是你需要创建的端口号,默认情况下是COM1;dwDesiredAccess是表明你想让你创建的串口以何种方式存在于你的应用程序中,因为串口通常是可读可写的,所以这里必须设置为___READ|___WRITE;dwShareMode是用来设置串口共享属性的,因为串口属于临界资源,当然不能共享,所以这里也必须设置为0;lpSecurityAttributes是设置安全模式,一般采用默认的安全模式就可以了,选择NULL;dwCreationDisposition是设置是否打开新的“文件”(上面说过了,Windows是把串口等端口当作文件来处理的),因为串口属于硬件端口,当然不能随便重复创建,所以这里必须告诉Windows,每次创建的时候必须使用已经存在的串口,所以这里设置OPEN___G;dwFlagsAndAttributes,这个参数可以设置的值比较多,大家若需要深入了解可以查找MSDN,这里因为我们接下去要做的是异步通讯,所以需要设置FILE_FLAG___PED;最后一个参数hTemplateFile是指定模板文件,串口没有模板,选择NULL;所以最后我们设置的CreateFile函数如下:m_hCom=CreateFile(m_sPort,___READ|___WRITE,0,上位机和单片机串口编程NULL,OPEN___G,FILE_FLAG___PED,NULL);在创建完串口后,最后进行句柄测试:if(m_hCom==___HANDLE_VALUE){AfxMessageBox(“打开串口失败!");return;}上面说到了异步,那什么是异步呢?异步是相对同步这个概念而言的。
单片机与PC机串行通信系统硬件及上位机程序设计【精选】

目录1 引言 (1)1.1 单片机与PC机串行通信研究背景 (1)1.2 单片机与PC机串行通信研究目的和意义 (1)2 串口通信基础 (1)2.1 两种常用接口方式 (2)2.1.1 并行接口 (2)2.1.2 串行接口 (2)2.2 RS-232串行接口标准 (2)3 系统总体设计 (3)3.1 系统指标设计 (3)3.1.1 通信协议设定 (3)3.1.2 系统实现描述 (3)3.2 总体方案设计 (3)4 硬件接口电路设计 (4)4.1 主要芯片 (4)4.1.1 AT89C51 (4)4.1.2 单电源转换芯片MAX232 (6)4.1.3 74LS245LED驱动芯片 (7)4.2 LED显示器 (7)4.2.1 LED显示器工作原理 (8)4.2.2 LED显示器接口 (8)4.3 系统设计 (8)5 PC机程序设计 (9)5.1 MSComm控件 (9)5.1.1 MSComm控件处理通信的方式 (9)5.1.2 MSComm控件的主要属性 (10)5.2 应用界面设计流程 (10)5.2.1 创建项目文件 (10)5.2.2 加入串口通信控件 (11)5.2.3 设计窗体界面 (12)5.3 代码实现 (12)6 仿真调试及结果分析 (15)7 结语 (17)参考文献 (18)致谢 (19)2.1 两种常用接口方式2.1.1 并行接口并行接口是指8位数据同时通过并行线进行传送,这样数据的传输率能得到极大的提高。
但在并行传输中,干扰会随线路长度的增加而增加,产生传输错误。
因此,并行传输主要应用在近距离数据传输中,如连接打印机端口。
并行接口主要使用36针接头和25针D形接头,目前以25针D形接头为主[4]。
2.1.2 串行接口串行口也是计算机的一种标准接口,PC机一般至少有两个串行口Com1和Com2。
串行口不同于并行口,它的数据和控制信息是一位接一位在一根传输线上传送的,这样串行口较并行口能够进行远距离传送信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机接口设计上位机班级:电0901-2姓名:学号:20092368指导老师:组员:负责任务:主机硬件部分实习时间:2012.6.13—6.23一、设计要求1.定时呼叫下面每一个下位机(如5秒)应答则表示通,显示:地址_P(如1_P)不应答表示不通,显示:地址_E(如3_E)2.可通过按键决定反复呼叫某个地址3.通过按键控制要某地址的数据并显示(要数据命令为AAH)4.通过按键控制修改某地址的数据并显示(修改定值或指示电梯楼层命令为55H)5.显示下位机报警,如:1:FF二、硬件系统设计1、整体电路图主机仿真图:从机仿真图:2说明:1、单片机的引脚资源分配:18、19脚接12M晶振,9脚接按键复位,20脚接地,40脚接VCC,P1.0、P1.1、 P1.2、P1.3、P1.4、P1.5、P1.6接7个控制开关和按钮, P1.7接发光二极管,P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7接共阴极数码管字形码控制端,P2.0,、P2.1、 P2.2、 P2.3接数码管驱动电路75452,RXD和TXD接口用于通信接口与从机相连。
当从机程序运行时,显示从0号机到3号机反复查询,按住P1.4,2、主机反复查询从机,查询从机由P1.0和P1.1决定;按住P1.5,主机接收从机发送的数据,如1234并显示;按住P1.6,主机发送修改信息给从机,如1111并显示。
从机应答则显示1-PP,无应答则显示0-EE等。
3、整体实物电路图三、软件系统说明1、软件流程图说明:图中只画出了查询过程,还有定时5s后调用M0,并发送非法命令03H。
2、软件清单:1、工作寄存器分配:R0:用于发送数据寻址,初值:30HR1:用于接收数据寻址,初值:40HR2:用于存放通信地址R3:用于存放命令R4:用于存放数据传输个数R5:用于存放定时器中断次数R5、R6、R7:用于DELY延时2、I/O分配P0:数码管显示的字形码输出P1:接控制开关和按钮P2:数码管显示的片选P3:通行口P3.0、P3.13、程序代码主机程序部分ORG 0000HLJMP MAINORG 000BHLJMP T0ORG 0023HLJMP CUKORG 0030HMAIN:MOV TMOD,#21HMOV TH0,#4CHMOV TL0,#00HMOV R5,#100MOV TL1,#0A0HMOV TH1,#0A0HMOV PCON,#00HMOV SCON,#0D8H ;选择串行口方式3SETB TR1 ;开T1定时器,产生波特率SETB EACLR ESSETB ET0MOV 30H,#01HMOV 31H,#01HMOV 32H,#01HMOV 33H,#01HLCALL DSP1 ;开始显示横杠等待SETB TR0MOV R2,#0FFHMOV P1,#0FFH ;将P1口电平抬高,P1作输入MOV A,P1AA:JB ACC.4,BB ;查询P1.4口,判断是否反复呼叫CLR TR0ANL A,#0FHMOV R2,AMOV R3,#03HLCALL M0 ;调用通信子程序SETB TR0BB:MOV P1,#0FFHMOV A,P1JB ACC.5,CC ;查询P1.5,判断是否向下位机要数据CLR TR0ANL A,#0FHMOV R2,AMOV R3,#0AAHLCALL M0 ;调用通信子程序SETB TR0CC:MOV P1,#0FFHMOV A,P1JB ACC.6,AA ;查询P1.5,判断是否向下位机传数据CLR TR0ANL A,#0FHMOV R2,AMOV R3,#55HLCALL M0 ;调用通信子程序SETB TR0AJMP AAORG 0100HT0:MOV TL0,#00H ;T0中断服务程序MOV TH0,#4CHDJNZ R5,TMINC R2MOV R3,#03HMOV R4,#4LCALL M0 ;定时5S 后,调用通信子程序MOV R5,#100TM:RETICUK:JNB TI,C1 ;串行口中断服务程序CLR TIC1:MOV A,SBUFCJNE A,#0FFH,DD ;判断下位机发的数据是否为报警LCALL DSPF ;调用报警显示子程序DD:RETI;通信服务子程序M0:MOV R0,#30H ;初始化,传输数据和接收数据首地址MOV R1,#40HMOV R4,#4 ;存放4个数据MOV SCON,#0D8HM1:CJNE R2,#3,EE ;判断查询的下位机的数是否超过范围SJMP FFEE:JC FFMOV R2,#0FF:MOV A,R2MOV SBUF,A ;发送地址GG:LCALL DELY1 ;延时JNB RI,M2 ;判断是否能正常通信CLR RIMOV A,SBUF ;判断下位机是否收到XRL A,R2JZ M3 ;建立一对一连接M2:LCALL FALL ;连接失败,显示EELCALL DSP1 ;显示横杆等待SETB TB8SJMP BACKM3:LCALL SUCC ;连接成功,显示PPLCALL DSP1 ;显示横杆等待CLR TB8CLR TB8MOV SBUF,R3 ;发送指令JNB RI,$CLR RIMOV A,SBUF ;接收下位机状态字JNB ACC.2,AELCALL DSPFLCALL DELYRETAE:JNB ACC.7,M4 ;下位机收到的命令是否合法SJMP BACKM4:CJNE R3,#55H,M5JNB ACC.0,M2 ;下位机接收收是否就绪MOV R0,#30HMOV R4,#4TRAN:MOV SBUF,@R0 ;主机向下位机发送数据JNB TI,$CLR TILCALL DELYINC R0DJNZ R4,TRANMOV R0,#30HLCALL OUT ;调用OUT发送数据显示LCALL DSP1RETM5:JNB ACC.1,M2 ;下位机发送是否就绪MOV R1,#40HMOV R4,#4RECE:JNB RI,$ ;主机接收数据CLR RIMOV A,SBUFMOV @R1,AINC R1DJNZ R4,RECEMOV R1,#40HLCALL IN ;调用IN 接收数据显示LCALL DSP1BACK:RETDSP1:MOV P2,#00000000B ;显示等待横杆子程序MOV P0,#0BFHLCALL DELYRETDSPF: mov 60h,#0F0hya1: MOV DPTR,#TABL ;显示报警错误子程序MOV A,R2MOVC A,@A+DPTRMOV P0,AMOV P2,#11111110BLCALL DELYMOV P2,#11111101BMOV P0,#0BFHLCALL DELYMOV P2,#11110011BMOV P0,#8EHLCALL DELYdjnz 60h,ya1RETSUCC: mov 60h,#0F0hya2: MOV DPTR,#TABL ;显示连接成功主程序MOV A,R2MOVC A,@A+DPTRMOV P0,AMOV P2,#11111110BLCALL DELYMOV P2,#11111101BMOV P0,#0BFHLCALL DELYMOV P2,#11110011BMOV P0,#8CHLCALL DELYdjnz 60h,ya2RETFALL: mov 60h,#40hya3:MOV DPTR,#TABL ;显示连接失败子程序MOV A,R2MOVC A,@A+DPTRMOV P0,AMOV P2,#11111110BLCALL DELYMOV P2,#11111101BMOV P0,#0BFHLCALL DELYMOV P2,#11110011BMOV P0,#86HLCALL DELYdjnz 60h,ya3RETOUT: mov 60h,#0a0hya4: MOV DPTR,#TABL ;显示发送数据子程序MOV A,@R0MOVC A,@A+DPTRMOV P0,AMOV P2,#11111110BLCALL DELYINC R0MOV A,@R0MOV DPTR,#TABLMOVC A,@A+DPTRMOV P0,AMOV P2,#11111101BLCALL DELYINC R0MOV A,@R0MOV DPTR,#TABLMOVC A,@A+DPTRMOV P0,AMOV P2,#11111011BLCALL DELY2INC R0MOV A,@R0MOV DPTR,#TABLMOVC A,@A+DPTRMOV P0,AMOV P2,#11110111BLCALL DELYmov r0,#30hdjnz 60h,ya4RETIN:mov 60h,#0a0hya5: MOV DPTR,#TABL ;显示接收数据子程序MOV A,@R1MOVC A,@A+DPTRMOV P0,AMOV P2,#11111110BLCALL DELYINC R1MOV A,@R1MOV DPTR,#TABLMOVC A,@A+DPTRMOV P0,AMOV P2,#11111101BLCALL DELYINC R1MOV A,@R1MOV DPTR,#TABLMOVC A,@A+DPTRMOV P0,AMOV P2,#11111011BLCALL DELYINC R1MOV A,@R1MOV DPTR,#TABLMOVC A,@A+DPTRMOV P0,AMOV P2,#11110111BLCALL DELYmov r1,#40hdjnz 60h,ya5BACK1: RETDEL Y:MOV R6,#0aH ;延时子程序DELYDY:MOV R7,#0aaHDJNZ R7,$DJNZ R6,DYRETDELY2:MOV R6,#20H ;延时子程序DELY2DY2:MOV R7,#06aHDJNZ R7,$DJNZ R6,DY2RETDELY1:MOV 50H,#0FFH ;延时子程序DELY1XX:MOV 51H,#0FFHDJNZ 51H,$DJNZ 50H,XXSETB 00HRETTABL:DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H 80H 90HEN从机程序部分:ORG 0000HSJMP MAINORG 0003HAJMP INT0ORG 0030HMAIN:MOV TMOD,#21HMOV SCON,#0D8HMOV TH1,#0CCHMOV TL1,#0CCHMOV 40H,#01HMOV 41H,#02HMOV 42H,#03HMOV 43H,#04HSETB TR1SETB EX0SETB IT0SETB EACLR ESSSIO:JNB RI,$CLR RIMOV A,SBUFMOV P1,AXRL A,#01HJZ AASJMP SSIOAA: MOV A,#01HMOV SBUF,AJNB TI,$CLR TIJNB RI,$CLR RICLR CMOV A,SBUFCJNE A,#55H,CASE1MOV A,#01HMOV SBUF,AJNB TI,$CLR TIJNB RI,$CLR RIMOV R0,#40HMOV R6,#4REC: MOV A,@R0MOV A,SBUFJNB RI,$CLR RIINC R0DJNZ R6,RECSJMP SSIOCASE1:JC CASE2MOV A,#02HMOV SBUF,AJNB TI,$CLR TIMOV R0,#40HMOV R7,#4SENT: MOV A,@R0MOV SBUF,AJNB TI,$CLR TIINC R0DJNZ R7,SENTSJMP SSIOCASE2:MOV A,#80HMOV SBUF,AJNB TI,$CLR TISJMP SSIOINT0:MOV A,#04HMOV SBUF,AJNB TI,$CLR TIRETI四、收获十天的课程设计在忙忙碌碌中结束了,说实话,我在这次课程设计中出的力并不多,但还是收获了很多。