单片机串行通信发射机毕业设计(编辑修改稿)内容摘要:
中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送的数据量较大的 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:电路检查完后,关闭电源,用一根。单片机串行通信发射机毕业设计(编辑修改稿)
相关推荐
3P14 P16P15P36P17P35D1LED2D2LED2D3LED2D4LED2D5LED2D6LED2D7LED2D8LED2D9LED2D12LED2D11LED2D10LED21kR4RESDIP1kR5RESDIP1kR10RESDIP1kR11RESDIP1kR12RESDIP1kR7RESDIP1kR8RESDIP1kR9RESDIP1kR6RESDIPVCCVCCVCCVCC
FFH MOV P0, A。 P0 口为字形码输出口 NOP NOP MOV R0, 2FH。 显示子程序 NOP MOV R1, 10H。 位控制字 LOOP1: MOV A, R1 NOP MOV P2, A。 输出位控制字 MOV P2, A MOV DPTR, TABLE MOV A,@ R0。 取显示缓冲区中的显示字符数 22 MOVC A,@ A+DPTR。 查表转换成字型代码
泛采用色环电阻,其优点是在装配、调试和修理过程中,不用拨动元件,即可在任意角度看清色环,读出阻值,使用方便。 一个电阻色环由4 部分组成(不包括精密电阻)。 测量时可用万用表来测量电阻的“阻值”。 图 电阻图形符号 阻值判断:色标法 — 用不同颜色的色环来表示电阻器的阻值及误差等级 .普通电阻一般有 4 环表示 ,精密电阻用 5 环。 这个规律有一个巧记的口诀:棕一红二橙是三,四黄五绿六为蓝
KS0108 处于正常工作状态, RESET=0。 ( 4) L5~ L0 为显示起始行的地址,取值在 0~ 3FH(1~ 64)范围内。 ( 5) P2~ P0 确定当前所要选择的页面地址,取值在 0~ 7H,代表 1~ 8 页。 ( 6) C5~ C0=0~ 3FH(1~ 64)代表某一页面上的某一单元地址,随后的一次读或写 数据将在这个单元上进行。 KS0108 控制器与 8255A
的范围内校正时钟的偏差 (189ppm~ +189ppm,分辨力为 ),并通过外置的温度传感器可设定适应温度变化的调整值,实现在宽温范围内高精度的计时功能。 SD2405 特性 : A 典型值 (内部电池供电, Ta=25℃ )。 : ~ ,工作温度: 40℃~ +85℃。 IIC 总线接口方式,最高速度 400KHZ(~ )。 、月、日、星期、时、分、秒的 BCD 码输入 /输出
B柱左 maxD 作 用在 B柱右 maxD 作 用在 C 柱 maxT 作 用在 BA 跨 maxT 作 用在 BC跨 左风 右风 序号 1 2 3 4 5 6 7 8 9 10 11 II M ? ? ? ? ? ? ? - N 0 0 0 0 0 0 0 0 0 IIII M ? ? ? ? ? ? ? N 0 0 0 0 0 0 0 IIIIII M ? ? ? ? ? ? ? ?