版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉工程大学邮电与信息工程学院 毕业设计(论文)PAGE 目录(ml) TOC o 1-1 h z u HYPERLINK l _Toc421186935 HYPERLINK l _Toc421186936 摘 要 PAGEREF _Toc421186936 h I HYPERLINK l _Toc421186937 Abstract PAGEREF _Toc421186937 h II HYPERLINK l _Toc421186938 第一章 绪论(xln) PAGEREF _Toc421186938 h 1 HYPERLINK l _Toc421186939 第二章 方案设计 PAGER
2、EF _Toc421186939 h 2 HYPERLINK l _Toc421186940 2.1设计(shj)的任务 PAGEREF _Toc421186940 h 2 HYPERLINK l _Toc421186941 2.2单片机串行通信的基本概念 PAGEREF _Toc421186941 h 2 HYPERLINK l _Toc421186942 2.3通信方案 PAGEREF _Toc421186942 h 6 HYPERLINK l _Toc421186943 2.4主从控制的设计方案 PAGEREF _Toc421186943 h 8 HYPERLINK l _Toc4211
3、86944 第三章 硬件设计 PAGEREF _Toc421186944 h 11 HYPERLINK l _Toc421186945 3.1单片机串行口硬件结构介绍 PAGEREF _Toc421186945 h 11 HYPERLINK l _Toc421186946 3.2 Protues简介 PAGEREF _Toc421186946 h 11 HYPERLINK l _Toc421186947 3.3 Protues 仿真总体电路硬件设计 PAGEREF _Toc421186947 h 12 HYPERLINK l _Toc421186948 3.4 输入模块的设计 PAGEREF
4、_Toc421186948 h 14 HYPERLINK l _Toc421186949 3.5 显示模块的设计 PAGEREF _Toc421186949 h 15 HYPERLINK l _Toc421186950 3.6 控制模块的设计 PAGEREF _Toc421186950 h 16 HYPERLINK l _Toc421186951 3.7时钟电路模块的设计 PAGEREF _Toc421186951 h 17 HYPERLINK l _Toc421186952 3.8复位模块的设计 PAGEREF _Toc421186952 h 18 HYPERLINK l _Toc42118
5、6953 第四章 软件设计 PAGEREF _Toc421186953 h 19 HYPERLINK l _Toc421186954 4.1开发环境 PAGEREF _Toc421186954 h 19 HYPERLINK l _Toc421186955 4.2 编程思路 PAGEREF _Toc421186955 h 20 HYPERLINK l _Toc421186956 4.3 主机串口通信控制子程序设计 PAGEREF _Toc421186956 h 20 HYPERLINK l _Toc421186957 4.4主机控制程序设计 PAGEREF _Toc421186957 h 21
6、HYPERLINK l _Toc421186958 4.6从机控制程序设计 PAGEREF _Toc421186958 h 25 HYPERLINK l _Toc421186959 第五章 仿真与调试 PAGEREF _Toc421186959 h 28 HYPERLINK l _Toc421186960 总 结 PAGEREF _Toc421186960 h 30 HYPERLINK l _Toc421186961 致 谢 PAGEREF _Toc421186961 h 31 HYPERLINK l _Toc421186962 参考文献 PAGEREF _Toc421186962 h 32
7、HYPERLINK l _Toc421186963 附录1 主机控制程序代码 PAGEREF _Toc421186963 h 33 HYPERLINK l _Toc421186964 附录2 从机控制程序代码 PAGEREF _Toc421186964 h 37武汉工程大学邮电与信息工程学院 毕业设计(论文)- PAGE 49 -武汉工程大学邮电与信息工程学院 毕业设计(论文)- PAGE I -摘 要单片机应用于数据采集或工业控制时,往往需要安装在工业现场,远离主机,构成单片机多机系统,在多机系统中经常采用总线型主从多机控制系统。主机发送的信息可传送到各个从机,而各从机发送的信息只能被主机接
8、受。单片机的相互通信(tng xn)有并行通信和串行通信两种,在主从多机控制系统中,经常采用串行通信来交换数据和信息,采用串行通信的方式将现场数据发送给主机处理。主从控制方式已经在工业中广泛的运用。在主从控制系统中,单片机的通信由上位机(单片机)控制。主机向各个(gg)从机发送命令或者接受从机反馈的信息,主机有权修改从机的参数,接受从机的数据,还可以查看从机的状态,可以说主机是主从控制的大脑。本课题(kt)所讨论的就是基于AT89C51单片机的主从控制系统,采用串行通信的方式,主机和从机可以实现全双工通信,主机可以向从机发送数据,从机也可以向主机发送数据。关键词:单片机;主从控制;串行通信;全
9、双工AbstractMicrocontroller used in data acquisition and industrial control often needs to be installed in the industrial field, away from the host, constitute a single chip multi-machine system, often in multi-machine system using bus-based master-slave multi-machine control system. Host sends the in
10、formation can be sent to each slave, and the information sent from the machine can only be host to accept. MCU communicate with each other are two kinds of parallel communication and serial communication, in the main from the multi-machine control systems, often using serial communication to exchang
11、e data and information, using serial communication means to send to the host processing field data.The master-slave control method has been widely used in industry. In the master-slave control system, the communication of the microcontroller (MCU) by the host computer control. Host to each from the
12、machine to send commands or receive feedback information from the machine, the host has the right to modify the parameters of the slave to accept data from the machine, you can also view the status of the slave, can be said that the host is the master-slave control of the brain.The subject under dis
13、cussion is based on master-slave control AT89C51 SCM system, using serial communication means, master and slave can be full-duplex communication, the host can send data to the slave, the slave can send data to the host.Key words: SCM;Master Control;Serial Communication;Full-duplex- PAGE 1 -第一章 绪论(xl
14、n)随着多微机系统的广泛应用和计算机网络技术的普及(pj),计算机的通信功能显得越来越重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。这种信息交换可以分成两大类:并行通信和串行通信1。并行(bngxng)通信通常是将数据字节的各位用多条数据线同时进行传送。并行通信除了数据线外还有通信网络控制线。数据发送方在发送数据之前,要询问接受对方是否“准备就绪”。数据接收方收到数据后,要向数据发送方回送数据已经接受到的“应答”信号2。并行通信的特点是:控制简单,传输速度快。由于传输线较多,长距离传输时成本高且接收方的各位同时接受存在困难3。串行通信是将数据字节分成一位一位的形式在一条传
15、输线上逐个地传送。串行通信时,数据发送设备先将数据代码又并行形式转换成串行形式,然后一位一位地放在传输线上进行传送。数据接收设备将接收到的串行形式转换成并行形式进行存储或处理。串行通行的特点是:传输线少,长距离传送时成本低,且可以利用电话网等现成设备。但数据的传送控制比并行通信复杂3。在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息。AT89C51单片机有一个可编程的全双工串行通信口,它可作为UART(通信异步收发器),也可作同步移位寄存器。其帧格式可为8位、10位或11位,并可以设置多种不同的波特率。通过引脚RXD(P3.0,串行数据接收引脚)和引脚TXD(P
16、3.1,串行数据发射引脚)与外界进行通信。AT89C51单片机的串行口位计算机间的通信提供了极为便利的条件。利用单片机的串行口还可以方便地扩展键盘和显示器,对于简单的应用非常便利4。单片机构成的多级系统常采用主从式结构结构。所谓主从式,即在数个单片机中,有一个是主机,其余的是从机,从机要服从主机的调度和支配5。AT89C51单片机的串行口方式2和方式3适于这种主从式的通信结构。第二章 方案设计2.1设计(shj)的任务(rn wu)本次设计的题目是主从控制系统设计,它是实际工程(gngchng)应用的简化,它利用单片机,单片机组成主从控制系统,单片机控制BCD数码管进行简单的显示,开发编程使用
17、Protues和keil51开发软件实现,单片机之间采用TTL进行通信。故设计任务大致可分为下面几部分:(1)设计一个具有控制功能的主机,可显示主机工作状态和当前串口数据;(2)设计两个从机,可以接收主机信号并根据信号相应接收或发送数据;(3)设计主机的三种工作状态,A:数据发送 B:数据汇总 C数据加一;(4)设计主机和从机的显示部分均通过BCD码-七段数码管显示,控制部分通过按钮和开关实现。2.2单片机串行通信的基本概念2.2.1串行口控制寄存器 AT89C51内部拥有很多特殊的寄存器其中SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发射器寄存器,可以实现全双
18、工通信。但这两个寄存器具有同一地址(99H)。AT89C51的串行数据传输很简单,只要向缓冲器写入数据就可发送数据。而从接收缓冲器读出数据既可接收数据。此外,接收缓冲器前还加上一级输入移位寄存器,AT89C51这种结构的目的在于接收数据时避免发生重叠现象,文献称这种结构为双缓冲结构。而发送数据就不需要这样设计,因为发送时,CPU是主动的,不可能出现这种情况6。A:串行通信寄存器SCON控制寄存器是一个可寻址的专用寄存器,用于串行数据通信的控制,单元地址是98H,其结构格式如下:表2-1 SCON寄存器结构(jigu)SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8T
19、IRI位地址9FH9EH8DH9CH9BH9AH99H98H下面(xi mian)对个控制位功能介绍如下:SM0、SM1:串行口工作(gngzu)方式控制位 SMO SM1 工作方式 功能说明 0 0 方式0 移位寄存器方式(用于I/O扩展) 0 1 方式1 8位UART,波特率可变(T1溢出率/ n) 1 0 方式2 9 位UART,波特率为fosc/64或fosc/32 1 1 方式3 9位UART,波特率可变(T1溢出率/ n) (2)SM2:多机通信控制位多机通信是工作方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作方式2或3,以及SM2=1时,只有当接收到第9位
20、数据(RB8)为1时,才把接收的前8位数据送入SBUF,且置位RI发出中断申请,否则会将收到的数据放弃。当SM2=0时,只有在接收到有效停止位时才启动RI,若没接收到有效停止位,则RI清“0”。在方式0中SM2应该为“0”。REN:允许接收控制位。由软件置“1”时,允许接收;软件置“0”时,不许接收。TB8:在方式3和方式3中要发送的第9位数据,需要时用软件置位和清零。RB8:在方式2和方式3中是接收到的第9位数据。在方式1时,如SM2=0,RB8接收到的停止位。在方式0中,不使用RB8。TI:发送中断标志。由硬件在方式0发送完第8位时置“1”,或在其它方式中串行发送停止位的开始时置“1”。必
21、须由软件清“0”。RI:接收中断标志。由硬件在方式0串行发射第8位结束时置“1”B:特殊功能寄存器PCONPCON:主要是是CHMOS型单片机的电源控制而设置的专用寄存器,单元地址为87H其机构格式如下表:表2-2 特殊(tsh)功能寄存器PCON PCOND7D6D5D4D3D2D1D0位符号SMODGF1GF0PDIDLC:中断(zhngdun)允许寄存器IE中断允许寄存器这里(zhl)重述一下对串行口有影响的位ES。ES为串行中断允许控制位,ES=1允许串行中断,ES=0,禁止串行中断1。2.2.2串行口工作方式一、方式0方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输
22、入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。 二、方式1方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位。用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一
23、次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。三、方式2和方式3方式2或方式3时为11位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚 。方式2和方式3时起始位1位,数据9位(含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8),停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。发送(f sn)开始时,先把起始位0输出到TXD引脚,然后发送移位寄存器的输出位(D0)到TXD引脚。
24、每一个移位脉冲都使输出移位寄存器的各位右移一位,并由TXD引脚输出。第一次移位(y wi)时,停止位“1”移入输出移位寄存器的第9位上 ,以后每次移位,左边都移入0。当停止位移至输出位时,左边其余(qy)位全为0,检测电路检测到这一条件时,使控制电路进行最后一次移位,并置TI=1,向CPU请求中断。接收时,数据从右边移入输入移位寄存器,在起始位0移到最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的第9位数据为1)时,接收到的数据装入接收缓冲器SBUF和RB8(接收数据的第9位),置RI=1,向CPU请求中断。如果条件不满足,则数据丢失,且不置位RI,继续搜索RXD引脚的
25、负跳变7。2.2.3波特率的计算在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。方式0的波特率 = fosc/12方式2的波特率 =(2SMOD/64) fosc 方式1的波特率 =(2SMOD/32)(T1溢出率)当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。
26、这时溢出率取决于TH1中的计数值。T1 溢出率 = fosc /12256 (TH1)在单片机的应用中,常用的晶振频率为:12MHz和11.0592MHz。所以,选用的波特率也相对固定。串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:确定T1的工作方式(编程TMOD寄存器);计算T1的初值,装载TH1、TL1;启动(qdng)T1(编程TCON中的TR1位);确定(qudng)串行口控制(编程SCON寄存器);串行口在中断(zhngdun)方式工作时,要进行中断设置(编程IE、IP寄存器)8。2.3通信方案2.3.1通信规则串行通信是指所传
27、送数据的各位按顺序一位一位地发送或接收。在串行通信中,按数据传送方向可分为单工制式、半双工制式、全双工制式。下面对这几种方式进行简要说明:(1)单工:在此方式下,A、B两机之间只允许单向传输数据,只能A机发送,B机接收。(2)半双工:在这种制式下,双机允许双方向传送,但它们之间只有一个通信回路,即接收和发送不能同时进行,只能分时发送和接收A机发送B机接收或A机接收B机发送。因此,只需要一条数据线连接A、B机。(3)全双工:在此方式下,A、B机之间数据的发送和接收可以同时进行,所以必须使用两根数据线。不管哪种形式的串行通信,在两机之间都需要共地线9。2.3.2通信协议单片机的通信协议可由用户自行
28、定义,本次设计采用了在保证系统可靠性方面较好的一种方法。多机通信是,主机发送的信息分地址和数据两类。以第9位数据位作为区分标志,SCON的TB8为1表示地址,为0表示数据。通信以主机发送信息,从机接收信息开始。主机发送时,通过设置TB8的状态来区分发送的是地址还是数据。而从机方面,为了接收信息,初始化时应将SCON的SM2位置1.因为多机通信时,串口均工作在方式2或方式3,接收数据要受SM2控制。当SM2=1,只有接收到的第9位RB8(由主机的TB8的状态确定)也为1时,才将数据送入SBUF,并置位RI,供查询或中断;否则接收的数据被舍弃,不置位RI。而当SM=0时,无论接收到的第9位RB8是
29、0还是1,都把接收的数据送至SBUF,并置位RI,供查询或中断。通信开始后,主机首先发送地址。各从机接收地址时,由于SM2=1、RB8=1,因此各从机都能置位RI,在程序中判断主机发送的地址与本机地址是否相符(xingf)合。若相符则把该从机的SM2位清零,以准备接收其后传来的数据。其余从机由于地址不符,仍保持SM2=1的状态。此后主机发送的数据,由于TB8=0,虽然各从机都能收到,但只有SM2=0的那个(n ge)从机才把数据送入SBUFF。其余各从机皆因SM2=1、RB8=0,而将数据舍弃。这就是多机通信中主从机一对一的通信情况,通信智能(zh nn)在主从机之间进行。若要进行两个从机之间
30、的通信,需要通过主机做中介才能实现1。2.3.3通信方式不同的独立系统相互交换数据便是通讯。通讯的目的是交换数据,既数据通过设备传输到另一个设备中去。人与人之间的对话,计算机与其他设备或者计算机间的数据交换,广播都可以说是通讯。就通信而言,在微型计算机系统中,主机与外部的基本通信方式有两种:并行通信(Parallel Communication)数据的所有位同时传输,一次传输8位;串行通信(Serial communiaction)数据的各位一位一位顺序传输,既一个电压标准。在单片微型内部或与极近距离的外部一般都采用并行传输方式,其特点是传输速度快,效率高,但需多根总线。并行通讯是串行通讯速度
31、的8倍,在与外部距离较远的数据传输时多采用串行通信,其特点是只需要一对传输线,大大节省传输线及有关设备,成本低,但传输速度慢,效率低。串行通信是将构成数据或字符的每个二进制码位。按照一定的顺序逐位进行传输,其传输有两种基本的通信方式:同步和异步。 同步通信的基本特征是发送与接收时钟需始终保持严格的同步。由于串行传输是一位位顺序进行的,为了约定数据是由哪一位开始传输,需要设定同步字符,称起始同步等。通信时每位所占的时间均相等。 同步接收端在一次串行传输开始时,即进入“监视同步字符串的搜索方式”,一旦检测到设定的同步字符串后,就从同步字符串后的第一位数符开始计数,按约定的数据段进行接收。 同步串行
32、通信方式常用于传输信息量大,速度要求(yoqi)较高(可达800KB/S)的场合。因为它要求由时钟来实现接收/发送之间的严格同步,对时钟信号的相位一致性要求非常严格,因此其硬件设备复杂,成本高,一般串行通信中较少用10。2.4主从(zhcng)控制的设计方案 根据设计(shj)任务的要求以及指导老师的意见(实际设计的下位机可以连接多台,我们根据设计要求,用了2台),制定出本次设计的框图如下: 主机(AT89C51)TXDRXD TXD RXD 1#AT89C51从机 TXD RXD0#AT89C51从机图2-1设计框图 图2-3系统硬件结构图框图说明如下:主机与从机之间采用TTL电平通信接口进
33、行通信,它的通信距离可以为1.5米,两片单片机在此距离内串行口可直接相连从机我们采用的是AT89C51,AT89C51的基本结构包括用于执行各种指令和运算处理的中央处理器CPU,用于存放可以读写的内部程序存储器RAM,用于存放程序指令或数据表格的内部程序存储器ROM,4个8位的并行I/O口P0、P1、P2、P3,用做外部事件计数器或内部定时的2个定时器/记数器,具有5个中断源的中断系统(2个定时器中断、2级中断服务程序嵌套,每个中段源都可用程序规定为高优先中段或低优先级中段),1个串口接口电路,内部时钟电路(本设计采用的是11.059mhz)。AT89C51和外设备或者外部存储器的连接。连接方
34、式采用3总线结构方式(控制(kngzh)、地址、数据),在AT89C51单片机中没有单独的地址总线和数据总线,而是采用的分时复用的方式,与通用的并行口P0、P2接口(ji ku)公用。P0口分时用做低8位地址线和数据线。P2口用做高8位的地址线。单片机内部的地址线和数据线都不是独立的总线,而是与并行I/O口公用(gngyng)。图2-2单片机硬件结构图AT8951的存储器结构。物理上有4个存储器空间:片内程序存储器ROM 片外存储器ROM、片内数据存储器RAM,从市容的角度来看,它有3个存储器空间:称为CODE空间 的片内外统一的64kb的ROM;128字节的的片内RAM 称为XDATA空间的
35、64kb的外部RAM。 为了实现一台单片机与多台单片机通信的目的,必须保证串口具有识别功能。串行口控制寄存器SCON中的SM2位就是为满足这一条件而设置的多机通信控制位。其工作原理是在串行口以方式2或方式3接收时,若SM2=1,则表示进行多级通讯,这时可能出现一下两种情况:(1)从机接收主机发来的第9位数据RB8=1时前8位数据才装入SBUF,并置断标志RI=1,向CPU发出中断请求。在中断服务程序中,从机把接收的SBUF中的数据存入数据缓冲区中。(2)如果从机接收主机(zhj)发来的第9位数据RB8=0时,则不产生中断标志RI=1,不引起中断,从机不接收主机(zhj)发来的数据。若SM2=0
36、,则接收的第9位数据(shj)不论是0还是1,从机都将产生RI=1的中断标志,接收的数据装入SBUF中。应用AT89C51单片机串行口这一特征,可实现AT89C51单片机的多机通信。通信的工作过程如下:(1)各从机初始化程序允许从机的串行口中断,将串行口编程为方式2火方式3接收,即9位异步通信发方式,且SM2和REN位置1,使从机只处于多机通信且接收地址帧的状态。(2)在主机和某个从机通信之前,先将从机地址(即准备接收数据的从机)发送给各个从机,接着才传送数据或命令,主机发送的地址帧信息的第9位为1,数据或命令帧的第9位为0.当主机向各从机发送地址帧时,各从机的串行口接收到的第9位信息RB8为
37、1,且由于各从机的SM2=1,则中断标志位RI置1,各从机响应中断。在中断服务子程序中,各从机判断主机送来的地址是否和本机地址相符合,若为本机地址,则该从机SM2位清零,准备接收主机的数据或命令;若地址不相符,则保持SM2=1状态。接着主机发送数据或命令帧,数据帧的第9位为0。此时各从机接收的RB8=0,自己有与前面的地址相符合的从机系统(即SM2位清零的从机)才能激活中断标志位RI,从而进入中断服务程序,在中断服务程序中接收主机发来的数据或命令;与主机发来的地址不相符的从机,由于SM2保持为1,又RB8=0,因此不能激活中断标志位RI,也就不能就收主机发来的数据帧,从而保证了主机与从机之间通
38、信的真确性。此时与从机建立联系的从机已经设置为单机通信模式,即在真个通信中,通信的双方都要保持发送数据的第9位即TB8位为0,防止其他从机误接收数据。(3)结束数据通信并为下一次的多机通信做好准备。在多机通信系统中每个从机都被赋予唯一的一个地址。当主机与从机的数据通信结束后,将从机再次设置为多机通信模式,以便进行下一次的多机通信3。第三章 硬件(yn jin)设计3.1单片机串行口硬件结构(jigu)介绍AT89C51单片机共有(n yu)2个串行I/O口,分别记为RXD(P3.0,串行数据接收端)和TXD(P3.1,串行数据发送端)。AT89C51单片机串行接口是一个可编程的全双工串行通信接
39、口。它可用作异步通信方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的8051多机系统也能通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。AT89C51单片机通过管脚RXD和管脚TXD与外界通信。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。P3.0和P3.1位电路结构图如下图3-1所示。图3-1 P3.0与P3.1口位电路结构图3.2 Protues简介Protues软件是由英国Labcenter Electronics 公司开
40、发的EDA工具软件,已有近20年的历史,在全球得到了广泛的应用。Protues软件的公呢个强大,它集电路设计、电路仿真及制版等多功能于一身,不仅能够对电工、电子技术学科设计的电路进行设计与分析,还能对微处理器进行设计和仿真,并且功能齐全,界面多彩,是近年来备受电子设计爱好者青睐的一款电子线路设计与仿真软件113.2.1 Protues软件(run jin)组成Protues系统包括ISIS.EXE(电路原理图设计、电路原理仿真)、ARES.EXE(印刷电路板设计)两个主要程序三大基本功能。Protues组合了高级原理布图、混合模式(msh)SPICE仿真、PCB设计以及自动布线功能,从而实现了
41、一个完整的电子设计系统12。Protues软件由一下6部分(b fen)组成原理图输入系统ISIS;混合模型仿真器;动态器件库;高级图形分析模块;处理器仿真模型VSM;PCB设计编辑ARES;本次设计只用到了ISIS,主要进行电路原理图设计及仿真。3.2.2 Protues ISIS 设计单片机电路的基本步骤(1) 用Proteus ISIS 进行单片机应用系统设计与仿真的基本步骤:(2) 新建设计文件夹或打开一个现有的设计文件。(3) 选择元器件(通过关键字或分类检索)。(4) 将元器件放入设计窗口。(5) 添加其他模型(电源、地线、信号源等)和相关的虚拟仪器。(6) 编辑和连接电路。(7)
42、 编写单片机所需的源程序。(8) 加入源程序,并通过构造,得到仿真程序或目标程序。这里的(6)、(7)两步可以选用其他更方便的工具完成。(9) 根据需要,设置对象的属性,如将单片机的”Program File”属性设置为上述仿真调试程序或目标程序。(10) 启动仿真功能,对电路进行仿真操作,验证其功能13。3.3 Protues 仿真总体电路硬件设计总体电路硬件设计如下图3-2所示。图3-2总体系统硬件电路设计图整个系统(xtng)电路主要由输入模块,显示模块,控制模块,时钟(shzhng)电路模块(m kui),复位模块组成,按上下级的关系又可以分为主机部分和从机部分。主机根据输入模块输入的
43、信号启用不同工作模式,控制显示模块进行相应的数据显示。主机和从机结构框图如下所示。图3-3主机结构框图主机主机数据显示主机工作状态显示串行数据接收发送按钮控制从机串行数据接收发送按钮控制从机数据显示图3-4从机结构框图3.4 输入(shr)模块的设计(shj)输入(shr)模块主要由按钮和上拉电阻组成,按下按钮时,对应I/O口接通地,相当于将此I/O口置0。上拉电阻主要作用是确保将相应串口嵌位在高电平,电阻起限流作用。主机部分有三个按钮K1、K2、K3,分别作为发送数据、汇总接收、加一开关,控制主机的三种工作状态。发送数据是将主机的数据发送至从机1和从机2,汇总接受是将从机1和从机2的实际接收
44、并相加,加1是每一次按键数据加1。从机部分只有一个加一按钮。图3-5主机输入模块3-6从机输入模块 3.5 显示(xinsh)模块的设计(shj)图3-7主机工作状态显示显示(xinsh)模块采用BCD码-七段数码管显示译码器显示,BCD码七段数码管显示译码器是将一位BCD码翻译为数码管上对应显示的十进制数字。电路接线图如下图3-7、3-8、3-9所示。 图3-8主机数据显示图3-9从机数据显示 其实(qsh)BCD码七段数码管显示(xinsh)译码器即为4-7线译码器,只是将它显示(xinsh)在数码管上而已。 其(数码管为共阴极)真值表如下表:表3-1BCD七段译码器真值表BCD码-七段数
45、码管引脚从左到右依次为从高位到低位D、C、B、A,主机部分工作状态显示DA依次接P1.3P1.0,主机和从机数据显示从左至右依次接P2.7P2.0。加一按钮每按一次,数码管显示数据就加一。主机K1按钮按下时,状态显示变为a,表示主机工作在发送数据状态;K2按钮按下时,状态显示变为b,表示主机工作在汇总接受状态;K3按钮按下时,状态变为c,表示主机工作在数据加一状态。3.6 控制模块的设计本次设计控制模块微机采用的是AT89C51单片机,是AT89C5x系列单片机的代表机型,AT89C5x系列单片机继承了MCS-51的原有功能,与MCS-51里写单片机在原有功能、引脚以及指令方面完全兼容。此外,
46、AT89C5x系列单片机中的某些品种又增加了一些新的功能,如看门狗定时器WDT、ISP(在系统编程也称在线编程)及SPI串行接口技术等。片内Flash存储器允许在线(+5V)电擦除、电写入或使用编程器对其重复编程。另外,AT89C5x单片机即还支持由软件选择的两种节电工作模式,非常适于电池供电或其他要求低功耗场合。AT89C51与MCS-51系列中的87C51单片机相比, AT89C51单片机片内的4KBFlash存储器取代了87C51片内4KB的EPROM。AT89C51单片机片内的4KBFlash存储器可在线编程或使用编程器重复编程,且价格较低,因此AT89C51单片机是目前的主流芯片之一
47、。 地址(dzh)设置如图3-11示,通过将P1口各位置0或1来设置各从机的地址。程序内部(nib)将主机发送的地址与P1口的值进行比较来确定正确的从机接收数据。从机选通开关(kigun)接线如图3-12示,CONTROL1(或2)闭合表示从机1(或2)选通允许接受主机发送数据。图3-10AT89C51图3-11从机地址设置 图3-12选通开关3.7时钟(shzhng)电路模块(m kui)的设计(shj)AT89C51单片机各功能部件的运行都以时钟控制信号为基准,有条不紊、一拍一拍的工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式
48、,一种是内部时钟方式,另一种是外部时钟方式。本次设计采用的是前者,电路图如下图3-13所示。图3-13时钟电路设计AT89C51内部有一个用于构成振荡器的高增益反相放大器,他的输入端为单片机引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体和微调电容,构成一个稳定的自激振荡器。电路中的电容C1和C2的典型值通常选为30pF。该电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。晶振频率的范围通常在1.212MHz。晶体的频率越高,系统的时钟频率越高,单片机的运行速度也越快。但反过来,运行速度快对存储器的速度要求就高,对印刷电路板的工艺要求也高,即要求线间的寄生电容要小。
49、本次设计,串口工作在方式三,波特率的计算公式为2SMOD*fosc/(12*(256-X),其中X为定时器初值。为了使波特率数值为整百,故取晶振为11.0592MHz。3.8复位模块的设计图3-14复位电路设计AT89C51的复位是由外部的复位电路实现的。复位电路通常采用上电自动复位和按钮复位两种方式,按钮复位又有电平和脉冲两种方式。本次设计采用的是按钮手动复位,电路图如图3-14所示。第四章 软件设计4.1开发(kif)环境4.1.1 编程语言C语言是一种(y zhn)通用的计算机语言。它即编写系统程序,也可用来编写应用程序。它同时具有汇编语言和高级语言的特点。在单片机开发中,以前基本上是使
50、用汇编语言,也有使用BASIC语言(yyn)进行开发。从90年代中期以后使用C语言开发单片机成为一种流行的趋势。因为它具有使用方便、编程效率高及仿真调试容易等突出特点14。因C语言程序中缺少将十六进制转换为十进制的函数,而汇编语言实现起来很方便,故可考虑在C程序中嵌入汇编程序15。C51中嵌入汇编程序的格式如下:#pragma asm汇编程序#pragma endasm4.1.2 编程工具 本次设计使用的编程工具为Keil公司开发的Keil C51编译器,Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、
51、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,它既可以编辑、编译和调试汇编语言程序,也可以编辑、编译和调试C51程序。是一个基于Windows平台的集成开发环境。它不但可以仿真模拟一般的程序运行,同时还可以仿真模拟I/O口、定时/计数器、串行口及中断等单片机特有的功能部件,甚至可以模拟在某个I/O引脚上输入一个方波或正弦波,其功能非常强大。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件
52、时更能体现高级语言的优势。4.1.3 Keil调试基本(jbn)步骤(1)新建工程(gngchng)并选择单片机型号。(2)设置工程(gngchng)属性。(3)编辑源文件并加入工程(4)构造目标程序。(5)运行调试,以排除程序中的逻辑错误。(6)将最终的目标程序下载到单片机芯片中。4.2 编程思路(1)主机初始化为工作方式3、允许接收、置位TB8。(2)全部从机初始化为工作方式3、允许接收、置位SM2。(3)主、从机的波特率为9600b/s。(4)主机通信程序包括发送地址、发送命令字、发送数据。(5)全部从机均接收主机发送的地址,并进入相应的处理程序,进行地址比较。(6)被寻址的从机确认后,
53、将自身SM2清零,继续接收后续数据。主从机通信方式:主从机均采用查询方式收发数据,从机1和从机2的程序相同。4.3 主机串口通信控制子程序设计串口通信控制子程序在程序中定义为MS_CTRL()子程序,流程图如下图4-1所示。子程序入口TB8=1地址送串口TB8=0命令字送串口TB8=1命令字=00?TB8=1子程序返回回图4-1MS_CTRL()子程序流程图MS_CTRL()子程序是主机(zhj)发送和接收数据的关键,主机控制程序中通过对MS_CTRL()子程序的调用来实现(shxin)主机地址、命令字、数据的发送及数据会总时数据的接收。MS_CTRL()子程序代码(di m)如下。void
54、MS_CTRL() /多机串口通信控制程序(地址或数据发送程序) TB8=1; /TB8=1,发送地址 SBUF=RR2; /地址送串口 while(TI=0); TI=0; TB8=0; /TB8=0,发送命令字或数据 SBUF=RR3; /命令字送串口 while(TI=0); TI=0; if(RR3=0 x00) /命令字为00,发送数据 SBUF=RR5; while(TI=0); TI=0;else /命令字为01,接收数据 while(RI=0); RI=0; RR5=SBUF;4.4主机控制程序设计主机控制机程序主要包括初始化部分、波特率设置、工作状态设置三部分,其中工作状态部
55、分又分为A、B、C(数据发送,数据汇总,数据加1)三种,通过三个if语句来实现工作状态的选择。其中工作方式A又需要通过if语句判断选通开关的状态来向从机发送数据。最后将当前串口数据储存在R5中,并在数码管上显示。主机控制程序流程图图下图4-2所示。K2=0?程序入口端口定义串口通信初始化K1=0?定时器T1工作方式2T1赋初值启动T1变量与端口初始化显示数据送P2口等待K1松开0A送P1口命令字00送RR3从机1地址送RR2MS_CTRL()Con2=0?从机2地址送RR2MS_CTRL()K3=0?等待K2松开等待K3松开0B送P1口0C送P1口RR5+十六进制转为十进制MS_CTRL()命
56、令字01送RR3从机1数据暂存从机1地址送RR2十六进制转为十进制从机2地址送RR2MS_CTRL()从机1、2数据相加Con1=0?图4-2主机控制程序流程图主机控制(kngzh)程序代码如下。main() SP=0 x60; /堆栈(duzhn)指针 SCON=0 xD8; /串口工作(gngzu)方式3,允许接收,TB8=1 TMOD=0 x20; /定时器T1工作(gngzu)方式2 TH1=0 xFD; /定时器赋初值(波特率为9600b/s) TL1=0 xFD; PCON=0 x00; /SMOD=0(波特率不增倍) TR1=1; /启动T1 RR5=0 x00; /变量初始化
57、P1=0 x00; /P1口初始化 while(1) P2=RR5; /显示数据 if(K1=0) /K1合上,发送数据 while(K1=0); /等待按键松开 P1=0 x0A; /发送数据时,数码管显示“A” RR3=0 x00; /命令字“00”送RR3(从机收到该命令后,从串口接收数据) if(Con1=0) /从机1是否选通 RR2=0 x07;/从机1地址送RR2 MS_CTRL();/调用串口多机通信控制程序 _nop_(); _nop_(); if(Con2=0)/从机2是否选通 RR2=0 x0F;/从机2地址送RR2 MS_CTRL(); if(K2=0) /K2合上,汇
58、总(huzng)接收 while(K2=0); P1=0 x0B; /汇总(huzng)接收时,数码管显示“B” RR3=0 x01; /命令字“01”送RR3(从机收到该命令(mng lng)后发送数据至串口) RR2=0 x07; /从机1地址送RR2 MS_CTRL(); _nop_(); _nop_(); RR4=RR5; /从机1数据暂存入RR4 RR2=0 x0F; /从机2地址送RR2 MS_CTRL(); #pragma asm/在C语言中嵌入汇编程序(改程序将十六进制转换为十进制) MOV A,R4 /R4对应RR4(地址均为0 x04),R5对应RR5(地址均为0 x05)
59、 ADD A,R5 DA A MOV R5,A /转换结果存入R5(相当于存入RR5,实现了汇编语言寄存/器和C语言变量之间的数值传递) #pragma endasm if(K3=0) /K3合上,加1 while(K3=0); /等待按键松开 P1=0 x0c; /加1时,数码管显示“C” RR5+; /加1 #pragma asm /将十六进制转换为十进制 CLR A ADD A,R5 DA A MOV R5,A #pragma endasm 4.6从机控制(kngzh)程序设计程序入口端口定义串口通信初始化定时器T1工作方式2T1赋初值启动T1SM2=1显示数据送P2口RI=0?RI=0
60、接收地址地址相等?SM2=0接收命令字命令字=00?接收数据发送数据KEY=0?等待按键松开显示数据加1十六进制转为十进制图4-3从机程序流程图从机控制程序主要包括初始化部分、波特率设置、数据接收(jishu)与发送三部分,程序(chngx)流程图如下图4-3所示。从机控制(kngzh)程序代码如下。main() SP=0 x60; /同主机(zhj)注释 SCON=0 xD8; TMOD=0 x20; TH1=0 xFD; TL1=0 xFD; PCON=0 x00; TR1=1; SM2=1; /接收(jishu)地址时,SM2=1、RB8=1(因主机发送地址时,TB8=1/作第9位,传送
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 林草种苗工安全理论能力考核试卷含答案
- 拆船工标准化能力考核试卷含答案
- 碱减量操作工岗前安全实践考核试卷含答案
- 初中物理教学中科学探究方法训练课题报告教学研究课题报告
- 拼布工岗中决策判断考核试卷含答案
- 开清棉工安全技能测试评优考核试卷含答案
- 2026中国建筑材料工业地质勘查中心新疆总队(中建材新疆地质工程有限公司)招聘10人笔试历年参考题库附带答案详解
- 智能学习系统界面设计在提高学习效率中的应用研究教学研究课题报告
- 模拟法庭面试试题及答案
- 潮州中考历史一模试卷
- 2026年高考全国Ⅱ卷英语试题(含答案和音频)
- 2026广东农垦胜利农场有限公司招聘后勤工人2人备考题库附答案详解
- 生态系统的能量流动【课件】 2025-2026学年高二上学期生物人教版选择性必修2
- 虹口区2026年街道社区工作者及部门编制外聘用人员公开招聘笔试参考题库及答案详解
- 2026春苏教版六年级下册数学期末综合练习卷含答案(三套)
- 2025年AS9100D-2016航天航空行业质量管理体系全套质量手册及程序文件
- 危大工程管理台账
- 船舶吃水差解析课件
- 终端市场反馈信息管理准则
- 物业项目绿化管理养护方案
- 应用统计学全套ppt课件(完整版)
评论
0/150
提交评论