登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 串口中断程序

[复制链接]
发表于 2021-2-25 20:28:53 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 串口中断程序
学习安排: 串口中断程序
开始时间: 2021-02-25
结束时间:
本帖最后由 乔笑翊 于 2021-2-25 20:30 编辑

串口中断程序步骤:
串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:
●确定串行口控制(编程SCON寄存器确定串口工作方式SM0,SM1,允许串口接受REN);
●确定T1(定时器)的工作方式(编程TMOD寄存器);
●计算T1的初值,装载TH1、TL1;
●串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。中断源的中断允许   打开总中断CPU开中断
      ——打开允许中断,依次打开串口允许中断位ES,总中断允许位EA(=1,允许)
●启动T1(编程TCON中的TR1位);
●当串口有中断请求时(串口有数据传输时)即中断源发生响应
  1. void UsartInit()
  2. {
  3.    SCON=0X50;
  4.    TMOD=0X20;
  5.    PCON=0X80;
  6.    TH1=0XF3; //波特率为4800//
  7.    TL1=0XF3;
  8.    ES=1; //打开接收中断
  9.    EA=1; //打开总中断
  10.    TR1=1; //打开计数器
  11. }

  12. void Usart() interrupt 4
  13. {
  14.     unsigned char receiveData;

  15.     receiveData=SBUF;
  16.     RI = 0;//清除接收中断标志位
  17.     SBUF=receiveData;//将接收到的数据放入到发送寄存器
  18.     while(!TI); //等待发送数据完成
  19.     TI=0; //清除发送完成标志位
  20. }
复制代码


好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表