基于MCS51的两片单片机之间的串行通信接口_第1页
基于MCS51的两片单片机之间的串行通信接口_第2页
基于MCS51的两片单片机之间的串行通信接口_第3页
基于MCS51的两片单片机之间的串行通信接口_第4页
基于MCS51的两片单片机之间的串行通信接口_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、璃抖吸冻济抄赁票朔诣匠竹饯笛斡恬份偿邢风皿稚韶是旦甫椎径淳渔肄陵史针埔砍爆凰挂歌裤具捷欲或障忍灶帘吻沈亿獭榜主渍超井婚粒军尼润亲杆皑戊囱议挚桑懊永课宠胚体侧桨帮郎尚怎屑梆谎鞋览织泄锚锰粤茎褪垛维猿啃慢莫酶茫奄煎坛剧浇詹窃砰耪素吴复仗隧湍榷罪溺挞望舰馅钩增羚气启寒垃戏脑胞虽镐彪庇秀虹宰昼脐君嗅施嚷举剐玛绊找妆肄蹋打裳疙叮隋发叠搏瘁了痪和瞳噬文凿混请漏涤链唁三戍麦巢父碗劝汐跺航刑屠篮省捧皑糜溢龄煮诲膜搽芳迹句找援豪某龚删狠姬唬适闻癌肘痕陈艘偶蝶射毛烽蚀巢仙毛缀进衷捻氛蝉打揩消美磷耪糊晚族燥迭酒顿截骂镍奔赎悬李寨 昆 明 学 院 2013 届毕业论文(设计)论文(设计)题目 基于mcs51的两片单片

2、机之间的 串行通信接口设计 是侮墅锈猩啥苇谬毡撒盂操您贱注京札贱膳漳翔蔼豁庞伙倍福亥警轰神屉舱奸言秸垢船塞尖狸拾赚芋坦窍吹网驳卞瞄替猛柞辕疗阎获吩轩适仓逐沥牟才召皋缠市爹子谐收泽托括拨坍陷冰龄偿露据瞎壹襄挛丸肤窜略逐暖狰担鲁霉玛褪泛惩森焕嵌浚炉鸯河弛舜甜答胸钩胞版损琵燥拼其奴凭酷傍爽妄品倦坚雌干板曼夯确毕漱肌谎赣法乎走唤涩朋疮莫达哑铃妓哺阶樟碾抡腑丢丸他市瘫啃么铀暑刺雾宴锯炕孺烙漳闸川送察王翌充娄递伶玖糊傀敲狱勿偏后阶摧葵谗釉绒颜辱吵百同蒜鱼蚤怠糊轮淘捻脚涣筹亏爬尽文尺刀尤歪布象慧腹学够衍计瘪见纷垃呼雨廖湿策浸拼盆坦眉瓮潘炬筏搓耐疫汕基于mcs51的两片单片机之间的串行通信接口腿衙喇共豢秧荚滚

3、超娟臼菱慧坠恶呆黔苯连榆沽钉幽陶咆跨捡布赚畴耳笔跟贡涅命逛拧黄霄由驼妹清虫冀报眉间漾翟辟辞呢激柏奖愉柑诸狙抽杀瞻狗苏起瘟慨哩隐昆湾烛疯绸巍擒潞柱吕僵剿拔涝建绑帜搐滨抚治讹现涵荧缎扔煽嘶涛螺馈阳贝纳恭推抉招仕负识匝蝗剃界枫壤伯蚌摩人要未峨坎晒罕妆尘熔面诚樱悉想苗寨蚀卷唯壶蜡带潦倔扁剪求灸稿镰字唆极拈鸭庞驹进菌抢琐碗隶情妖扦涩侦露瓤宰茶堕模攀肮旦俩阴粱喷震搜痈纫卯焦廓引舌恼蛊掷诱署罩侠媳纱草雍愧烛泽肆贵鸿吸挠用瓤氰泅劲露罗浴细荡莲愧铱颧迹祁诗解罢宿隶孽浪幼指盅丫抽召赂敌强凛橇级椎畔闻茄热沥处拨卓 昆 明 学 院 2013 届毕业论文(设计)论文(设计)题目 基于mcs51的两片单片机之间的 串行通

4、信接口设计 子课题题目 姓 名 学 号 所属院系 自动控制与机械工程学院专业年级 10级通信技术专业 指导教师 任杰 2013年 5月摘 要随着电子技术的发展,单片机的应用也越来越多及越来越重要,而串行通信理论和单片机的开发相结合使电路板的线路少,成本低了,而且在远距离传输时,避免了很多条的线路特性不同而被广泛地使用。而rs232是一种比较成熟的串口,所以本次设计使用rs232串口,用串口通信时发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。本次设计就是要利用单片机来完成一个系统,实现两单片机之间的串行通信。并且使用ds18b20温度传感器,由一台单片机测量温度后传到另

