历史上的今天
返回首页

历史上的今天

今天是:2025年02月24日(星期一)

正在发生

2020年02月24日 | 单片机串口通信笔记(中断复习)

2020-02-24 来源:51hei

把单片机当做一个APP,中断系统就是其中的一项功能。这个功能强不强大,是衡量一个APP的标准。

这项功能的作用是帮助你处理突发事件的。我们做事都有个优先级。你放在中断系统里的事情肯定是要优先处理的事情,所以当中断触发的时候,单片机要停下它当前做的事,来处理中断中的事。也就是说,单片机要在中断触发时,停止运行主函数里的代码,转而运行中断里的代码。等到中断的代码运行完毕之后,再继续运行主函数的代码。

中断这一项功能是要手动打开的,所以在主函数的一开始就要先打开中断系统的开关。也就是EA=1,EA=0表示关掉所有的中断,EA=1表示打开。

中断可以被6种方式触发,有以下六种。
1.外部中断0,当P3.2口输入低电平时触发

2.外部中断1,当P3.3口输入低电平时触发

3.串行口中断,当串口完成一帧数据的传输时

剩下的自己看书或者数据手册╮(╯▽╰)╭

既然是六种触发方式,那你就要在主函数一开始就要告诉单片机是那种。比如你想用P3.2口低电平触发,那么就要写EX0=1,表示是外部中断0,再写IT0=1,表示低电平触发。

如果你想要用串行口中断,你首先得把单片机串口这项功能打开。写下:

EA=1;//打开总中断 
ES=1;//打开串口中断

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

理论上就可以使用串口中断。但是串口中断的方式也不止一种。最常用的一种就是工作方式1。

将串口设置成工作方式1的代码是SM0=0; SM1=1; 这种方式下,单片机与计算机,或者单片机与单片机之间传输数据是一帧一帧的传输。一帧数据有十位,第一位和最后一位是标志位,用来告诉单片机发送的那一帧数据的开始和结束的,单片机会自动把这两位剔除。每一帧数据发送完毕之后,一个叫TI的参数就会被置1,这时串行口中断就会被触发;每一帧数据接收完毕之后,也会有一个参数被置1,叫RI,也会触发中断。 

下面看一段代码:
void main()
{
        TMOD=0x20;                   //用定时器设置串口波特率           9600
        REN=1;          //串口初始化
        SM0=0;
        SM1=1;
        EA=1;           //开启总中断
        ES=1;
        while(1)
        {
                if(num==1)    //判断是否有串口数据的传送
                {
                        ES=0;
                        num=0;
                        SBUF=a;                         //发送数据a到SBUF,即将单片机的数据发送到计算机
                        while(!TI);
                        TI=0;
                        ES=1;
                }
        }        
}
void ser() interrupt 4
{
        RI=0;
        P2=SBUF;                        //接收数据SBUF,即将计算机的数据接收。
        a=SBUF;
        num=1;
}

这段程序会先进行初始化,把该打开的打开,把串口中断的模式设置好,然后进入while循环。while循环里的第一步,是计算机向单片机发送数据,此时单片机已经接收到了数据,RI被置1,程序进入中断,RI被清零,缓存在SBUF的数据赋值给a。然后跳出中断,执行if语句,关闭中断,再将a赋值给发送缓存区。当数据从发送缓存区进入计算机时,TI会被置1,进而通过while循环。然后在清零TI,打开中断,以便发送下一帧数据

推荐阅读

史海拾趣

DS-IMP公司的发展小趣事

DS-IMP公司非常重视人才培养和团队建设。公司建立了完善的人才培养机制,为员工提供丰富的培训和学习机会。同时,公司还注重团队建设和文化建设,通过组织各种团队活动和文化建设活动,增强员工的凝聚力和归属感。这些努力使得公司拥有一支高素质、专业化的团队,为公司的发展提供了坚实的人才保障。

Fremont_Micro_Devices_USA公司的发展小趣事

DS-IMP公司一直将研发创新作为企业发展的核心动力。在研发过程中,公司不断投入大量资金,引进先进设备和技术,并与国内外知名高校和研究机构建立合作关系。通过不懈努力,公司在多个领域取得了重大突破,成功研发出了一系列具有自主知识产权的高性能模拟混合电路产品。这些产品不仅满足了国内外客户的需求,还为公司赢得了良好的市场声誉。

Hind Rectifiers Ltd公司的发展小趣事

