基于89C52单片机的多机通信
基于PID算法的89C52单片机温度控制系统
基于PID算法和89C52单片机的温度控制系统基于PID算法和89C52单片机的温度控制系统0 引言温控技术无论是在工业生产,还是日常生活中都起着非常重要的作用。
在冶金、石油、化工、电力和现代农业等行业,温度是极为重要而又普遍的热工参数之一,在普通家庭里热水器、电饭煲、电烤箱等依赖于温控技术的家电设备也是必不可少。
可以说温度控制技术无处不在。
常规的温度控制方法以设定温度为临界点,超出设定允许范围即进行温度调控:低于设定值就加热,反之就停止或降温。
这种方法实现简单、成本低,但控制效果不理想,控制温度精度不高、容易引起震荡,达到稳定点的时间也长,因此,只能用在精度要求不高的场合。
而采用PID算法进行温度控制,它具有控制精度高,能够克服容量滞后的特点,特别适用于负荷变化大、容量滞后较大、控制品质要求又很高的控制系统。
单片机作为控制系统中必不可少的部分,在各个领域得到了广泛的应用,用单片机进行实时系统数据处理和控制,保证系统工作在最佳状态,提高系统的控制精度,有利于提高系统的工作效率。
本系统采用单片机编程实现PID算法进行温度控制。
1 PID控制的原理和特点在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。
PID控制器以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。
当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型,控制理论的其他技术也难以采用,系统控制器的结构和参数必须依靠经验和现场调试来确定时,应用PID控制技术最为方便。
PID控制器的参数整定是控制系统设计的核心内容。
它是根据被控过程的特性确定PID 控制器的比例系数、积分时问和微分时间的大小。
PID控制器参数整定的方法概括起来有两大类:一是理论计算整定法。
它主要是依据系统的数学模型,经过理论计算确定控制器参数。
这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。
单机片毕业论文---基于AT89C51单片机间的多机通信的设计与仿真
本科毕业论文(设计)论文题目:基于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位数据收发接口,在一定程度上阻碍了单片机在网络方面的应用。
单片机89C52的I_O模拟串口与PC机通信数据采集实现方法
第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种基本通信方式。
STC89C52单片机串行通信ppt课件
2个数据缓冲器 SBUF在物理上 是相互独立的, 一个用于发送 数据、另一个 用于接收数据。 2个SBUF共用一 个地址(99H), 通过读写指令 区别是对哪个 SUBF的操作。
汇编: MOV SBUF,#DATA;完成一次数据发送 …
MOV A,SBUF
…
; 完成一次数据接收
发送控制器的作用是在门电路和定时器T1的配合下,将发送缓 冲器SBUF中的并行数据转为串行数据,并自动添加起始位、 可编程位、停止位。这一过程结束后自动使发送中断请求标志 位TI置1,用以通知CPU已将发送缓存器SBUF发中的数据输 出到了TXD引脚。
7.1 串行通信概述 7.2 串行口的结构 7.3 串行口的四种工作方式 7.4 波特率的设定与计算 7.5 STC89C52单片机之间的通信 7.6 PC与单片机间的通信
7.1 串行通信概述
7.1.1 数据通信 1、并行通信和串行通信(数据通信的两种常用形式) (1)并行方式——数据的各位同时发送或同时接收。
接收控制器的作用是在输入移位寄存器和定时器T1或 T2的配合下,使可编程位、停止位。这一过程结 束后自动使接收中断请求标志位RI置1,用以通知CPU 接收的数据已存入接收缓冲器SBUF。
STC89C52串行通信以定时器T1或定时器T2作为波特率信 号发生器,其溢出脉冲经过分频单元后送到收、发控制器中。
STC89C52RC单片机内部集成有一个可编程的全双 工的异步通信串行口,可以作为通用异步接收/发送 器(UART),也可作为同步移位寄存器使用。
C51: uchar counter; 待发送存放变量 … SBUF = counter; 完成一次数据发送 … counter = SBUF; 完成一次数据接收
1.异步通信——以字符为单位组成字符帧进行的数据传送 数。据以帧为单位进行传送。一帧数据由起始位、数据位、 可编程校验位(可选)和停止位构成。帧和帧之间可以有 任意停顿
(大一组)ST89C52最小系统设计及串口通信
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单片机毕业设计(完整版)-附-原理图-pcb图-源程序-仿真图
基于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单片机的双机串行通信设计课程设计
课程设计基于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的汉字显示系统
基于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插座。
毕业设计---基于STC89C52RC单片机多功能时钟设计论文
多功能数字钟设计报告目录第一部分摘要 (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单片机间的串口通信程序设计
基于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,取消此中断申请。
STC89C52双机通信实验
单片机课程实验报告实验名称:双机通信实验实验学时专业电子信息技术与仪器班级姓名学号指导教师日期实验成绩一、实验目的UART 串行通信接口技术应用二、实验原理图三、实验程序/*妨碍本次实验成果的最大障碍是键盘扫描部分,由于未使用P×口直接赋值形式,而是用H1=0 H2=0的形式为及时关闭H1;导致键盘扫描只能扫描K、K2、K3,解决办法:在条件允许的情况下避免使用H1、H2的检测方式或者以后使用时直接复制,而非自己敲写*/#include <reg52.h>/**/#define uint unsigned int#define uchar unsigned char/*f0为单片机晶振*/#define N 46080 /*N=50000*f0/12,定时50ms*/#define M 20 /* 定时M*0.05s */sbit W1=P0^0;sbit H1=P3^6;sbit H2=P3^7;sbit LED=P2^0;uchar key=0;uchar rxd;uchar code duanxuan[]={0x3f,/*显示0*/0x06,/*显示1*/0x5b,/*显示2*/0x4f,/*显示3*/0x66,/*显示4*/0x6d,/*显示5*/0x7d,/*显示6*/};sfr P1M1=0x91;//和后面的main函数中的sfr P1M0=0x92;//P1M1 P1M0合在一起增加亮度void delay_ms(uint x) //*延时子函数程序{uint i,j;for(i=x;i>0;i--)for(j=250;j>0;j--); //*该层循环延时约1ms*/}/************数码管显示函数ok******************/void displays(uchar key_num2){W1=0;P1=duanxuan[key_num2];}/****************************************************/void send(uchar key_num1){SBUF=key_num1; //sbuf接收串口中的数据,串口发送数据while(!TI);//串口中的数据发送完毕后TI自动由0变为1TI=0; //置零,打开发送中断允许,为下一次发送做准备}/************矩阵键盘扫描,同时可进行数码管各位的+-***********/ void keyscan()//如何确定时间设定时数码管显示的数字是否会自动+1 { /*当两行H1、H2重新赋值时存在冲突,解决办法为:H1=1时H2=0,H2=1时H1=0*/ uchar temp;/***扫描第一行**/H1=0;H2=1;//扫描第一行temp=P0;temp=temp|0x1f;//读取L1、L2、L3的状态/***判断哪个键摁下***/if(temp!=0xff)//判断是否有键摁下{delay_ms(10);//延时H1=0;H2=1;//扫描第一行//重新读取temp=P0;temp=temp|0x1f;//读取L1、L2、L3的状态if(temp!=0xff)//消抖{switch(temp)//判断哪个键摁下{case 0x7f:key=3;break;case 0xbf:key=2;break;case 0xdf:key=1;break;} //键1 2 3 分别摁下while(temp!=0xff)//按键释放才会跳出循环{H1=0;H2=1;//扫描第一行//重新读取temp=P0;temp=temp|0x1f;//读取L1、L2、L3的状态}}} /***扫描第二行**/H2=0;H1=1;//扫描第二行temp=P0;temp=temp|0x1f;//读取L1、L2、L3的状态/***判断哪个键摁下***/if(temp!=0xff)//判断是否有键摁下{delay_ms(10);//延时H2=0;H1=1;//扫描第二行//重新读取temp=P0;temp=temp|0x1f;//读取L1、L2、L3的状态if(temp!=0xff)//消抖{switch(temp)//判断哪个键摁下{case 0x7f:key=6;break;case 0xbf:key=5;break;case 0xdf:key=4;break;} //键4 5 6 分别摁下while(temp!=0xff)//按键释放才会跳出循环{H2=0;H1=1;//扫描第二行//重新读取temp=P0;temp=temp|0x1f;//读取L1、L2、L3的状态}}}send(key);}/****************************************************/void main(){P1M1=0X00;P1M0=0XFF;EA=1;/*对寄存器进行操作,产生的9600bps,故不打开ET1*/ TMOD=0X20;TH1=0xfd;TL1=0xfd;TR1=1;/*SCON控制寄存器设置*/ES=1;SM0=0; //工作方式SM1=1; //SM0 SM1 10步异位收发器REN=1; //串行接收数据允许位while(1) /*等中断满足的条件*/{keyscan();}}/*在中断1中的while(!TI)中起作用*/ //识别码看时序图void S_serial()interrupt 4 //串口接收数据{ES=0;RI=0;rxd=SBUF;//串口接收一个字节的数据displays(rxd);//ES=1;} 四、调试过程与结果分析1、暂称双机分别为甲乙,甲单片机无按键摁下时,数码管显示0;有按键摁下,将按键编号发送到乙单片机,并由乙显示,但甲单片机数码管不显示按下的数值。
基于89C52单片机多功能应用系统
林卫星, 虞建祥, 张凌敏 H 单片机多功能通道电路的研制 H微 (, ) 处理机, ,""? 林卫星, 赵庆生 H叶发酵过程的动态模型 H宁波大学学报 I理 工版 J, ,""+ (% ) 林卫星, 赵庆生 H’G# — $, 单片机在碳粉分析装置中的应 用 H集成电路应用, (, ) ,""% 林卫星, 马常旺 H.# 卡预付电表系统 H工业控制计算机, (,%) %**, 林卫星 H激光电源单片机控制的软硬件研制 H 工业控制计算 (! ) 机, %**, 产品资料全集 %*** 年版 ? (美国美信集成产品公司) [收稿日期: %**,H!H,?]
图# 系统控制电路原理图
!
单片机的选择 单片机性能不断提高水平, 其应用系统也不断发
展, 就我国的 % 位单片机应用系统而言, 从 +",%" 年 代盛行 的 -%" )!* 到 %",&" 年 代 的 ./012 %"(# )(*, 再到 而目前 &",!""" 年 代 的 ./012 !"’$# )3* 或 %&’$# )$*, 流行使用的 %&’$! 单片机是 ./012 4’56$# 系列的 片内带 37 闪烁存储器 % 位单片机。它具有 3" 引脚, 89:;4, 一 般 作 程 序 存 储 器 ; 片 内 带 !$< 字 节 提供 (! 条 . > ; 引脚, 大部分引脚都可 作 数 字 :=4; 和脉冲输入或输出; 对外计脉 ! 个 #< 位定时计数器, 冲数可使用单片机的 9(?3 (@") 或 9(?$ (@#) ; < 个中 断 源 , 其 中 直 接 提 供 外 部 中 断 处 理 可 使 用 9(?! (.A@") 或 9(?# (.A@#) ; 其引脚 # 个可编程标准串口, 为 9(?" (:BC) 和 9(?# (@BC) ; 时 钟 频 率 可 达 3,
(大一组)ST89C52最小系统设计及串口通信
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、通信协议的使用通信协议是通信设备在通信前的约定。
单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。
将 AT89C52 用作多功能外围器件使用
将AT89C52用作多功能外围器件使用文章作者:过幼南文章出处:单片机及嵌入式系统应用摘要:介绍利用AT89C52单片机作为多功能可编程接口的方法。
该接口具有1个键盘/显示接口,2个16位定时/计数器和1个全双工异步串行通信口。
其模块化的设计,可以给用户使用带来许多方便。
关键词:多功能接口串行通信软件译码AT89C52(简称89C52)的广泛使用,使单片机的价格大大下降。
目前,89C52的市场零售价已经低于8255、8279、8253、8250等专用接口芯片中的任何一种;而89C52的功能实际上远远超过以上芯片。
因此,如把89C52作为接口芯片使用,在经济上是合算的。
在本人设计的系统中,将89C52设计为多功能可编程接口,其相关程序固化在片内的Flash ROM中。
该芯片(以下简称多功能接口)具有如下功能:①有1个专用的键盘/显示接口;②有1个全双工异步串行通信接口;③有2个16位定时/计数器。
这样,1个89C52芯片,承担了3个专用接口芯片的工作;不仅使成本大大下降,而且优化了硬件结构和软件设计,给用户带来许多方便。
1 硬件结构把89C52当作接口使用,接口自身必须尽可能地少占用硬件资源,与主系统之间的连接线也应尽可能少,这样才能少占主机引脚,把更多的资源留给系统。
本设计中,主机与多功能接口之间采用串行通信。
主机与多功能接口之间有四根连接线:CE、CLK、DAT、INTR。
CE用于作片选信号输入端。
此引脚为低电平时,主机能与多功能接口进行数据传送。
CLK为时钟输入端,当主机向多功能接口发送指令时,此引脚电平上升表示数据有效。
DAT为串行数据输入/输出端。
INTR为多功能接口输出端。
当多功能接口内的数据准备好时,由INTR向主机发低电平,通知主机,数据已准备就绪,可以进行读操作。
该信号可供主机查询,也可用作发向主机的中断请求信号。
89C52的P0、P1、P2口用作键盘/显示接口。
用程序扫描的方法进行键盘输入和显示输出。
基于STC89C52RC单片机的多路红外发射与接收
基于STC89C52RC单片机的多路红外发射与接收作者:周红鲁晓天何成飞来源:《电脑知识与技术》2015年第16期摘要:该文应用红外通信方式,实现了多路红外发射与接收控制系统的设计。
发射电路主要由键盘、编码芯片MC145026以及红外发射管组成;接收电路主要由一体化红外接收头、解码芯片MC145027以及STC89C52RC单片机组成。
文中详细介绍了各个单元电路的工作原理及其硬件原理图,通过理论分析和电路安装调试,实现了单个红外发射系统对单个红外接收的8路设备控制。
结果表明该系统具有抗干扰能力强,控制可靠准确,故障率低,调试简单的优点,具有很高的应用价值。
关键词:红外通信;MC145026;MC145027;STC89C52RC单片机.中图分类号:TP302.7 文献标识码:A 文章编号:1009-3044(2015)03-0265-04Design of Multi-channel Infrared Emission and Receiving Based on STC89C52RC MicrocontrollerZHOU Hong, LU Xiao-tian, HE Cheng-fei(Electronics and Information Engineering School,Yangtze University, Jingzhou 434023,China )Abstract: The design of multi-channel infrared emission and receiving control system is realized with infrared communication. Transmitting circuit is mainly composed by the keyboard,encoder chip MC145026 and the infrared emitter; which receiving circuit is by the integrate reception, decoder chip MC14027 and the STC89C52RC microcontroller. This paper introduces the working principle of each unit circuit and its corresponding hardware principle diagram , installation and debugging through theoretical analysis and circuit, the single infrared emission system of 8 single infrared receiving device control .The systems has advantages such as strong anti-interference, reliable and accurate control, low failure rate, and simple debugging. It has high application value.Key words: infrared communication; MC145026;MC145027;STC89C52RC microcontroller1 概述随着电子科技的迅速发展,红外技术得到了飞速的发展,红外遥控的应用已经渗透到各行各业和人们的生活的各个方面,伴随着科技的的发展,人们对红外技术的研究也越来越深入,应用范围也更加广泛,特别是红外遥感技术和红外通信技术领域里、数字技术和传感技术的巨大进步,更是推动了红外技术的发展[1]。
基于Proteus的89C52双机通信仿真
基于Proteus的AT89C52双机通信仿真在一个Proteus工程中,添加两个AT89C52单片机,一个做主机,另一作从机。
现在要实现主机与从机之间的简单通信。
具体功能是:主机不停扫描矩阵键盘,如果有键被按下,则把相应按键的数字发送给从机,从机通过数码管显示它接受到的数据。
主机与从机之间的通信通过串行口实现。
构建Proteus仿真图时,如果感觉图纸不够大,放置元器件比较拥挤,可以通过System 选项 Set Sheet Side…选择A3图纸就合适了。
Proteus中的RS-232C标准接头COMPIM不需要连接MAX232,可以直接和单片机的RXD,TXD连接,因为COMPIM已经把MAX232集成在内部。
这里的串行通讯选择方式1,因为方式1的波特率与定时器T1的溢出率有关,所以可以通过设置定时器T1的初值来确定串行通信的波特率。
这里选择了波特率为9600,T1选择具有自动重装功能的方式2,那么TH1 和TL1 的初值通过计算得到0xfd。
具体的电路连接如下:主机电路:从机电路:要顺利实现双机通信重要的是要保持两机的波特率一致。
所以,下面的一些参数设置很重要。
1.利用虚拟串口软件Virtual Serial Port Driver,建立一对相连的虚拟串口。
如果没有安装这个软件可以网上下载安装。
这是实现仿真必须的。
这里的虚拟串口为COM1和COM4,下图可以看到两个端口是相连的。
2.设置主机RS-232接头P1的参数。
Physical port选择端口COM1,Physical Baud Rate选择9600,Virtual Baud Rate也选择9600。
其他参数默认,设置如下:3.设置从机RS-232接头P2的参数。
Physical port选择端口COM4,Physical Baud Rate选择9600,Virtual Baud Rate也选择9600。
其他参数默认,设置如下:4.晶振频率设置为11.0592MHz,它与上面设置波特率为9600是对应的。
通信工程专业毕业论文--基于89C52RC的MODBUS通信程序设计
通信工程专业毕业论文--基于89C52RC的MODBUS通信程序设计摘要单片机具有体积小,功能强,成本低,应用面广等优点,目前的温度控制系统多采用单片机进行系统设计。
基于89C52RC的MODBUS通信程序设计就是针对于温度控制系统进行的设计。
在这里主要使用AT89C52芯片和AD590温度传感器,实现温度的检测和显示功能,再通过MODBUS通信协议实现单片机与PC的连接程序设计,通过PC对被控现场的温度实现调节和控制。
在这里有两方面设计,硬件电路设计和软件程序设计。
硬件电路设计包括人机互换模块包括按键模块和数码显示模块。
按键模块用来输入设定的温度,数码管显示模块用来显示当前测得的温度。
温度传感器模块包括A/D转换模块和传感器模块。
加热控制模块用来给水加热。
上位机通信模块通过串口和PC建立通信渠道。
软件设计包括温度检测模块,加热器控制模块,按键模块,数码管显示模块和串口驱动模块。
温度检测模块通过A/D转换器将温度值转换成数字值存放,加热器控制模块控制加热器开关的通断,按键模块用于设定温度值;数码管模块用于显示检测到的温度值和设定的温度值,串口驱动模块用于从上位机收发数据。
关键词:AT89C52 ;MODBUS通信协议;温度控制ABSTRACTThe MCU has the advantages of small size,low cost, wide range of applications; temperature control systems use a single-chip system design.89C52RC MODBUS communication program is designed for the temperature control system. Mainly use AT89C52 chip AD590 temperature sensor, temperature detection and display functions and programming of MCU and PC connection, and then through the MODBUS protocol to regulate and control the PC charged with the temperature of the scene. There are two aspects of design, hardware circuit design and software programming. The hardware circuit design, including the man-machine interchangeable modules including key module and digital display module. The key module is used to enter the set temperature; the digital display module is used to display the current measured temperature. The temperature sensor module consists of the A / D converter module and sensor module. Heating control module is used for water heating. The host computer communication module through the serial port and PC to establish communication channels.The software design includes temperature detecting module, the heater control module, keyboard module, digital tube display module and serial port driver module. Temperature detection module temperature values by the A / D converter to convert the numeric value stored, the heater control module controls the heater switches off, the button module is used to set the temperature value; the digital control module is used to display the detected temperature value and the temperature set value, the serial port driver module used to send and receive data from the host computer.Key words:AT89C52 ,Modbus protocol ,Temperature control 目录前言1第1章绪论 2第1.1节选题背景 2第1.2节选题简介 2第2章总体设计的技术分析 3第2.1节 AT89C52单片机 3单片机的发展3芯片的选择 4AT89C52功能简介5第2.2节AD590温度传感器9第2.3节 AD0804模数转换原理10第2.4节 MODBUS协议 11通讯传送方式12通讯规约 12Modbus帧描述13第2.4节RS232简介 14第3章硬件设计16第3.1节系统结构16第3.2节单片机AT89C52基础电路16复位操作和复位电路16振荡电路和时钟17第3.3节信号的采样及处理18第3.4节人机交互与串口通信单元设计20 数码管显示电路20加热器控制电路20串口通信电路21第4章软件设计23第4.1节设计思路、主程序流程图23第4.2节数码管显示程序 24第4.3节按键程序24第4.4节加热器控制程序 25第4.5节串口收发程序26第4.6节 MODBUS协议帧格式程序26MODBUS协议帧格式组装26CRC校验27MODBUS数据帧的拆包 29结论31参考文献32致谢35附录1 36附录2 37前言温度是工业对象中主要的被控参数之一,它目前应用于很多方面,例如水温的控制,锅炉的温度控制,大棚的温度控制等,在这里是对地铁消防管道的的温度控制。
基于Proteus的89C52双机通信仿真
基于Proteus的AT89C52双机通信仿真在一个Proteus工程中,添加两个AT89C52单片机,一个做主机,另一作从机。
现在要实现主机与从机之间的简单通信。
具体功能是:主机不停扫描矩阵键盘,如果有键被按下,则把相应按键的数字发送给从机,从机通过数码管显示它接受到的数据。
主机与从机之间的通信通过串行口实现。
构建Proteus仿真图时,如果感觉图纸不够大,放置元器件比较拥挤,可以通过System 选项 Set Sheet Side…选择A3图纸就合适了。
Proteus中的RS-232C标准接头COMPIM不需要连接MAX232,可以直接和单片机的RXD,TXD连接,因为COMPIM已经把MAX232集成在内部。
这里的串行通讯选择方式1,因为方式1的波特率与定时器T1的溢出率有关,所以可以通过设置定时器T1的初值来确定串行通信的波特率。
这里选择了波特率为9600,T1选择具有自动重装功能的方式2,那么TH1 和TL1 的初值通过计算得到0xfd。
具体的电路连接如下:主机电路:从机电路:要顺利实现双机通信重要的是要保持两机的波特率一致。
所以,下面的一些参数设置很重要。
1.利用虚拟串口软件Virtual Serial Port Driver,建立一对相连的虚拟串口。
如果没有安装这个软件可以网上下载安装。
这是实现仿真必须的。
这里的虚拟串口为COM1和COM4,下图可以看到两个端口是相连的。
2.设置主机RS-232接头P1的参数。
Physical port选择端口COM1,Physical Baud Rate选择9600,Virtual Baud Rate也选择9600。
其他参数默认,设置如下:3.设置从机RS-232接头P2的参数。
Physical port选择端口COM4,Physical Baud Rate选择9600,Virtual Baud Rate也选择9600。
其他参数默认,设置如下:4.晶振频率设置为11.0592MHz,它与上面设置波特率为9600是对应的。
单片机多机通信毕业设计[管理资料]
目录摘要 (3)引言 (6)1 绪论 (6) (6)单片机串行多机通信 (7)单片机多机通信串并行口比较 (7)单片机多机通信串行通信制式 (8)单片机串口结构 (9)单片机串口工作寄存器 (10)单片机串口工作方式选定 (13)2 系统总体方案设计 (13)系统结构及通信协议 (13)系统主要器件介绍 (17)89SC52RC (17)ULN2803 (18) (19)7805三端稳压管 (19)3系统硬件模块设计 (20) (20)矩阵键盘模块 (21)数码管驱动显示模块 (22)系统电源模块 (23)4 系统软件设计 (24)公共模块程序设计 (24)开机自检子程序 (24)矩阵键盘线偏法子程序 (25)数码管动态显示子程序 (28)奇偶效验数据传输 (30)主机通信主模块设计 (31)从机通信主模块设计 (33)结论 (35)总结与体会 (35)谢辞 (36)参考文献 (36)附录 (37)附录A 系统源代码 (38)附录B 系统电路总图 (38)材料清单 (40)摘要目前单片机渗透到我们生活的各个领域,在各个环境领域都能找到它的踪迹。
生活、医疗、服务等这些都离不开单片机。
并且单片机具有体积小、功耗低、价格便宜抗干扰型强等特点。
89SC52RC就是其中的一类,它是一种以单片机母片为核心,在片中嵌入更多功能的专用型单片机。
多机通信即两个及两个以上的微机处理之间进行数据交互的形式。
本设计主要建立在89SC52RC单片机的基础上来设计串口通信协议,通过其含有的两个物理上独立的串行数据缓冲器SBUF,发送控制器、接收控制器、输入以为寄存器和输出控制门,并采用目前流行的主从机结构,通过理论与实践相结合,经过反复的理论验证及实验操作来实现3个单片机之间的串行通信。
于此同时不断改进设计,简化电路降低成本的同时又达到了更好的设计效果,并将设计过程中所涉及的各类问题做了详细的陈述及记录。
最后通过将代码带进硬件进行多次实验测试,成功实现了串行多机通信。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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; } /* */。