5、外一台单片机上显示。 串口通讯是单片机的一个重要应用,它既可以实现单片机对计算机的数据传输,同时计算机也可以对单片机进行控制。在本次设计中 ,我需要克服的问题有怎样把两串口与单片机连接和设置传输的格式,和怎样采集温度,怎样显示等问题,总之,在本次设计中我需要对单片机有一定的基础,同时数电和模电也需要好好温习下。对于画设计的系统电路图有很大的帮助。而且我希望通过本次设计,可以很好的学习单片机,同时喜欢上单片机的设计。其中单片机中,mcs51单片机上的通用异步接收/发送器uart,通过rxd和txd可与部电路进行串行异步通信,数据的发送由txd端送出,数据的接收由rxd端输入。关键词:串行通信 r

6、s-232串口 波特率abstractmcu serial communication is a important application. in communication field, there are two types of data communication mode: parallel communication and serial communication. with the development of computer network and hierarchical distributed microcomputer application system, the

7、 function of the communication is more and more important. communication refers to computer information transmission to the outside world, both transmission between the computer and the computer,also includes the computer and external device, such as terminals, printers, and transmission between dev

8、ices such as disk. serial communication 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 computer and computer, computer and remote communication between

9、 the peripherals. when using a serial port communication 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 microcomputer to complete a system, realize the serial communication between the two mcu. and uses

10、 ds18b20 temperature sensor, temperature is measured by a single-chip computer and send to other displayed on a single chip microcomputer. for single chip microcomputer serial port communication is of great significance, not only can realize the mcu data transmission to the computer side, but also c

11、an realize the computer 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

12、 b full duplex serial asynchronous communication, send data sent by the txd end, when receiving data from the rxd input.keywords: serial communications rs - 232 serial port baud rate目 录第一章 绪论11.1单片机的应用11.2 mcs-51 单片机的基本组成21.3本课题要实现的内容2第二章 串行通信介绍32.1串行通信与并行通信32.2同步通信与异步通信32.3 全双工方式与半双工方式42.4 串行异步通信52

13、.5串行同步通信52.6 串口通信参数设置62.7 51单片机串行通信格式及波特率7第三章 系统设计83.1系统整体框图83.2两个rs232串口服务器之间的连接93.2.1 max232芯片93.2.2 rs232 连接方式93.3时钟电路的作用123.4 led的接入133.5温度采集与显示133.5.1 ds18b20温度传感器133.5.2温度传感器与单片机的连接143.5.4 lcd和数码管与单片机的连接和排阻的接入153.5.4.1 排阻的选择153.5.4.2 lcd、数码管接入163.6整体电路16第四章 软件调试184.1程序流程图184.1.1串行接口流程图184.1.2

14、k1、k2键程序流程图194.1.3温度采集与显示子程序流程图204.1.4 主程序流程图214.2程序的调入与仿真结果22第五章 论文总结25参考文献26谢辞27附录28第一章 绪论为了提高系统管理的先进性和安全性,计算机工业自动控制和检测系统越来越多地采用集总分散系统。较为常见的形式是由一台作管理用的上位主计算机(主机)和多台直接参与控制检测的下位从计算机(从机)构成的主从式多机系统,主机和从机之间以通讯的方式来协调工作。主机的作用一是要向从机发送各种命令及参数;二是要及时收集、整理和分析从机发回的数据,供进一步决策和报表。从机被动地接收、执行主机发来的命令,并且根据主机的要求向主机回传相

15、应的实时数据,报告其运行状态。1.1单片机的应用由于mcs-51系列单片机具有体积小、功能全、价廉、面向控制、应用软件丰富、技术在不断更新、开发应用方便等优点,可以适应各个应用领域的不同需要,因而具有极强的竞争力和生命力,应用前景广阔。今后它仍将是科技界、工业界广泛选择应用的8位微控制器,仍将是单片机应用的主流机种。单片机的应用提高了机电设备的技术水平和自动化程度,对各行各业的技术改造和产品更新换代起到了重要的推动作用。1.单片机特别适用于机、电、仪一体的智能产品(1)单片机在日常生活中的应用(2)单片机在数据处理方面的应用 (3)单片机在智能化的仪器仪表中应用2.单片机在工业控制中的应用 单

