一、题目要求

利用单片机发送存放在内部20H~29H中的10个字符,晶振11.0592MHz,波特率为9600,由T1产生,请编写发送和接收程序

二、题目分析

分析这是一道基础的题目,考察了I/O最基本的应用。要利用51单片机发送内部RAM的数据,要知道工作原理。发送所需的波特率由定时器T1产生(波特率是指每秒发送二进制代码的位数,单位是bit/s),T1受TMOD控制,T1应该工作在方式2(8位自动装填)。要发送的数据送到寄存器SBUF中,在每一次定时把SBUF中的内容逐位送到TxD中输出。串口工作模式受SCON控制,REN=1时允许接受,REN=0时禁止接受,在这里使用工作方式1发送,REN=0。PCON控制着波特率的倍乘,在这里SMOD=0。

定时器初值的计算:,算得X=0FDH

综上所述,

TMOD=0010 0000B =20H

TH1=TL1=0FDH

SCON=0100 0000=40H

PCON=00H

三、发送程序代码实现:

MOV TMOD,#20H;寄存器初始化
MOV TH1,#0FDH
MOV TL1,#0FDH
MOV SCON,#40H
MOV PCON,#00H
MOV R2,#20H   ;设置发送内容的指针和长度
MOV R0,#10HSETB TR1      ;定时器启动SENT:MOV A,@R2MOV SBUF,A    ;开始传送DETC:JBC TI,GOON;等待一单元内容发送完毕SJMP DETC
GOON:INC R2     ;指针+1DJNZ R0,SENT ;发送完10个单元后退出RET     ;返回

 接受程序代码实现:REN=1, SCON=0101 0000=50H

MOV TMOD,#20H;寄存器初始化
MOV TH1,#0FDH
MOV TL1,#0FDH
MOV SCON,#50H
MOV PCON,#00H
MOV R2,#20H   ;设置接受内容存储单元的指针和长度
MOV R0,#10HSETB TR1      ;定时器启动RECE:JBC RI,STORE;当SBUF接受满后,RI置1,跳转到存储子程序SJMP RECE
STORE: MOV A,SBUFMOV @R2,AINC R2     ;指针+1DJNZ R0,RECE
RET

四、总结

         根据题目要求,计算好要使用的寄存器的值和初值,接受和发送的逻辑很相似,发送时接受允许位REN=0,接受时REN=1,通过查询收发标志位来确认发送/接受完成。

五、图片来源

        《单片机原理及接口技术》 段晨东主编 第2版 P170-171

51单片机的应用——I/O口数据传送相关推荐

  1. 51单片机主函数实现P1口120ms间隔从P1.7口向右循环进行流水灯每次只能亮一个,进入外部中断是进行120ms的延时灯的亮灭各一次

    51单片机主函数实现P1口120ms间隔从P1.7口向右循环进行流水灯每次只能亮一个,进入外部中断是进行120ms的延时灯的亮灭各一次 #include <reg51.h> #includ ...

  2. c语言spi发送12位数据,【51单片机】普通I/O口模拟SPI口C语言程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...

  3. 发现好文!51单片机特殊功能寄存器 /I/O口操作 /中断/ 定时器/ 串口通信/ ---位寻址解释由来--以及程序例程

    51单片机特殊功能寄存器有哪些_功能是什么 最近学习中对寄存器的概念理解很迷惑,I/O口操作/中断/定时器/串口通信四大模块的寄存器应用不太明白,这篇文章,解释的不错,希望帮到各位! 1.21个寄存器 ...

  4. 51单片机入门 - 并行I/O口扩展实例(74LS244/74LS373/4071)

    博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...

  5. 单片机 c语言 定义i o,【51单片机】普通I/O口模拟SPI口C语言程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...

  6. 51单片机扩展io口实验c语言,【51单片机】普通I/O口模拟SPI口C语言程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...

  7. 51单片机io位与 c语言,【51单片机】普通I/O口模拟SPI口C语言程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...

  8. c语言 单片机模拟,【51单片机】普通I/O口模拟SPI口C语言程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...

  9. (十一)51单片机——用AT24C02实现存储秒表数据(附成果展示)

    目录 存储器 RAM ROM 存储器简化模型 AT24C02介绍 引脚及应用电路 内部结构框图 I2C总线 I2C总线介绍 I2C电路规范 I2C时序结构 起始条件 终止条件 发送一个字节 接受一个字 ...

最新文章

  1. css3制作左右拉伸动画菜单
  2. dmidecode 命令详解(获取硬件信息)
  3. 使用keil判断ARM的冷启动和热启动的方法
  4. 电子商务之网购魅力何在?(网购用户行为分析)
  5. vue 路由跳转并打开新页面
  6. 专家:大数据等新技术助力信息融合
  7. BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
  8. 用 Shell 快速写一个嵌入式测试框架
  9. bootstrapValidator对于隐藏域验证和程序赋值即时验证的问题
  10. Java把科学计数法转换为字符串
  11. java如何引入qq登陆,Java Swing仿QQ登录界面 学习之用
  12. STL vector 用法介绍
  13. 从 Nginx 到 Pandownload,程序员如何避免面向监狱编程?
  14. 某个目录下产品根据创建时间下架
  15. Synchronized和Lock接口
  16. JavaScript 图像延迟加载库 Echo.js的简单使用
  17. 相似矩阵对角化 | 找到一个可逆矩阵 P 使得 P^(-1)AP 成为一个对角矩阵
  18. steam第三方授权登录不稳定(openid4java)
  19. excel常用快捷键汇总
  20. unity3d + lua + 斗地主 系列 (2) 创建扑克规则

热门文章

  1. 梦幻西游 python.dll_梦幻西游游戏参数
  2. 商业图书阅读的原则以及一些方法习惯的养成
  3. mikumikumoving 一些插件记录
  4. MIME与mime.types
  5. 7.1.5 智慧物流【车辆监控Structured Streaming、整合kafka、Redis、Mysql、HBASE 写入数据】
  6. 检查错别字在线检测系统网站,免费错别字识别软件丨推荐
  7. cocos2d-x传智播客_Hanselminutes播客35-HDTV状态
  8. java毕业设计——基于java+JSP+Oracle的记账管理系统设计与实现(毕业论文+程序源码)——记账管理系统
  9. display的用法
  10. 服务器系统报错7026,事件 ID 56 已记录在 Windows 服务器中