




已阅读5页,还剩75页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用实验指导书武汉大学电子信息学院前 言AEDK5196ET单片机实验系统是新一代单片机实验开发系统。它采用模块化设计,外围芯片丰富,功能完善,可进行MCS-51和MCS-96系列单片机实验;板上自带CPU和监控,具有独立运行和仿真功能。本书是爱迪克单片机实验系统AEDK5196ET的配套实验指导书。本书基于AEDK5196ET单片机实验系统的软件和硬件,充分体现单片机系统的特点和性能,设计了十二个实验项目,并且分八个部分进行详细的说明: 实验目的 实验设备与器件 实验内容 实验原理及要求 实验步骤 编程提示及参考程序 创新设计 思考题本书注重理论结合实际,旨在使学生全面掌握单片机原理及其应用方面的专业知识,解决现代科研开发过程中的实际问题,具有设计以CPU为核心的电子系统的能力,为将来走向社会打下良好的基础。为此,本书针对每一个实验,首先要求学生做好基础性设计实验,加深对理论知识的理解和应用,然后在此基础上进行创新性设计,加强学生创新意识,进一步提高学生的开发能力和解决实际问题的能力。针对创新性设计实验,本书主要提出项目设计应达到的功能和相关技术指标,同时给出设计提示和参考资料,有利于发挥学生的主观能动性。另外,本书还给出了3个综合性开发设计实验,希望进一步提高学生的综合开发能力。本书可直接作为学生的实验指导书,也可作为自己开发其他项目时的参考资料。建议学生在使用本实验指导书时,先阅读部分,然后根据设计要求,自行设计硬件和软件,最终达到要求的技术指标。部分仅作为参考,部分作为创新,供学生进一步开发,部分要求学生写实验报告时必须回答。由于编者水平有限,书中不当之处再所难免,恳请读者批评指正。目 录实验系统及其使用方法1实验一 基本输入输出口的设计13实验二 交通灯控制设计16实验三 定时器的应用22实验四 计数器的应用26实验五 矩阵式键盘接口设计30实验六 利用串行口扩展并行输出接口34实验七 A/D转换器的设计37实验八 D/A转换器的设计42实验九 电机转速/方向控制设计48实验十 综合设计:基于V/F变换原理的数字电压表的设计54实验十一 综合设计:简易电子琴的设计58实验十二 综合设计:简易数字存储示波器的设计67实验系统及其使用方法第一节 实验系统的配置AEDK5196ET实验系统可以在串行模式和独立运行模式二种模式工作一AEDK5196ET实验系统工作在串行模式 1. 用户根据实验要求,进行MCS51单片机实验时(8032芯片已插在D3插座上),K9的短路套插向51端。进行MCS96单片机实验时,将CPU96S/CPU96F卡插入J5插座,K9的短路套插向96端。 2. 用实验机配套的串行通讯电缆,将9芯电缆的一端与实验机上的J9(9芯插座)相连,另一端与PC机的串行口相连。 3. AEDK5196ET实验机电源插座J3与工作电源相连,注意插入方向(如下图所示)。4. 将电源开关K13拨到左端(ON),AEDK5196ET机上将显示: AEDK .U51(MCS-51状态) AEDK .U96(MCS-96状态) 5. 在PC机上运行调试程序。【注意】开机前,请检查电源插头上各个电压是否正确;插入电源插座位置是否正常,有无错位或反插。二AEDK5196ET实验系统工作在独立运行模式 1. 用户根据实验要求,进行MCS51单片机实验时(8032芯片已插在D3插座上),K9的短路套插向51端。进行MCS96单片机实验时,将CPU96S/CPU96F卡插入J5插座,K9的短路套插向96端。2. AEDK5196ET实验机电源插座J3与工作电源相连,注意插入方向(如上图所示)。3. 将电源开关K13拨到左端(ON),AEDK5196ET机上将显示: AEDK .U51(MCS-51状态) AEDK .U96(MCS-96状态)然后在独立运行模式下运行调试程序。第二节 实验系统地址空间分布51单片机实验地址空间分布0000H3FFFH:实验机上RAM区,可作程序区或数据区,分写保护和不写保护。4000H7F3FH:实验机上RAM区,可作程序区或数据区。7F40H7FFFH:为实验机上RAM,由监控占用,用户不得使用8000HBFFFH:可供寻址的程序、数据空间。用户可以用此空间在扩展板上扩展器件,或用作在用户系统中扩展器件。另外,也可使用实验机上的资源,地址8000H87FFH为138译码器(D2)的译码输出。例如用户对实验机上的A/D芯片进行编程时,用导线将138译码器D2的某一输出脚和A/D芯片的片选CS/相连,则该输出脚的译码地址即为A/D芯片的编程地址。C000HFDFFH:监控程序用。FE00HFFFFH:实验机上固定地址的I/O。FF80FF82为8279状态和数据口地址。当本系统运行于键盘监控方式时将用作键盘输入和显示,串行方式(即通过PC机串口与实验机通讯)时用户可以无条件使用;FFA0、FFA2为8251状态和数据口地址,串行方式时用作PC机通讯,键盘监控方式时用户可以无条件使用。第三节 实验装置的使用方法1 建议在做实验之前,在用户硬盘上建立1个自己的子目录,用于保存所做的全部实验结果。2 双击“LCA51ET”图标,启动AEDK仿真控制程序。3 PC机串口与实验机通讯的检查:单击“设置”图标,运行“测试通讯口”。注意PC机串口与实验机串口的波特率一致,通信电缆接线无误。若测试失败,按实验机上“RST”键,继续测试,最终确保PC机串口与实验机通讯正确。4 编辑与保存:单击“文件”图标,选择自己的子目录。若是新实验,选择“新建”操作,然后开始编写自己的程序代码,编写完毕并检查后,选择“另存为”操作,将程序用自己所容易记忆的名称保存起来,注意该文件的命名规则必须使用“.ASM”作为所保存文件的“文件类型” ;若是以前未完成的实验,选择“打开”操作,将该文件打开后继续编写代码。编写完毕并检查后,选择“保存”操作,将结果保存到原来的文件之中去。编辑过程同编辑普通文本文件一样操作。5 编译与通信:先根据连线要求,将相应的实验连线全部接好并检查无误后,打开仿真装置的电源。单击“编译”图标。若系统没有发现用户所编写的代码的“语法错误” ,就会将所编写的源代码转换成机器语言代码并直接送入实验装置;否则会显示出相应的出错行号,用户可据此进行相应的修改操作,修改完毕后,重新编译自己的源代码。6 运行调试:目标代码被装入仿真装置后,系统会自动执行“总清”操作,即“复位”仿真装置,将“PC指针”(屏幕显示为绿色的光带,它表示“将被执行的机器指令”)设置为0。之后单击“调试”图标,用户就可用键盘或鼠标来控制相应的程序执行。具体说明如下a) 跟踪型单步(F7):即只执行1条机器指令后,就处于“暂停状态”(即让仿真软件获得“系统控制权”)。若所执行的当前指令是“子程序调用” ,就进入相应的子程序中,下一条将被执行的指令就是该子程序的第一条指令。b) 通过型单步(F8):也是只执行1条机器指令,就处于“暂停状态” 。若所执行的当前指令是“子程序调用” ,也将其作为1条指令对待,即下1条将被执行的就是该调用指令后面的那条机器指令。c) 执行到光标所在处(F4):在使用本功能之前,用户可用键盘或鼠标将光标“定位”到希望“暂停”的位置。启动该功能后,程序将执行到该位置后就“暂停”(注意其前提是该位置确实“能够到达”)。d) 全速(F9):即将“系统控制权”完全交给用户编写的程序,若希望停止它,只能采用以下的“总清”手段。e) 总清:这是停止处于“全速”运行的用户程序,重新使仿真软件获得“系统控制权”的唯一方法,有些资料又将其称为“矢折”处理,其方法是按下装置上的RST(即复位)按键。f) 设置断点和清除断点:所谓“断点”可认为是用户在程序中设置的某种“暂停标志” ,本装置所设置的断点用红色的光带表示。当程序执行到该处时,就会处于“暂停状态”(此时光带将变成橙黄色),以便于观察某些特定的结果。值得注意的是,虽然仿真硬件和软件提供了“允许设置多个断点”的功能,但建议用户只在所编写的程序中最多设置1个“断点”(故此时可用前述的“执行到光标所在处”的功能来代替“设置断点”的功能),这样做的目的是为了简化调试手段,避免产生不必要的错误。另外需要注意的是“断点”一定要设置在机器指令的头一个字节的位置上,否则会产生不可预料的结果。g) 设置观察窗口:当用户希望看到程序执行时某些变量单元中数值的变化情况,首要条件就是在屏幕上设置1个“信息观察窗” ,然后在该“窗口”中执行以下的“添加观察项”的操作,才能达到相应的目的。h) 添加观察项目:上述的“设置观察窗口”只是使用户具备了观察变量内容的“前提条件” ,而只有当用户使用“添加观察项”操作,将自己所希望观察的那些变量的名称“填写”到“观察窗口”中后,系统才会在处于“暂停”状态的时候,在观察窗口中显示出相应变量的内容。7 当用户希望结束工作时,只要先单击“文件”图标,再单击该图标菜单中的“退出”图标,就可结束该仿真程序,返回Windows操作系统,然后将本次实验所编写的源程序代码复制到后备软盘上作为备份文件,最后删除建立在用户硬盘上的用户子目录。第四节 实验系统的布局第五节 AEDK5196ET实验模块原理AEDK5196ET实验系统主板采用模块化设计,由二十多个硬件模块组成。用户可用它组合成各种各样的硬件实验。1 MODEL1-62256存储器MODEL1 62256存储器 实验机上RAM,可作程序区或数据区,地址为0-7FFFH。2 MODEL2-8279键盘显示 MODEL2-8279键盘显示8279数据口地址是0FF80H和状态口地址是0FF82H3 MODEL3-8251可编程串行通讯实验MODEL3-8251可编程串行通讯实验8251数据口地址0FFA0H,状态口地址0FFA2H。4 MODEL4-138译码电路MODEL4-138译码电路空间地址8000-87FFH,由D2 74LS138分成8个片选信号,其中:Y0:8000H Y1:8100H Y2:8200HY3:8300H Y4:8400H Y5:8500H Y6:8600H Y7:8700H 5 MODEL5-单片机I/O线MODEL5-单片机I/O线6 MODEL6-开关量输入 MODEL6-开关量输入开关向上拨至H端,输出孔为1;开关向下拨至L端,输出孔为07 MODEL7-可编程并行口8255MODEL7-可编程并行口82558255PA口地址为CS(8255片选地址),PB口地址为CS+2,PC口地址为CS+4,命令/状态口地址为CS+68 MODEL8-简单并行口输出MODEL8-简单并行口输出9 MODEL9-简单并行口输入MODEL9-简单并行口输入10 MODEL10-单色LED灯MODEL10-单色LED灯 11 MODEL11-晶振和分频器MODEL11-晶振和分频器12 MODEL12-双色LED灯MODEL12-双色LED灯13 MODEL13-串变并转换器MODEL13-串变并转换器14 MODEL14-并行打印机接口MODEL14-并行打印机接口 接上并行输出(如8255或74LS273等)和输入/输出各一条线,就能形成打印接口(CENTRONIC)。15 MODEL15-按键(图中所标键码为8279扫描码)MODEL15-按键16 MODEL16-A/D转换器MODEL16-A/D转换器0809各通道的口地址是CS/+0,CS/+2,CS/+4,CS/+6,CS/+8,CS/+0AH,CS/+0CH,CS/+0EH。17 MODEL17-电位器MODEL17-电位器18 MODEL18-继电器MODEL18-继电器19 MODEL19-喇叭驱动电路MODEL19-喇叭驱动J11-1,J11-2外接喇叭。20 MODEL20-脉冲滤波电路MODEL20-脉冲滤波电路脉冲通过滤波,可形成三角波输出。21 MODEL21-D/A转换器MODEL21-D/A转换器22 MODEL22-双极性脉冲驱动电路MODEL22-双极性驱动器该电路可用来驱动直流电机。23 MODEL23-脉冲驱动电路MODEL23-脉冲驱动器 该电路可用来驱动步进电机。24 MODEL24-(联接机电实验控制平台)专用插座 MODEL24 DB25专用插座 MODEL25-仿真电缆插座MODEL24-专用插座J10各脚定义如下:VOUT:D/A转换输出;IN0IN3:A/D转换输入;PI0PI6:简单并行口(D15)输入;PO0PO6:简单并行口(D16)输出;STEP_A/STEP_B/STEP_C/STEP_D/STEP_VB:步进电机驱动输出;J10-24孔:供用户引入任意信号;M2:双极性脉冲驱动电路输出;25 MODEL25-仿真电缆插座实验一 基本输入输出口的设计一、实验目的1熟悉并掌握开关量输入电路的基本形式和开关的输出特性2熟悉并掌握开关量输出电路的基本形式和LED驱动器的输入特性3掌握基本输入输出口的设计方法二、实验设备与器件AEDK5196ET实验系统IC芯片:74LS244,74LS273三、实验内容1采用74LS244和开关等器件设计开关量输入接口电路2采用74LS273和发光二极管或数码管等器件设计开关量输出接口电路3插接开关量输入、输出接口电路4编程并运行程序测试接口电路四、实验原理及要求1输入接口:输入接口是把数据从外设经过接口传送到总线。任何设备只能在一定控制条件下才能把数据送上总线。通常,当该输入接口的片选信号有效,且总线I/O读信号有效时,控制打开输入接口芯片,此时才允许输入接口把数据送上总线。常用74LS244、74LS125等具有三态特性的器件构成输入接口电路。2输出接口:CPU向外设传送数据,首先要通过总线把数据传送到某个接口,然后接口把数据传送到外设。由于总线公用,系统个部分都要通过总线传送数据,CPU向某个接口传送数据必须在瞬间完成,并把该数据锁存在接口中。通常,CPU向某个接口传送数据的瞬间,利用地址译码器产生的片选信号和总线的I/O写控制信号经逻辑组合后对锁存器的CLK进行控制,把总线上瞬间出现的数据锁存起来,然后输出给外设。常用74LS273、74LS574等锁存芯片构成输出接口电路。五、实验步骤1硬件连线(参见图1.1) 开关量输入K1K8接74LS244的输入端PI0PI7。 74LS244设备选择端“CS*”接编号为8000H的译码器输出端。 74LS273的输出端PO0PO7接发光二极管驱动器74LS240的输入端DL1DL8,其输出控制发光二极管的显示。 74LS273设备选择端“CS*”接编号为8100H的译码器输出端。2编程并运行程序测试接口电路。 编程要求:读取外设的8个开关状态,然后将读取的开关状态送到8个LED发光二极管上对应显示。 执行程序要求:拨动8个开关,记录并分析实验结果。六、编程提示及参考程序1程序框图:2参考程序ORG0000HLJMP START ;进入主程序ORG3000HKIN EQU8000H;定义输入设备74LS244的地址LOUT EQU8100H ;定义输出设备74LS273的地址START:MOVDPTR, #KINMOVX A, DPTR ;从输入设备上获得开关信号MOV DPTR, #LOUT;并将其传送到输出设备上MOVX DPTR, ASJMP START;重复上述操作END七、创新设计1针对上述硬件电路,若要求实现“Ki为0=LEDi发光,Ki为1=LEDi熄灭”的功能 (i=18),请制订出相应的控制方法并编写出相应的程序代码。2针对上述硬件电路,若要求实现“K1为0=LED8发光,K2为0=LED7发光,K3为0=LED6发光,K4为0=LED5发光,K5为0=LED4发光,K6为0=LED3发光,K7为0=LED2发光,K8为0=LED1发光”的功能,请制订出相应的控制方法并编写出相应的程序代码。八、思考题1. 分析实验装置设备译码器的图纸,用16位2进制数的形式,写出使该译码器各输出端输出“有效信号”时被选通设备所使用的基本地址和重叠地址。2. 根据硬件电路可知,钮子开关作为数字信号输入的“输入驱动”电路,74LS244三态门构成数字信号输入的接口电路。将K1K8接74LS244的PI0PI7,其设备选择端CS*接编号为8000H的译码器输出端。分析说明在这种连线方法的前提下,为什么执行下述指令序列后,CPU能够读取输入开关的当前状态。MOVDPTR, #8000HMOVX A, DPTR3. 根据硬件电路可知,74LS240作为输出驱动器驱动LED1LED8发光二极管, 74LS273 8D触发器构成数字信号输出接口电路。将4LS273的输出端PO0PO7接74LS240的输入端DL1DL8,74LS273的的设备选择端CS*接编号为8100H的译码器输出端。分析说明在这种连线方法的前提下,为什么执行下述指令序列后,能够根据“点灯数据”并按照 “0灭1亮”的规则来控制每个输出LED的“发光/熄灭”状态? MOVDPTR, #8100HMOVA, MOVX DPTR, A4. 使用制作电路板的CAD软件,绘制出本接口实验“设备侧”的原理图纸。5. 若实验中不是使用74LS273 8D触发器作为输出接口电路,而是使用系统中P1口的P1.0P1.7来作为相应的输出接口,试给出相应的连线方法并编写出相应的程序代码。实验二 交通灯控制设计一、实验目的1了解模拟交通灯的控制方法2熟悉并掌握顺序控制的设计方法3掌握外部中断技术的使用方法 4掌握中断处理程序的编程方法二、实验设备与器件AEDK5196ET实验系统三、实验内容1采用74LS244和开关等器件设计开关量输入接口电路2采用74LS273和发光二极管及数码管等器件设计开关量输出接口电路3插接开关量输入、输出接口电路4编程实现交通灯的控制方法并运行程序测试接口电路四、实验原理及要求1交通灯的控制规则:假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1东西绿灯通车,南北红灯。过一段时间转状态2,东西黄灯闪烁几次,南北仍然红灯。再转状态3,南北绿灯通车,东西红灯。过一段时间转状态4,南北黄灯闪烁几次,东西仍然红灯。最后循环至状态1。常态:假设某十字路口为东西南北走向,东西方向为主线,南北方向为支线。主线上绿灯的持续时间为T1秒,支线上绿灯的持续时间为T4秒,当主线或支线上的绿灯转换为红灯前,使用闪烁黄灯的方法过渡,且黄灯的闪烁方式为亮T2秒,灭T3秒,次数为N次。故可将交通灯的亮灯周期分成下述4个时段。详情见图2.1。异常情况:如十字路口有载有急救病人的救护车或去执行救火任务的消防车等专用车辆需要通过时,在主线和支线上亮红灯,持续时间为T5秒,暂时停止主线与支线两个方向的车辆运行;当专用车辆通过十字路口后,交通灯恢复上述常态运行规则。2双色发光二极管的使用方法:双色发光二极管是将一个红色LED管芯和一个绿色LED管芯封装在一起、公用负端的一个集成器件。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。实验中,采用4只双色发光二极管(DLED)分别模拟安装在东、西、南、北4个路口上的4只交通灯,每只双色发光二极管由74LS240反向驱动器驱动,74LS240输入控制端为DR和DG,分别控制DLED红灯和黄灯的工作。具体控制如下: 表2.1 双色发光二极管的控制DRDG显示颜色00红+绿=黄01红10绿11不发光采用一个纽子开关中断请求信号,电平由高变低再回高,模拟“有专用车辆通过”的“请求信号”。3交通灯控制的软件实现方法根据交通灯的控制规则,可采用顺序控制方式,即将整个控制过程划分成多个不同的时段,在每个时段中仅做1个特定的动作。如在第一时段,控制主线绿灯亮,支线红灯亮,且持续时间为T1。为此,按照图2.2交通灯控制实验线路图,应向74LS273锁存器发送的数据为0A5H,且保持时间为T1秒。时段2、时段3和时段4需向74LS273锁存器发送的数据及交通灯工作状况如下表所示。 表2.2 交通灯工作参数时段数值持续时间交通灯工作状况1A5T1主线绿灯,支线红灯205T2主线黄灯闪烁,支线红灯N1(T2+T3)F5T335AT4主线红灯,支线绿灯450T2支线黄灯闪烁,主线红灯N2(T2+T3)5FT34定时时间的确定采用软件延时的方法进行定时,从而维持交通灯某一时段的工作状态。执行如下为延时程序段。注释项“;”后面的数值表示执行该条指令所用的时间,以机器周期为单位。 MOVRa,#V1; 1LOP: MOVRb,#V2; 1 DJNZ Rb,$ ; 2 DJNZ Ra,LOP ; 2执行上述程序所需要的时间T=(2V2+1+2)V1+1 (1V1256,1V2256)。当V1=V2=256时,最大延迟时间Tmax=131841个机器周期。实验装置使用的晶振频率为11.0592MHz,将Tmax折算成实际时间=13184112/11059200143ms;类似当V1=V2=1时,最小延迟时间Tmin=6个机器周期。故当需要延迟规定的时间 (用符号Tw表示,TminTwTmax),可在先确定V2的前提下,用公式 V1=(Tw-1)/(2V2+3) (1)算出V1的数值,或在先确定V1的前提下,用公式 V2=(Tw-1)/V1-3)/2 (2)算出V2的数值,注意这里的Tw必须用机器周期作为单位。例如若需要100ms的延迟时间,先将100ms折算成机器周期数并确定V1=256,再利用公式(2),就可得出V2=(100100011.0592/12-1)/256-3)/2179五、实验步骤1硬件连线(参见图2.2)图2.2 交通灯控制实验线路图 74LS273设备选择端“CS*”接编号为8100H的译码器输出端。 74LS273的PO2、PO0分别接74LS244的输入端DG1和DG4;74LS273的PO3、PO1分别接74LS244的输入端DR1和DR4控制端,控制南、北路口的4# 和1# DLED。 74LS273的PO6、PO4分别接74LS244的输入端DG2和DG3;74LS273的PO7、PO5分别接74LS244的输入端DR2和DR3,控制东、西路口的3# 和2# DLED。 纽子开关K1的信号输出接主机的零号中断请求输入P3.2 (INT0)端,并将其拨到“1”位置。2编程并运行程序测试接口电路。 编程要求:按照表2.2控制规则,模拟交通灯常态和异常情况时的显示工作过程。 执行程序要求:程序执行过程中,将K1开关拨一个来回,即先拨向L(低电平)端再拨回H端,产生中断请求信号,模拟救护车或消防车等专用车辆通过十字路口时的“异常情况”。六、编程提示及参考程序1程序框图: 图2.3(a)主程序框图 (b) 中断服务程序框图2参考程序:选定T1=T4=T5=5S,T2=T3=0.5S,N1=N2=5,程序代码如下: ORG0000H LJMP START;进入主程序 ORG0003H LJMPINTOP;进入0#外部中断服务程序 ORG30HODAT EQU 81H;定义输出设备地址的高8位VR5 EQU 1DH;定义点灯数据暂存单元DELAY: MOV R6, #0;100ms延时子程序DE1: MOV R7,#179 DJNZR7,$ DJNZR6,DE1 RETINTOP: PUSHACC;0#外部中断服务程序 PUSHPSW PUSHDPH ORLPSW,#18H;选择3#工作寄存器组 MOV DPH,#ODAT;将主线和支线均设置为红灯 MOV A,#55H MOVX DPTR, A MOV R4,#50;延时5SIT01: ACALL DELAY DJNZR4,IT01 MOV A, VR5;恢复原来灯色 MOVX DPTR, A POP DPH;恢复所用寄存器 POP PSW POP ACC RETI;返回中断点DATDB 0A5H;时段1的1个点灯数据DB 05H, 0F5H, 05H, 0F5H, 05H, 0F5H, 05H, 0F5H, 05H, 0F5H ;时段2的10个点灯数据 DB 5AH;时段3的1个点灯数据 DB 50H, 5FH, 50H, 5FH, 50H, 5FH, 50H, 5FH, 50H, 5FH;时段4的10个点灯数据TIMDB 50;时段1的1个延时数据 DB 5, 5, 5, 5, 5, 5, 5, 5, 5, 5;时段2的10个延时数据 DB 50;时段3的1个延时数据 DB 5, 5, 5, 5, 5, 5, 5, 5, 5 ,5;时段4的10个延时数据VMAX EQU22 ;点灯和延时数据的总组数START: CLRIT0 ;将0#外部中断设置为低电平触发方式 MOVIE,#81H ;开放0#外部中断 MOVP2,#ODAT ;加载输出设备地址ST0: MOV R5,#0 ;初始化数据指针ST1: MOV DPTR,#DAT MOVA,R5 MOVC A,A+DPTR MOV VR5, A ;暂存 MOVX R0, A ;并传送1个点灯数据 MOV DPTR,#TIM ;获得1个延时数据 MOV A,R5 MOVCA,A+DPTR MOV R4,A ;延迟相应的时间ST2: ACALL DELAY DJNZR4,ST2 INC R5 ;增量数据指针 CJNER5,#VMAX,ST1 ;判是否处理完了全部数据,若未完就再处理下一组 SJMPST0 ;完了,重新再来 END七、创新设计1针对上述硬件电路,若要求在任务开始时刻(程序开始执行时),将装置上的1# DLED设置为“不发光”。请编写出相应的程序代码。2针对上述硬件电路,当出现“异常情况”时,程序系统连续执行以下操作。请编写出相应的程序代码。a. 熄灭全部正在显示的双色DLED,保持时间为1.5秒。b. 将1# DLED设置为红色,保持时间为1.5秒。c. 将1# DLED设置为黄色,保持时间为2.2秒。d. 将1# DLED设置为绿色,保持时间为3.1秒。e. 恢复“异常情况”之前双色DLED的显示状态,并按正常情况下控制模拟交通灯的显示。八、思考题1. 使用制作电路板的CAD软件,绘制出本接口实验“设备侧”的原理图纸。2. 综合上述实验,要求使用装置上的8只单色发光二极管LED1LED8,完成以下4个时段发光二极管的控制显示实验1#时段:分成以下8个子时段1.11.8,子时段周期为0.5秒。在子时段1.1中,LED1发光;在子时段1.8中,LED8发光。2#时段:分成以下4个子时段2.12.4,子时段周期为0.8秒。在子时段2.1中,LED1、2发光;在子时段2.4中,LED7、8发光。3#时段:分成以下2个子时段3.1和3.2,子时段周期为1秒。在子时段3.1中,LED1、2、3、4发光;在子时段3.2中,LED5、6、7、8发光。4#时段:分成以下2个子时段4.1和4.2,子时段周期为1.2秒。在子时段4.1中,LED1、3、5、7发光;在子时段4.2中,LED2、4、6、8发光。当系统从1#时段开始,到4#时段的任务完成后,重新从1#时段开始工作。请制定如表2.2所示的控制显示规则,并编写出相应的程序在装置上通过执行。3. 实验中,当系统退出“异常情况”时,你是如何编程实现恢复“异常情况”之前双色DLED的显示状态的?实验三 定时器的应用一、实验目的1掌握8031内部计数器的使用和编程方法2进一步掌握中断处理程序的编程方法二、实验设备与器件AEDK5196ET实验系统三、实验内容1利用8031内部定时器1,产生1秒钟的定时输出控制电路2利用8031 的P1.0-P1.7定时1秒对八个发光二极管口控制输出显示。3插接开关量输出接口电路4编程并运行程序测试接口电路四、实验原理及要求1定时器/计数器定时常数的确定当8031内部计数器用作定时器时是对机器周期计数。每个机器周期的长度是12个振荡器周期。定时时间T、定时常数Dt、机器周期Mt和计数器二进制位数n四者之间按以下关系式确定实验装置上所使用的晶体振荡器的频率为11.0592MHz。当按照方式116位定时器工作时,最大定时间为Tmax=6553612/11059.271ms。为了满足定时1秒的实验要求,需采用“软硬结合”的方法,即在定时器中断服务程序中设置“软件计数器”。首先将8031内部定时器设置成50ms的定时间隔,中断服务程序中“软件计数器”的初值设置为20D。之后每间隔50ms定时器产生一次中断,中断服务程序中就将“软件计数器”减1,当其内容减到0时,就表示1秒定时时间到。根据上述规则,可得出定时50ms时定时器/计数器的定时常数为4C00H。 2发光二极管口的控制规则由8031内部定时器1,按方式1工作,每50ms T1溢出中断一次。“软硬结合”,产生1秒钟的定时输出P1口的P1.0-P1.7分别接八个发光二极管,对八个发光二极管口控制输出显示。LED显示要求:开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮.一直循环下去。控制参数及LED工作状况如下表所示。表3.1发光二极管的控制规则时段数值持续时间LED工作状况1051秒L1亮,L3亮20A1秒L2亮,L4亮3501秒L5亮,L7亮4A01秒L6亮,L8亮5551秒L1、L3、L5、L7亮6AA1秒L2、L4、L6、L8亮7FF1秒全亮8001秒全灭五、实验步骤1硬件连线(参见图3.1) 将P1.0P1.7分别对应连接DL1DL8. 图3.1 定时输出控制电路线路图2编程并运行程序测试接口电路。编程注意: 定时器工作方式寄存器TMOD和控制寄存器TCON的正确设置。 中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 注意发光二极管口控制参数的确立过程和使用。六、编程提示及参考程序1程序框图: 图3.2(a)主程序框图 (b) 中断服务程序框图2参考程序 ORG 0000H AJMP START ORG 001BH ;T1中断入口地址 AJMP TIMER1 ORG 0100HSTART: MOV SP,# 60H MOV TMOD,#10H ;置T1为方式1 MOV TL1,# 00H ;延时50mS的时间常数 MOV TH1,#4CH MOV R0,#00H MOV R1,#20 SETB TR1 SETB ET1 SETB EA ;开中断 SJMP $TIMER1:_ ;T1中断服务子程序 PUSH ACC ;保护现场 PUSH PSW PUSHDPL PUSHDPH CLRTR1;关中断 MOVTL1,#00H;延时50mS常数 MOVTH1,#4CH SETBTR1;开中断 DJNZR1,EXIT MOVR1,#20;延时一秒的常数 MOVDPTR,#DATA1;置常数表基址 MOVA,R0;置常数表偏移量 MOVCA,A+DPTR;读常数表 MOVP1,A;送P1口显示 INCR0 MOVA,R0ANLA, # 07HMOVR0,AEXIT: POPDPH;恢复现场 POPDPL POPPSW POPACC RETI;LED显示常数表DATA1: DB05H,0AH,50H,0A0H,55H,0AAH,0FFH,0H END七、创新设计1参考上述硬件电路,现要求采用硬件定时器方式实现各个时段发光管显示方式如表3.1所示;时段18显示时间分别为1秒、1.5秒、2秒、1.5秒、1秒、1.5秒、2秒、1秒。请确定相应的控制方法并编写出相应的程序代码。2参考上述硬件电路,现要求采用硬件定时器方式实现各个时段发光管显示时间均为2秒;时段18 使LED1LED8循环发光。请确定相应的控制方法并编写出相应的程序代码。3参考上述硬件电路,现要求采用硬件定时器方式实现各个时段发光管显示时间均为1秒;时段18 使LED1LED8显示该时段所对应开关K1K8的状态。请确定相应的控制方法并编写出相应的程序代码。八、思考题1. 计算出本仿真装置上的CPU对将其片内定时/计数器作为定时器使用时,若分别将其设置为方式0、方式1和方式2,所对应的最大中断间隔Tmax各为多少?(系统使用11059200Hz的振荡频率)2. 在实验中,“定时间隔”和LED的“发光顺序”都是固定不变的,若希望在程序执行的过程中应用户的要求而动态地变化,例如规定总共可使用M种“定时间隔”和N种“发光顺序” ,则系统中就有MN种不同的“组合现象” 。请确定相应的控制方法,使用户能在系统工作的时间内,可任意选择相应所执行的“组合现象” 。实验四 计数器的应用一、实验目的1掌握8031内部计数器计数方式的使用和编程方法2进一步掌握8031内部计数器定时方式的使用和编程方法3进一步掌握中断处理程序的编程方法4了解74LS393作为分频器的使用方法5掌握利用8031内部计数器测量外部频率的方法二、实验设备与器件AEDK5196ET实验系统三、实验内容1利用8031内部定时器1,产生50ms的定时时间2利用8031内部计数器0,在50ms的时间内对外部脉冲进行计数,并将计数值予以显示。3插接计数器接口电路4编程并运行程序测试接口电路四、实验原理及要求1实验原理:假设一个数字信号频率发生器产生频率为F0的标准振荡信号,信号周期T0=1/F0;待测的信号频率为Ft,信号周期Tt=1/Ft。在测量待测信号频率时,如果F0Ft,称该测量方法为测频法;如果F0Ft,称该测量方法为测周法。 测频法实质上就是看在1个标准脉冲中有几个待测脉冲,若计数脉冲的个数为n,则Ft=F0n,从而测出待测信号的频率。由于标准脉冲和待测脉冲的不同步和测量的是脉冲的边沿,所以理论上该测量方法所引起的绝对误差为1个待测脉冲的持续时间。即若Ft=KF0(K1),则其测量相对误差的最大值为1/K。故为了降低使用测频法的相对测量误差,就必须提高待测脉冲的频率或降低标准脉冲的频率。 测周法实质上就是看在1个待测脉冲中有几个标准脉冲,若计数脉冲的个数为n,则Tt=T0n,从而测出待测信号的周期。同样由于标准脉冲和待测脉冲的不同步和测量的是脉冲的边沿,所以理论上该测量方法所引起的绝对误差为1个标准脉冲的持续时间。即若Tt=KT0(K1),则其测量相对误差的最大值为1/K。故为了降低使用测周法的相对测量误差,就必须提高标准脉冲的频率或降低待测脉冲的频率。因此,当待测信号为高频信号时,应使用测频法;当待测信号为低频信号时,应使用测周法。图4.1为测量电路的示意图。图中GATE为测量计数器COUNTER的“门控信号” ,INP2为COUNTER的计数输入端。当GATE=“1”时,每来一个INP2脉冲,COUNTER计数器就加1;当GATE=“0”时,不管来多少个INP2脉冲,COUNTER的内容都将保持不变 。具体测量过程为: 先使CLR*端置“0”,控制GATE输出“0”信号;然后将COUNTER初始计数值设置为0; 使CLR*端置“1”,此时GATE仍然输出“0”信号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风险控制矩阵分析
- 电大电工考试题及答案
- 农产品供应链合作协议内容
- 外科护理学考试题库及答案中专
- 大堂转岗考试题及答案
- 绿色采购和低碳生产承诺书4篇
- 学习中的挫折与坚持议论文9篇
- 《世界地理概况:高中地理课程教案》
- 客户服务支持响应及反馈跟踪系统
- 医疗垃圾处理规范课件
- 2025-2026学年冀人版三年级科学上册(全册)教学设计(附目录)
- 磷化铝管理办法
- 手术室专科护士职业考试试卷与答案
- 门窗工程管理办法
- 小学体育家长会课件
- 依法治校视角下高校后勤管理法律风险的识别与化解策略
- 2025年法学专业基础课程试题及答案
- 腰椎管狭窄症病例讨论
- 部编版语文(2024)二年级上册第一单元综合素养测评A卷(含答案)
- 工程质量事故案例课件
- 多囊卵巢综合症及护理方法
评论
0/150
提交评论