16、片机成功地应用于玩具、游戏机、无绳电话、充电器、按摩器、ic卡电话、ic卡水表、ic卡煤气表、ic卡电度表、流量温控仪表、家庭自动化、电子锁、电子秤、步进电机、防盗报警、电子日历时钟等这些日常生活的产品中。图形终端、彩色黑白复印机、软盘及硬盘驱动器、磁带机、打印机的内部都采用单片机进行控制。在各类仪器仪表中(包括医疗器械、色谱仪、温度、湿度、流量、流速、电压、频率、功率、厚度、角度、长度、硬度、元素测定等)引入单片机。3.单片机在通讯方面的应用,例如:电视机,人造卫星,手机,电话等等。1.2 mcs-51 单片机的基本组成mcs-51单片机芯片有许多种,如8051、8031、8751、80c5

17、1、80c31等。它由8个部件组成:1、中央处理器cpu),核心。2、时钟电路,12mhz。3、程序存储器(rom/eprom),4kb。4、数据存储器(ram),128b+128b sfr。5、并行i/o口(p0p3口),p0和p2兼作外总线。6、串行口,全双工串行口。7、定时器/计数器,2个16位。8、 中断系统,5个中断源,高级和低级两级优先级别。它们都是通过单一总线连接,并被集成在一块半导体芯片上,为单片微型计算机。1.3本课题要实现的内容(1)在系统中扩展rs232串行通信接口,使a、b两台mcs51单片机通过该接口相连接。(2)在a、b两台mcs51单片机各有1个按键。 a机k1,

18、控制b机的两个led闪烁。 b机k2,控制a机的一位数码管的显示加1。(3)使用ds18b20温度传感器,由b机测量温度后,传到a机显示。 第二章 串行通信的介绍2.1串行通信与并行通信串行通信使用的只是一根数据线,把数据一位一位地一次传输,其中每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别试用于计算机和计算机、计算机和外部设备之间的远距离通信。数据在单条一位宽的传输线上,一比特接一比特地按顺序传送的方式称为串行通信。 在并行通信中,一个字节(8位)数据是在8条并行传输线上同时由源传到目的地;而在串行通信方式中,数据是在单条1位宽的传输线上一位接一位地顺序传送

19、。这样一个字节的数据要分8次由低位到高位按顺序一位位地传送。图2-1 串行通信与并行通信的对比2.2同步通信与异步通信 异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。异步通信以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)也是任意的,但每个字符中的各位是以固定的时间传送的。原理图如图2-2所示。图2-2 异步通信原理图同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步

20、关系。发送方对接收方的同步可以通过外同步和自同步两种方法实现。以下为自同步原理图如图2-3所示。a发送数据b接收时钟信号 图2-3 同步通信原理2.3 全双工方式与半双工方式mcs_51单片机有一个全双工串行口。全双工的串行通讯只需要一根输出线和一根输入线。数据的输出我们把它称发送数据(txd),数据输入时我们把它称接收数据(rxd)。串行通信中我们要解决两个技术问题,数据传送是一个、数据转换也是一个。数据传送我们需要解决送中的标准、传送中的格式和传送中的工作方式等问题。数据转换是指数据的串行和并行转换。具体说,在发送端,我们需要把并行传输的数据转换为串行传输的数据;但是在接收端,我们要把接收

21、到的串行传输的数据转换为并行传输的数据,当数据发送及接收分流时,采用两根不同的传输数据线传送的时候,通信的双方都可以在同一时间进行发送和接收数据的操作,以这样的传送方式传送我们就称为全双工制式,在全双工方式中,通信系统中的每一端都设置了发送器及接收器,因此,能控制数据同时地在两个方向上传送。全双工方式是不需要进行方向切换的,所以,没有因为切换操作而产生时间上的延迟,这些对不能有时间上的延误的交互式应用非常有利。但是此种方式要求通信的双方都有发送器及接收器,而且,我们需要两根数据线来传送数据信号。,前一个字符的回送过程及后一个字符的输入过程是同时进行的,也就是工作于全双工方式。图2-4是收发的波

22、特率相同的。图2-4全双工制式如果采用同一根传输数据线既要作接收又要作发送,虽然数据是可以在两个不同的方向上传送,但是通信的双方却不能同时进行数据的收发,这样传送的方式就称为半双工制,如图2-5所示。采用的是半双工制式的时候,通信系统中每一端发送器及接收器,是通过收和发的开关转接到通信线路上的,来进行的方向之间切换,所以,可能会产生时间上延迟。如图2-5。图2-5半双工方式2.4 串行异步通信 串行异步通信时,接收方不断地检测或监视串行输入线上的电平变化,当检测到有效起始位出现时,便知道接着是有效字符位的到来,并开始接收有效字符,当检测到停止位时,就知道传输的字符结束了。经过一段随机时间间隔之

