1、实例解读51单片机完全学习与应用All you need to know about the 8051 microcontroller,杨欣Yang X张延强Zhang Y编著莱诺克斯Nokes L王玉凤Wang Y刘湘黔Liu X主审电子工业出版社 2011.2,1, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,第14章 中断的魅力,2,第14章 中断的魅
2、力,中断的比喻,3, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,任何一件事情的发生都会中断小林看电视的进程而去响应和处理事件。例如,邮递员上门送信,小林必须去开门签收信件,当事件处理完后,小林回去接着看电视。这里,小林比喻的就是单片机,而5个可能发生的事件为单片机的5个中断源外部中断0、外部中断1、Timer 0中断、Timer 1中断、串行通信中断。,第
3、14章 中断的魅力,4.1 “打扰”单片机14.1.1 外部中断一例,4, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,两支发光二极管D1(绿色)和D2(红色)与单片机的P0.0和P0.1相连,在外部中断1(P3.3(/INT1 ),13管脚)上有一个按钮开关S1。按下按钮开关S1可以模拟外部中断信号的发生:当开关S闭合时,P3.3=0,外部中断1产生。,第
4、14章 中断的魅力,14.1.1 外部中断一例,5, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,“MAIN” 段的 “MOV IE, #84H”设置中断使能寄存器IE,使单片机可以响应P3.3的外部中断1。“GREEN” 段将P0.0口上的绿色发光二极管D1点亮。D1的来说是一个死循环。只有当中断持续发光对于主程序发生时按下开关S1,P3.3=0,外部中断
5、1产生,单片机放下正在执行的循环而进入中断服务子程序中执行程序。从标号“EXT1_RED”到指令“RETI”之间的程序是中断服务子程序段,子程序段将熄灭绿色发光二极管D1,并点亮红色发光二极管D2,延时100ms后熄灭。中断服务子程序以“RETI”为结束的标志,中断服务子程序结束。单片机又回到主程序执行,绿色发光二极管D1又被点亮。,第14章 中断的魅力,14.1.2 中断服务的指挥中断向量表,6, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张
6、延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,当外部中断1发生时,单片机怎么知道要去“EXT1_RED”段去执行呢?这都是指令“ORG13H”的功劳,该指令重新设置了一个新的地址13H,这就使得中断服务子程序段“EXT1_RED”从13H开始存储在程序存储器中。当指令“MOV IE, #84H”使能外部中断1后,一旦外部中断1发生,单片机会自动到程序存储器的地址13H上去执行程序。换句话说,外部中断1发生时,程序计数器PC被硬件修改成0013H,而PC指向的地址正是单片机取下一条指令的地址,于是单片机会从13H开始执行中断服务子程序段“EXT1_RED
7、”直到遇到指令“RETI”为止。,第14章 中断的魅力,14.1.2 中断服务的指挥中断向量表,7, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,AT89S51单片机有5个中断源:外部中断0(/INT0 )、外部中断1( /INT1)、Timer 0中断(TF0)、Timer 1中断(TF1)、串行通信中断(RI/TI)。当中断使能后,任何一个中断发生时单片
8、机都会到表14-1所示的对应地址上去执行中断服务子程序。,第14章 中断的魅力,14.1.2 中断服务的指挥中断向量表,8, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,AT89S51单片机有5个中断源:外部中断0(/INT0 )、外部中断1( /INT1)、Timer 0中断(TF0)、Timer 1中断(TF1)、串行通信中断(RI/TI)。当中断使能后
9、,任何一个中断发生时单片机都会到中断向量表所示的对应地址上去执行中断服务子程序。,第14章 中断的魅力,14.2 中断的控制及处理14.2.1 中断的响应及处理,9, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,AT89S51单片机的中断源有5种,也就是说有5种方式使单片机产生中断。当一个中断产生时,单片机会按以下的步骤进行响应与处理。立即暂停当前正在执行的
10、任何指令,并把下一条将要执行的指令地址压入堆栈中。根据中断的类型在中断向量表中找到对应的地址。到该地址上开始执行中断服务子程序,直到遇到指令“RETI”,中断服务子程序结束。执行完中断服务子程序后,从堆栈中弹出在中断产生时保存的将要执行的下一条指令的地址到程序计数器PC中,单片机开始从PC指示的地址继续执行程序。,第14章 中断的魅力,14.2.1 中断的响应及处理,10, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:
11、莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,一个潜在的问题:每一个中断服务子程序的存放空间都非常有限,例如,外部中断0的中断向量为0003H,而Timer0中断向量地址为000BH,可见外部中断0的中断服务子程序只有000BH-0003H=8个字节的空间来存放,这8个字节的空间实在也放不了几条指令。解决这个问题:可以把指令“ORG”与跳转指令“JMP”结合来实现中断服务子程序的跳转,从而在另一个更为广阔的的空间中来放置中断服务子程序。,第14章 中断的魅力,14.2.2 中断使能寄存器IE,11, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All y
12、ou need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,单片机上电复位之后,默认所有中断都被屏蔽(关闭),这意味着即使任何一种中断产生,单片机也不会去响应。为了使单片机能对中断进行响应,或者说使能中断,需要对中断使能寄存器IE进行操作。中断使能寄存器IE是一个特殊功能寄存器,位于特殊功能寄存器区的地址A8H上(图7-25)。,第14章 中断的魅力,14.2.2 中断使能寄存器IE,12, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学
13、习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,中断使能寄存器IE的操作:IE的位7是EA,是所有中断的“总开关”。只有EA=1时,中断才会开放,这时IE中的其他位将使能或屏蔽某一个中断。如果EA=0,所有中断都不会被响应(全被屏蔽)。如果EA=1时,相应的中断由IE中相应的位来控制。控制位置1使能中断;清0则屏蔽中断。,第14章 中断的魅力,14.3 外部中断0和外部中断114.3.1 外部中断信号输入端/INT0和
14、 /INT1,13, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,AT89S51单片机的/INT0端(12管脚)和/INT1端(13管脚)是外部中断信号进入单片机的通道。P3.2和P3.3即是一般I/O口,又分别是外部中断0和外部中断1的中断信号输入端。通常我们使用/INTx代表任意一个外部中断。,第14章 中断的魅力,14.3.1 外部中断信号输入端/IN
15、T0和 /INT1,14, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,外部中断0和外部中断1的中断服务子程序入口地址,即中断向量分别为0003H和0013H。这两个外部中断分别由中断使能寄存器IE中的EX0和EX1位来使能或屏蔽。外部的脉冲信号或按钮开关S1都可以作为中断信号输入到/INTx端使单片机产生中断。,第14章 中断的魅力,14.3.2 外部中断
16、的低电平触发,15, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,使单片机产生外部中断的信号有两种方式,一是低电平触发,二是下降沿触发。当单片机上电复位后,使能外部中断时就默认以低电平方式触发。在低电平触发模式下,外部中断信号输入端/INT0和/INT1出现低电平就会触发外部中断0或外部中断1。外部中断产生时,单片机会立即停止正在执行的指令,并根据中断向量表
17、中的中断向量转入相应的地址执行外部中断服务子程序。在单片机进入中断服务子程序执行并在中断结束指令“RETI”之前,这个低电平必须撤走,否则将会使单片机执行完指令“RETI”后因 /INT0或/INT1仍为低电平而再次进入中断服务子程序。,第14章 中断的魅力,14.3.3 外部中断的下降沿触发,16, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,除了低电平触
18、发外,边沿触发也是一种常用的触发外部中断的模式。在该模式下,/INT0端或/INT1端出现下降沿即可使单片机产生中断。与低电平触发不同,下降沿触发方式不是单片机默认的中断触发方式,所以需要指令来设置单片机工作在该模式下。方法是通过Timer控制寄存器TCON中的IT0位和IT1位来分别控制/INT0和/INT1触发方式。,指令“SETB TCON.2”可使TCON的IT1位置1,即外部中断1由下降沿触发。,第14章 中断的魅力,14.4 Timer 0中断和Timer 1中断14.3.1 Timer和Timer中断,17, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 A
19、ll you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,Timer是单片机中一个很有用的功能结构,Timer可设置作为定时器或计数器。在使用Timer时,先向Timer寄存器中装载一个计数初始值,通过指令“SETB TRx”来启动Timer,并用类似“JNB TFx, $”的指令来不断检测Timer溢出标志位TFx来判断计数是否完成。在Timer计数期间,单片机除了循环执行指令“JNBTFx, $”对标志位TFx进行判断之外一般不做其他操
20、作。如果在Timer计数的同时我们还需要单片机执行其他操作该怎么办呢?使用Timer中断就可以解决这个实际问题。Timer中断作为AT89S51单片机的中断源之一,会在Timer计数结束时向CPU产生中断,这样就不需要程序中使用循环指令“JNBTFx, $”对标志位TFx进行判断了,而是让Timer到一边自己计数,当计数完成通过中断来告诉程序计数结束。这样一来,在Timer计数过程中,单片机就可以腾出空执行其他指令,等Timer中断产生时再服务即可。,第14章 中断的魅力,14.3.2 利用Timer中断作信号发生器,18, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用
21、All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,第14章 中断的魅力,14.5 串行通信中断14.5.1 串行通信中断应用,19, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,单片机串行通信:
22、当设置好串行口控制寄存器SCON的相关位和利用Timer1产生一定的波特率后,单片机即可通过串行口接收或发送数据。发送使用指令“MOV SBUF, A”将累加器A的数据装入缓冲区SBUF后自动发送,我们通过检测SCON中的TI位来判断数据是否发送完成。接收则使用指令“MOV A, SBUF”将接收缓冲区中的数据载入累加器A中,并通过检测SCON中的RI位判断接收的完成情况。单片机串行口发送和接收过程存在一个与Timer应用中相似的问题,就是单片机在判断SCON的TI位或RI位时只能“一心一意”地进行而无法再进行其他操作。而串行通信中断的出现较好地解决了系统中既需要单片机响应串行通信的操作,也同
23、时兼顾其他操作。,第14章 中断的魅力,14.5.2 发送中断和接收中断的判断,20, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,实例:单片机的主程序是一个串行口发送数据的程序,程序将P0口上DIP开关S1产生的8位状态信号从串行口TXD端发送出去。如果这时RXD端接收到数据也会产生中断,这就需要在中断服务子程序中加一个判断的过程,如果判断出TI位被置1则
24、是发送数据完成产生的中断,如果是RI位被置1则是接收到数据产生的中断。,第14章 中断的魅力,14.5.2 发送中断和接收中断的判断,21, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,单从中断的产生无法判断究竟是哪种情况,于是在 “SERIAL”中首先通过“JB TI, SENT”来判断,如果是TI=1,说明是主程序发送数据完成产生的中断,如果TI=0,说
25、明是RI=1产生的中断,即串行口接收到数据。,第14章 中断的魅力,4.7 应用体验解放了的CPU14.7.1 轮询与中断,22, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,轮询:主程序由“MAIN1”、“MAIN2”、“MAIN3”、“MAIN4”等组成,在主程序执行过程中单片机还需要关注按钮开关是否按下、Timer是否计数完成、串行数据是否接收/发送完
26、成等事件。为了确保这些事件的发生不会被遗漏,单片机需要依次对它们进行循环查询,如果事件发生就要执行相应的服务程序。服务程序执行完成,单片机会继续查询下一个事件是否发生。,第14章 中断的魅力,14.7.1 轮询与中断,23, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,中断:单片机可以“专心地”执行主程序,并不会主动去查询按钮开关、Timer、串行数据收/发
27、等事件的发生,而只是等待事件产生中断时再去处理。这种做法显然使单片机解放出来,获得更大的执行效率。,第14章 中断的魅力,14.7.1 轮询与中断,24, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,除了使单片机提高执行效率之外,中断还有两个优点:中断下,单片机可以选择特定的中断进行响应和处理。通过中断使能寄存器IE相应的位来使能某个或某些中断,屏蔽那些不需
28、要响应和处理的中断。而轮询下,单片机必须响应和处理每一个设备。中断下,如果有多个中断同时发生,单片机可以根据程序的设定来优先响应和处理某一中断。而轮询下,单片机逐一对设备进行访问,有需要服务的就服务,没有优先顺序之分。,第14章 中断的魅力,14.7.2 中断优先级,25, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,如果有两个或两个以上的中断同时产生,单片
29、机该先服务方便呢?AT89S51单片机有一个默认的中断优先级,外部中断0的中断优先级最高,串行通信中断优先级最低,其他中断的优先级依次按表中排列依次降低。,例如,Timer 0中断和外部中断1如果同时产生,单片机会先去响应Timer 0中断并处理它的中断服务子程序。完成之后再响应外部中断1,进入相应的中断服务子程序。,第14章 中断的魅力,14.7.2 中断优先级,26, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱
30、诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,如果想改变中断优先级顺序,可通过对中断优先级控制寄存器IP设置来完成。寄存器IP位于特殊功能寄存器区的地址B8H上(图7-25),是专门用于设置单片机中断优先级的寄存器。,第14章 中断的魅力,14.7.2 中断优先级,27, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,如果想改变中断优先级顺序,可
31、通过对中断优先级控制寄存器IP设置来完成。寄存器IP位于特殊功能寄存器区的地址B8H上,是专门用于设置单片机中断优先级的寄存器。在单片机上电复位时,中断优先级控制寄存器IP=XXX0 0000,即所有中断优先控制位均为0。如果想优先响应某个中断,把IP中相应的位置1即可。例如,希望串行通信中断具有最高的服务优先级,可将IP寄存器中的PS位置1,指令为“MOV IP, #0001 0000B”或“SETBIP.4”。,第14章 中断的魅力,14.7.3 利用Timer中断实现拉幕式显示,28, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to k
32、now about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,把中断与其他功能结合在一起,单片机可以完成更丰富的任务。程序14-7实现了一个拉幕式的显示效果,18这8个数字将从最右端的数码管依次向左移动,如图14-16右侧的效果所示。,第14章 中断的魅力,14.7 应用体验解放了的CPU,29, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣
33、Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,第14章 中断的魅力,14.8 实例解读电子琴14.8.1 音符与频率,30, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,钢琴有88个琴键,A0是钢琴琴键的最低音,发音频率为27.5Hz;C8是最高音,发音频率为4186Hz。在A0和C8之间的琴键发音频
34、率依次升高,比如中央C的频率为261.6Hz等(其他琴键的发音频率见附录J所示)。钢琴因其发音频率范围广而被称为乐器之王。,第14章 中断的魅力,14.8.1 音符与频率,31, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,一闪一闪亮晶晶,用五线谱以及谱号来标记,能从附录J中查到钢琴任意一个琴键的发音频率,也就知道了一闪一闪亮晶晶每一个音符的发音频率,如果使
35、用单片机的I/O口依次按节奏输出这些频率的信号,经过放大后就可用扬声器把音乐还原出来了。,第14章 中断的魅力,14.8.2 电子琴电路设计,32, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,利用前面介绍的小键盘来代替琴键,可与单片机构成一台简易的电子琴。16个按键的小键盘可作16个琴键,演奏一些简单的乐曲已经够用了。此外,单片机的P1.0作输出端口,通过
36、三极管Q1驱动扬声器把音符还原出来。,第14章 中断的魅力,14.8.3 电子琴程序设计,33, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,可以给16个琴键(小键盘)按表设计发音频率,这样就形成了C调的3(mi)到 (fa)共16个音阶。表14-3中的频率是根据附录J截取出来,并对频率进行了四舍五入。,第14章 中断的魅力,14.8.3 电子琴程序设计,3
37、4, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,为了产生表示的不同频率信号,我们将使用Timer作定时器进行计时,并用Timer中断来实现输出信号的延时。于是表14-3中还给出了这16个不同频率信号的Timer计数初始值。,第14章 中断的魅力,14.8.3 电子琴程序设计,35, 欢迎访问“电路飞翔网”获取更多信息实例解读51单片机完全学习与应用 All you need to know about the 8051 microcontroller编著:杨欣Yang X 张延强Zhang Y 主审:莱诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X,程序14-8为电子琴的单片机程序,“LSCAN”段扫描键盘并在“CALCU”段中得到键号,再根据查表法得到键值,也就是用于形成特定频率输出信号的计数初始值。计数初始值装入Timer寄存器后,Timer启动,实现特定频率的方波从P1.0输出从而使扬声器发出与琴键相应的音符来。,