(3)方式2:方式0和方式1的特点是计数溢出后,计数回0,而不能重装初值,因此循环定时或循环计数就存在反复设置计数初值问题,不但影响定时精度,同时也曾加了程序设计的复杂程度。方式2就是针对这内问题而设计的,它具有自动重装计数初值的功能。当TMOD中的M1M0=10H是,定时器工作方式2进行工作。 方式2中将16位的计数器拆成了2个8位计数器,低8位TL用作计数器;高8位TH用作预置计数器,初始化时将计数初值分别装入TL和TH中。当计数溢出时,由预支计数器自动给计数器TL重新装入初值。其逻辑电路图如图
初始化时,8位计数初值同时装入TL0和TH0中,TL0计数溢出时,置位TF0,同时将保存在预置计数器TH0中的计数初值自动装入TL0,然后TL0重新计数,去次循环反复工作。这不但省去了程序中的重新初值指令,而且也有利于提高定时精度。该方式自动重装功能非常适用于循环定时或循环计数应用。
(4)方式3:这种式作方式之下,定时/计数器0被拆成2个独立的定时/计数器来用。其中,TL0可以构成8位的定时器或计数器的工作方式,而TH0则只能
作为定时器来用。我们知道作定时、计数器来用,需要控制,计满后溢出需要有溢出标记,T0被分成两个来用,那就要两套控制及、溢出标记了,从何而来呢?TL0还是用原来的T0的标记,而TH0则借用T1的标记。
一般情况处,只有在T1以工作方式2运行(当波特率发生器用)时,才让T0工作于方式3的。方式3的逻辑电路图如图
通过比较上面4中方式,本设计最终采用的是方式1来进行定时,因为单片机主脉冲的晶体振荡器频率f为12M赫兹,因此方式0最大定时时间Tm=2^13*1us=8.192ms,方式1最大定时时间为Tm=2^16*1us=65.536ms.方式2和3最大定时时间为Tm=2^8*1us=0.256ms。而需要定时的时间都大于这些方式的最大时间,因此要用到循环程序,考虑到精确度,于是选用方式1来产生50ms的定时。以50ms为基础,来进行循环。经计算,各信号音循环的次数如下:忙音,循环7次;拥塞音,循环14次;空号音循环2次。
4 中断系统的设计
4.1 中断允许控制寄存器(IE)
在CPU与外设交换信息时,存在一个快速的CPU与慢速的外设间的矛盾。为解决这个问题,采用了中断系统。
中断系统又叫作中断管理系统,其功能是使处理机对外界异步事件具有处理功能,当CPU正在处理某项事务的时候,如果外界或内部发生了紧急事件,要求
CPU暂停正在处理的工作转而去处理这个紧急事件,待处理完以后再回到原来被中断的地方,继续执行原来被中断了的程序,这个过程称为中断。51单片机允许有5个中断源,提供两个中断优先级(能实现二级中断嵌套)。每一个中断源的优先级的高低都可以通过编程来设定。中断源的中断请求是否能得到响应,受中断允许寄存器IE的控制;各个中断源的优先级可以由中断优先级寄存器IP中的各位来确定;同一优先级中的各中断源勇士请求中断时,由内部的查询逻辑来确定响应的次序,本设计当中,采用的是中断允许控制寄存器(IE)。 IE中的各位功能如下: D7 EA
1)EX0:外部中断0允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。
2)ET0:T0溢出中断允许位。ET0=1,允许T0中断;ET0=0,禁止T0中断。 3)EX1:外部中断1允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。
4)ET1:T1溢出中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。 5)ES:串行中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。 6)EA:中断总允许位。EA=1,CPU开放中断。但每个中断源的中断请求是允许还是被禁止还需要各自的允许为确定;EA=0,CPU禁止所有的中断请求,即CPU屏蔽所有的中断请求。
51单片机中断系统的管理是由中断允许总控制EA和各中断源的控制为共同作用来实现的,缺一不可。当系统复位后,IE各位均清零,即禁止所有中断。
D6 --- D5 --- D4 ES D3 ET1 D2 EX1 D1 ET0 D0 EX0 4.2 键盘中断方式设计
本设计当中,使用是是按键来控制各种信号音的发生,因此需要利用键盘中
断来实现。一下是键盘的中断工作方式流程图
初始化设置 中断入口 Key_value=P2&0XF0 调用运行延时子程序 否 Key_value是否等于 =P2&0XF0 判断按键是否释放 否 执行相应的处理程序(散转) ....... 中断返回
由于单片机的中断资源有限,合理充分的利用中断资源就比较重要,系统需要用到多个按键时,通过与门或与非门可以使用一个中断来实现键盘的数入控制,键盘的工作方式如图:
电阻10kΩ*8
P2.0 KEY1 P2.1 KEY2 P2.2 KEY3 P2.3 KEY4 P2.4 KEY5 P2.5 KEY6 P2.6 KEY7 P2.7 KEY8
接地
INT0 4086
在上图中,将电路通过与门街道单片机的外部中断源INT0口上,当有键按下时,例如KEY1按下,P2.0为低电平,同时通过4086与门触发中断,从中断入口地址跳到相应的键盘中断子系统中执行。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库信号音发生器(6)在线全文阅读。
相关推荐: