求毕业设计参考:单片机与上位机(PC)通信电路与软件设计

2023-01-29

设计要求:1.单片机与PC之间通过串口进行通信。 2上位机通信界面送字符R,单片机接收字符,自右向左循环点亮8个LED灯,上位机送L字符,单片机接收字符,自左向右循环点亮8个LED灯。3上位机界面具有对话框,向单片机送字符直接通过对话框输入相应字符。
请代做毕业设计的不要在此发言,谢谢!谁能帮我写下位机通信程序,悬赏的分就给你了
1、设计的基本要求:
(1)单片机与PC之间通过串口进行通信。
(2)VB MSCOMM控件与单片机通信实现温度显示。
2、设计主要任务:
(1)利用所学过的单片机知识编写下位机通信程序(C语言或汇编)
(2)编写上位机程序(VB或VC++)。
(3)完成硬件电路的仿真。
有下位机程序才行的。 要用到AT89C51

我帮你写了个程序:

/*

 硬件环境:AT89C51

 P1口接LED8个灯

*/

#include "reg52.h"

#define uchar unsigned char 

#define uint unsigned int 

bit R_MOVING_LIGHT=0,L_MOVING_LIGHT=0;

uchar DATA_1,DATA_2;

/*

 --初始化AT89C52 串行端口--

 T1 方式2 (8位重装载) 波特率9600,启动T1

 T0 方式1 (16位定时器),未初始化,未启动  

 串行口设置为方式1(8 bit UART)

*/

void delay_1ms(uint _1ms)

 uint i;

 while (_1ms--)

 

  i=1000;

  while(i--);

 

void init_serial_port(void)

 SM2=0;

 SM0=0;SM1=1;//串口工作在方式1

 TMOD=0x20;//定时器1工作在方式2  

 TH1=253;

 TL1=253;//波特率9600b/s

 EA=1;//总中断允许

 ES=1;//允许串口中断

 REN=1;

 TR1=1; 

void  serial_port_init()  interrupt 4

 uchar i;

 RI=0; 

 i=SBUF;

 if(i=='R')

 

  R_MOVING_LIGHT=1;

  L_MOVING_LIGHT=0;

  DATA_1=0x80;

 

 if(i=='L')

 

  L_MOVING_LIGHT=1;

  R_MOVING_LIGHT=0;

  DATA_2=0x01;

 

void main()

 init_serial_port();

 P1=0x00;

 while(1)

 

  if(R_MOVING_LIGHT)

  

   P1=DATA_1;

   delay_1ms(100);  //100MS   调节改变流水灯速度

   DATA_1>>=1;

   if(!DATA_1)

    DATA_1=0x80; 

    

  if(L_MOVING_LIGHT)

  

   P1=DATA_2;

   delay_1ms(100);

   DATA_2<<=1;

   if(!DATA_2)

    DATA_2=0x01; 

  

 

  

因为我这边硬件不方便搭,没有看最终效果,有什么问题可以找我! 

下图为单片机P1口与8个LED灯的连接方法,为高电平亮低电平灭。