在电子行业,供应链管理是企业发展的关键因素之一。DS-IMP公司深知这一点,因此在发展过程中不断优化供应链管理。公司建立了完善的供应链体系,与供应商和客户建立了长期稳定的合作关系。同时,公司还引入了先进的供应链管理软件和技术手段,实现了对供应链的实时监控和精细化管理。这些措施不仅提高了公司的运营效率,还降低了成本风险,为公司的发展提供了有力保障。

智烽维(CDA)公司的发展小趣事

随着技术的不断成熟和市场的不断拓展,智烽维在2015年开始面向全球开展业务。公司凭借卓越的产品质量和优质的服务,成功打入了国际市场,并在多个国家和地区建立了稳定的销售网络。全球业务的拓展不仅为智烽维带来了更多的商机,也进一步提升了公司的品牌影响力和市场竞争力。

风华邦科(FH-BK)公司的发展小趣事

FlyWin集团旗下的另一家公司,专注于电子元器件的回收与再利用。随着电子产品的快速迭代,废旧电子设备的处理成为一大难题。该公司通过建立完善的回收网络和先进的处理技术,有效回收了包括粤翔贴片排阻在内的多种电子元器件。这些回收的元件经过专业检测和处理后,部分被重新用于生产,部分则被安全环保地处置,有效减少了电子垃圾对环境的污染。这一举措不仅为公司带来了经济效益,也为社会的可持续发展贡献了一份力量。

General Magnetics Inc公司的发展小趣事
用于电力传输和分配过程中的电压变换。

问答坊 | AI 解惑

2006年 四川省大学生电子设计竞赛试题-12V-220V逆变电源

本帖最后由 paulhyde 于 2014-9-15 04:25 编辑 电子设计竞赛试题-12V/220V逆变电源 一、电子设计竞赛试题设计任务 设计并制作一12V/220V逆变电源 二、电子设计竞赛试题设计要求 1、基本要求 (1)输入12V直流(汽车蓄电池提供) (2) ...…

查看全部问答>

请教光信号稳定性处理!!

最近在做光信号接收实验中发现,由于光源是按一定频率闪烁,所以接受到得电压信号很不稳定,请教该如何处理来提高接受信号的稳定性,谢谢!…

查看全部问答>

电脑族每分钟需眨眼15次 屏幕成视力杀手 ZT

长时间盯着电脑的朋友们,小心保护眼睛啊! 当电脑改变着我们生活的同时,许多人的视力在显示器面前也在悄悄地发生着变化。电脑伤眼已经是一个不争的事实。据美国全国职业保健与安全研究所的一项调查证明,每天在电脑前工作3小时以上的人中,有90% ...…

查看全部问答>

成都华为高薪寻求软件和硬件工程师

1) 软件工程师(高级工程师) 工作职责 1、从事网络设备的底层软件、主机软件、业务软件、网管软件等研发工作; 2、负责软件项目、模块的需求分析、设计、编码实现、验证; 3、参与相关质量活动,确保软件设计及实现工作按时保质完成。 ...…

查看全部问答>

usb通讯干扰

我通过USB实现电机控制器与PC机的通信,电机控制器启动电机转动后,usb通讯就中断,重新插拔有时候能连接上,但是马上就又断,有时候计算机上显示,无法识别设备。而电机不转的时候,通讯正常。其中,电机控制器采用4层板,电机控制器主芯片为ARM, ...…

查看全部问答>

ARM认证有用么?

请问各位前辈,有ARM认证找工作,企业认不认啊,嵌入式方面都有什么权威认证阿。…

查看全部问答>

Verilog能编写UDP的测试程序么?

Verilog能编写UDP的测试程序么?如果可以,请问开头结尾怎么写,谢谢!…

查看全部问答>

各位大侠:如何通过430编程把数据包往电脑上发送?(用网线而不是串口)

问题补充:总的结构为:430单片机(F5438)——>ENC28J60(以太网控制芯片)——>网口——>电脑(用来测试传输速度)。谢谢了…

查看全部问答>

修改12864串口驱动程序

主函数main.c #include <msp430g2553.h> #include\"LCD12864P.h\" void main() { WDTCTL = WDTPW + WDTHOLD; Ini_Lcd(); lcd_pos(1,0); Disp_HZ(\"液晶12864\",5); lcd_pos(3,4); ...…

查看全部问答>

GamePop推出“永久免费”GamePop迷你,卖游戏送游戏机

有史以来第一款免费游戏机,只需购买GamePop的服务,即可在多种设备上运行 移动公司BlueStacks宣布免费提供其GamePop移动游戏服务的游戏机——GamePop迷你。新设备将运行果冻豆4.2,通过HDMI电缆连接到电视,包括500款挑选出来的流行移动游戏。 ...…

查看全部问答>