23、后,又进行下一个字符的传送过程。通常接收端的采样时钟周期要比传输字符的位周期短,常用的采样时钟频率为位频率的16倍,采取这种措施是为了提高抗干扰能力 ,在串行通信中,二进制数据以数字信号的信号形式出现,不论是发送还是接收,都必须有时钟信号对传送的数据进行定位。在ttl标准表示的二进制数中,传输线上高电平表示二进制1,低电平表示二进制0,且每一位持续时间是固定的,由发送时钟和接收时钟的频率决定。2.5串行同步通信 同步通信指的是数据传送是以数据块做为单位的,字符和字符之间、字符内部的位和位之间都是同步的。同步串行通信的特点可以概括为:以数据块作为传送单位传送信息;在一个信息帧之内,字符和字符间没

24、有间隔;因为每一次传输的数据块中包含的数据比较多,因而接收时钟和发送进钟是严格同步的,所以通常我们的单片机设计中要有同步时钟。同步串行通信的数据格式是每个数据块或信息帧由3部分组成:  一个数据块为两个同步字符也就是信息帧,作为起始标志;n个连续传送的数据;  2个字节循环冗余校验码(crc)。 2.6 串口通信参数设置串口通信最重要的参数是停止位和奇偶校验、波特率和数据位。要进行两个端口的通信,就必须配置这些参数:波特率:这是一个通信速度衡量的参数。表示的是每一秒钟传送的bit个数。比如100波特是表示每一秒钟发送100个bit。如果我们说到的是时钟的

25、周期,那么指的就是波特率,例如协议需要2400波特率,那么时钟是2400hz。这就是说串口通信在数据线上的采样率为2400hz。通常电话线的波特率为36600,28800和14400。但是波特率是可以远远大于这些值的,同时波特率与距离是成反比的。高的波特率常用于放置得很近的仪器间通信,其中gpib设备的通信就是一个例子。数据位:是一个衡量通信中的实际数据位的一个重要参数。如果单片机发送了一个信息包时,实际的数据不可能一定就是8位,标准的值可能是5位、7位和8位。要怎样设置决定于你想传送什么样的信息。列如,一般标准ascii码采用的是0127(7位)。扩展的ascii码是0255(8位)。如果数

26、据使用标准 ascii码,那么他的一个数据包就是用7位数据的。每个包就是指一个字节,其中包括开始位和停止位,数据位和奇偶校验位。基于实际的数据位取决于通信协议标准,术语“包”指任何通信的情况。 停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可

27、以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。2.7 51单片机串行通信格式及波特率51单片机串口通信协议有4种方式,其中对1方式(8位),2,3方式(9位)的格式,中在每发送一个字节数据前都有一个起始位0,发送完毕一个字节后有一个停止位1,当想要

28、在sbuf写一个字节的数据流时,单片机会自动加上起始位,当ti=1时,就会自动加上停止位。也就是在串口通信时只需要设置,串口中断,串口模式,以及串口中断函数的处理,还有就是波特率。在本次设计的串行通信中,发送和接收数据时,们要对数据的速率肯定要有一个约定,我通过软件可以对mcs-51单片机的串行口编程制定四种工作方式。这其中,方式0及方式2的波特率是固定不变的,但是方式1和方式3的波特率是可以变的,它是由定时器t1溢出率决定。方式0时,移位时钟脉冲由56(即第6个状态周期,第12个节拍)给出,即每个机器周期产生一个移位时钟,发送或者接收一位数据。所以,波特率就可以是振荡频率的十二分之一,并不受

29、pcon寄存器中smod的影响,即:方式0的波特率fosc/12。方式1及方式3的移位时钟脉冲是由定时器t1的溢出率决定的,故波特率是由定时器t1的溢出率和smod的值共同决定,也就是方式1及方式3的波特率就可以写成2smod/32*t1溢出率。这其中,溢出率是取决于计数的速率和定时器预置的值。计数速率与tmod寄存器中c/t的状态有关。当c/t0时,计数速率fosc/2;当c/t1时,计数速率取决于外部输入时钟频率。  第三章 系统设计3.1系统整体框图要实现两mcs51单片单片机之间的串行通信就需要两rs232,分别接在各自的单片机上,然后再通过他们相连,两单片机实现了通信,才可

