




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 单片机原理及应用单片机原理及应用 课程设计课程设计 题 目 单片机串行通讯 所在院系 机械电子工程学院 专 业 08 自动化(2) 学 号 200810320227 姓 名 xxxxx 完成日期 2011.6.21 指导教师 万老师 景德镇陶瓷院 2 单片机及应用课程设计任务书 班级: 08 自动化(2) 姓名: 边昆 指导教师:万老师 2011 年 6 月 21 日 设计题目:单片机串行通讯 设 计 任 务 和 要 求 1原理图设计说明 简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过 程及顺序。 2程序设计说明 对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作 较详细的描述。 设 计 成 果 设计说明书一份 电路图一份 参 考 资 料 教研室主任签字: 年 月 日 3 目录目录 目录目录 .3 1 1、引言:、引言: .4 2 2、 设计流程及方案的选择设计流程及方案的选择 .5 2.1 设计任务与要求:5 2.2 总体方案设计:5 3 3、串口通信简介:、串口通信简介: .7 3.1 串行接口的基本特点.7 3.2 串口通信原理 8 3.2.1 波特率选择8 3.2.2 通信协议的使用9 4.4. 硬件设计硬件设计 .9 5.5. 程序设计程序设计 .13 5.1 流程框图.13 5.2 主函数14 6.6. 元件清单元件清单 .18 7.7. 小结小结 .19 8.8. 参考文献参考文献 .20 4 1 1、引言:、引言: 在各种单片机应用系统的设计中,如智能仪器仪表、各类手持设备、GPS 接收 器等,常常遇到计算机与外界的信息交换,即通讯。通信的基本方式可分为并行通 信与串行通信两种。 并行通信是将组成数据的各位同时传送,并通过并行门(如 P1 口等)来实现。 在并行通信中,数据传送线的根数与传送的数据位数相等,传送数据速度快,但所 占用的传输线位数多。因此并行通信适合短距离通信。 串行通信是指数据一位一位地按顺序传送。串行通信通过串行口来实现。在全 双工的串行通信中,仅需要一根发送线和一根接收线,串行通信可大大节省传送线 路的成本,但数据传送速度慢。因此,串行通信适合于远距离通信。 目前,在许多单片机应用系统中,上、下位机分工明确,作为下位机核心器件 的单片机往往只负责数据的采集和通信,而上位机通常以基于图形界面的 Windows 系统为操作平台,为便于查询和保存数据,还需要数据库的支持,如在测控系统中 使用 SQL Server 数据库。 现阶段这种应用的核心便是数据通信,它包括单片机和上位机之间、客户端和 服务器之间以及客户端和客户端之间的通信,而在单片机和上位机之间的数据通信 则是整个系统的基础。单片机和 PC 的通信是通过单片机的串口和 PC 机之间的硬件 连接实现。鉴于 PC 机具有强大的监控和管理功能,单片机则具有快速以及容易控 制的特点,在数据量不大、传输要求不高的情况下,一般都采用给 PC 机配置的 RS-232 标准串行接口 COM1、COM2 等相连接来实现应用系统与 PC 机之间的数据交 换。 5 2 2、 设计流程及方案的选择设计流程及方案的选择 2.1 设计任务与要求设计任务与要求: 一、设计的目: 1进一步熟悉和掌握单片机的结构及工作原理。 2掌握单片机的接口技术及相关外围芯片的外特性,控制方法。 3通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电 路参数的计算方法。 4通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。 5通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发单片机应 用系统的全过程,为今后从事相应打下基础。 二、设计具体要求: 1原理图设计要符合项目的工作原理,连线要正确,端了要不得有标号。 2图中所使用的元器件要合理选用,电阻,电容等器件的参数要正确标明。 3原理图要完整,CPU,外围器件,扩器接口,输入/输出装置要一应俱全。 4原理图设计说明,简要说明设计目的,原理图中所使用的元器件功能及在图中 的作用,各器件的工作过程及顺序。 2.2 总体方案设计:总体方案设计: PC 机与单片机之间可以由 51 单片机接口相连,在 PC 机系统内部装有异步通信 适配器,利用它可以实现异步串行通信。该适配器的核心元件是可编程的 Intel 8250 芯片,它使 PC 机有能力与其他具有标准的 RS-232C 接口的计算机或设备进行 通信。而 51 单片机本身具有一个全双工的串行口,因此只要配以电平换换的驱动 电路、隔离电路就可以组成一个简单的通信接口。同样,PC 机和单片机之间的通 6 信也分为双机通行与多机通信。 数据通信的硬件上采用 3 线制,将单片机和 PC 串口的 3 个引脚 (TXD、RXD、GND)分别连在一起,即将 PC 机和单片机的发送数据线 TXD 与接收数 据线 RXD 交叉连接,两者的地线 GND 直接相连,而其他信号线如握手信号线均不用, 采用软件握手的方式。这样既可以实现预定的任务又可以简化电路设计。 PC 机和单片机最简单的连接时零调制三线经济系。这是进行全双工通信所必需 的最少线路,因为 51 单片机输入、输出电平为 TTL 电平,但由于单片机的 TTL 逻 辑电平和 RS-232 的电气特性完全不同,RS-232 的逻辑 0 电平规定为+5+15V 之间, 逻辑 1 电平为-5-15V 之间,因此在将 PC 机和单片机的 TXD 和 RXD 交叉连接时必 须进行电平转换,这里我选用的是 MAX232 电平转换芯片。其原理框图为图 2-1 图 2-1 串口通信原理图 TXD RVD GND TIN TOUT ROUT RIN GND RXD TXD GND RS-232C 7 3 3、串口通信简介:、串口通信简介: MCS-51 系列单片机上有一个通用异步接收发送器 UART,通过引脚 RXDP3O和 TXDP31可与外音 B 电路进行全双工的串行异步通信,发送数据 时由 TXD 端送出,接收时数据由 RXD 端输入。本文将具体介绍单片机串口的特点和 编程方法,并且在最后给出一个实用的单片机与计算机通过串口通信的程序。 3.1 串行接口的基本特点串行接口的基本特点 MCS-51 单片机的串行端口有 4 种基本工作方式,通过编程设置,可以使其工作在 任一方式,以满足不同场合的需要。其中,方式 0 主要用于外接移位寄存器,以扩 展单片机的 IO 电路;工作方式 1 多用于双机之间或与外设电路的通信;方式 2、3 除有方式 1 的功能外,还可以作多机通信,以构成分布式多微机系统。 串行端口有两个控制寄存器 SCON、PCON,用于设置工作方式、发送或接收的状态、 特征位、数据传送波特率每秒传送的位数以及作为中断标志等。 串行端口有一个数据寄存器 SBUF 在特殊功能寄存器中的字节地址为 99H,该寄存 器为发送和接收所共用。 串行端口的波特率可以用程序来控制。在不同工作方式中,由时钟振荡频率的分频 值或由定时器 T1 的定时溢出时间确定,使用十分方便灵活。 串口控制寄存器 输入:在(REN)=1 时,串行口采样 RXD 引脚,当采样到 1 至 O 的跳变时,确认是 串行发送来的一帧数据的开始位 0,从而开始接收一帧数据。只有当 8 位数据接收 完,并检测到高电平停止位后,只有满足(R1)=0;(SM2)=0 或接收到的第 9 位 数据为 1 时,停止位才进入 RB8,8 位数据才能进入接收寄存器,并由硬件置位中 断标志 RI;否则信息丢失。所以在方式 1 接收时,应先用软件清零 RI 和 SM2 标志。 1. 方式 2 8 方式 2 为固定波特率的 11 位 UART 方式。它比方式 1 增加了一位可程控为 1 或 0 的第 9 位数据。 输出:发送的串行数据由 TXD 端输出一帧信息为 11 位,附加的第 9 位来自 SCON 寄存器的 TB8 位,用软件置位或复位。它可作为多机通讯中地址数据信息的标志 位,也可以作为数据的奇偶校验位。当 CPU 执行一条数据写入 SUBF 的指令且 TI=0 时,就启动发送器发送。发送一帧信息后,置位中断标志 TI。 输入:在(REN)=1 时,串行口采样 RXD 引脚,当采样到 1 至 O 的跳变时,确认是 串行发送来的一帧数据的开始位 0,从而开始接收一帧数据。在接收到附加的第 9 位数据后,当满足(RI):0;(SM2)=0 或接收到的第 9 位数据为 1 时,第 9 位 数据才进入 RB8,8 位数据才能进入接收寄存器,并由硬件置位中断标志 Ri;否则 信息丢失。且不置位 RI。 3.2 串口通信原理串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算 机端,而且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所 以在较远距离传输中,得到了广泛的运用。 3.2.1 波特率选择 波特率(Boud Rate)就是在串口通信中每秒能够发送的位数 (bits/second)。MCS-51 串行端口在四种工作模式下有不同的波特率计算方法。 其中,模式 0 和模式 2 波特率计算很简单,请同学们参看教科书;模式 1 和模式 3 的波特率选择相同,故在此仅以工作模式 1 为例来说明串口通信波特率的选择。 在串行端口工作于模式 1,其波特率将由计时/计数器 1 来产生,通常设置定 时器工作于模式 2(自动再加模式)。在此模式下波特率计算公式为: 波特率=(1+SMOD)*晶振频率/(384*(256-TH1) 其中,SMOD寄存器 PCON 的第 7 位,称为波特率倍增位; TH1定时器的重载值。 9 在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。这要根据 系统的运作特点,确定通信的频率范围。然后考虑通信时钟误差。使用同一晶振频 率在选择不同的通信速率时通信时钟误差会有很大差别。为了通信的稳定,我们应 该尽量选择时钟误差最小的频率进行通信。 下面举例说明波特率选择过程:假设系统要求的通信频率在 20000bit/s 以下, 晶振频率为 12MHz,设置 SMOD=1(即波特率倍增)。则 TH1=256-62500/波特率 根据波特率取值表,我们知道可以选取的波特率有: 1200,2400,4800,9600,19200。列计数器重载值,通信误差如下表: 因此,在通信中,最好选用波特率为 1200,2400,4800 中的一个。 3.2.2 通信协议的使用 通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定,通信双 方才能明白对方的意图,以进行下一步动作。假定我们需要在 PC 机与单片机之间 进行通信,在双方程式设计过程中,有如下约定: 0xA1:单片机读取 P0 端口数据,并将读取数据返回 PC 机; 0xA2:单片机从 PC 机接收一段控制数据; 0xA3:单片机操作成功信息。 10 4.4. 硬件设计硬件设计 51 单片机有一个全双工的串行通讯口,所以单片机和计算机之间可以方便地 进行串口通讯。进行串行通讯时要满足一定的条件,比如计算机的串口是 RS232 电平的,而单片机的串口是 TTL 电平的,两者之间必须有一个电平转换电路,我 们采用了专用芯片 MAX232 进行转换,虽然也可以用几个三极管进行模拟转换, 但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和计算机 的 9 针串口只连接其中的 3 根线:第 5 脚的 GND、第 2 脚的 RXD、第 3 脚的 TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所 示,MAX232 的第 10 脚和单片机的 11 脚连接,第 9 脚和单片机的 10 脚连接,第 15 脚和单片机的 20 脚连接。 图 4-1 硬件连接图 串口通讯的硬件电路如上图所示为了能够在计算机端看到单片机发出的数据,我们 必须借助一个 WINDOWS 软件进行观察,这里利用如下图标的一个免费计算机串口调 试软件来观察。 SBUF 数据缓冲寄存器,这是一个可以直接寻址的串行口专用寄存器。有朋友 这样问起过“为何在串行口收发中,都只是使用到同一个寄存器 SBUF?而不是收 发各用一个寄存器。”实际上 SBUF 包含了两个独立的寄存器,一个是发送寄存, 11 另一个是接收寄存器,但它们都共同使用同一个寻址地址99H。 REM 为允许接收位,REM 置 1 时串口允许接收,置 0 时禁止接收。REM 是 由软件置位或清零。如果在一个电路中接收和发送引脚 P3.0,P3.1 都和上位机相连, 在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来 的控制字符产生中断,那么可以在这个子程序的开始处加入 REM=0 来禁止接收, 在子程序结束处加入 REM=1 再次打开串口接收。大家也可以用上面的实际源码加 入 REM=0 来进行实验。 RI 接收中断标识位。在模式 0,接收第 8 位结束时,由硬件置位。其它模式中则 是在接收停止位的半中间,由硬件置位。RI=1,申请中断,要求 CPU 取走数据。 但在模式 1 中,SM2=1 时,当未收到有效的停止位,则不会对 RI 置位。同样 RI 也必须要靠软件清除。 : 波特率 在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机 的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特 位数。有一些初学的朋友认为波特率是指每秒传输的字节数,如标准 9600 会被误 认为每秒种可以传送 9600 个字节,而实际上它是指每秒可以传送 9600 个二进位, 而一个字节要 8 个二进位,如用串口模式 1 来传输那么加上起始位和停止位,每个 数据字节就要占用 10 个二进位,9600 波特率用模式 1 传输时,每秒传输的字节数 是 960010960 字节。51 芯片的串口工作模式 0 的波特率是固定的,为 fosc/12, 以一个 12M 的晶振来计算,那么它的波特率可以达到 1M。模式 2 的波特率是固 定在 Fosc/64 或 Fosc/32,具体用那一种就取决于 PCON 寄存器中的 SMOD 位,如 SMOD 为 0,波特率为 Focs/64,SMOD 为 1,波特率为 Fsoc/32。模式 1 和模式 3 的 波特率是可变的,取决于定时器 1 或 2(52 芯片)的溢出速率。那么我们怎么去计 算这两个模式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。 波特率(2SMOD32)定时器 1 溢出速率 上式中如设置了 PCON 寄存器中的 SMOD 位为 1 时就可以把波特率提升 2 倍。 通常会使用定时器 1 工作在定时器工作模式 2 下,这时定时值中的 TL1 做为计数, 12 TH1 做为自动重装值 ,这个定时模式下,定时器溢出后,TH1 的值会自动装载 到 TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这个定时 模式 2 下定时器 1 溢出速率的计算公式如下: 溢出速率(计数速率)/(256TH1) 上式中的“计数速率”与所使用的晶体振荡器频率有关,在 51 芯片中定时器启动 后会在每一个机器周期使定时寄存器 TH 的值增加一,一个机器周期等于十二个振 荡周期,所以可以得知 51 芯片的计数速率为晶体振荡器频率的 1/12,一个 12M 的 晶振用在 51 芯片上,那么 51 的计数速率就为 1M。通常用 11.0592M 晶体是为了 得到标准的无误差的波特率,那么为何呢?计算一下就知道了。如我们要得到 9600 的波特率,晶振为 11.0592M 和 12M,定时器 1 为模式 2,SMOD 设为 1,分 别看看那所要求的 TH1 为何值。代入公式: 11.0592MHz 时:9600(232)(11.0592M/12)/(256-TH1) TH1250 /看看是不是和上面实例中的使用的数值一样? 12MHz 时:9600(232)(12M/12)/(256-TH1) TH1249.49 .总体电路设计: PC 机和单片机最简单的连接时零调制三线经济系。这是进行全双工通信所必需 的最少线路,因为 51 单片机输入、输出电平为 TTL 电平,但由于单片机的 TTL 逻 辑电平和 RS-232 的电气特性完全不同,RS-232 的逻辑 0 电平规定为+5+15V 之间, 逻辑 1 电平为-5-15V 之间,因此在将 PC 机和单片机的 TXD 和 RXD 交叉连接时必 须进行电平转换,这里我选用的是 MAX232 电平转换芯片。将 PC 机键盘的输入发送 给单片机,单片机收到 PC 机发来的数据后,会送统一数据给 PC 机。并在屏幕中显 示出来。只要屏幕中显示出来的字符与所键入的字符相同,说明二者之间的通信正 常。总串行通信图为图 4-1 所示 13 T1IN 11 R1OUT 12 T2IN 10 R2OUT 9 T1OUT 14 R1IN 13 T2OUT 7 R2IN 8 C2+ 4 C2- 5 C1+ 1 C1- 3 VS+ 2 VS- 6 U1 MAX232 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 U2 80C51 C1 22u C2 22u X1 CRYSTAL ERROR TXD 3 RXD 2 CTS 8 RTS 7 DSR 6 DTR 4 DCD 1 RI 9 P1 COMPIM VCC C3 1uF R1 1k C4 0.1uF C5 0.1uF C6 0.1u C7 0.1u C8 0.1u VCC 2 3 4 5 6 7 8 9 1 RP1 RESPACK-8 图 4-1 串行通信电路图 14 5.5. 程序设计程序设计 5.1 流程框图流程框图 51 单片机通过中断方式接收 PC 机发送数据,并回送。其程序流程图,如图 5-2 所 示: 是否接受 PC 机发送数据? 程序初始化 接受 PC 机发送数据 N 回发数据给 PC 机 是否发送完成? N 清除标志位 开始 Y Y 结束 图 5-2 发送端程序流程图 15 5.2 主函数主函数 #include /*宏定义*/ #define uchar unsigned char #define uint unsigned int /*/ uchar code SEG10=0xa0,0xbe,0x62,0x2a,0x3c,0x29,0x21,0xba,0x20,0x28; uchar code ACT4=0x7f, 0xef,0xdf,0xbf; sbit P3_7=P37; Sbit P3_6=P36; Sbit P3_5=P35; Uchar f; Uchar temp; /*延时*/ void delay(uint k) uint i,j; for(i=0;i30)temp=0; 16 if(temp=0)f+; if(f30)temp=0; if(temp=0)f-; if(f150)f=150; temp+; void display(uchar x) P0=SEGx%10; P2=ACT0; delay(1); P0=SEG(x%100)/10; P2=ACT1; delay(1); P0=SEG(x%1000)/100; P2=ACT2; delay(1); P0=SEGx/1000; P2=ACT3; delay(1); /*中断初始化*/ void csh() TMOD=0x20; /设置定时器 1 为方式 2 17 TH1=0xfd; TL1=0xfd; TR1=1; SM0=0; /串行口方式一 SM1=1; EA=1; ES=1; /*/ void main() csh(); while(1) key_s1(); key_s2(); display(f); if(P3_5=0) delay(10); if(P3_5=0) SBUF=f; /void zhongd(void) interrupt 4 TI=0; 18 6.6. 元件清单元件清单 元件名称型号数量 单片机 AT89C511 接口芯片 MAX232A1 电容 1uf8 电阻 10kR1 PC 机 COMPM1 导线 若
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- led工程安装合同范本
- 蒲庙租房合同范本
- 涉外投资经营合同范本
- 建筑装饰合同范本
- 小型叉车租赁合同范本
- 红酒销售供货合同范本
- 出土方合同范本
- 社区实验基础知识培训课件
- 小区外管网合同范本
- 生产工人的合同范本
- 2025年采购管理专业考试题及答案
- 2025年音乐流媒体平台版权运营与音乐版权交易模式创新报告
- 2025年矿山开采项目社会稳定风险评估及应对策略报告
- 2025至2030年中国硅烷交联剂行业投资前景及策略咨询报告
- 蔬菜购买包地合同协议
- 公益岗考试试题及答案
- 叉车基本技能培训课件
- 2024初级注册安全工程师笔试真题解析
- 工贸企业重大事故隐患判定标准解读
- 2025年语文考试大纲
- 高三数学教学经验交流发言稿
评论
0/150
提交评论