版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务一中断键控彩灯一、任务描述P0口的P0.0~P0.7口控制8个发光二极管D1~D8,S7、S8两只按键连接单片机的外部中断接口引脚P3.2(INT0)、P3.3口(INT1),要求实现任务:单片机工作后,8个发光二极管依次点亮,将S7键按下后,8个发光二极管全亮,将S8键按下后,8个发光二极管全灭。二、基础知识1.中断的基本概念假设小明同学正在家读书,忽然电话铃响了,小明放下书本,接起电话……打完电话继续读书;过了一会,水壶里水开了,发出报警声音,小明放下书本去关火,然后回来继续读书;下一页返回任务一中断键控彩灯又过了一会,门铃响了,小明放下书本跑到门口去看看是谁在敲门,处理完毕后,回来又开始继续读书。这个在日常生活中司空见惯的情景,却蕴含着计算机科学中一个重要的概念,那就是“中断”。中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。在计算机执行程序的过程中,当出现某种情况时,由服务对象向CPU发出请求中断当前运行程序的信号,而转去执行相应的程序,待处理程序执行完毕后,再返回继续执行原来被中断的程序,这样的过程称为中断。把引起中断的原因或处理中断请求的来源称为中断源。为实现中断而设置的各种硬件和软件成为中断系统。中断的处理过程主要包括:中断请求、中断响应、中断处理、中断返回四个阶段,如图6−1所示。上一页下一页返回任务一中断键控彩灯2.中断系统结构51系列单片机的中断源有5个:外部中断0(INT0)、外部中断1(INT1)、定时器/计数器0、定时器/计数器1、串行口中断。与中断有关的特殊功能寄存器有:中断标志位寄存器TCON/SCON、中断允许寄存器IE、中断优先级控制寄存器。各中断源有相应的中断矢量入口地址。3.中断控制单片机的中断控制包括中断允许控制和中断优先级控制两个方面,分别由可位寻址的特殊功能寄存器IE和IP实现。上一页下一页返回任务一中断键控彩灯4.中断处理过程中断处理过程分为3个阶段:中断响应、中断处理和中断返回。5.堆栈的相关知识(1)堆栈实际上是一种数据结构,就是只允许其一端进行数据插入和数据删除操作的线性表。堆栈遵循“后进先出”原则。即先入栈的数据存放在栈的底部,因此后出栈。(2)堆栈有两种操作方式:数据压入指令——PUSH,数据弹出指令——POP。在单片机芯片内部的数据存储器中设置了堆栈指针寄存器SP(81H)。SP中的内容即为堆栈栈顶的存储单元地址。系统复位后,SP的值初始化为07H,即指向地址为07H的RAM单元。上一页下一页返回任务一中断键控彩灯(3)堆栈结构一般为向上生长型,这样有利于中断处理、调用子程序的方便。向上生长型的堆栈,栈底在低地址单元。随着数据进栈,地址递增,SP的内容逐渐增大,指针上移;数据出栈时,地址递减,SP的内容逐渐减小,指针下移。进栈操作:先将SP的内容加1,后在相应的地址单元中写入数据;出栈操作:先读出栈顶单元数据,后将SP内容减1。6.中断程序设计与中断相关的程序称为中断程序。中断服务程序用于完成中断源所要求的各种操作,常放在中断入口地址所对应的存储区中,仅在发生中断时才执行。上一页下一页返回任务一中断键控彩灯中断控制程序就是对中断的初始化操作。主要包括:①主程序应在0000H处放置一条无条件跳转指令,跳过中断入口地址程序段。②设置SP值,将SP值改为用户存储区的高位地址段。③定义中断允许及中断优先级控制,即设置IE、IP的值。④定义外部中断的触发方式,选择是低电平触发还是下降沿触发。中断服务程序设计主要考虑以下几点:①应在中断入口地址处加一条跳转指令,将程序指向实际中断服务程序存储区。上一页下一页返回任务一中断键控彩灯②对在中断服务程序中要用到的与主程序有关的寄存器,必须保护现场,用PUSH指令完成,在中断返回到主程序前,应恢复这些寄存器的值,即恢复现场,用POP指令完成。③对不能实现硬件清零的操作的中断请求标志,应编程及时清除中断请求标志。④如果需要进行中断屏蔽操作,可在中断服务程序中关中断,即对相应的中断标志位清零,以禁止其他中断源的中断;同时应考虑何时再次开中断,取消中断屏蔽。上一页下一页返回任务一中断键控彩灯三、中断键控彩灯控制程序设计通过单片机的中断功能,实现对连接在P0口上的彩灯进行控制,图6−4为其简化应用电路(未画出复位、晶振电路)。1.编程思路根据图6−4所示电路原理图进行分析,S7、S8是实现中断控制的按键,通过上拉电阻分别连接在外部中断0、外部中断1口线上,采用电平触发工作方式。在无中断产生时,可以让8只发光二极管循环显示,每按一次S7键,完成一次灭灯工作,每按一次S8键,完成一次亮灯工作。通过发光二极管的不同工作状态,反映单片机的中断功能。上一页下一页返回任务一中断键控彩灯2.程序清单ORG0000H;程序开始AJMPMAIN;转至主程序入口地址ORG0003H;外部中断0矢量入口地址AJMPINT_0;外部中断0子程序ORG0013H;外部中断1矢量入口地址AJMPINT_1;外部中断1子程序ORG0100H;主程序MAIN:SETBEX0;外部中断0开中断上一页下一页返回任务一中断键控彩灯SETBEX1;外部中断1开中断SETBEA;开CPU中断总允许CLRIT0;外部中断0电平触发CLRIT1;外部中断1电平触发MOVA,#0FEHMAIN1:MOVP0,A;P0.0口灯亮ACALLDELAY;延时子程序RLASJMPMAIN1;MAIN1执行灯循环显示上一页下一页返回任务一中断键控彩灯INT_0:CLREA;关中断MOVP0,#00H;8个发光二极管亮LCALLDELAYSETBEA;开中断RETI;中断返回INT_1:CLREAMOVP0,#0FFH;8个发光二极管灭LCALLDELAYSETBEA上一页下一页返回任务一中断键控彩灯RETIDELAY:MOVR5,#100DELAY1:MOVR6,#0ffhDELAY2:DJNZR6,DELAY2DJNZR5,DELAY1RETEND3.程序分析(1)程序从0000H开始执行,因为要用到外部中断服务子程序,因此需要在主程序中对中断的申请标志位、中断响应条件、外部中断的触发方式进行设置。上一页下一页返回任务一中断键控彩灯(2)单片机上电后,执行彩灯循环显示程序,MAIN1执行循环显示程序。DELAY为延时子程序,可以根据具体情况进行设置。(3)当S7键按下后,程序进入外部中断0的矢量入口地址0003H,此后放置一条跳转指令“AJMPINT_0”,使程序转去执行外部中断0的中断服务子程序(标号INT_0),在中断服务子程序中,首先关闭中断总允许控制位,然后向P1口输出#00H,使P1口的彩灯全部点亮,然后打开中断,返回程序中断处继续执行主程序,同时等待下次中断。当S8键按下后,程序的运行过程和S7键执行过程基本相同。上一页返回任务二加(减)1计数器一、任务描述利用单片机内部的2个16位的定时器/计数器的定时和计数功能,将外部计数脉冲通过P3.4(T0)、P3.5(T1)引脚输入,并通过P0口上所连接的8只发光二极管,显示两个引脚所输入的计数脉冲的情况。为检测程序的运行情况,可在T0、T1口分别接两只按键,通过按键的闭合模拟外部脉冲的输入状态。二、基础知识1.定时器/计数器概念单片机内部设有2个16位的可编程的定时器/计数器,简称为定时器0(T0)、定时器1(T1)。下一页返回任务二加(减)1计数器可编程是指其功能(如工作模式、定时时间等)均可通过指令来确定或改变。定时器/计数器的内部结构如图6−5所示。如图6−5所示,2个16位的可编程定时器/计数器分别由8位计数器TH0、TL0和TH1、TL1构成。它们都是以加1的方式计数。其中,TMOD为方式控制寄存器,主要用来设置定时器/计数器的工作方式;TCON为状态控制寄存器,主要用来控制定时/计数器的启动与停止。单片机的计数功能就是对外部事件进行计数。外部事件的发生以输入脉冲表示,即计数功能实际上就是对外部输入脉冲进行计数。将单片机的T0(P3.4)、T1(P3.5)信号引脚,作为计数器外部计数输入端。当外部输入脉冲信号产生由1至0的负跳变时,计数器的值加1。上一页下一页返回任务二加(减)1计数器外部计数脉冲的高电平和低电平保持时间均必须在1个机器周期以上。2.控制寄存器TMODT0和T1的方式控制寄存器TMOD,是一种可编程的特殊功能寄存器。用于设定T0和T1的工作方式,字节为89H,不能进行位寻址。其中高4位控制T1,低4位控制T0。其格式如下:TMOD(89H)GATEC/TM1M0GATEC/TM1M0GATE:门控位,控制计数器的启动/停止操作方式。当GATE=0时,外部中断信号INT0、INT1不参与控制,计数器只有TR0和TR1位软件控制启动和停止。当TR1、TR0为1时,计数器启动开始工作;为0时,计数器停止工作。上一页下一页返回任务二加(减)1计数器当GATE=1时,计数器的启动要由外部中断信号INT0和TR0、INT1和TR1共同控制。只有当外部中断引脚为高电平,TR0/TR1置1时才能启动计数器工作。C/T:功能选择位。当C/T=0时选择定时功能,计数脉冲由内部提供,计数周期等于机器周期。当C/T=1时选择为计数功能,计数脉冲为外部引脚T0、T1引入的外部脉冲信号。M1和M0:T0和T1工作方式控制位。定时器/计数器的工作方式由M1M0两位状态决定,这两位有四种编码方式,对应于四种工作方式。四种方式定义如表6−2所示。上一页下一页返回任务二加(减)1计数器3.控制寄存器TCONTCON也是一种8位的特殊功能寄存器,用于控制计数器的启动、停止及计数器的溢出标志和外部中断触发方式等,字节为88H,可以进行位寻址。其格式如下:TCON(88H)8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT0TF1和TF0:计数器的溢出标志位。当计数器溢出时,由硬件置1,CPU发出中断请求。上一页下一页返回任务二加(减)1计数器中断响应后,由硬件自动清零。在查询方式下,这两位作为程序的查询标志位,由软件将其清零。TR1和TR0:计数器的启动、停止控制位。当要停止计数器工作时软件清零,当要启动计数器工作时,软件置1。GATE门控位和外部中断引脚影响计数器的启动,当GATE=0时,TR1、TR0为1时控制计数器的启动;当GATE=1时,TR1、TR0为1,同时还需要外部中断引脚为1时,才能启动计数器工作。低4位为外部中断所用。4.T0和T1的工作方式和应用T0和T1有4种工作方式,可通过对TMOD中M1M0的设置,选择需要的工作方式。上一页下一页返回任务二加(减)1计数器①方式0及其应用。M1M0=00时,T0、T1工作于方式0。方式0是一个13位的计数器,16位的寄存器只用了高8位和低5位,TL0寄存器的高3位未用。计数器方式0的逻辑结构图如图6−6所示。图中,当C/T=1时,工作于计数方式。与计数器的外部引脚连通,外部计数脉冲由T0引脚输入,当外部信号电平发生1到0的跳变时,计数器加1,这时T0成为外部事件的计数器。计数范围为1~8192;计数初值X=8192−计数值。计数器的启停,主要由GATE和TR0控制。计数器的启动过程如下:上一页下一页返回任务二加(减)1计数器当GATE=0时,反相为1,或门输出为1,与门打开,使计数器的启动只受TR0的控制。此情况下,INT0引脚的电平变化对或门不起作用。TR0为1时,接通计数控制开关,计数脉冲加到计数器上,每来一个计数脉冲,计数器加1,当加到0时产生溢出使TF0置位,并申请中断。而计数器仍可以从0开始计数,只有当TR0置0时,断开控制开关MUX2,计数停止。当GATE=1时,反相为0,或门输入0,只有INT0引脚为1时,或门才能输出1,打开与门。当TR0=1时,与门打开,计数脉冲才能加到计数器上,利用此特性可以对外部信号的脉冲宽度进行测量。具体应用如下所示:上一页下一页返回任务二加(减)1计数器设置TMOD寄存器:MOVTMOD,#04H;T0设置计数工作方式(T0输入)MOVTMOD,#40H;T1设置计数工作方式(T1输入)装入计数初值:MOVTL0,#DATALMOVTH0,#DATAH;在方式0下,注意低字节的高3位未用,应设为0启动计数器:SETBTR0判断TF0是否溢出:JBCTF0上一页下一页返回任务二加(减)1计数器②方式1及其应用。设置M1M0=01时,计数器工作在方式1。逻辑结构图如图6−7所示。为16位的计数器,其结构与工作过程与方式0几乎完全相同。计数范围为1~62256;计数初值X=62256−计数值。③方式2及其应用。当M1M0=10时,计数器工作于方式2。方式2是能自动重新装入计数初值的8位计数器。在此方式中,把16位的计数器拆成两个8位计数器,低8位作计数器用,高8位用以保存计数初值。方式2的逻辑结构如图6−8所示。上一页下一页返回任务二加(减)1计数器初始化时,8位计数初值同时装入TL0和TH0中。当低8位计数产生溢出时,将TF0置1,同时又将保存在高8位中的计数初值重新自动装入低8位计数器中,然后TL0重新计数,循环重复。这样既省去了用户程序中的重装指令,也有利于提高计数精度。计数范围为1~256;计数初值X=256−计数值。方式2适用于串行口波特率发生器。④方式3及其应用。M1M0=11H时,计数器工作在方式3。此时定时器T0可拆成两个独立的8位计数器,T1不变。此方式下,T0、T1的设置和使用方法不同。方式3的逻辑结构如图6−9所示。上一页下一页返回任务二加(减)1计数器定时器T0中的两个8位计数器TH0、TL0拆分为两个独立的计数器后,TL0所对应的定时器使用T0原有的控制资源,即使用TR0控制启停,TF0作为溢出标志。TH0所对应的定时器只能作8位计数器用,借用T1的资源TR1、TF1。T0工作在方式3时的定时值计算方法与方式2相同。计数器T1仍然可以工作在方式0~方式2下,只是其TR1、TF1被T0的TH0占用,因而没有计数溢出标志可供使用,计数溢出时只能将输出结果送至串行口,即可用作串行口波特率发生器。上一页下一页返回任务二加(减)1计数器三、加(减)1计数器控制程序设计1.设计思路图6−10为典型的计数脉冲及显示电路,通过单片机的控制,实现以下功能:T0每输入一个负脉冲(键S9闭合),P0口的LED显示值加1,T1每输入一个负脉冲(键S10闭合),P0的LED显示值减1(以BCD码表示)。P0.0~P0.3为个位,P0.4~P0.7为十位。利用单片机的计数功能,设定计数初值,在每一个脉冲到来后,使计数器产生溢出,形成中断申请,执行中断子程序,进行加(减)1的操作,通过P0口的LED进行显示。2.加(减)1计数器硬件电路图(见图6−10)上一页下一页返回任务二加(减)1计数器3.程序清单ORG0000HAJMPMAINORG000BHAJMPJIAORG001BHAJMPJIANORG0100HMAIN:MOVR0,#00H;寄存器初始化上一页下一页返回任务二加(减)1计数器MOVTMOD,#55H;设置计数器工作模式SETBEA;开CPU中断总允许SETBET1;计数器T1允许中断SETBET0;计数器T0允许中断MOVTH1,#0FFH;设置各计数器的初值MOVTL1,#0FFHMOVTL0,#0FFHMOVTH0,#0FFHSETBTR1;启动计数器上一页下一页返回任务二加(减)1计数器SETBTR0HERE:SJMPHEREJIA:CLRET1;进入中断程序,关闭中断允许标志位MOVTH0,#0FFHMOVTL0,#0FFH;重新置初值MOVA,R0ADDA,#01H;寄存器加1MOVR0,ACPLAMOVP0,A;计数脉冲显示上一页下一页返回任务二加(减)1计数器SETBET1;开中断RETIJIAN:CLRET0MOVTH1,#0FFHMOVTL1,#0FFHMOVA,R0SUBBA,#01HMOVR0,ACPLAMOVP0,A上一页下一页返回任务二加(减)1计数器SETBET0RETIEND4.程序分析(1)本程序充分利用了单片机内部的资源,定时器T0、T1的计数功能,计数脉冲分别从T0、T1输入,每输入一个脉冲,分别进行相应的加1、减1计数,T0加1,T1减1。(2)程序分主程序与中断子程序两部分,主程序完成计数器工作模式的设置,同时开CPU及计数器相应的中断标志位。每输入一个脉冲即需要产生一次中断,所以计数初值设置成#0FFH,每输入一个脉冲,计数器即产生溢出,申请计数器中断。上一页下一页返回任务二加(减)1计数器(3)计数器中断产生后,首先进入相应的中断矢量入口地址,T0对应的中断矢量入口地址为000BH,T1对应的中断入口地址为001BH,在中断入口地址处放置了一条控制转移类指令,LJMP、AJMP均可以,根据具体的程序进行选择。根据转移指令的地址标号转去执行中断服务程序。(4)在中断服务程序中,首先关闭中断,防止在处理中断程序时有更高级别的中断申请产生,同时将计数初值重新装入计数寄存器。在中断返回前,开放T0中断,执行中断返回指令。T1的工作过程与T0完全一致。上一页返回任务三利用定时器产生音调一、任务描述本项目充分利用51单片机的定时器定时功能,通过定时器的定时及延时子程序相结合,控制P1.3引脚所接的蜂鸣器发出音调。二、基础知识1.定时器产生音调电路图及测试程序蜂鸣器是一种信号提示设备,常常用在电子设备的声音提示中。蜂鸣器一般是基于压电原理制成的,其鸣响频率一般在200Hz~3kHz,工作电压有3V、5V、9V、15V等几种,工作电流一般在几毫安~几百毫安。常见的蜂鸣器如图6−11所示。下一页返回任务三利用定时器产生音调利用单片机的最小系统,通过单片机内部的定时器资源,控制P1.3口所接的蜂鸣器发出简单的音调。定时器产生音调电路如图6−12所示。根据硬件电路图焊接,检查焊接正确后,运行测试程序,蜂鸣器应发出“嘀、嘀”的声音。测试程序清单:TEST.ASMORG0000HLJMPMAIN上一页下一页返回任务三利用定时器产生音调ORG0100HMAIN:CPLP1.3;输出取反,以得到方波输出LCALLDELAY;延时时间决定方波的周期(频率)AJMPMAINDELAY:MOVR5,#04HDELAY1:MOVR6,#0FAHDELAY2:MOVR7,#0FAHDELAY3:DJNZR7,DELAY3DJNZR6,DELAY2上一页下一页返回任务三利用定时器产生音调DJNZR5,DELAY1RETEND程序运行后,蜂鸣器将发出固定频率的声音。如没有声音,需要检查硬件电路。2.音乐知识准备音乐主要是由音符和节拍决定的,音符对应于不同的声波频率,而节拍则表达的是声音持续的时间。通过控制定时器的定时时间可以产生不同频率的方波,用于驱动蜂鸣器发出不同的音符,然后利用延时子程序来控制发音时间的长短,即可控制节拍。上一页下一页返回任务三利用定时器产生音调把乐谱中的音符和相应的节拍变换成定时常数和延时常数,做成数据表格存放在存储器中,由程序查表得到定时常数和延时常数,用一个定时器控制产生方波的频率,用延时程序控制发出该频率方波的持续时间。当延时时间到后再查询下一个音符的定时常数和延迟常数,依次进行下去即可。三、利用定时器产生不同频率音调的控制程序设计1.定时器的工作原理当定时器/计数器的计数脉冲来自内部时钟脉冲,即机器周期时,做定时器使用,对内部的计数脉冲进行加法计数,从而实现定时功能。定时器定时的过程就是对单片机内部时钟信号进行计数的过程。定时器工作方式设置与计数器完全相同,定时时间计算如下:上一页下一页返回任务三利用定时器产生音调①工作方式0。定时器的内部计数器为13位的计数器,当13位计数器计数满时,定时器溢出中断请求标志位TF置1。内部计数器的最大计数值为213=8192。定时时间计算如下:T=(213−计数初值)×机器周期=(8192−计数初值)×12/fosc②工作方式1。定时器的内部计数器为16位的计数器,当16位计数器计数满时,定时器溢出中断请求标志位TF置1。内部计数器的最大计数值为216=65536,定时时间如下:T=(216−计数初值)×机器周期=(65536−计数初值)×12/fosc③工作方式2。定时器内部的计数器为自动重装初值的8位计数器。此种方式下内部计数器的最大计数值为28=256,定时时间如下:上一页下一页返回任务三利用定时器产生音调T=(28−计数初值)×机器周期=(256−计数初值)×12/fosc④工作方式3。主要用作波特率发生器。2.定时器的应用①定时器初始值设置。单片机的定时器在使用时必须进行初始化,即对其内部相关的寄存器TMOD、TCON、TH、TL进行设置来控制定时器的工作。定时器的初始化包括:设定定时器的工作方式控制字,并写入TMOD中;确定定时器的初值,并写入TH、TL中。上一页下一页返回任务三利用定时器产生音调②置位TCON中的TR标志位,启动定时器工作。例:设单片机的晶振频率fosc=12MHz,要求T1产生1ms的定时,并使P1.0口输出2ms的方波。编程思路:要产生2ms的方波,只要将P1.0口每隔1ms反相一次即可。首先使定时器产生1ms的定时,设定时器于工作方式0,工作方式控制字为00H,定时器内部计数器为13位,则计数初值=8192−1000=7192=1110000011000B。(TH0)=0E0H,(TL0)=18H,然后启动定时器。程序采用中断方式。上一页下一页返回任务三利用定时器产生音调程序清单:ORG0000HAJMPMAIN0RG000BHAJMPOUTORG0100HMAIN:MOVTMOD,#00H;置方式控制字MOVTL0,#18HMOVTH0,#0E0H;置定时器初值上一页下一页返回任务三利用定时器产生音调SETBEA;开CPU中断SETBET0;允许T0中断SETBTR0;启动T0MAIN1:AJMPMAIN1OUT:MOVTL0,#18HMOVTH0,#0E0H;重新装入初值CPLP1.3;输出电平取反RETI;中断返回END在对定时器编程时,可以采用中断和查询两种编程方法。上一页返回任务四简单音乐编程一、任务描述利用任务三中的电路原理图,及音乐设计知识,完成一首音乐歌曲的编程。以《送别》歌为例,具体分析编程的技巧及方法。二、基础知识1.歌曲乐谱乐曲名:《送别》。乐谱:从《送别》的乐曲中可看出,它的最低音为7(低音Si),最高音为i(高音Do),根据音乐基础知识的介绍,作出其对应的简谱码、定时常数、节拍数表(见表6−6、表6−7)。下一页返回任务四简单音乐编程2.定时常数与简谱、简谱码表(fosc=12MHz)3.音乐代码库的建立(1)先找出乐曲的最低音和最高音的范围,然后确立音符表T值的顺序。(2)把T值表建立在一个表格中,在编程时,将构成发音的计数值放在“TABLE1”中。(3)简谱码(音符)为高4位,节拍码(节拍数)为低4位,音符节拍码放在程序的另一个表格中,即放在常用“TABLE”中。(4)音符节拍码00H为音乐结束标志。上一页下一页返回任务四简单音乐编程三、音乐演奏控制程序设计1.编程思路根据乐谱及定时常数、延时常数数值表,利用定时器T0,工作模式采用方式1(16位定时器),利用定时器的定时功能,将数值表制成数据表格,其中音调对应的定时常数制成表1(TABLE1),乐曲中音符和节拍对应的数值制成表2(TABLE)。在程序中,采用查表方式,将乐谱对应的定时常数读入计数器中,同时利用延时程序,控制乐谱的节拍,使蜂鸣器发出音乐声。2.程序清单ORG0000HAJMPMAIN上一页下一页返回任务四简单音乐编程ORG000BHAJMPTIME1ORG0100HMAIN:MOVTMOD,#01H;设置定时器T0的工作方式SETBEA;CPU中断允许SETBTR0SETBET0;定时器T0中断允许MAIN1:MOV40H,#00H;设简谱码指针初始值MAIN2:MOVA,40H上一页下一页返回任务四简单音乐编程MOVDPTR,#TABLE;取简谱码MOVCA,@A+DPTRCJNEA,#00H,PLAY;取到的简谱码为非结束码,转执行AJMPSTOP;是结束码,退出PLAY:MOVR1,AANLA,#0FH;取节拍码MOVR2,AMOVA,R1ANLA,#0F0H;取音符码上一页下一页返回任务四简单音乐编程CJNEA,#00H,MUSIC;音符码不为0,调演奏子程序CLRTR0;音符码为0,不发音AJMPDELMUSIC:SWAPADECAMOV22H,AADDA,22HMOVR3,AMOVDPTR,#TABLE1;取相应T值上一页下一页返回任务四简单音乐编程MOVCA,@A+DPTRMOVTL0,AMOV21H,AMOVA,R3INCAMOVCA,@A+DPTRMOVTH0,AMOV20H,ASETBTR0上一页下一页返回任务四简单音乐编程SETBET0;启动定时器DEL:LCALLDELAYINC40HLJMPMAIN2;指向下一个简谱码STOP:CLR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中2025年网络成瘾预防说课稿
- 初中生物多样性与保护主题班会说课稿
- 高中健康生活方式指导说课稿
- 2026年说课稿英语教材分析怎么写
- 2026年兔子舞说课稿音乐
- 第7课 追寻先贤足迹说课稿-2025-2026学年小学劳动六年级下册湘教版《劳动教育》
- 2026年独步武林测试题及答案
- 2026年广州地铁设计测试题及答案
- 2026年文明 家长测试题及答案
- 2026年政府采购法法测试题及答案
- 交通安全协管员考试题库及答案解析
- 地铁区间高架桥施工安全风险评估及改进方案
- 2024煤矿地质工作细则
- 苏州文华东方酒店公区概念设计方案文本
- 2025年安徽中烟工业公司岗位招聘考试笔试试卷(附答案)
- 2025中小学教师考试《教育综合知识》试题及答案
- 暖通可行性研究报告
- (国网)社会单位一般作业人-网络信息安全准入考试复习题及答案
- 员工异地办公管理制度
- sm指数测试试题及答案
- 医疗机构内部管理问题及整改措施
评论
0/150
提交评论