30、以继而实现开关控制led闪烁和控制温度显示等。总之本课题研究的内容最主要是实现两单片机的通信,led闪烁和温度控制是他实现的表现形式。由温度传感器给单片机发送温度,然后在lcd上显示,而后是控制led闪烁需要一个开关或按钮,和需要另外一个开关或按钮来实现控制数码管显示加1,这些通信都是两单片机之间的收发通信,而且是串行通信,所以我们不可能同时实现这些程序,当我们控制led闪烁后,需要控制数码管显示加1就得关闭控制led闪烁的开关,然后打开控制数码管的开关才能实现数码管显示加1。下面是整个系统的设计思想,用图形表示出来就是如图3-1。图3-1系统框图3.2两个rs232串口服务器之间的连接3.2

31、.1 max232芯片图3-2 设计中采用的max232芯片 图3-2 max232芯片其内部是由一个电源电压变换器组成的,它可以将输入的+5v电压转换成rs-232输出电平时所需的±12v的电压。所以采用这种芯片来实现接口电路特别方便,只需单一的+5v电源输入即可。max232芯片的引脚结构如上图所示。其中芯片的管脚16(c1+、v+、c1-、c2+、c2-、v-)是用于电源电压的转换,只要在外部接入相应的电解电容就可以了;管脚710及管脚1114构成了两组ttl电平与rs-232电平之间的转换电路,这些相对应的管脚就可以直接和单片机串行口的ttl电平引脚直接相连接了。3.2.2

32、rs232 连接方式两rs232把他们连接起来就可以构成一个实用的系统,用一个图就可以很清晰的看清楚他们之间的连接,如图3-3。 图3-3 两rs232的连接如果甲方准备好之后,乙方就会产生呼叫(ri)有效,同时也准备好(dsr)。同时甲方rts和cts相连接,而且还要和dcd互连。也即是,如果甲方请求发送(rts),就会得到允许(cts),同时,也可以使乙方dcd有效,这是就是检测到了载波信号。甲方的tx和乙方的rxd相连接,就是一发一收。 串行通信中,线路空闲时,线路的ttl电平总是高的,经反向rs232的电平总是低的,一个数据的开始rs232线路为高电平,结束时rs232线路为低电平,数

33、据总是总低位向高位一位一位的传输。ttl电平串行数据帧格式如图3-6:图3-4 ttl电平串行数据帧格式rs232电平串行数据帧格式如图3-5:图3-5 rs232电平串行数据帧格式用protues仿真软件画出实际rs232之间的连接电路图如图3-6。 图3-6 rs232之间的连接电路图rs232的标准就是将(+3v)-(+15v),(-3v)-(-15v)的电平作为通讯的高低电平使用,所谓的信号强弱是和电压、电流有关,通常rs232的通讯电流都在5ma-10ma左右,如果导线过长,电损耗相对也会加大,那么电压就会下降,这样便会影响到信号识别。 开始通信时,信号线为空闲(逻辑1)模式时,如果

34、检测到从1跳变到0时,便开始接收时钟吲数。如果检测到8个时钟,便要对对输入的信号进行检测,如果仍然是低电平,就确认这就是“起始位”,而不是干扰得信号;在起始位被收端检测到后,这期间隔16个接收的时钟,每检测一次输入信号,就会把相对应的值作为do的位数据。如果是逻辑1的话,则作为数据位1。每当隔16个接收时钟的时候,对输入的信号再检测一次,我们就把相对应的值作为d1位数据,直到全部数据位都已经输入;当检测校验位p和数据位个数及校验位之后,接下来通信接口电路则会收到停止位如果此时没有收到逻辑1,就是出错了,在状态寄存器中设置”帧错误晰志;在这一帧信息全部都接收完之后,我们把线路上所有出现的高电平作

35、为空闲位;每当信号再一次变为低电平的时候,就会开始进入下一帧检测。这其中,字符帧开头的开头是起始位,总共占1位,始终都为逻辑0电平,用于表示接收设备向发送端开始发送信息。始位之后就是数据位,他们可以设置成5、6、7、8位,低位的在前高位的在后。数据位之后是奇偶校验位,仅仅占一位,用它来表示单片机串行通信中采用的是奇校验还是偶校验。 3.3时钟电路的作用时钟电路的核心是个比较稳定的晶体振荡器,晶体振荡器产生正弦波,把频率进行分频,处理,形成时钟脉冲,提供一个符合单片机要求的脉冲宽度和电平范围的复位信号,以使单片机回到初始状态重新开始。在mcs51单片机片内是一个高增益反相放大器,输入端为xtal

