版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基础串行接口二、异步通信数据格式23.4.2MCS-51的串行接口一、51串口内部结构
51单片机的串口是标准的全双工异步通信接口。
3
对串口的使用可采用中断方式也可采用查询方式。在使用时,只要设置相关寄存器就可以很好的操作了:第一步设置相关寄存器:
IE(中断)、IP(优先)、TMOD(模式)、
PCON、SCON(方式);第二步设置:波特率第三步读写:SBUF(一)串口的使用方法4(二)串行接口的控制各位的定义为:(复位后各位为0)
RI:读标志(当有数时,由硬件置1)
TI:写标志(当写数后,由硬件置1)对于RI和TI的置1,也是中断的标志,但CPU响应后,不会清零。必须由软件清零!1)串行口控制寄存器SCON5RB8:在方式2和方式3中,接收的第9位数据。TB8:在方式2和方式3中,发送的第9位数据。可作为奇偶校验位。SM2:用于多机通信(方式2和方式3)的控制位,仅用于接收。当SM2=1,在RB8=1时,才能接收到数据。一般使用时,SM2=0。REN:REN=1,允许接收,REN=0,禁止接收。6二、串行口的4种工作模式1)方式0(8位数据I/O)72)方式1(10位数据)83)方式2、3(11位数据)9
说明:①在方式0中,8位数据从RXD引脚发送,
或接收(D0先传);TXD引脚只输出移位
(同步)时钟(频率=fosc/12)。②在方式1中,RXD脚为收,TXD脚为发,数据是按10位UART传送的。
(1个起始0,8个数据位,1个停止1);③在方式2,3中,RXD脚为收,TXD脚为发,数据是按11位UART传送的。
(1个起始0,8个数据位+第9位,1个停止1)。
10三、波特率的设置1)方式0的波特率方式0的率等于单片机晶振频率的1/12,即每个机器周期接收或发送一位数据。2)方式2的波特率113)方式1和方式3的波特率在方式1、3中,波特率可由T1定时器设置这种方法用的最多,用到寄存器有:TMOD:T1设成方式2,自动重装,
0010,xxxxB或0x2x;
PCON:用到了SMOD位(D7位)
SMOD=1时加倍;SMOD=0时不加倍。计算公式:12常用的TH1,TL1的设置134)其他注意事项①如果在中断通信:要设置IE中的EA=1的同时,ES=1;②根据实际情况,设优先级IP的各位;③在8位和10位通信中,读写数据均在SBUF中;④在11位通信中,8位数据(读写)在SBUF中,第9位在
TB8或RB8中;⑤在有奇偶校验的通信中(11位通信),PSW中的P位送TB8;
例:发送:88H,在查询方式时:
MOVA,#88H
;会影响PSW的P位.
MOVTB8,P;送奇偶位
MOVSBUF,AW1:JBCTI,END_SD;等TI=1表示发完.
SJMPW1
;等待
END_SD:……………..14四、串口多机通信
串行口以方式2或方式3接收时,若SM2为“1”,时可实现多机通信。
153.4.3通信电平的转换单片机与PC机通信时,电平不是TTL电平,而往往是232电平。一般通过专用芯片转换。16串口通信举例例一,
采用查询的方法实现PC机与单片机的通信。已知,晶振频率为22.1184M,波特率为9.6k。实现:单片机发送:0到9的数字(ASCII),PC机接收该数,并显示。(用汇编编程)chsi_ck0:;初始化串口movTMOD,#21H;0010,0001BT1:定时,方式2movSCON,#50H;0101,0000B8UART方式movTH1,#0FAH
;自动重装movTL1,#0FAH
;定时常数
movPCON,#00H;SMOD=0不加倍setbTR1
;开T1ret
17set_numb:;发送子程序
movr6,#10;设个数(共10个)
movb,#00h;从0开始con_sed:mova,b;准备
orla,#30h;变成ASCIImovSBUF,a;发送一个8位数据went_s:JBCTI,is_snumb;TI=1,表示发完
sjmpwent_s;TI=0,等待is_snumb:lcalldelay_0;等待一会
incb;数据增1djnzr6,con_sed;判断发完否?ret18main:;主程序
movsp,#80h;堆栈
movie,#00h;关中断
movip,#00h;lcallchsi_ck0;初始化串口re_sed:lcallset_numb;发送数据r_k1:jnbk1,re_sed;查键k1=0在发送
sjmpr_k1;未按键等待
end19
例二,
采用查询的方法实现PC机与单片机的通信。已知,晶振频率为22.1184M,波特率为9.6k。实现:PC
发送数据,单片机接收该数(显示)并回送该数到PC。
(用汇编编程)red_numb:;从串口读数
jbRI,is_numb; sjmpred_numbis_numb:clrRI;软件清标志
mova,SBUF;读数据
movb,a;存储在B中
ret20sed_numb:;发送数据到PCmova,b movSBUF,a;发送数据w_snub:jbcTI,is_end_n;查TI=1?sjmpw_snub;TI=0等待is_end_n:ret21main:;主程序入口
movsp,#90h;设堆栈
movie,#00h;关中断
movip,#00hlcallchsi_ck0;初始化串口con_red:lcallred_numb;从串口读数
lcalldisp_r_numb;用数码管显示
movled,blcalldisp_led;用灯显示数据
lcallsed_numb;发送数据到PClcallsprak_on;发声
sjmpcon_red;继续发送数据
end
22例三,
采用中断的方法实现PC机与单片机的通信。已知,晶振频率为22.1184M,波特率为9.6k。实现:PC
发送数据,单片机接收该数(显示)并回送该数到PC。
(用汇编编写)
org0000h;复位入口
ljmpmain;跳到主程序
org0023H ljmpto_sbuf;跳到串口
org0100hto_sbuf:;串口中断程序
clres;关中断
jbRI,to_r_nub;读数据
jbTI,to_w_nub;发送数据
reti23to_r_nub:jbRI,is_num;RI=1时,读数
sjmpred_numb;RI=0时,等待is_num:clrRI;软件清标志
mova,SBUF;读数据
movb,a;存储在B中
;lcalldisp_r_numb;可调用显示子程序
lcallsed_numb;发送数据到PClcallsprak_on;发声
setbes reti;硬件返回(清标志)to_w_nub:setbesreti24main:;主程序入口
movsp,#90h;设堆栈
movie,#00h;关中断
movip,#00hlcallsprak_on;发声
movb,#00hlcalldisp_r_numb;显示
lcallchsi_ck0;初始化串口
setbes;开串口中断
setbea;开总中断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 催产素与亲子情感联系
- 春季学校传染病有哪些
- 申请施工合同无效
- 2024年事业单位招聘考试内蒙古阿拉善盟职业能力倾向测验题库含答案解析【易错题和难点汇编】
- 办理购房合同资料
- 《乡镇集贸市场规划设计标准+CJJT+87-2020》详细解读
- 2023年化妆品的年度总结报告
- 2023年化纤厂纺丝工工作总结报告
- 数控伺服系统行业相关投资计划提议范本
- 压电陀螺测斜仪相关行业投资规划报告范本
- 医疗废物运转处置流程图
- 提升学校基层管理干部素质和能力的有效途径
- 机务职称考试 TC三、航材管理笔试题及其答案
- 英特尔品牌战略方案
- 2020年技术服务保障措施(通用)
- 视频安防监控系统分项工程检验批质量验收记录表
- 水利水电工程毕业设计---水闸设计
- 猴子捞月亮PPT课件
- 【IRR】计算器(信贷专用)
- 10KV电气设备常规试验
- 实验七 玉米雌雄穗分化观察
评论
0/150
提交评论