51单片机protues仿真学习:[21]串口通信

2025-10-19 16:07:42

51单片机protues仿真学习:[21]串口通信

第一步:TMOD: 工作方式寄存器 确认工作方式和功能 (低8位)

       D7----D6----D5----D4----D3----D2----D1----D0

      GATE-C/T---M1---M0---GATE-C/T---M1----M0

       ---------定时器1-----------------定时器0------------

GATE--门控制位

GATE=0;定时器/计数器启动与停止仅受TCON寄存器中TRX(X=0,1)来控制

GATE=1;定时器/计数器启动与停止仅受TCON寄存器中TRX(X=0,1)和外部中断引脚(INT0或INT1)上的电平状态来共同控制

C/T-定时器模式或者计数器模式选择位

C/T=1为计数器模式 C/T=0为定时器模式

M1M0--工作方式选择位

M1---M0----工作方式

--0-----0----方式0,为13位定时器/计数器

--0-----1----方式1,为16位定时器/计数器

--1-----0----方式2,8位初值自动重装的8位定时器/计数器

--1-----1----方式3,仅适用于T0。分成两个8位计数器,T1停止计算

第二步:

51单片机protues仿真学习:[21]串口通信

第三步:

TCON:是控制寄存器,控制T0,T1的启动和停止及设置溢出标志。(高8位)

       D7----D6----D5----D4----D3----D2----D1----D0

      TF1---TR1--TF0---TR0---IE1---IT1----IE0----IT0

 TF1--定时器1溢出标志位,

      当定时器1计满溢出时,由硬件使TF1置1,并且申请中断,进入中断服务程序后,由硬件自动清0,需要注意的是,如果适用定时器的中断,那么该位完全不用人为去操作,但是如果使用软件查询方式的话,方查询到该位置置1后,就需要用软件清0。

 TR1--定时器1运行控制位

       由软件清0关闭定时器1.当GATE=1,且INT1为高电平时,TR1置1启动定时器1;当GATE=0,TR1置1启动定时器1

 TF0--定时器0溢出标志位

 TR0--定时器0运行控制位

IE1--外部中断1请求标志

IT1--外部中断1请触发方式选择位

IE0--外部中断0请求标志

IT0--外部中断0请触发方式选择位

第四步:

51单片机protues仿真学习:[21]串口通信

第五步:

IE 中断允许寄存器 :

  D7----D6----D5----D4----D3----D2----D1----D0

  EA --无效---ET2---ES---ET1---EX1--ET0--EX0

EA---全局中断允许位 EA1开启 0关闭

ET2--定时/计数器2中断允许位    ET2=1,开启T2中断,0关闭

ES--串行口中断允许位  ES=1打开串行口中断,0关闭

ET1--定时/计数器1中断允许位    ET1=1,开启T1中断,0关闭

EX1-外部中断1中断允许位 EX1=1打开外部中断1中断,0关闭

ET0--定时/计数器0中断允许位    ET0=1,开启T0中断,0关闭

EX0- 外部中断0中断允许位 EX0=1打开外部中断1中断,0关闭

根据上面五步详细说明,写出串口方式1的初始化程序

Void init()

{

TMOD=0X20;//定时器T1方式2

TH1=0XFD;//根据波特率9600得出的初值

TL1=0XFD;

TR1=1;//启动定时器1

SM0=0;//串行方式1

SM1=1;

REN=1;//串行允许接收

EA=1;//开总中断

ES=1;//开串口中断

}

51单片机protues仿真学习:[21]串口通信

51单片机protues仿真学习:[21]串口通信

(共篇)上一篇:定时器中断|下一篇:
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