单片机串行通信发射机毕业设计(编辑修改稿)内容摘要:

中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送的数据量较大的 C. 串行数据通信的传输速率: 串行数据传输率有两个概念,既美秒传送的位数 bps(Bit per second)和美秒符号数 波特率( Band rate) ,在具有调治解调器的通信中,波特率与调治速率有关。 MCS51 的串行和控制寄存器 串行口和控制寄存器 MCS51 单片机串行口专用寄存器结构如图所示。 SBUF 为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发射器寄存器,可以实现全双工通信。 但这两个寄存器具有同一地址( 99H)。 MCS51 的串行数据传输很简单,只要向缓冲器写入数据就可发送数据。 而从接收缓冲器读出数据既可接收数据。 此外,接收缓冲器前还加上一级输入移位寄存器, MCS51 这种结构的目的在于接收数据时避免发生重叠现象,文献称这种结构为双缓冲结构。 而发送 数据就不需要这样设计,因为发送时, CPU 是主动的,不可能出现这种情况。 A:串行通信寄存器 在上一节我们已经分析了 SCON 控制寄存器,它 是 一个可寻址的专用寄存器,用于串行数据通信的控制,单元地址是 98H,其结构格式如下: 表 SCON 寄存器结构 表 1 寄存器 SCON 结构 SCON D7 D6 D5 D4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 TI RI 位地址 9FH 9EH 8DH 9CH 9BH 9AH 99H 98H 下面我们对个控制位功能介绍如 下: ( 1) SM0、 SM1:串行口工作方式控制位 SMO SM1 工作方式 功能说明 12 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 位数据( RB8)为 1 时,才把接收的前 8 位数据送入 SBUF,且置位 RI 发出中断申请,否则会将收到的数据放弃。 当 SM2=0 时,只有在接收到有效停止位时才启动 RI,若没接收到有效停止位,则 RI 清 “0”。 在方式 0 中 SM2 应该为 “0”。 REN:允许接收控制位。 由软件置 “1”时,允许接收;软件置 “0”时,不许接收。 TB8:在方式 3 和方式 3 中 要发送的第 9 位数据,需要时用软件置位和清零。 TB8:在方式 2 和方式 3 中是接收到的第 9 位数据。 在方式 1 时,如 SM2=0,RB8 接收到的停止位。 在方式 0 中,不使用 RB8。 TI:发送中断标志。 由硬件在方式 0 发送完第 8 位时置 “1”,或在其它方式中串行发送停止位的开始时置 “1”。 必须由软件清 “0”。 RI:接收中断标志。 由硬件在方式 0 串行发射第 8 位结束时置 “1” B:特殊功能寄存器 PCON PCON:主要是是 CHMOS 型单片机的电源控制而设置的专用寄存器,单元地址为 87H 其机构格式如下表: 表 特殊功能 寄 存器 PCON PCON D7 D6 D5 D4 D3 D2 D1 D0 位符号 SMOD GF1 GF0 PD IDL 在 CHMOS 型单片机中,除 SMOD 位外其它位均为虚设的, SMOD 是串行波特率倍增位,当 SMOD=1 时串行口波特率加倍,系统复位默认为 SMOD=0。 C:中断允许寄存器 IE 中断允许寄存器这里重述一下对串行口有影响的位 ES。 ES 为串行中断允许控制位, ES=1 允许串行中断, ES=0,禁止串行中断。 13 串行口工作方式 串行口具有 4 种工作方式,我从应用和毕业设计 的角度,重点讨论方式 1 发送。 串行口定义为方式 1 时传送 1 帧数据为 10 位,其中 1 位起始地址、 8 位数据位(先低位后高位)、 1 位停止位方式 1 的波特率可变,波特率 = 32/2SMOD (T1 的溢出率 ) 表 中断允许寄存器 符号 EA ES ET1 EX1 ETO EX0 位地址 AFH AEH ADH ACH ABH AAH A8H A8H 数码显示管 要用单片机构成发射机,就需要一个人机界面。 常采用的方式是 LED 数码 管显示测试结果,用一个小键盘执行某些功能,如请零、预置值、改变测量范围等等。 LED 显示器的工作原理 LED 显示是用发光二极管显示字段的显示器件,也可称为数码管,其外形结构如图所示,由图可见它由 8 个发光二极管构成,通过不同的组合可用来显示 0~ A~F 及小数点。 图 “8” 字型数码管 LED 显示器分为共阴极和共阳极,共阴极是将 8 个发光二极管阴极连接在一起 14 作为公共端,而共阳极是将 8 个发光二极管的阳极连接在一起作为公共端。 我们这次就是采用的共阳极 LED,所以这里要介绍共阳极数码管。 如图所 示, LED 显示器有静态和动态显示两种方式,静态显示是将共阴极联到一起接地,每位的显示段( adp)分别与一个 8 位的锁存器输出相连。 由于显示的各位可以相互独立,各位可以互相显示,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。 并且由于各位由一个 8 位锁存器控制段选线,故在同一时间内每一位显示的字符可以不同, 表 段码与字型的关系 段码 D7 DP D6 g D5 f D4 e D3 d D2 c D2 b D0 a 字形 3FH 0 0 1 1 1 1 1 1 0 06H 0 0 0 0 0 0 1 0 1 5BH 0 1 0 1 1 0 1 1 2 4FH 0 1 0 0 1 1 1 1 3 66H 0 1 1 0 0 1 1 0 4 6DH 0 1 1 0 1 1 0 1 5 7DH 0 1 1 1 1 1 0 1 6 07H 0 0 0 0 0 1 1 1 7 7FH 0 1 1 1 1 1 1 1 8 6FH 0 1 1 0 1 1 1 1 9 77H 0 1 1 1 0 1 1 1 a 7CH 0 1 1 1 0 1 1 1 b 39H 0 0 1 1 1 0 0 1 c 5EH 0 1 0 1 1 1 1 0 d 79H 0 1 1 1 1 0 0 1 e 71H 0 1 1 1 0 0 0 0 f 这种方式占用锁存器较多。 动态显示是将所有位的段选线相应的并联在一起,由一个8 位的 I/O 口控制,形成段选线的多路复用。 而各位的阴极分别由相应的 I/O 口控制, 15 实现各位的分时选通。 要 LED 能够显示相应的字符,就必须采用动态扫描方式,只要每位显示的时间足够短,则可造成多位同时显示的假象,达成显示的目的。 在数字电路中常常要把数据或运算结果通过半导体数码管、液 晶数码和荧光数码管,用十进制数显示出来。 发光二极管的工作电压为 伏,工作电流为己毫安到几十毫安,寿命很长。 半导体数码管将十位数分成七个字段,每段为一个发光二极管,其字形结构如图所示,选择不同的字段发光,可显示出不同的字型。 例如:当 a,b,c,d,e,f,g 七个字段同时亮时,显示 8,b、 c 段亮时,显示出1。 共阳极:把发光二极管的阳极连在一起构成共阳极。 使用时公共端接 Vcc,当某阳极为低电平时,该发光二极管就导通发光。 输出一个段码就可以控制 LED 显示器的字型,表 给出了段码与字型的关系,假 定 a、 b、 c、 d、 e、 f、 g、 DP 分别对应D0、 D D D D D D D7。 硬件的焊接及调试过程 硬件的焊接是毕业设计中重要的环节,用的工具很简单:电烙铁、焊丝和镊子。 因为我们选用的是实验板,所以要用导线把各个元器件连接起来,这就要有一定的技术基础,幸好这个在我们以前的电娤实习中已经掌握。 焊接要细心,还要有耐心。 焊接前要对照电路图对元器件有一个合理的布局,那样的话就会使电路简洁明朗,而且不易出错,即使出错也容易检查。 下面就来介绍元器件的焊接方法和过程。 硬件的焊接 底座的焊接 我的电路板有两个底座,一个是单片机 AT89C51 的,另一个是数码显示管的。 我们用的是 40 脚的双排直插式的,在焊接时,要先把底座插到电路板上再进行焊接,底座各脚的焊点要小,以免各脚之间导通,还不能形成虚焊,虚焊会导致电路不通,底座要焊接牢固,不能和电路板距离太远,以免导致虚焊。 底座还要放在公共线的两边,因为那两条线是火线和地线。 焊接好后要对照电路仔细检查,再用万用表检测,看焊接是否良好。 按键的焊接 我的电路中用到了 5 个按键,一个复位键、一个发射键、两个置数键,还 有我自己加的一个计数控制键。 我虽然做的是发射机,但只要对软件进行一些改动,也可以作为接收机,那时发射控制键就变成接收控制键了。 我所用的按键是普通的断开按键,有 4 个脚,两边各两个,其中每边的两个脚是导通的,在焊接的时候要特别注意,我就是不小心,把相连的两个脚焊接当成不连的脚用来作开关,结果按键按下后不起作用。 所以在焊接前一定要用万用表测出那两个脚是导通的,焊接完后再检测,看焊接是否良好。 时钟电路的焊接 16 我们的电路中时钟电路包括一个晶震,两个电容。 晶震是 6M 的,电容是普通电容,焊接前要刮腿 ,以免接触不好。 晶震和电容要尽量靠近芯片,这样有利于时钟电路的稳定,减少干扰。 焊接好后要用万用表检测。 导线的焊接 导线的焊接比较麻烦。 因为导线比较多,就要先对导线进行布局,找好于元器件相对的管脚,焊接前先要检测导线是否导通。 焊接完成后要检测是不是连接良好。 电路板的检测和故障排除 电路板完成后要进行全面检测,包括以下几个方面: 火线和底线的检测 检测单片机底座的 Vcc( 40 脚)是否与火线相连,检测数码管的功用端是否与火线连接,手动复位开关是否连接上火线。 地线检查:其他按键接地是否良好,时钟电路接地端的检测,单片机 GND 端( 20 脚)是否接地。 检查完后再用万用表检查火线和地线是否导通。 元器件之间的连接的检查 参照电路图,用万用表仔细检查各个元器件连接是否良好,是否对应。 硬件的调试机器故障排除 硬件的调试在上电后的工作是不是正常,主要包括不插单片机的调试和插上单片机的检测。 无单片机的调试 无单片机调试主要检查电路工作是否正常,调试数码管是否点亮,显示数据是否正确,具体步骤如下: A:打开电源,将输出电压调 到 5 伏,然后关闭电源。 B:将电路板的火线与电源正极相连,地线与负极相连。 C:打开电源,用万用表检测电路板是否有输出电压,如果有就是好的,没有就要检测是否有短路。 D:电路检查完后,关闭电源,用一根。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。