参考知识1 1系统总体结构原理
粮食在储藏期间,由于受环境、气候和通风条件等因素的变化,粮仓内温度或湿度会发生异常,这极易造成粮食的霉烂、或发生虫害。那么针对粮食储藏的特殊性,我们选择了粮仓内的温度和湿度作为主要监测参数,把粮虫发生情况作为辅助参数。
整个监测系统由上位管理主机(HOST)、USB/CAN转换器和多个智能节点组成。节点的数量由大型仓库里的粮库数量决定,一般在采用标准帧进行CAN通信时,节点不超过110个;采用扩展帧CAN进行CAN通信时,节点数量原则上无限制。整个监测网络采用总线式拓扑结构,其结构原理图如图1所示。
上位管理机采用PC机,主要完成整个监测网络系统的参数设置、粮库的状态查询、数据处理、粮情分析、超限实时报警和报表打印等功能。下位智能节点由单片机、数据采集电路和CAN通控制驱动电路构成。
下位机不仅要实时监测本粮库内各个测试点的温度、湿度和粮虫发生情况,并保存和显示结果,还要负责接收上位管理机的命令,根据上位机的要求上传数据。
USB/CAN转换器负责将上位机通过USB口输出的命令转换成CAN总线数据格式后,再下传到CAN总线;或者将下位机通过CAN总线上传的数据转换成USB数据格式后,再送到PC机。
2 下位机硬件电路结构
下位机以单片机AT89S52为核心,通过扩展显示电路、数据采集电路和CAN通信模块构成一个完整硬件体系,如图2所示。
2.1 数据采集电路
数据采集电路由温度采集电路、湿度采集电路和粮虫检测电路构成。温度检测采用Dallas公司生产的单总线数字温度传感器DS18B20,它不仅能直接输出串行数字信号,而且具有微型化、低功耗、高性能、易于微处理器连接和抗干扰能力强等优点。DS18B20数字温度传感器对于实测的温度提供了9-12位的数据和报警温度寄存器,它的测温范围为-55℃~+125℃,其中在-10℃~+85℃的范围内的测量精度为±0.5℃。由于每个DS18B20有唯一的一个连续64位的产品号,所以允许在一根电缆上连接多个传感器,以构成大型温度测控网络。图2电路中,设计了两条测温单总线,每条单总线用一只场效应管提供电源,每条总线上可并联十几只数字温度传感器DS18B20。
湿度检测采用湿度传感器HIH3610和DS2438组合模块。HIH-3610是美国Honeywell公司生产的相对湿度传感器,该传感器具有精度高、响应快速、高稳定性、低温漂、抗化学腐蚀性能强及互换性好等优点。HIH-3610采用热固聚酯电容式传感头,在芯片内部集成了信号处理功能电路,可以完成将相对湿度值变换成电容值,再将电容传转换成线性的电压输出。因此它输出的模拟湿度信号,不能直接送单片机处理,必须经过A/D转换。DS2438也是Dallas公司的单总线器件,具有A/D功能。HIH3610和DS2438可以组合在一起,构成单总线数字湿度传感器模块。
粮虫检测器,当检测到粮食虫害发生时,粮虫检测器输出负脉冲,送微处理器记数和处理。系统采用一个8输入与非门,可带8台粮虫检测器。
2.2 显示电路
显示电路和微控制器的连接采用I2C总线,由于AT89S52单片机内部没有集成I2C总线模块,故采用软件模拟的方法实现I2C通讯。显示驱动器采用具有I2C总线的器件SAA1064,可动态驱动4位8段LED显示器。它内部具有显存和自动刷新功能,可免去微控制器的频繁刷新任务,腾出大量时间做其他事情。
2.3 CAN通信模块
CAN是现场总线中唯一被批准为国际标准的现场总线。其信号传输介质为双绞线。通信速率最高可达1Mbps/40m,直接传输距离最远可达10Km/5Kbps。CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。当节点严重错误时,具有自动关闭的功能,以切断该节点于总线的联系,使总线上的其它节点及其通信不受影响,具有较强的抗干扰能力。
图2中的CAN控制驱动模块由CAN控制器SJA1000、光耦6N137模块和CAN驱动器82C50构成。SJA1000负责与微控制器进行状态、控制和命令等信息交换,并承担网络通信任务;82C50为CAN控制器和总线接口,提供对总线的差动发送和对CAN控制器的差动接收功能。光耦6N137起隔离作用。
3 系统软件设计
系统软件由上位机主程序和下位监控程序构成,上位机主程序用VB语言开发,采用模块化设计,具体的功能模块如图3所示。利用VB编写的应用软件人机界面友好,便于维护和管理。
下位机的软件由下位机主程序、温度采集程序、湿度采集程序、粮虫检测中断程序和CAN收发中断服务程序等构成。由于篇幅所限这里仅给出了下位机主程序和CAN通信中断服务程序的流程图,分别如图4和图5所示。在下位机主程序里,系统要首先进行单片机的初始化、CAN的初始化、开外部中断、开启计数器和使能CAN接收中断的过程,是系统处于就绪状态,然后调用数据采集程序和数据处理程序,实时采集粮库现场的参数并予以处理,处理后的数据要保存起来供上位机随时查询,同时送显示器显示。
粮虫检测中断程序主要完成粮库发生粮虫后的处理,一方面要判断粮虫计数器是否计满,计满清零并保存数据;一方面设置粮库发生虫害标志,并供上位机查询和显示。
CAN收发中断服务程序负责上下位机的命令和数据传送。当上位机发送命令时,CAN接收一个报文,CAN的中断使能标志置1,产生接收中断,CPU立即响应,进入中断服务程序,然后系统再根据上位机的具体命令,向上位机传送该节点工作状态或采集的数据。
4 结论
由于系统采用了全数字化的温度、湿度传感器,直接输出的是表示温度和湿度的数字信号,不存在由模拟量到数字量转换的中间环节,所以该系统具有稳定可靠、测量精度高、一致性好、无需任何调整、信号线长短不会影响其性能等优点,还有单总线也带来安装方便、线路清晰、节省线材等长处。上下位机通信采用CAN总线通信方式,提高了系统内部的速率和实时性,降低了误码传送的概率。粮虫检测器的设计使该系统除了能实时监测温度和湿度外,也能监测粮食虫害的发生情况。
回答者:200402028 - 试用期 一级 3-28 10:05
提问者对于答案的评价:
xiexiel
您觉得最佳答案好不好? 目前有 2 个人评价
100% (2)
0% (0)
对最佳答案的评论
我想求一份EDA设计要求是:传感器与信号处理系统的设计、调试与实现 该部分要求学生掌握几种传感器的电路形式、作用、信号特点、典型电路的设计及模拟实现,同时解决信号的检测、调整,以及采集信号的存储、处理与显示等。并在实验设备上选择某一种类传感器及相关器件,设计、组成一个小系统。用此系统完成测量及数据处理。只要符合起要求就好,谢谢各位了!
评论者: gzb731 - 试用期 一级
hao
评论者: 7325719 - 试用期 一级
看看这个吧!
评论者: 小宝0121 - 助理 二级
其他回答共 1 条
.单片机温度控制系统 [Admin|service-86qb@163.com][2007年3月17日][8]
在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。 [详情……]
基于单片机的温度控制系统 [Admin|service-86qb@163.com][2007年3月17日][6]
单片机系统的开发应用给现代工业测控领域带来了一次新的技术革命,自动化、智能化均离不开单片机的应用。单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。在工业生产中,电流、电压、温度、压力和流量也都是常用的被控参数。 [详情……]
基于八位单片机的数字温度控制系统 [Admin|service-86qb@163.com][2007年3月16日][3]
本设计以8位单片机和新型数字传感器为核心组成温度测量及控制系统。本系统采用INTEL MCS-51指令系统的ATMEL(爱特梅尔)AT89C51单片机作为控制芯片,完成温度值接收、转换、报警处理;由DALLAS出品的新型的单路串行数字温度传感器DS18B20,完成温度测量、分析、判断阈值、输出功能。整个系统具有集成度高、可*性强、抗干扰性强(串行通信特点)、鲁 棒 性强、可扩展性强(可利用识别序列号组成多点测量)、体积小、功耗低等特点。本系统具有测温、上限报警、下限报警、温度控制及显示功能。基于本系统可扩展如下功能:1.增加键盘使可随时调整温度上下限。2.扩展传感器数量,组成测量网络。实现多点测量。同时对MCS-51单片机系列各芯片进行了优劣势对比、介绍了单线数字温度传感器的基本内部结构及主要性能特点。 [详情……]
参考知识B 还是我来写吧,这么简单的东西。。狂汗!
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

