80C51单片机串行口SBUF与SCON详解

需积分: 19 0 下载量 58 浏览量 更新于2024-07-13 收藏 2.56MB PPT 举报
"串行口数据缓冲器SBUF-微机应用系统设计" 本文主要讨论了微机应用系统设计中的一个重要组成部分——串行口数据缓冲器SBUF以及相关的串行口控制寄存器SCON,特别是在智能仪表领域的应用。80C51系列单片机是微处理器的基础,其特点和结构在设计中至关重要。 80C51系列单片机是广泛应用的微控制器,它集成了CPU、并行I/O口、异步串行口、16位定时器/计数器、中断系统、片内RAM和ROM等。根据是否带有片内ROM,80C51系列分为80C31(无片内ROM)和80C51、87C51、89C51(带片内ROM)等型号。该系列单片机采用ROM和RAM分开的存储器结构,支持七种寻址方式和111条指令,具有5个中断源。 串行口数据缓冲器SBUF位于80C51单片机的串行通信接口中,用于暂时存放待发送或已接收的数据。在串行通信中,数据通常是按位传输的,SBUF作为数据进出串行口的通道,当发送数据时,CPU将数据写入SBUF,然后通过串行口发送出去;接收数据时,数据则会从串行口进入SBUF,等待CPU读取。 串行口控制寄存器SCON包含了多个控制位,如SM0和SM1用于设置串行口的工作模式,SM2则与多机通信有关。REN位控制串行口的接收功能,当REN为1时,允许接收数据;反之,当REN为0时,禁止接收。TB8和RB8用于数据的第9位传输,在某些工作模式下,可以用来传递额外的信息。TI和RI分别是发送中断标志和接收中断标志,当数据发送完毕或接收新数据时,这些标志位会被自动置位,以触发中断服务程序。 在智能仪表的设计中,串行通信常用于设备之间的数据交换,例如80C51的串行口可以连接到其他智能设备或传感器,通过串行通信协议(如UART、SPI或I2C)进行数据传输。这种通信方式节省了硬件资源,简化了布线,并且能够实现远程监控和控制。 80C51单片机的引脚功能也非常重要,例如P0、P1、P2、P3是并行I/O口,可以作为输入输出使用;Vcc和Vss分别接电源正负极;ALE、PSEN和EA与程序存储器的访问相关;RST是复位引脚,当高电平时可对单片机进行复位操作;XTAL1和XTAL2是晶体振荡器的连接引脚,为单片机提供时钟信号。 理解80C51系列单片机的特点、结构以及串行通信的相关知识对于微机应用系统设计,特别是智能仪表的开发至关重要。通过合理利用SBUF和SCON,可以实现高效、可靠的串行数据传输,满足不同应用场景的需求。
2009-05-28 上传
第一章 需求分析 1 1. 本课程设计题目 1 2. 本课程设计要求及任务 1 3. 课程设计思想 1 4. 软硬件开发环境 2 5. 开发工具 2 第二章 概要设计 3 1. 分析 3 2. 设计 4 第三章 详细设计 5 1. 原理图及PCB图 5 2. 程序流程图 7 3. 软件设计程序 8 4. 设计计算结果 12 第四章 调试与操作说明 12 第五章 课程设计总结与体会 12 第六章 致谢 14 第七章 参考文献 14 第一章 需求分析 1. 本课程设计题目 微机数据采集系统设计 2. 本课程设计要求及任务 要求: 单通道采集数据并显示; 多通道循环采集数据并显示。 任务: 进行微机数据采集系统电路硬件设计,画出电路原理图PCB图或元器件布线图;安装或焊接元器件;进行数据采集系统控制程序设计(采用ASM或CPP语言);系统联调,提交一个满足上述二种要求之一的微机数据采集系统设计。 3. 课程设计思想 首先,根据实验要求,设计A/D数据采集电路,然后,按照电路原理,选用一些元器件,在面包板上分别搭建电路模块。由于实验中要用到MFID多功能微机实验平台板上的8255A作接口控制信号,所以要用两头带插针的软导线,通过26芯电缆的插孔将8255A的输出信号接入面包板,这样整个的组成了A/D数据采集系统的硬件。 然后,编写A/D数据采集系统的控制程序,并进行调试。 最后,加入软件控制程序,对接口进行驱动,组成了A/D数据采集系统。 A/D数据采集模块、平台板、微机组成的数据采集系统框图 如图3.1所示。 4. 软硬件开发环境 MF软件采用系统集成技术,把实验程序的开发工具,故障诊断程序和外设模块演示程序集成在一个环境中,构成一个用户程序集成开发环境IDE(Integrated Development Environment)。用户程序的编辑、编译、连接、运行和修改的全过程都在一个集成的环境中完成,大大提高了编程的效率。这个环境目前已有4个版本,每个版本提供了内容丰富的汇编语言和C/C++语言开发软件包,并以全屏幕窗口环境的形式供用户使用。 5. 开发工具 实验程序的开发工具包括编辑器、编译系统、连接程序和调试程序。 1:编辑器采用全屏幕多窗口编辑器,复制,粘贴,裁减十分方便。: 2:编译系统 MF软件包括了C/C++语言和汇编语言两个编译系统,用户可根据自己所熟悉的语言,任选一个来编写程序,并在集成环境中进行程序的编译(汇编)、连接、运行与调试。 3:连接程序 采用TLINK。 4:调试程序 采用TDEBUGGER全屏幕调试程序,直观全面,使用方便。 以上应用程序(实验程序)开发工具,集成在集成开发环境(IDE)中,用户只需在集成开发环境全屏幕窗口中,点击主菜单的相应菜单项,即可随时启用。 第二章 概要设计 1. 分析 要实现上述设计要求,至少需要考虑:被控对象ADC0809的特性、接口电路结构形式。 ADC0809的外部特性: ADC的外部引脚如图4.7,从图中 可以看出 ,ADC0809有八个模拟 量输入端(IN0-IN7),相应设 置3根模拟量通道地址线(ADDA -ADDC),用以编码来选择8个 模拟量输入通道。并且还设置1根地址锁存允许信号ALE,高电平有效。当ALE变高,锁存由ADDa-ADDc编码所选中的通道号,将该通道的模拟量接入A/D转换器。 ADC0809的分辨率为8位,有8根数字量输出线(D0-D7),带有三态输出锁存器。并设置了1根输出允许信号OE,高电平有效。当读数据时,要使OE置高,打开三态输出锁存器,把转换的数字量送到数据线上。 ADC0809的转换启动信号是START,高电平有效。转换结束信号EOC,转换过程中为低电平,转换完毕变为高电平,可利用EOC的上升沿申请中断,或作查询之用。 2. 设计 1.A/D数据采集模块电路 本外设模块采用8855A作为接口电路,其中,PA0-PA7接数据线,其低三位与通道地址线ADDA-ADDC相连,即将通道号写入A口。另外,转换后的数据从A口读入CPU。PC0连接START和ALE信号,高电平有效,表示启动转换。PC1连接输出允许信号OE。当查询方式时,PC4连接EOC信号,转换过程中,PC4为0,当转换完毕时,PC4为1。 2.设计方法及其原理: 通过ADC0809数模转换器将由电位器转动所产生的模拟信号转换为数字信号,然后通过8255A并行接口送入内存并显示在窗口中。 第三章 详细设计 1. 原理图及PCB图 原理图如下: PCB图如下: 2. 程序流程图 3. 软件设计程序