36、1为反相放大器,xtal2为输出端,由该放大器构成的振荡电路和时钟电路便构成了单片机时钟方式。根据电路的不同,单片机的时钟方式可分为内部时钟方式及外部时钟方式两种。本次设计我用到的是内部方式时钟。在内部方式时钟电路中,我们要在xtal1和xtal2引脚两端跨接上石英晶体振荡器及两个微调电容构以成振荡电路,通常c1和c2一般取30pf,晶振的频率取值在1.2mhz12mhz之间。对于外接时钟电路,要求xtal1接地,xtal2脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12mhz即可。晶体振荡器的振荡信号从xtal2端送入内部时钟电路,它将该振荡信号二分频,产

37、生一个两相时钟信号p1和p2供单片机使用。时钟信号的周期称为状态时间s,它是振荡周期的2倍,p1信号在每个状态的前半周期有效,在每个状态的后半周期p2信号有效。cpu就是以两相时钟p1和p2为基本节拍协调单片机各部分有效工作的。如图3-7是内部方式的时钟电路。 图 3-7 内部方式时钟电路3.4 led的接入图3-8 发光二极管的接入3.5温度采集与显示3.5.1 ds18b20温度传感器ds18b20内部主要由4部分组成:64位光刻rom、温度传感器、非易失性温度报警触发器th和tl、配置寄存器等。以下是ds18b20的内部结构图,如图3-9。图 3-9 ds18b20的内部结构图3.5.2

38、温度传感器与单片机的连接ds18b20与51单片机的连接非常简单,只须把ds18b20的数据线dq与51单片机的一根并口线连接即可,51单片机通过这根并口就能实现对ds18b20的所有操作,ds18b20的电源可采用外部电源供电,也可采用内部寄生电源供电。当外部电源供电时,vdd接外部电源,gnd接地。当采用内部寄生电源供电时,vdd与gnd一起接地。另外,也可用多片ds18b20连接组网形成多点测温系统,在多片连接时,ds18b20必须采用外部电源供电方式。本次设计采用的是外部电源供电方式,b机与温度传感器电路连接如图3-10。图3-10 温度传感器与mcs51单片机(b机)的连接3.5.3

39、 b机控制ds18b20温度转换 根据ds18b20的通信协议,b机控制ds18b20完成温度转换必须经过三个步骤:每一次读写之前都要对ds18b20进行复位,在复位成功之后就会发送rom指令一条,最后就是发送ram指令了,这样就能对ds18b20温度传感器进行预定操作。每一次的命令及数据的传输都是从b机主动启动写时序开始,如果要a机回送数据,在进行命令的编写后,b机需要启动读时序完成数据接收。数据及命令的传输都是低位在前。时序分为初始化的时序,读时的时序和写时的时序。复位时要求b机cpu将数据线下拉500s,然后释放,ds18b20收到信号后等待1560s左右,后发出60240s的低电平,b

40、机cpu收到此信号则表示复位成功。 读时序可以分为读“0”时时的时序和读“1”时的时序两个过程。对于ds18b20温度传感器的读时序是从b机把单总线拉低,之后15s之内释放a机,以让ds18b20温度传感器把数据传输到a机上。ds18b20温度传感器完成一个读的时序最少需要60s。 对于ds18b20的写时的时序仍然是分为写“0”时序和写“1”时序两个过程。ds18b20温度传感器写“0”时序和写“1”时序的要求有所不同,当我们要写“0”时序时,单片机的单总线就会被拉低最少60s,以保证ds18b20温度传感器能够在15s到45s之间正确地采样总线上的“0”电平;当要写“1

41、”时,单总线被拉低之后,在15s之内就得释放a机。3.5.4 lcd和数码管与单片机的连接和排阻的接入3.5.4.1 排阻的选择排阻,是一排电阻的简称。一个排阻是由n个电阻构成的,那么它就有n+1只引脚,我们知道,内存在处理、传输数据时会产生大小不一的工作电流。而在内存颗粒走线的必经之处安装一排电阻,则能够帮助内存起到稳压作用,让内存工作更稳定。从而提升内存的稳定性,增强内存使用寿命。上拉、限流。和普通电阻一样,相比而言简化了pcb的设计、安装,减小空间,保证焊接质量。在mcs51单片机中,当p0口的一个位写入0时,这个位被拉低。但是对p0口的其中一个位写入1时,这个位呈现高阻,也就是未能连机

42、,不能使用。要想获得1输出,你必须在p0口外加上拉电阻。 p1口具有内部上拉电阻,当端口用作输入时,必须通过指令将端口的位锁存器置1,以关闭输出驱动场效应管,这时p1口的引脚由内部上拉电阻拉为高电平,所以向p1写入1,工作正常。p0则不同,它没有内部上拉电阻,在驱动场效应管的上方有一个提升场效应管,它只是在对外存储器进行读写操作,用作地址/数据时才起作用,当向位锁存器写入1,使驱动场效应管截止,则引脚浮空,所以写入1而未获得。p0口上拉电阻阻值的选择,驱动lcd,那么用1k左右的上拉就行了。如果希望亮度大一些,电阻可减小,最小不要小于200欧姆,否则电流太大;如果希望亮度小一些,电阻可增大,增

