《C中断的学习解析实用实用教案》由会员分享,可在线阅读,更多相关《C中断的学习解析实用实用教案(33页珍藏版)》请在金锄头文库上搜索。
1、C51的介绍(jisho)C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进、扩充(kuchng)和移植。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。第1页/共32页第一页,共33页。C51的特点(tdin)C语言作为一种非常方便的语言而得到广泛的支持,很多硬件开发都用C语言编程,如:各种单片机、DSP、ARM等.C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。C提供了很多数学函数(hn
2、sh)并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。第2页/共32页第二页,共33页。学习的主要(zhyo)内容1.LED发光管的工作原理2.简单延时程序的介绍3.动静态数码管的显示(xinsh)4.中断控制5.总结练习第3页/共32页第三页,共33页。1、LED发光管的工作(gngzu)原理第4页/共32页第四页,共33页。编程函数(hnsh)的介绍Main函数格式:voidmain()特点:无返回值,无参。任何一个C程序有且仅有一个main函数,它是整个程序开始执行的入口。例:voidmain()总程序从这里开始执行;其他(qt)语句;第5页/共32页第五页,共3
3、3页。LED发光(fun)管发光(fun)程序#includesbitd1=P13;Voidmain()d1=0;第6页/共32页第六页,共33页。2、简单(jindn)的延时程序For(表达式1;表达式2;表达式3)语句(内部(nib)可为空)执行过程:1.求解一次表达式1.2.求解表达式2,若其值为真(非0即为真),则执行for中语句。然后执行第3步。否则结束for语句,直接跳出,不再执行第3步。3.求解表达式3.4.跳到第2步重复执行。第7页/共32页第七页,共33页。While循环(xnhun)While(表达式)语句(yj)(内部也可为空)特点:先判断表达式,后执行语句(yj)。原则
4、:若表达式不是0,即为真,那么执行语句(yj)。否则跳出while语句(yj)。第8页/共32页第八页,共33页。流水(lishu)灯程序的编写第9页/共32页第九页,共33页。3、动静态(jngti)数码管的显示使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。本实验板用共阳LED显示器,根据电路(dinl)连接图显示16进制数的编码已列在下表。第10页/共32页第十页,共33页。共阳极(yngj)数码管码表0xc0,0xf9,0xa4,0xb0,0x99,0x92,0
5、123450x82,0xf8,0x80,0x90,0x88,0x83,6789AB0xc6,0xa1,0x86,0x8eCDEF第11页/共32页第十一页,共33页。LED数码(shm)显示方式及电路静态显示(xinsh)方式LED显示(xinsh)器工作方式有两种:静态显示(xinsh)方式和动态显示(xinsh)方式。静态显示(xinsh)的特点是每个数码管的段选必须接一个8位数据线来保持显示(xinsh)的字形码。当送入一次字形码后,显示(xinsh)字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示(xinsh)便于监测和控制。缺点是硬件电路比较复杂,成本较高
6、。第12页/共32页第十二页,共33页。动态显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应(xingyng)的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。第13页/共32页第十三页,共33页。第14页/共32页第十四页,共33页。4.中断(zhngdun)控制80C5180C51的中断系统结构一、中断的概念 CPU CPU在处理某一事件A A时,发生了另一事件B
7、B请求CPUCPU迅速去处理(中断发生); CPU CPU暂时中断当前的工作,转去处理事件B B(中断响应和中断服务); 待CPUCPU将事件B B处理完毕后,再回到原来事件A A被中断的地方继续(jx)(jx)处理事件A A(中断返回),这一过程称为中断 。第15页/共32页第十五页,共33页。第16页/共32页第十六页,共33页。引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件(shjin)B。对事件(shjin)B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。第17页/共
8、32页第十七页,共33页。随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点:分时操作CPU可以分时为多个(du)I/O设备服务,提高了计算机的利用率;实时响应CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;可靠性高CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。第18页/共32页第十八页,共33页。二、80C51中断系统(xtng)的结构80C51的中断系统(xtng)有5个中断源(8052有6个),2个优先级,可实现二级中断嵌套。第19页/共32页第十九页,共33页。三、80C51中断的控制中断允许控制
9、CPU对中断系统所有中断以及(yj)某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。EX0(IE.0),外部中断(zhngdun)0允许位;ET0(IE.1),定时/计数器T0中断(zhngdun)允许位;EX1(IE.2),外部中断(zhngdun)0允许位;ET1(IE.3),定时/计数器T1中断(zhngdun)允许位;ES(IE.4),串行口中断(zhngdun)允许位;EA(IE.7),CPU中断(zhngdun)允许(总允许)位。第20页/共32页第二十页,共33页。同一(tngy)优先级中的中断申请不止一个时,则有中断优先权排队问题。同一(tngy)优先级的中断优先权排队,由
10、中断系统硬件确定的自然优先级形成,其排列如所示:第21页/共32页第二十一页,共33页。中断(zhngdun)响应条件:中断源有中断请求;此中断源的中断允许位为1;CPU开中断(即EA=1)。以上三条同时满足(mnz)时,CPU才有可能响应中断。第22页/共32页第二十二页,共33页。四、定时器实现定时功能,比较方便的办法是利用单片机内部的定时/计数器。也可以采用下面三种方法:软件定时:软件定时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率。采用时基电路定时:例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控
11、制(kngzh)和修改,即不可编程。采用可编程芯片定时:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时/计数器不够用时,可以考虑进行扩展。第23页/共32页第二十三页,共33页。(1)定时/计数器的结构(jigu)和工作原理定时/计数器的结构定时/计数器的实质(shzh)是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。第24页/共32页第二十四页,共33页。(2)定时(dnsh)/计数器的工作原理加1计数器输入
12、的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。设置(shzh)为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t
13、。第25页/共32页第二十五页,共33页。(3)定时/计数器的控制80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。工作方式寄存器TMOD工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式(gshi)如下:第26页/共32页第二十六页,共33页。GATE:门控位。GATE0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。:定
14、时/计数模式选择位。0为定时模式;=1为计数模式。M1M0:工作方式(fngsh)设置位。定时/计数器有四种工作方式(fngsh),由M1M0进行设置。第27页/共32页第二十七页,共33页。(4)控制寄存器TCONTCON的低4位用于控制外部(wib)中断。TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下:TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果(xiogu)一样。T
15、R1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。TR0(TCON.4):T0运行控制位,其功能与TR1类同。第28页/共32页第二十八页,共33页。定时/计数器应用举例初始化程序(chngx)应完成如下工作:对TMOD赋值,以确定T0和T1的工作方式。计算初值,并将其写入TH0、TL0、TH1、TL1。中断方式时,则对IE赋值,开放中断。使TR0或TR1置位,启动定时/计数器定时或计数。第29页/共32页第二十九页
16、,共33页。5、总结(zngji)练习发光二极管由左到右依次(yc)闪烁,当发光二极管到达最右端时数码管加1,按键盘按键可使数码管和流水灯停止,蜂鸣器报警,按另一按键可使数码管和流水灯复位重新开始第30页/共32页第三十页,共33页。第31页/共32页第三十一页,共33页。感谢您的欣赏(xnshng)!第32页/共32页第三十二页,共33页。内容(nirng)总结C51的介绍。C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植(yzh)过来。为了显示数字或字符,必须对数字或字符进行编码。LED显示器工作方式有两种:静态显示方式和动态显示方式。CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生)。采用时基电路定时:例如采用555电路,外接必要的元器。TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。感谢您的欣赏第三十三页,共33页。