51单片机的应用——I/O口数据传送
一、题目要求
利用单片机发送存放在内部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口数据传送相关推荐
- 51单片机主函数实现P1口120ms间隔从P1.7口向右循环进行流水灯每次只能亮一个,进入外部中断是进行120ms的延时灯的亮灭各一次
51单片机主函数实现P1口120ms间隔从P1.7口向右循环进行流水灯每次只能亮一个,进入外部中断是进行120ms的延时灯的亮灭各一次 #include <reg51.h> #includ ...
- c语言spi发送12位数据,【51单片机】普通I/O口模拟SPI口C语言程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...
- 发现好文!51单片机特殊功能寄存器 /I/O口操作 /中断/ 定时器/ 串口通信/ ---位寻址解释由来--以及程序例程
51单片机特殊功能寄存器有哪些_功能是什么 最近学习中对寄存器的概念理解很迷惑,I/O口操作/中断/定时器/串口通信四大模块的寄存器应用不太明白,这篇文章,解释的不错,希望帮到各位! 1.21个寄存器 ...
- 51单片机入门 - 并行I/O口扩展实例(74LS244/74LS373/4071)
博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...
- 单片机 c语言 定义i o,【51单片机】普通I/O口模拟SPI口C语言程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...
- 51单片机扩展io口实验c语言,【51单片机】普通I/O口模拟SPI口C语言程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...
- 51单片机io位与 c语言,【51单片机】普通I/O口模拟SPI口C语言程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...
- c语言 单片机模拟,【51单片机】普通I/O口模拟SPI口C语言程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...
- (十一)51单片机——用AT24C02实现存储秒表数据(附成果展示)
目录 存储器 RAM ROM 存储器简化模型 AT24C02介绍 引脚及应用电路 内部结构框图 I2C总线 I2C总线介绍 I2C电路规范 I2C时序结构 起始条件 终止条件 发送一个字节 接受一个字 ...
最新文章
- css3制作左右拉伸动画菜单
- dmidecode 命令详解(获取硬件信息)
- 使用keil判断ARM的冷启动和热启动的方法
- 电子商务之网购魅力何在?(网购用户行为分析)
- vue 路由跳转并打开新页面
- 专家:大数据等新技术助力信息融合
- BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
- 用 Shell 快速写一个嵌入式测试框架
- bootstrapValidator对于隐藏域验证和程序赋值即时验证的问题
- Java把科学计数法转换为字符串
- java如何引入qq登陆,Java Swing仿QQ登录界面 学习之用
- STL vector 用法介绍
- 从 Nginx 到 Pandownload,程序员如何避免面向监狱编程?
- 某个目录下产品根据创建时间下架
- Synchronized和Lock接口
- JavaScript 图像延迟加载库 Echo.js的简单使用
- 相似矩阵对角化 | 找到一个可逆矩阵 P 使得 P^(-1)AP 成为一个对角矩阵
- steam第三方授权登录不稳定(openid4java)
- excel常用快捷键汇总
- unity3d + lua + 斗地主 系列 (2) 创建扑克规则
热门文章
- 梦幻西游 python.dll_梦幻西游游戏参数
- 商业图书阅读的原则以及一些方法习惯的养成
- mikumikumoving 一些插件记录
- MIME与mime.types
- 7.1.5 智慧物流【车辆监控Structured Streaming、整合kafka、Redis、Mysql、HBASE 写入数据】
- 检查错别字在线检测系统网站,免费错别字识别软件丨推荐
- cocos2d-x传智播客_Hanselminutes播客35-HDTV状态
- java毕业设计——基于java+JSP+Oracle的记账管理系统设计与实现(毕业论文+程序源码)——记账管理系统
- display的用法
- 服务器系统报错7026,事件 ID 56 已记录在 Windows 服务器中