




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录1设计任务 .2设计方案 .3 硬件设计 .3.1 AT89C51 简介 .3.2 MAX232 芯片简介 .3.3串行通信电路 .4软件设计 .4.1 BIOS 串行通信口功能 .4.2单片机串行口控制寄存器及波特率的计算 .4.3程序流程图 .4.3.1 PC 机部分程序流程图 .4.3.2 单片机部分 .5心得体会 .参考文献 .附录一 .附录二 .计算机通信系统设计1 设计任务1. 画出简要的硬件原理图,编写通信程序。2. 程序运行后,实现 PC机和单片机之间的串行通信。2 设计方案PC 机与单片机之间最简单的连接是零调制 3 线经济型,所谓三线就是指发送数据线 TxD 、接收数据
2、线 RxD 以及信号地线 GND 。连接时,双方的地线直接相连,收发数据线交叉相连。这是进行全双工通信所必需的最少数目的线路。由于单片机的输入、 输出、均为 TTL 电平,而 PC 机配置的是 RS-232标准串行接口,二者的电气规范不一致,因此要完成PC 机与单片机之间的串行通信,必须进行电平转换。本次课程设计我们选用AT89C51 单片机,电平转换芯片选用MAXIM公司生产的 MAX232 芯片。3 硬件设计3.1 AT89C51 简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器( FPEROM FlashProgrammableandErasableReadOnlyMemor
3、y )的低电压,高性能CMOS 8 位微处理器,俗称单片机。AT89C2051 是一种带 2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100 次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL的 AT89C51是一种高效微控制器,AT89C2051 是它的一种精简版本。 AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。以下是 AT89C51 芯片的引脚图:图 3-1 AT89C51 引脚图接下来对单片机个管教进行简要
4、说明:VCC:供电电压。GND:接地。P0 口:P0 口为一个8 位漏级开路双向IO口,每脚可吸收8TTL门电流。当P1 口的管脚第一次写1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据地址的第八位。在FIASH 编程时, P0 口作为原码输入口,当FIASH 进行校验时,P0 输出原码,此时P0 外部必须被拉高。P1 口: P1 口是一个内部提供上拉电阻的8 位双向IO口, P1 口缓冲器能接收输出4TTL 门电流。P1 口管脚写入1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1
5、 口作为第八位地址接收。P2 口: P2 口为一个内部上拉电阻的8 位双向 IO 口, P2 口缓冲器可接收,输出4 个 TTL 门电流,当P2 口被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“ 1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH编程和校验时接收高八位地址信号和控制信号。P3 口: P3 口管脚是带8 个内部上拉电阻
6、的双向IO 口,可接收输出 4 个 TTL 门电流。 当 P3 口写入“ 1”后, 它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流( ILL )这是由于上拉的缘故。P3 口也可作为AT89C51的一些特殊功能口,如下表所示:管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(记时器0 外部输入)P3.5T1(记时器1 外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。
7、当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALEPROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在 FLASH编程期间, 此引脚用于输入编程脉冲。在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 16 。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。如想禁止 ALE的输出可在SFR8EH地址上置0。此时, ALE 只有在执行MOVX,MOVC指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE 禁止,置位无效。PSEN:外部程序存储
8、器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EAVPP:当 EA 保持低电平时,则在此期间外部程序存储器( 0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1 时,EA 将内部锁定为RESET;当 EA 端保持高电平时,此间内部程序存储器。在 FLASH编程期间,此引脚也用于施加12V 编程电源( VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2 MAX232 芯片简介MAX232 芯片是 MAXIM 公司生产的、包含两路接收器和驱
9、动器的 IC 芯片,适用于各种 EIA 232C 和 V.28V.24 的通信接口。 MAX232 芯片内部有一个电源电压变换器, 可以把输入的 +5V 电源电压变换成 RS-232C 输出所需要的正负10V 电压。所以,采用此芯片的接口串行通信系统只需要单一的 +5V 电源就可以了。以下是 MAX232 芯片的引脚图:图 3-2MAX232 引脚MAX232 典型工作电路图:图 3-3 MAX232 典型工作电路图在 MAX232 工作电路中,电容 C1、C2、C3、C4、以及 V_、V+ 是电源变换电路部分。在实际应用中,期间对电源噪声很敏感。因此, Vcc 必须要对地加去耦电容,其他电容
10、同样是用以提高抗干扰能力,在连接时必须尽量靠近器件。下半部分是发送和接收部分,实际应用中,和可直接接 TTLCMOS 点评的 89C51 单片机的串行发送端 TXD ;和可直接接 TTLCMOS 电平的89C51 单片机的串行接收端 RXD ;和可直接接 PC 机的 RS-232 串口接收端 RXD ;和可直接接 PC 机的 RS-232 串口发送端 TXD.3.3串行通信电路通过以上对 AT89C51 和 MAX232 两个芯片的介绍,接下来设计串行通信电路。现从 MAX232 芯片中两路发送接收中任选一路作为接口。应注意其发送、接受的引脚要对应。以下为接口电路图:图 3-4 PC 机与单片
11、机通信电路4 软件设计编写程序,实现单片机与 PC 机之间的串行通信。 程序实现以下功能:单片机向 PC 机发送数据, PC 机接收后将接收到的数据反馈给单片机,由单片机检测发送的数据是否正确, 正确则继续发送并由数码管显示该数字,否则重新发送,直至数据发送完毕。4.1 BIOS 串行通信口功能PC 机提供比较灵活的关于串行口的BIOS 中断调用方法, 即通过 ”INT14”调用 ROM BIOS 串行通信口例行程序。该例行程序包括将串口初始化为指定的字节结构和传输速率,检查控制器的状态、读写字符等功能。下面介绍 ”INT 14 ”中断调用功能。1 初始化串行通信口( AH=0 )调用参数:
12、AL= 初始化参数DX= 通信口号, 0: COM1,2: COM2返回参数: AH= 通信口状态AL= 调制解调器状态2 向串行通信口写字符( AH=1 )输入参数: AL= 所写字符DX= 通信口号, 0: COM1,2: COM2输出参数:写字符成功:AH.7=0 , AL= 已写入字符写字符失败: AH.7=1 , AH.0 6=通信口状态3 从串行通信口读字符( AH=2 )输入参数: DX= 通信口号, 0: COM1,2: COM2输出参数:读字符成功:AH.7=0 , AL= 读入字符读字符失败: AH.7=1 , AH.0 6=通信口状态4 取通信口状态( AH=3 )输入参
13、数: DX= 通信口号, 0: COM1,2: COM2输出参数: AH= 通信口状态AL= 调制解调器状态4.2单片机串行口控制寄存器及波特率的计算89C51 串行通信的方式选择、接收和发送控制以及串行口的状态标志等均由特殊功能寄存器SCON 控制和指示。SCON 串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。SCON 就是 51 芯片的串行口控制寄存器。它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51 芯片串行口的工作状态。51 芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON 寄存器。它的各个位的具体定
14、义如下:SM0 SM1 SM2 REN TB8 RB8 TI RISM0、 SM1 为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。串行口工作模式设置。SM0 SM1模式功能波特率000同步移位寄存器fosc120118位 UART由定时器设置1029位 UARTfosc32或 fosc641139位 UART由定时器设置在这里只说明最常用的模式1,其它的模式也就一一略过。表中的fosc代表振荡器的频率,也就是晶振的频率。UART 为 (UniversalAsynchronous Receiver)的英文缩写。SM2: 在模式2、模式3中为多处理机通信使能位。在模式0 中要求该位为
15、0。REN:为允许接收位,REN 置 1 时串口允许接收,置0 时禁止接收。 REN 是由软件置位或清零。如果在一个电路中接收和发送引脚P3.0,P3.1都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REN=0 来禁止接收, 在子程序结束处加入 REN=1 再次打开串口接收。TB8:发送数据位8,在模式2 和 3 是要发送的第9 位。该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。RB8:接收数据位8,在模式2 和3是已接收数据的第9
16、 位。该位可能是奇偶位,地址数据标识位。在模式0 中, RB8为保留位没有被使用。在模式1 中,当 SM2=0, RB8 是已接收数据的停止位。TI :发送中断标识位。在模式0,发送完第8 位数据时,由硬件置位。其它模式中则是在发送停止位之初,由硬件置位。TI置位后,申请中断,CPU 响应中断后,发送下一帧数据。在任何模式下,TI都必须由软件来清除,也就是说在数据写入到SBUF 后,硬件发送数据,中断响应(如中断打开),这时TI=1 ,表明发送已完成,TI不会由硬件清除,所以这时必须用软件对其清零。RI :接收中断标识位。在模式0,接收第8 位结束时,由硬件置位。其它模式中则是在接收停止位的半
17、中间,由硬件置位。RI=1 ,申请中断,要求CPU 取走数据。但在模式1 中, SM2=1时,当未收到有效的停止位,则不会对RI置位。同样RI也必须要靠软件清除。常用的串口模式1 是传输10 个位的, 1 位起始位为0,8位数据位,低位在先,1 位停止位为1。它的波特率是可变的,其速率是取决于定时器 1 或定时器2 的定时值(溢出速率)。AT89C51 和 AT89C2051等 51 系列芯片只有两个定时器,定时器0 和定时器1,而定时器2是 89C52 系列芯片才有的。波特率:在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒
18、内可以传输的波特位数。如果波特率为9600 ,它是指每秒可以传送 9600 个二进位,而一个字节要8 个二进位,如用串口模式1 来传输那么加上起始位和停止位,每个数据字节就要占用10 个二进位,9600 波特率用模式 1 传输时,每秒传输的字节数是9600÷10 960字节。 51芯片的串口工作模式0 的波特率是固定的,为fosc12 ,以一个 12M的晶振来计算,那么它的波特率可以达到1M。模式2 的波特率是固定在 fosc64 或 fosc32 ,具体用那一种就取决于PCON 寄存器中的 SMOD位,如 SMOD为 0,波特率为 focs64,SMOD为 1,波特率为 focs3
19、2。模式 1 和模式 3的波特率是可变的,取决于定时器1 或2( 52 芯片)的溢出速率。那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。波特率(÷ 32)×定时器1 溢出速率上式中如设置了PCON寄存器中的SMOD位为 1 时就可以把波特率提升2 倍。通常会使用定时器1 工作在定时器工作模式2 下,这时定时值中的TL1做为计数,TH1做为自动重装值,这个定时模式下,定时器溢出后,TH1 的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这个定时模式2 下定时器 1 溢出速率的计算公式如下:溢出速率(计数速
20、率)(256 TH1)上式中的“计数速率”与所使用的晶体振荡器频率有关,在51芯片中定时器启动后会在每一个机器周期使定时寄存器TH 的值增加一,一个机器周期等于十二个振荡周期,所以可以得知51 芯片的计数速率为晶体振荡器频率的112,一个 12M 的晶振用在51 芯片上,那么 51 的计数速率就为1M。通常用 11.0592M 晶体是为了得到标准的无误差的波特率,那么为何呢?计算一下就知道了。如我们要得到9600 的波特率,晶振为 11.0592M 和 12M,定时器 1 为模式 2,SMOD设为 1,分别看看那所要求的 TH1 为何值。代入公式:11.0592M9600 (2 ÷3
21、2) ×(11.0592M12)(256-TH1)TH1 25012M9600 (2 ÷32) ×(12M12)(256-TH1)TH1249.49上面的计算可以看出使用12M 晶体的时候计算出来的TH1不为整数,而TH1 的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600 波特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592M的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。4.3程序流程图4.3.1 PC 机部分程序流程图图 3-5 PC 机通信程序流程图4.3.2单
22、片机部分图 3-6 单片机通信程序流程图5 心得体会这学期学习了微机原理与接口技术,接触汇编语言,开始对其有一定的了解,以前编写程序用的都是C 语言,基本上不涉及硬件方面的东西,而汇编语言则不同,它需要对硬件电路有一定的了解,这样在学习汇编语言的时候,就需注意硬件方面的知识的掌握。本次课程设计我所做的题目是实现单片机与PC 机之间的串行通信,对于这个题目,在微机原理与接口技术这门课程里曾学过关于PC 机的串行通信的知识,而对于单片机,在以前也曾经自学过,所以最初看到这个题目的时候,并没有感到无从下手,接下来需要做的事情就是通过查找资料确定硬件电路,然后再通过硬件电路编写实现功能的程序。通过查找
23、资料,最终确定下来硬件电路图,进而根据要求编写程序。由于对此类题目以前没有做过,所以本次课程设计,无论是硬件电路方面,还是软件方面,难免会有些不足之处,比如硬件电路可以尝试其他的实现方法,而软件方面,则可以修改程序使其实现更加复杂的功能等。虽然如此,通过此次课程设计还是感觉获益匪浅,首先是对汇编语言和微机的串行通信知识有了进一步的了解和巩固,为以后更加系统的学习和应用奠定了一定的基础;其次是对单片机知识有了很好的认识,以前只是很粗浅的学习了单片机,经过这几天的学习和应用,有了很大程度的提高;最后一点就是提高了自己分析和解决问题的能力,面对我们未知的问题,我们应该知道如何下手,如何解决。总之,通
24、过此次课程设计,让我收获了很多。参考文献1 周佩玲 . 微机原理与接口技术 . 电子工业出版社, 20052 周坚 .单片机 C语言轻松入门 . 北京航空航天大学出版社, 20063 李朝青 . 单片机原理及接口技术(第三版) . 北京航空航天大学出版社, 20054 潘超群 . 单片机控制技术在通信中的应用 -MCS-51 系列 . 电子工业出版社,20085 程学先 . 汇编语言程序设计 .武汉理工大学出版社, 2002附录一PC机通信程序:DATA SEGMENTRBUF DB 10 DUP(0)COUNT DB10DATA ENDSCODE SEGMENTASSUMECS:CODE,DS:DATA,START PROC FARPUSHDSPUSHAXMOVAX,DATAMOVDS, AXLEA DI ,RBUF; 置接收数据块首地址MOVCL,COUNT; 置接收数据块长度MOVAH, 00H;0 号功能MOVAL, 0E3H; 串口初始化:波特率 9600,无校验,1位停止位, 8位数据位MOVDX, 00H; 指定 COM 1端口INT 14HREPT1:MOV AH, 02HMOVDX, 00HINT 14H;2 号功能:接收字符;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国加纳籽提取物项目创业计划书
- 中国科学与工程计算软件项目创业计划书
- 中国骨科植入金属材料项目创业计划书
- 中国内蒙古园林绿化项目创业计划书
- 毕业联欢会活动策划书
- 乐理模拟试题及答案
- 商务合作保密协议条款及声明书
- 数据驱动的机械制造优化策略研究-洞察阐释
- 2025承诺担保合同全文
- 小学三年级语文上册语文教案7篇
- 2024年安徽省初中(八年级)学业水平考试初二会考生物+地理试卷真题
- 2024年江西省中考生物·地理合卷试卷真题(含答案)
- 车间安全环保培训知识
- 小学科学教育科学六年级下册物质的变化 无字天书
- 少儿美术绘画课件- 艺米中班 4岁-5岁 《荔枝》
- 托管班带生源转让合同
- 借助数学实验 促进思维发展
- 净水厂毕业设计(图纸+计算书)
- 河北工程大学食堂CI手册
- 机械设备维修的安全知识(课堂PPT)
- 住宅小区室外道路及管网配套工程施工方案
评论
0/150
提交评论