基于89C52单片机的多机通信
- 格式:doc
- 大小:37.00 KB
- 文档页数:6
基于PID算法和89C52单片机的温度控制系统基于PID算法和89C52单片机的温度控制系统0 引言温控技术无论是在工业生产,还是日常生活中都起着非常重要的作用。
在冶金、石油、化工、电力和现代农业等行业,温度是极为重要而又普遍的热工参数之一,在普通家庭里热水器、电饭煲、电烤箱等依赖于温控技术的家电设备也是必不可少。
可以说温度控制技术无处不在。
常规的温度控制方法以设定温度为临界点,超出设定允许范围即进行温度调控:低于设定值就加热,反之就停止或降温。
这种方法实现简单、成本低,但控制效果不理想,控制温度精度不高、容易引起震荡,达到稳定点的时间也长,因此,只能用在精度要求不高的场合。
而采用PID算法进行温度控制,它具有控制精度高,能够克服容量滞后的特点,特别适用于负荷变化大、容量滞后较大、控制品质要求又很高的控制系统。
单片机作为控制系统中必不可少的部分,在各个领域得到了广泛的应用,用单片机进行实时系统数据处理和控制,保证系统工作在最佳状态,提高系统的控制精度,有利于提高系统的工作效率。
本系统采用单片机编程实现PID算法进行温度控制。
1 PID控制的原理和特点在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。
PID控制器以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。
当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型,控制理论的其他技术也难以采用,系统控制器的结构和参数必须依靠经验和现场调试来确定时,应用PID控制技术最为方便。
PID控制器的参数整定是控制系统设计的核心内容。
它是根据被控过程的特性确定PID 控制器的比例系数、积分时问和微分时间的大小。
PID控制器参数整定的方法概括起来有两大类:一是理论计算整定法。
它主要是依据系统的数学模型,经过理论计算确定控制器参数。
这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。
本科毕业论文(设计)论文题目:基于AT89C51单片机间的多机通信的设计与仿真学生姓名:学号:专业:计算机科学与技术班级:指导教师:完成日期:2012年 5月 20日基于AT89C51单片机间的多机通信的设计与仿真内容摘要单片机作为微型计算机的一个分支,具有体积小,应用广泛等优点,在工业控制,通信和家用电器等各个领域都有十分广泛的应用。
单片机的多机通信就是在单片机的发展与行业标准的提高上发展起来的一个非常重要研究方向。
单片机的单机控制已经不能满足需要,而多机的协调工作是一个非常重要的发展趋势。
多机通信是指有两台以上的单片机组成的网络结构可以通过串行通信方式共同实现对某一过程的最终控制。
本文主要介绍了一种基于AT89C51单片机简的多机通信方式,采用自定义串行通信协议,实现单片机AT89C51多机通信的方法和技巧。
系统设计和解决了8位单片机在多机通信方面的一些问题,在实现方面,系统实现了主机与从机间的通信,以及从机与从机间的通信。
关键词:单片机多机通信串口通信Design And Simulation of Microcomputer Multi-machineCommunication Based on AT89C51AbstractMicrocomputer as a branch of microcomputer, has the advantages of small volume, application widespread and so on merits, in the industry control, the correspondence and the domestic electric appliances and so on each domain all has the extremely widespread application.. Microcomputer multi-machine communication in microcomputer development and industry standards developed as a very important research direction. Microcomputer computer control can no longer meet the needs, and multiple machine coordination is an important development trend. Multi machine communication means has more than two microcomputer network structure can be obtained by serial communication to achieve common in a process control.This paper introduced one kind based on the AT89C51 microcomputer Jane multi-machine communication manner, using a custom serial communication protocols, MCU AT89C51machine communication method and skill. The system design and to solve the8 microcontroller in multi machine communication problems, in implementation, system realizes the communication between host and slave, as well as from the machine and slave machine communication.Keywords: Microcomputer Multi Computer Communication Serial Communication目录序言 (1)一、绪论 (2)(一)课题背景的和意义 (2)(二)国内外研究现状 (2)(三)单片机间的多机通信技术 (3)二、系统设计相关原理 (4)(一)系统设计原理 (4)1.系统框图 (4)2.系统原件说明 (4)(二)单片机AT89C51芯片简介 (7)1.主要特性 (7)2.管脚说明 (8)3.振荡器特性 (9)4.芯片擦除 (9)三、系统硬件设计 (10)(一)总硬件电路图 (10)1.晶振和复位电路: (10)(二)单元电路的设计 (11)1.主机电路 (11)2.从机电路 (11)四、系统软件设计 (13)(一)软件总程序设计 (13)(二)主机通信子程序 (14)(三)从机通信子程序 (16)五、系统仿真设计 (17)(一)软件介绍 (17)1.PROTEUS系统概述 (17)2.PROTEUS的主界面介绍 (17)(二)仿真系统的设计与调试 (18)(三)结果分析 (23)六、总结 (24)致谢 (25)参考文献 (26)附录 (27)序言随着单片机和计算机技术的不断发展,单片机应用也从独立的单机向网络发展,由计算机和单片机构成的多级网络系统已成为单片机技术发展的一个方向,二者的结合,充分发挥了单片机在实时数据采集和数据管理上的优点,单片机在计算机网络通讯与数据传输,工业自动化过程的实时控制和处理等都有广泛的应用,已渗透到我们生活的各个领域,许多应用都涉及到单片机多机通信,然而,单片机对网络数据的处理方式不同于通用计算机系统,尤其有的单片机只提供8位数据收发接口,在一定程度上阻碍了单片机在网络方面的应用。
第09卷 第11期 中 国 水 运 Vol.9 No.11 2009年 11月 China Water Transport November 2009收稿日期:2009-07-22作者简介:陈铭,湖北襄樊学院物理与电子工程学院自动化专业讲师。
单片机89C52的I/O 模拟串口与PC 机通信数据采集实现方法陈 铭(湖北襄樊学院 物理与电子工程学院,湖北 襄樊 441053)摘 要:在做电拉系统开发的过程中,为解决单片机89C52与PC 机通信问题,利用89C52的I/O 口模拟串口与PC 机进行通信,通过这种方法可以实现多个串1:7,而且串口通讯高效、可靠、标准统一 系统包括目标机采集子程序、目标机数据发送子程序、上位机接收子程序等,并给出了硬件原理图。
关键词:单片机89C52;模拟串1:7;数据采集;串1:7通讯中图分类号:TP274+.2 文献标识码:A 文章编号:1006-7973(2009)11-0109-02一、引 言电控技术是满足动力性、经济性的前提下有效降低排放的重要措施,在做电控EGR 系统的开发过程中,由于所用的PHYTEC 89C52开发板有一个串口被CrossView 调试器在调试时占用,所以这里用其I/0口来模拟串行口的功能与PC 机通信,把采集的数据和内部参数传给PC 机进行在线标定。
PC 与单片机构成的上位机、下位机分布式控制系统是一种常见的工业控制系统,单片机作为下位机可进行现场数据采集和就地控制,并可将采集到的数据或者状态信息传送到上位PC 机,以做进一步的分析处理。
在实际应用中,上位机与下位机的通信问题是首要解决的问题之一,串行通信以其高效率、可靠标准统一的优点成为重要的通信手段,本文即在Windows XP 环境下,使用C 语言实现89C52单片机(并口模拟串口)与PC 之间的串行通信,其通信线路通过RS 232连接(距离小于15 m)。
二、串行接口的基本通信方式串行接口的有异步和同步2种基本通信方式。
STC单片机串口通信一、串口通信原理串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。
由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。
串口通信的工作原理请同学们参看教科书。
以下对串口通信中一些需要同学们注意的地方作一点说明:1、波特率选择波特率(Boud Rate)就是在串口通信中每秒能够发送的位数(bits/second)。
MSC-51串行端口在四种工作模式下有不同的波特率计算方法。
其中,模式0和模式2波特率计算很简单,请同学们参看教科书;模式1和模式3的波特率选择相同,故在此仅以工作模式1为例来说明串口通信波特率的选择。
在串行端口工作于模式1,其波特率将由计时/计数器1来产生,通常设置定时器工作于模式2(自动再加模式)。
在此模式下波特率计算公式为:波特率=(1+SMOD)*晶振频率/(384*(256-TH1))其中,SMOD——寄存器PCON的第7位,称为波特率倍增位;TH1——定时器的重载值。
在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。
这要根据系统的运作特点,确定通信的频率范围。
然后考虑通信时钟误差。
使用同一晶振频率在选择不同的通信速率时通信时钟误差会有很大差别。
为了通信的稳定,我们应该尽量选择时钟误差最小的频率进行通信。
下面举例说明波特率选择过程:假设系统要求的通信频率在20000bit/s以下,晶振频率为12MHz,设置SMOD=1(即波特率倍增)。
则TH1=256-62500/波特率根据波特率取值表,我们知道可以选取的波特率有:1200,2400,4800,9600,19200。
列计数器重载值,通信误差如下表:因此,在通信中,最好选用波特率为1200,2400,4800中的一个。
2、通信协议的使用通信协议是通信设备在通信前的约定。
单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。
基于STC89C52单片机的电子密码锁学生姓名: xx学生学号: xxxxx院(系):电气信息工程学院年级专业: 2010级电子信息工程2班指导教师:***二〇一三年六月摘要随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事情屡见不鲜,电子密码锁具有安全性能高,成本低,功耗低,操作简单等优点使其作为防盗卫士的角色越来越重要。
从经济实用角度出发,采用51系列单片机,设计一款可更改密码,LCD1602显示,具有报警功能,该电子密码锁体积小,易于开发,成本较低,安全性高,能将其存储的现场历史数据及时上报给上位机系统,实现网络实时监控,方便管理人员及时分析和处理数据。
其性能和安全性已大大超过了机械锁,特点有保密性好,编码量多,远远大于弹子锁,随机开锁成功率几乎为零;密码可变,用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降;误码输入保护。
当输入密码多次错误时,报警系统自动启动;电子密码锁操作简单易行,受到广大用户的亲睐。
关键词单片机, 密码锁, 更改密码, LCD1602目录错误!未定义书签。
1 绪论1.1电子密码锁简介 (1)1.2 电子密码锁的发展趋势 (1)2 设计方案 (3)3 主要元器件 (4)3.1 主控芯片STC89C52 (4)3.2 晶体振荡器 (8)3.3 LCD显示密码模块的设计 (9)3.3.1 LCD1602简介 (9)3.3.2 LCD1602液晶显示模块与单片机连接电路 (11)4 硬件系统设计 (12)4.1 设计原理 (12)4.2 电源输入电路 (12)4.3 矩阵键盘 (13)4.4 复位电路 (14)4.5 晶振电路 (14)4.6 报警电路 (15)4.7 显示电路 (15)4.8 开锁电路 (16)4.9 电路总体构成 (16)5 软件程序设计 (18)5.1 主程序流程介绍 (18)5.2 键盘模块流程图 (19)5.3 显示模块流程图 (21)5.4 修改密码流程图 (22)5.5 开锁和报警模块流程图 (23)6 电子密码锁的系统调试及仿真 (25)6.1硬件电路调试及结果分析 (25)6.2软件调试及功能分析 (25)6.2.1调试过程 (25)6.2.2 仿真结果分 (26)7 结论 (29)参考文献 (30)附录: (31)1 绪论1.1电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
课程设计基于AT89C51单片机的双机串行通信设计毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。
据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。
对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。
作者签名:日期:毕业论文(设计)授权使用说明本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。
有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。
学校可以公布论文(设计)的全部或部分内容。
保密的论文(设计)在解密后适用本规定。
作者签名:指导教师签名:日期:日期:注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它前言单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。
基于STC89C52RC单片机双机控制LCD的汉字显示系统摘要:本论文设计了一种基于PC机(上位机)与STC89C52RC单片机(下位机)双机控制LCD的汉字显示系统。
上位机程序可以编辑显示信息并保存到数据库中,也可以通过添加,修改,删除,保存的方式实现对数据库中的信息进行管理。
上位机程序从数据库中调出所需要显示的内容,利用VC定时器定时将各条信息通过串行通信的方式发送给下位机。
此时下位机一个字节一个字节地接收从上位机发送过来的字符串并存储到RAM中,通过LCD驱动程序在LCD上显示该字符串(包括汉字)。
本设计中的串行通信利用了Microsoft Visual C++的是MSComm控件。
关键词:LCD汉字显示串行通信STC89C52RC单片机VC++6.01、引言近年来,平板显示技术迅猛发展,STN-LCD主要应用于模块用屏,普通的电话机,游戏机,传真机,汽车显示设备,电子表和电子词典,医疗保健,健美,工业仪器仪表等行业。
在电子产品设计中,人机交互显示界面是必不可少的工作,目前一般使用的液晶显示器均为七段笔划式,只能显示数字和少量字符,功能往往受到很大局限,对于较为复杂的字符或图形则无能为力。
而STN-LCD 智能型内藏汉字库显示模块则是一种低功耗,低损耗,低价格的显示器件,它不但可以显示各种各样的Unicode字符,汉字和图形,同时具有可编程能力,且与单片机接口方便。
基于以上优点,STN-LCD显示模块得到了广泛应用。
因此本论文将论文LCD的一种应用方法。
2、STC89C52RC单片机开发板51-3开发板如图2.1所示,主要元件有电源开关,复位按钮,8位LED发光二极管,4位共阳一体化高亮数码管,ISP下载用插座,ZIF编程插座,芯片管脚引出座,实验编程晶振,2×2行列键盘和6个独立按键,集成电路AT24Cxx 和AT93C46,蜂鸣器,LCD1602插座,USB插座,RS232插座。
多功能数字钟设计报告目录第一部分摘要 (4)第二部分1.设计任务 (4)1.1基本要求 (4)1.2发挥部分 (4)1.3创新部分 (4)2.方案论证与比较 (4)2.1显示部分 (4)2.2数字时钟 (4)2.3温度采集 (5)2.4闹铃部分 (5)2.5电源模块 (5)3.总体方案 (5)3.1工作原理 (5)3.2总体设计 (5)4.系统硬件设计 (6)4.1 STC89C52RC单片机最小系统 (6)4.2测温模块 (6)4.3时钟模块 (7)4.4存储器模块 (7)4.5 LCD显示模块 (8)4.6电源模块 (8)4.7整体电路 (8)5.系统软件设计 (9)5.1主程序流程 (9)5.2时间设定程序流程 (10)5.3温度测量程序流程 (10)5.4闹铃设定程序流程 (11)5.5生日设定程序流程 (11)6.测试与结果分析 (12)6.1基本部分测试与分析 (12)6.2发挥部分测试与分析 (12)6.3创新部分测试与分析 (12)7.设计总结 (12)8.参考资料 (13)附录 (14)附一 (14)获取时钟芯片DS1302时间信息的程序 (14)附二 (15)多功能数字时钟使用方法 (15)摘要本设计采用LCD液晶屏幕显示系统,以STC89C52RC单片机为核心,由键盘、温度采集、定时闹铃、日期提醒等功能模块组成。
基于题目基本要求,本系统对时间显示、闹铃方式进和温度采集系统行了重点设计。
此外,扩展了整点报时、非易失闹铃信息存储、国内外重要节日提醒等功能。
本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。
本系统不仅成功的实现了要求的基本功能,多数发挥部分也得到了实现,而且还具有一定的创新功能。
关键字:STC89C52RC单片机、LCD液晶显示、双电源供电、温度采集、非易失定时闹铃、生日提醒、重要节日提醒、整点报时1、任务设计1.1基本要求:设计并制作一个多功能数字钟。
基于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,取消此中断申请。
89C52单片机多机通信
一、设置定时器的工作方式及初值:
TMOD=0x20;
TH1=0xF4;
TL1=0xF4;
二、设置串口寄存器的工作方式
SCON=0x90;
PCON|=0x80;
其中SCON各位为
PCON各位为
SM2=1时:RB8=1 产生中断
RB8=0 不产生中断
SM2=0时,产生中断
四、多机通信过称:主机>>>>>>地址码+RB8=1>>>>>从机
从机判断地址码与之对应则SM2=0
主机>>>>>>数据码+RB8=0>>>>>从机
从机接收数据
五、参考程序(经过实验认证)
主机
#include<reg52.h>
int a;
void init()
{EA=0;
TMOD=0x20;
TH1=0xF4;
TL1=0xF4;
SCON=0x90;
PCON|=0x80;
EA=1;
ES=1;
ET1=1;
TR1=1;
TI=0;
RI=0;
SM2=1;
}
void delay()
{int j,k;
for(j=0;j<300;j++)
for(k=0;k<1000;k++); }
main()
{init();
TB8=1;
SBUF=0x01;
delay();
TB8=0;
SBUF=0x88;
delay();
TB8=0x02;
SBUF=0x66;
while(1);
}
从机1:地址0x01
#include<reg52.h>
int a;
void init()
{EA=0;
TMOD=0x20;
TH1=0xF4;
TL1=0xF4;
SCON=0x90;
PCON|=0x80;
EA=1;
ES=1;
ET1=1;
TR1=1;
TI=0;
RI=0;
SM2=1;
}
void delay()
{int j,k;
for(j=0;j<1000;j++) for(k=0;k<1000;k++); }
main()
while(1)
P1=0xff;
}
void serial () interrupt 4
{ if(RI==1)
{ RI=0;
if(SBUF==0x01) SM2=0;
else if((SBUF!=0x01)&&(TB8==1)) SM2=1;
else {P1=SBUF;
delay();
}
}
else TI=0;
} /* */
从机2 地址0x02
#include<reg52.h>
int a;
void init()
{EA=0;
TMOD=0x20;
TH1=0xF4;
TL1=0xF4;
SCON=0x90;
PCON|=0x80;
EA=1;
ES=1;
TR1=1;
TI=0;
RI=0;
SM2=1;
}
void delay()
{int j,k;
for(j=0;j<1000;j++)
for(k=0;k<300;k++);
}
main()
{
init();
while(1)
P1=0xff;
}
void serial () interrupt 4
{ if(RI==1)
{ RI=0;
if(SBUF==0x02) SM2=0;
else if((SBUF!=0x02)&&(TB8==1)) SM2=1;
else {P1=SBUF;
delay();
}
}
else TI=0; } /* */。