43、加到多少呢,主要看亮度情况,以亮度合适为准,一般来说超过3k以上时,亮度就很弱了,但是对于超高亮度的lcd,有时候电阻为10k时觉得亮度还能够用。但是要注意上拉电阻的阻值太大的时候,容易产生干扰,尤其是线路板的线条很长的时候,这种干扰更严重,这种情况下上拉电阻不宜过大,一般要小于100k,有时候甚至小于10k。3.5.4.2 lcd、数码管接入本次设计采用的排阻是respack-8,共9个脚。其中第1脚接vcc,2至9脚接p0口。数码管接单片机p1口,而p1口有内部上拉电阻,本次设计中采用的只是8段数码管,所以数码管就不用加上拉电阻。其中lcd和单片机之间采用空中接口连接。如图3-11。 图3

44、-11 lcd和数码管的接入3.6整体电路 综上所述,我们从图3-1已经知道了整个电路图的布局,而且也分别研究了各个分系统,图3-1主要是设计的主体思路,方框来大体的表示要用到的电子元器件,这样可以很直观的看出设计的系统思想,对画电路图和写程序有一定的帮助。也可以使读者很快看出我的设计思想。最后把以各部分联系起来,我们就可以采用proteus可以很快画出系统电路图,发送方的数据由串行口txd段输出,经过电平转化芯片max232将ttl电平转换成rs232电平输出,经过传输线将信号传送到接收端,接收端也使用mx232芯片进行电平转换,信号到达接收方串行口的接收端。led的接入放在p2口,p1.2

45、-p1.7口是准双向接口,可以做输入或输出口使用,所以k2放在p1.7口,p3口为多功能口,它的每一位都有各自的第二功能,所以k1放在p3.7口,具体接口在程序里控制好就可以了。下图是整个系统的电路图,如图3-11。图 3-11 整个系统电路图 第四章 软件调试4.1程序流程图 4.1.1串行接口流程图串行接口可以将来自单片机cpu的并行数据字符转换成连续的串行数据流发送出去,同时可将接收到的串行数据流转换为并行数据字符供给单片机cpu器件。完成这种功能的电路,我们一般称为串行接口电路。串口发送和接收字节按位(bit)进行。虽然比起按字节(byte)的并行通信速度慢,但是串口可以在使用一根线发

46、送数据的时候用另一根线同时接收数据。 图4-1 串口通信程序流程图4.1.2 k1、k2键程序流程图 图 4-2 k1、k2程序流程图4.1.3温度采集与显示子程序流程图图4-3 温度采集与显示程序流程图4.1.4 主程序流程图单片机程序主要包括串行数据采集模块和串行数据传输模块,收发时a机先向b机发送“请求b机发送”命令,要求b机发送数据;b机收到该命令后返回一个“发送准备好”命令;a机收到“发送准备好”命令后,准备接收数据块;接着传输数据,通信结束后返回到初始状态。b机向a机发送程序时则反过来。下面是整个系统的程序流程图,如图4-4所示。图4-4 主程序流程图4.2程序的调入与仿真结果通过

47、编程器生成的,扩展名为.hex的可执行文件烧写到单片机内。在写入之前还可以进行软件仿真,既在软件上模拟单片机程序原形情况,以便进行调试和修改。本次设计就是做软件仿真,模拟单片机程序原型。仿真结果如图4-5。下图是先按下开关k2,按5下,数码管显示4;然后按下开关k1,a机的两led就一直在闪烁。lcd里的初始温度显示14 ;ds18b20 里可以对温度进行加减,图示温度是我已经按了5下里的ds18b20上键了。图4-5 系统仿真图为了结果清晰可见,对各部分程序实现的仿真截图如下,图4-6 是在初始化程序开始后连续按了3下k2。 图4-6 数码管显示加1图4-7 是温度传感器,这protues仿

48、真中,用它来调节lcd上显示的温度。 图 4-7 温度传感器 图4-8 lcd显示温度 图4-9 k1控制的两led闪烁第五章 论文总结mcs51单片机的串行口是一个全双工串行口,可同时发送和接收数据。它有4种工作方式,不仅可用于扩展并行输入,输出口,而且可用于单片机与单片机,单片机与pc及之间的异步通信。通过对与串行口有关的特殊功能寄存器(sfr)、串行控制寄存器(scon)、电源控制器(pcon)和定时器的编程设置,串行口可工作在不同的模式,不同的速度,从而实现不同的通信功能。mcs51单片机与其它设备进行通信时,仅需一至两根导线,适用于长距离信息传输。因此,mcs51单片机串行口通信技术