void chuan()

TMOD=0x20; //T1为定时器产生波特率//
SCON=0x50; /*串口定义方式2用定时器1产生波特率9600*/
PCON=0x00; /*不倍增波特率*/
TL1=0xfd;
TH1=0xfd;
EA=1;ES=1;
IP=0x00;
TR1=1; /*定时器工作*/

void kou()
uchar i=0x01;
switch(dat)

case 'R' :delay();这里写你想控制的东西break;

default:break;

void main()

chuan();
while(1)
if(RI==1)
RI=0;
dat=SBUF;
kou();

参考知识C 上位机用串口调试助手就OK,
串口调试助手界面就有对话框,可以向单片机送字符,直接通过对话框输入相应字符

通过串口控制8个LED灯,网上找不到呵,要写才有

如果需要H!我
参考知识D 按你的要求做的,里边有原理图,PCB,实物照片,工作过程视频

推荐:114 PC串口通信( http://ishare.iask.sina.com.cn/f/11202145.html )
相似知识
上位机和下位机指啥? 上位机是指:人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的的计算机,一般是PLC/单片机之类的。上位机发出的命令首先给下位
"基于LabVIEW的物联网通讯系统上位机软件设计"与"基于LabVIEW的PLC上位机软件设计“有何区别 下位机不同呗,硬件不同物联网通讯无非是zigbee,用的是单片机plc就是plc而上位软件设计,说好的上位,你只要知道下位机的输入信息或者采集点数据编程都是一样编写,没什么不同参考知识1物联网通许系统
什么是单片机上位机啊? 参考知识1  单片机上位机简介:  单片机上位机是指可以直接发出操控命令的计算机,一般是PC/hostcomputer/mastercomputer/uppercomputer,屏幕上显示各种信号变化
单片机使用的是stm32,将采集到的数据进行上位机显示。对上位机小白,该使用啥软件来编写? 多数用VB写的,也有用C++等其它编写的。参考知识1通过串口发出去,让串口每次把三个数据排好先后顺序都发送出去,当然为了通信的高效和稳定,建议添加串口发送的字符串中包括一个包头和包尾,上位机软件设计接
什么是上位机和下位机 上位机和下位机分别是:1、上位机:上位机是指可以直接发出操控命令的计算机,一般是PC/hostcomputer/mastercomputer/uppercomputer,屏幕上显示各种信号变化。2、下
什么是上位机? 上位机是指可以直接发出操控命令的计算机,一般是PC/hostcomputer/mastercomputer/uppercomputer,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设
上位机下位机各是啥意思 上位机是指人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。系统中起主控,主要作为系统的规划控制,属于决策层。下位机是指直接控制设备获取设备状况的的计算机,一般
modbus测试上位机软件设计 怎么用VC做个串 参考知识1用VC++编写USB接口通信程序VC++串口通信根本管底层协议MODBUS应用层协议VC编程需要管VC编写串口通信候要管用户层数据传输格式于MODBUS要管