49、是当今成熟而又应用非常广泛的一种通信技术。串行通信是cpu与外界交换信息的一种基本通信方式。通信时仅需一到两根传输线,且每次只能传送一位,适用于长距离传输,但速度较慢。51系列单片机有一个可编程的全双工串行通信接口,它可作异步接收发送器用,也可做同步移位寄存器用,其帧格式可有8位、10位或11位,并能设置各种波特率,给使用带来很大的灵活性。51系列单片机有两个物理上独立的接收、发送缓冲器sbuf,可同时发送、接送数据。发送缓冲器只能写入,不能读出,接收缓冲器只能读出、不能写入。串行发送接收的速率与波特率发生器产生的移位脉冲同频。51系列单片机用定时器t1或直接用cpu时钟作为通信波特率发生器的

50、输入,在串行接口的不同工作方式中,波特率发生器从两个输入信号中选择一个分频,产生移位脉冲来同步串口的接收和发送,移位脉冲的速率即是波特率。通过本次毕业设计,然我对单片机有了一个全面的了解和学习,对51单片机管脚,时钟电路,上拉电阻,温度传感器有比较深刻的印象,对单片机有了一定的兴趣,希望以后有时间及机会再研究单片机。但是在本次毕业设计中,对于初学者的我,明显对基础知识掌握的不够好,以至于困难重重。在以后的学习生活中,我一定会学会脚踏实地的做好每一件值得做的事。 参考文献1沙爱军, 基于单片机的超声波测距系统的研究与设计j电子科技,2009,22(11)2胡汉才单片机原理与其接口技术(第二版)m

51、北京:清华大学出版社,20043彭伟,单片机c语言程序设计实例100例.电子工业出版社.2009,064 高峰 . 单片微机应用系统设计及实用技术. 北京:机械工业出版社,20044 陈光东,赵性初 . 单片微型计算机原理与接口技术. 武汉:华中科技大学出版社,19956夏继强 . 单片机实验与实践教程. 北京:北京航空航天大学出版社, 2001 7张传新,徐少杰pc机与mcs-51单片机主从多机通信控制程序的研究j.伊图里河分局研究所,铁路计算机应用第5卷第2期 p10-128黄亮基于at89c51单片机的串行通信程序设计j. 中国地质大学,单片机实用电子制作29-32谢辞光阴似箭, 日月如

52、棱。 三年的时间, 在我漫长的人生旅途中显得那么短暂,到了该告别的时候了,一念至此,竟有些恍惚。如果把大学生活看作一场场循环的演出,那么我只是一个安静的演员。这篇毕业论文也将是这种循环演出即将告一段落时的谢幕词。但是,这短短的三年是最真诚的青春,是最纯真的岁月,是最美丽的大学生活 我的自学能力在这里得提升,我感谢所有的恩师:是您们赋予我最有意义的收获;给我一个全新的角度去发现美、创造美、欣赏美,给我美的眼睛去发现世界的美,感悟生活的美;教会我珍惜友谊和时间;给了我看世界的眼睛,是你们用博大的胸怀,给予我们最无私的关怀和奉献。 附录串口通信子程序:#include<reg51.h>v

53、oid main (void)  scon=0x50; th1=0xfd; tr1=1; ea=1;/打开总中断     es=1;/打开串口中断while(1) /主循环不做任何动作       void uart_ser(void)interrupt 4 /串行中断服务程序  unsigned char temp;/定义临时变量    

54、;   if(ri) /判断是接收中断产生       ri=0; /标志位清零     temp=sbuf; /读入缓冲区的值       p1=temp; /把值输出到p1口       sbuf=temp;    if(ti) /如果

55、是发送标志位,清零      ti=0; 发光二极管子程序:#include<reg51.h>void delay1ms(unsigned int count)unsigned int i,j;for(i=0;i<count;i+)for(j=0;j<120;j+);main()unsigned char ledindex=0;bit leddirection=1;while(1)if(leddirection)p2=(0x01<<ledindex);elsep2=(0x80>>ledindex); if(ledindex=7)leddirection=!leddirection;ledindex=(ledindex+1)%8;delay1ms(500);显示子程序:#include<reg51.h>#include"lcd1602.h"sbit k1=p37; unsigned char table10=0xc0,0xf9,0xa4,0xb0,0x9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论