




已阅读5页,还剩66页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及接口技术实验指导书东北电力大学自动化工程学院2018年1月9日前言本实验指导书是以启动计算机总厂有限公司生产的DICE5212K单片机实验系统为硬件基础来编写的。其主要内容为实验设备的介绍、操作使用及MCS51系列单片机的相关实验项目。第1章实验设备介绍11实验设备简介DICE5212K多功能单片机实验开发系统是MCS51单片机原理与接口C8051嵌入式单片机控制技术自动化控制传感器控制等课程教学的配套实验设备。它以小系统、多功能、易扩展为设计思想,系统的地址总线、数据总线、控制总线全部引出,对用户开放,并留有扩展单元(区),学生可以选配各种扩展模块开展实验项目。本设备不仅针对教学实验、课程设计、毕业设计等教学环节提供了良好的实验开发环境,同时也可为学生课外科技活动的开展提供硬件支持。下图为DICE5212K单片机实验箱的实物图。图11DICE5212K单片机实验箱的实物图12、系统组成及工作方式DICE5212K单片机实验系统由用户实验箱、仿真器和ISP下载器等部分组成。其工作方式有脱机运行和联机运行两种,其中脱机运行又分为固化程序脱机运行和ISP脱机运行两种。下面分别介绍各种工作方式。121固化程序脱机运行DICE5212K用户实验箱的外部扩展程序存储器W27512(ROM64K)内部烧写了部分硬件实验模块程序,在不用仿真器和PC机联机时可直接通过实验仪46键盘调出相应的程序并全速运行。便于用户测试和演示实验。122ISP脱机运行可以通过ISP下载线,将HEX文件直接下载到AT89S52单片机内部8K的FLASHROM中运行。123联机运行通过仿真器及配套上位软件在PC机上编写、编译、装载、运行、调试程序。具体操作详见“第2章DICE5212K仿真联机运行”。13、系统地址分配及系统接口定义131系统地址分配(1)I/0地址分配(2)存储器地址分配132系统接口定义(1)RS232用户通信口短路块定义AEXTC(2、3)位置,表示RXD、TXD插孔悬空,用户使用时需用导线连接。BKEILC1、2位置,表示RXD、TXD插孔已经内部与单片机P30、P31连接。图12地址扩展名称用途8000H8FFFH自定义实验用口地址9000H9FFFH自定义实验用口地址0A000H0AFFFH自定义实验用口地址0B000H0BFFFH自定义实验用口地址0C000H0CFFFH自定义实验用口地址0D000H0DFFFH自定义实验用口地址0E000H0EFFFH自定义实验用口地址0F000H0FEFFH自定义实验用口地址0FF20H8155控制口写方式字0FF21H8155PA口字位口0FF22H8155PB口字形口0FF23H8155PC口键入口0FF28H8255PA口扩展用0FF29H8255PB口扩展用0FF2AH8255PC口扩展用0FF2BH8255控制口写方式字地址器件用途0000H0FFFFHAT89S52/27C512用户程序空间0000H7FFFH62256用户数据空间(2)CZ4打印接口图13(3)JX0,JX17为系统提供的数据总线接口图14(4)CZ7系统提供的扩展接口图15(5)JX12、JX14液晶显示接口图16(6)ISP下载接口图1714通用单元电路(1)LED发光二极管输出模块实验台上有8只发光二极管及相应驱动电路。见图18,L1L8为相应发光二极管驱动信号输入端,该输入端为高电平“1”时发光二极管亮。图18(2)开关量输入模块一实验台上有8只开关KLK8,与之相对应的K1K8个引线孔为逻辑电平输出端。开关向上拨相应插孔输出高电平“L”,向下拨相应插孔输出低电平“0”。见图19。图19开关量输入模块二。见图110图110(3)单脉冲电路实验仪上单脉冲产生电路如图111所示,标有“”和“”的两个引线插孔为正负单脉冲输出端。附近按钮AN0为单脉冲产生按钮,每按一次产生一个单脉冲。图111(4)分频电路。见图112图112(5)脉冲发生电路实验仪上提供一8MHZ的脉冲源,见图113,实验仪上标有8MHZ的插孔,即为脉冲的输出端。图113(6)485接口电路。见图114图114(7)数码管显示电路。见图115数码管显示电路中,SW3、SW4红色拨码开关打在“ON”位置,数码管代码端和公共端与8155PA、PB口相连。如果SW3、SW4红色拨码开关打在相反位置,即“OFF”位置,数码管电路与8155断开,数码管代码端和公共端对外开放。图115(8)矩阵键盘模块电路。见图116图116(9)目标CPU(AT89S52)的控制电路注图117中的74LS245与74LS373功能由CPLD器件1016实现。图117(10)存储器控制电路。见图118图118(11)实验扩展模块图119所示为实验扩展模块引脚定义,对应插孔号。KZ1KZ8还配有排针/锁紧孔转接口。图119第2章DICE5212K仿真联机运行21DICEKEILUSB仿真器与DICE5212K的连接(1)确认KB1开关打在“一般模式”,KB2短路块插在MCS51(1、2)位置,SW1短路块插在“UP”位置。SW3、SW4、SW5打在“ON”的位置。这些都是出厂时的默认设置;(2)在确认断电的情况下,取下DICE5212K实验仪右上角绿色锁紧插座上的AT89S52单片机芯片;(3)将40芯白色扁平线上的IDC40插头与DICEKEILUSB仿真器的IDC40插座接插好,然后用随机配送的USB线将仿真器与PC机连接;(4)将40芯白色扁平线另一头的40芯仿真头插在DICE5212K实验仪右上角绿色锁紧插座上。注意不要插反,绿色锁紧插座左上角第一脚为单片机第一脚。40芯仿真头的第一脚上有箭头指示。DICEKEILUSB仿真器应置于实验箱右侧。如有疑问请致电我公司技术支持。22KEILC仿真软件的操作应用(1)建立一个项目点击PROJECT工程菜单,选择NEWPROJECT(新工程),在文件名中输入您的第一个程序项目名称,假定我们用“TEST”。“保存”后的文件扩展名为UV2这是KEILUVISION2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。注意输入的时候不要输入文件的后缀名,默认即可。为了查找方便,假定我们保存在C盘的根目录。这时会弹出让你选择单片机型号的对话框,我们选择ATMELAT89S52。图21(2)汇编源文件的建立点击FILE(文件)菜单中的NEW(新文件)命令新建一个文本编辑窗口。在里面输入一个程序范例如流水灯程序,然后点击FILE(文件)菜单中的SAVE(保存)命令保存文件,注意必须输入文件的后缀名ASM,例如保存为C/PROG/001ASM(注意不要有中文目录,文件名不超过8个字符,否则编译不通过如果您是第一次使用,那么建议您直接保存在C盘的根目录,文件名同样取001ASM,不要试图把他保存在桌面/我的文档等等)图22请注意C51用户请在您的代码的MAIN函数前面,加上一句CODEUNSIGNEDCHARSTOP3_AT_0X3BASM汇编用户请将你的主程序跳过中断区直到0080H以后,如ORG0000HLJMPMAINORG0080HMAIN程序开始(3)点击TARGET1(目标1)前面的“”,出现SOURCEGROUP1,(源程序组1)选中右键点选“ADDFILESGROUPSOURCEGROUP1”(增加文件到源程序组1)这时选择文件类型为ASM,再选中001ASM文件,再按ADD添加,在随后的提示框中按“确定”。图23(4)仿真部份采用MON51协议,在使用之前应必须对软件项目进行如下设置单击“PROJECT”(工程)菜单,再在下拉菜单中单击“OPTIONSFORTARGETTARGET1”(目标1属性)在下图中选择OUTPUT输出“CREATEHEXFILE“(产生HEX文件)的选项,以便汇编后生成HEX代码,供编程器使用。(5)在“DEBUG”(调试)中点选“KEILMONITOR51DRIVER”,同时选中加载代码到仿真器,运行到MAIN0,在“恢复调试设置”中“断点”“工具栏”“浏览点”“储存器显示”也全部钩选上,然后点击“设置”。(6)点击“SETTINGS”(设置)选择要使用串口必须和实际相符合,你的计算机可能是COM2或者其他,对此不能确定可以通过察看控制面板硬件端口通讯端口来解决,同时注意电脑上不能够同时运行其他可能占用串口资源的软件,串口调试软件等等也必须退出,否则将引起冲突,如果您使用的是USB通信方式,那么选择系统分配的虚拟串口号(7)按以下两个向下小箭头的图标进行编译,(或者按F7快捷)编译成功后如会出现下图红箭头所指的文字正在汇编0(错误),0(警告)这里的意思是没有错误,没有警告,表示编译成功。此时在C盘的根目录就生成了TESTHEX文件,有了这个HEX文件,我们也可用ISP方式烧写到单片机实验,然后可以进行硬件仿真了,将仿真头插入目标板的40PIN卡座,开始仿真,退出仿真时最好按一下仿真器上的复位按键,绿色指示灯闪三下。(一般不需要这样做,除非系统没有复位)(8)在按图第三个红色的DEBUG按钮或按CTRLF5快捷键可以进入仿真。此时界面将出现连接成功的提示CONNECTEDTOMONITOR51V91其中91是仿真器的版本号(否则设置有误请仔细检查)23KEILC仿真器软件调试技巧进入调试状态后,DEBUG菜单项中的命令可以使用了,有关编译的工具栏按钮消失了,出现了一个用于运行和调试的工具栏,DEBUG菜单上的大部份命令都有相应的快捷按钮。从左到右依次是复位、运行、暂停、单步跟踪、单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1串行窗口、内存窗口、性能分析、工具按钮命令;然后按一下图示第二个“运行”按钮。连接上相关的实验资源,本实验用一条8PIN的数据排线把实验仪的CPU部份的P1口(JP1)连接到八路指示灯部份的L1L8。这时你会看到实验仪的八个红色LED,轮流点亮,表示运行成功,也可以查看相关的变量和参数,非常方便。1单步跟踪运行使用菜单DEBUGSTEP或上图第四个单步运行按钮或使用快捷键F11可以单步跟踪执行程序,在这里我们按下F11键,即可执行该箭头所指程序行,每按一次F11,可以看到源程序窗口的左边黄色调试箭头指向下一行,如果程序中有DELAY延时子程序,则会进入延时程序中运行。2单步运行如果DELAY程序有错误,可以通过单步跟踪执行来查找错误,但是如果DELAY程序已正确,每次进行程序调试都要反复执行这些程序行,会使得调试效率很低,为此,可以在调试时使用F10来替代F11(也可使用菜单STEPOVER或相应的命令按钮),在MAIN函数中执行到DELAY时将该行作为一条语句快速执行完毕。为了更好的进行对比,我们重新进入仿真环境,将反汇编窗口关闭,不断按F10键,可以看到在源程序窗口中的左边黄色调试箭头不会进入到延时子程序。3全速运行点击工具栏上的“运行”按钮或按F5键启动全速运行,全速执行程序,此时实验仪上的P1口所接LED以流水灯状态显示。4暂停点击工具栏上的按钮,此时用户板上的P1口所接LED停止以流水灯状态显示,只有一个LED灯点亮(取决于暂停前的P1的值)5观察修改寄存器的值PROJECT窗口在进入调试状态后显示REGS页的内容,包括工作寄存器R0R7的内容和累加器A、寄存器B、堆栈指针SP的内容用户除了可以观察以外还可自行修改,例如将寄存器A的值0X62改为0X85。方法一用鼠标点击选中单元A,然后再单击其数值位置,出现文字框后输入0X85按回车键即可;方法二在命令行窗口,输入A0X85,按回车键将把A的数值设置为0X85。6观察修改存储器的数据点击菜单“视图VIEW储存器窗口MEMORYWINDOWS”,便会打开储存器MEMORY窗口如窗口已打开,则会关闭,MEMORY窗口可以同时显示4个不同的存储器区域,点击窗口下部分的编号可以相互切换显示。在储存器1(MEMORY1)的地址输入栏内输入“D0E0H”,按回车键后,可以从内部可直接寻址RAM的E0H地址处开始显示,E0H地址的值就是寄存器A的值,应与主寄存器窗口下的值相同。点击窗口下部分的储存器2(MEMORY2),在ADDRESS输入栏内输入“D0E0H”,按回车键后,可以从内部可间接寻址RAM的E0H地址处开始显示。点击窗口下部分的MEMORY3,在ADDRESS输入栏内输入“C0X0021”,按回车键后,可以从代码区域0000H地址处开始显示,这时各地址值应与在反汇编窗口中的值相同。点击窗口下部分的MEMORY4,在ADDRESS输入栏内输入“X00H”,按回车键后,可以从XDATARAM区域0000H地址处开始显示。通过MEMORY窗口修改数据在MEMORY窗口中显示的数据可以修改。例如,要改动DATA区域OXE0地址的数据内容把鼠标移动到该数据的显示位置,按动鼠标右键在弹出的菜单中选中更新储存器“MODIFYMEMORYATD0XE0”,在弹出对话框的文本输入栏内输入相应数值,按回车键或点击OK,修改完成。通过命令行查看数据例如,我们想查看DATA空间从0X01到0X03地址的内容,可在命令输入窗口输入“DD0X01,03H”,回车即可完成,D表示DATA空间,0X01表示起始地址,03H表示结束地址(注意两种16进制的表示方法在这里都可以接受),输出结果在信息输出窗口中显示出来。通过命令行修改数据例如,我们想把P1口的值从0X02数据修改成0X05,可在命令输入窗口输入P10X04”,回车即可完成,此时如果P1口接有LED,将立即看到LED状态改变。通过MEMORY窗口可以看到修改后的数据在地址栏输入D00H然后回车。储存器1的D0X90后的第一个数据就变成了04,这正是我们刚才修改的结果。7观察修改变量的值在暂停程序运行时,可以观察到有关的变量值。在监视/调用堆栈(WATCH)窗口“局部”页自动显示当前正在使用的局部变量,不需要用户自己添加。监视(WATCH)页显示用户指定的程序变量。(先按F2键,然后输入变量的名称例如“DELAY”然后回车)移动鼠标光标到要观察的变量“DELAY”上停留大约一秒钟,就弹出一个“变量提示”块出来。将鼠标移动到一个变量名“D1”的上面,点击鼠标右键,出现快捷菜单,选中“增加D1到观察窗口”(ADD“D1”TOWATCHWINDOWS)选项,子菜单中会出现1和2的选项,点击后该变量就会加入对应的监视/调用堆栈WATCH窗口。增加D1到观察窗口”(ADD“D1”TOWATCHWINDOWS)选项后对应的监视窗口显示了D1的值。修改变量的数值方法用鼠标左键点击该行的变量数据栏,然后按F2键出现文本输入栏后,输入修改的数据,确认正确后按回车键。8复位如果用户想重新开始运行用户程序,可以点击工具栏上的复位按钮,对仿真器的用户程序进行复位。仿真器复位后,程序计数器PC指针将复位成0000H,另外,一些内部特殊功能寄存器在复位期间也将重新赋值,例如A将变为00H,DPTR变为0000H,SP变为07H,I/O口变为0FFH,此时用户板上的P1口所接LED指示灯会全部熄灭。9设置断点将光标移至待设置断点的源程序行,如“MOVP1,0B6H”行。点击工具栏上的“断点”图标,可以看到源程序窗口中该行的左边出现了一个红色的断点标记。(如果再点一下这个图标则清除这个断点)同样的方法,您可以设置多个断点。10带断点的全速运行按动F5启动全速运行,全速执行程序,当程序执行到第一个断点时,会暂停下来,这时你可以观察程序中各变量的值及各端口的状态,如下图第一个断点在MOVP1,06DH之后,此时在储存器窗口MEMORYWINDOWS”,储存器1(MEMORY1)的地址输入栏内输入“D000H”,按回车键后,可以从内部可直接寻址地址数据为6D和程序设计的相同。此时用户目标板上会显示当前断点的状态,继续按动F5启动全速运行,程序执行到第二个断点时,会暂停下来,在变量观察窗口中,RAM的值应为B6;继续按动F5启动全速运行,程序又会执行到第一个断点处暂停,此时用户目标板上的灯又显示相应的状态。断点是仿真器调试的重要手段,请您仔细反复的练习直到熟练。11清除程序中所有断点如果想取消全部的断点全速运行时,要是逐个取消将是很烦琐的事,我们只要点击工具栏相应的图标,就可清除程序中所有断点。L2执行到光标处在体验“执行到光标处”之前,我们先点击工具栏上复位的图标,对仿真器的用户程序进行复位,把鼠标放在想要停止的行点一下,再按“执行到光标处”程序全速执行到光标所在行,这与我们在前面看到的带断点的全速运行相类似。13退出仿真先按暂停按钮,再按复位,再按开启/关闭调试模式按钮,则退出仿真状态又重新回到编辑模式。(如果不能正确退出,请按一下仿真器上的复位按钮),此时可以对程序修改,然后重新编译,再按开启/关闭调试模式按钮,就又进入仿真模式了。请注意由于KEIL软件在仿真状态时和仿真器始终保持通信联系,为此退出仿真的时候最好按照以上顺序退出,不要强行退出,否则容易造成电脑死机。到这里也就完成了KEIL软件的标准操作过程,由于KEIL操作过程较复杂,请您自行练习直到熟练第3章MCS51单片机实验实验1实验设备的熟悉掌握及数据传送指令寻址方式的验证练习1、实验目的了解实验设备及其使用方法。通过汇编语言基本指令的练习,灵活运用各类指令,熟练掌握编译软件的使用。2、实验设备、DICE5212K单片机综合实验箱1台、PC机1台3、原理图(AT89S52控制电路及存储器控制电路模块)3、实验内容了解DICE5212K实验箱的运行方式,学会KEILC软件的简单应用,包括建立工程、建立汇编语言源文件、设置工程、编译、链接、运行指令、并通过窗口观察运行结果等。其中尤为重要的是掌握单步、单步追踪、运行到光标处、连续运行、断点等运行命令。、寄存器、内部数据数据传送指令验证练习(各类寻址方式验证练习)ORG0000HLJMPMAINORG0080HMAINMOVA,30HMOVB,0E4HMOVR0,30HMOVR1,31HMOV30H,31HMOV34H,32HMOVR0,AMOVA,R0MOVA,30HMOV31H,BMOV32H,AMOVR0,32HMOV33H,R0MOVR1,34HMOV34H,R1MOV35H,34HMOV36H,R0MOV37H,R1MOVR0,36HMOVR1,37HSCLRP10ACALLDELAYSETBP10ACALLDELAYSJMPSDELAYMOVR7,0FFHDELAY1MOVR6,0FFHDELAY2DJNZR6,DELAY2DJNZR7,DELAY1RETEND要求运行并观察并记录运行结果。学会观察寄存器及内部数据。、外部数据数据传送指令的验证练习ORG0000HLJMPMAINORG0080HMAINMOVA,30HMOVDPTR,1000HMOVXDPTR,AMOVXA,DPTRINCAMOVDPH,10HMOVDPL,07HINCDPTRMOVXDPTR,ANOPSJMPEND要求运行并观察并记录运行结果,学会观察外部数据。、程序存储区指令验证练习指令读程序存储区ORG0000HLJMPMAINORG0080HMAINCLRAMOVCA,APCINCAMOVCA,APCMOVDPTR,0080HMOVCA,ADPTRINCAMOVCA,ADPTRINCDPTRMOVCA,ADPTRNOPSJMPEND要求运行并观察并记录运行结果。学会观察程序存储区。用伪指令DB改写程序存储区ORG0000HLJMPMAINORG1000HDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHORG0080HMAINCLRAMOVDPTR,1000HMOVCA,ADPTRMOVA,03HMOVCA,ADPTRMOVA,0DHMOVCA,ADPTRINCDPTRMOVA,03HMOVCA,ADPTRNOPSJMPEND要求运行并观察并记录相关程序存储区运行结果。程序储存区中查表ORG0000HLJMPMAINORG0080HMAINCLRAMOVDPTR,TABMOVCA,ADPTRMOVA,03HMOVCA,ADPTRMOVA,0DHMOVCA,ADPTRINCDPTRMOVA,03HMOVCA,ADPTRNOPSJMPTABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHEND要求运行并观察并记录相关程序存储区运行结果。结论标号是程序存储区中的地址位置标记,是由用户自己定义的字母和数字的组合,是由编译器自动分配的,它的宽度是16位的。在控制转移类指令中经常用到。、堆栈指令验证练习ORG0000HLJMPMAINORG0080HMAINMOVSP,30HMOVA,45HMOV56H,89HPUSHACCPUSH56HPOPACCPOP57HNOPSJMPEND要求运行并观察并记录相关程序存储区运行结果。、累加器传送命令练习ORG0000HLJMPMAINORG0080HMAINMOVA,30HMOVR0,34HXCHA,R0MOV30H,98HXCHA,30HXCHA,R0SWAPASJMPEND4、实验报告、按要求完成上述实验内容并做好指令注释。、记录好观察到的实验结果。实验二程序状态字及其相关指令的影响实验1、实验目的学习掌握MCS51单片机程序状态字PSW及影响其各个状态位的指令验证练习,进一步熟练掌握KEIL编译器软件的应用。2、实验设备、DICE5212K单片机综合实验箱1台、PC机1台3、实验原理图(同上)4、实验内容、学习如何观察程序状态字PSW的状态。、算数运算类指令练习验证示例寄存器加指令练习ADDA,RNORG0000HLJMPMAINORG0080HMAINSETBCMOVA,30HMOVR3,45HADDA,R3SJMPEND要求观察指令执行后PSW各个相关位的变化并记录。直接地址加指令练习ADDA,DIRECTORG0000HLJMPMAINORG0080HMAINMOVA,30HMOV26H,45HADDA,26HSJMPEND要求观察指令执行后PSW各个相关位的变化并记录。寄存器间接寻址加法指令练习ADDA,RIORG0000HLJMPMAINORG0080HMAINMOVA,30HMOV26H,0F5HMOVR0,26HADDA,R0SJMPEND要求观察指令执行后PSW各个相关位的变化并记录。立即数加法指令练习ADDA,DATAORG0000HLJMPMAINORG0080HMAINMOVA,30HADDA,0F5HSJMPEND要求观察指令执行后PSW各个相关位的变化并记录。、程序状态字PSW中RS0和RS1控制位的练习ORG0000HLJMPMAINORG0080HMAINMOVR0,36HCLRRS0SETBRS1MOVR0,45HMOVA,R0MOV20H,R0CLRRS1NOPSJMPEND要求观察指令执行后PSW各个相关位及寄存器的变化并记录。、学生自行练习教科书上的其他算术运算类指令,内容不限。5、实验报告、按要求完成上述实验内容并做好指令注释。、记录好观察到的实验结果。实验三MCS51基本指令练习1实验目的学习掌握MCS51单片机其他指令(逻辑运算类指令、控制转移类指令、布尔处理类指令)验证练习,进一步熟练掌握KEIL编译器软件的应用。2实验设备、DICE5212K单片机综合实验箱1台、PC机1台3实验原理图(同上)4实验内容、逻辑运算类指令练习ORG0000HLJMPMAINORG0080HMAINMOVA,30HCLRAMOVA,89HCPLARLASETBCRLCARRASETBCRRCAMOVA,0FHMOVR7,89HANLA,R7MOV30H,89HANLA,30HMOVR0,30HANLA,R0ANLA,0F0HSJMPEND要求独立练习逻辑“或”指令、逻辑“异或”指令。独立完成拆字拼字程序。程序示例将20H、09H、04H拆分为高低4位并分别存放在内部数据区7EH、7DH、7CH、7BH、7AH、79HORG0000HLJMPMAINORG0080HMAINMOVR6,20HMOVR5,09HMOVR4,04HMOVA,R6ANLA,0F0HSWAPAMOV7EH,AMOVA,R6ANLA,0FHMOV7DH,AMOVA,R5ANLA,0F0HSWAPAMOV7CH,AMOVA,R5ANLA,0FHMOV7BH,AMOVA,R4ANLA,0F0HSWAPAMOV7AH,AMOVA,R4ANLA,0FHMOV79H,ASJMPEND要求编写子程序完成此功能。、控制转移类指令练习条件跳转和无条件跳转指令练习。ACALL,LCALL,RET,AJMP,LJMP,SJMP,DJNZ,CJNE,JZ,JNZ等指令练习清零程序示例(将外部数据区3000H30FFH数据清零,学会程序循环)ORG0000HLJMPMAINORG0080HMAINMOVR0,00HMOVDPTR,3000HLOOPMOVA,00HMOVXDPTR,AINCDPTRINCR0CJNER0,00H,LOOPSJMPEND要求编写程序将外部数据区3000H30FFH数据置1。、布尔处理类指令练习(位传送、位操作、位逻辑、位跳转等指令练习)ORG0000HLJMPMAINORG0080HMAINMOVC,20H0MOVC,00HSETBCSETB21H6SETB00HCLR00HCPL00HSETB00HSETBCJCSNOPSJB00H,S1NOPS1JBC00H,S2NOPSETB00HS2SJMPSEND5、实验报告、按要求完成上述实验内容及指令注释、记录实验结果实验四基本单元电路的测试及应用(设计性实验)1、实验目的通过本试验,使学生了解DICE5212K实验箱的开关量输入输出电路单元,并提高学生的学习兴趣,进一步熟练操作实验设备。2、实验原理图(输入模块一、输入模块二、输出模块电路)3、实验内容、验证程序通过I/O口控制单个LED小灯。实验连线P10连接到开关量输出模块L1L8任意引脚。实验程序示例无延时控制ORG0000HLJMPMAINORG0080HMAINSETBP10CLRP10SJMPMAINEND实验程序示例有延时控制ORG0000HLJMPMAINORG0080HMAINSETBP10MOVR2,2FHLCALLDELYACLRP10MOVR2,2FHLCALLDELYASJMPMAINDELYAPUSH02H延时子程序DELYBPUSH02HDELYCPUSH02HDELYDDJNZR2,DELYDPOP02HDJNZR2,DELYCPOP02HDJNZR2,DELYBPOP02HDJNZR2,DELYARETEND要求学生练习示例观察现象后,读懂延时子程序的延时原理并学会调整延时时间。学会I/O口控制蜂鸣器。、验证程序通过I/O口控制8位LED小灯。实验连线P1口排线连接开关量输出模块L1L8实验程序ORG0000HLJMPMAINORG0080HMAINCLRAMOVP1,AMOVR2,2FHLCALLDELYACPLAMOVP1,AMOVR2,2FHLCALLDELYASJMPMAINDELYAPUSH02H延时子程序DELYBPUSH02HDELYCPUSH02HDELYDDJNZR2,DELYDPOP02HDJNZR2,DELYCPOP02HDJNZR2,DELYBPOP02HDJNZR2,DELYARETEND、设计任务用移位控制指令I/O口控制8位LED小灯。独立编程实现多种形式的跑马灯控制。、验证程序通过I/O口读入K1K8的状态。实验连线P3口排线连接开关量输入模块一的K1K8。P1口排线连接开关量输出模块L1L8实验程序示例ORG0000HLJMPMAINORG0080HMAINMOVA,P3MOVP1,ASJMPMAINEND、任务同上控制方式,验证开关量输入二模块电路。4、实验报告完成实验内容。要写出程序注释、实验结论和实验体会收获。实验五8155扩展六位并行显示器(设计性实验)1、实验目的掌握DICE5212K实验箱通过8155扩展六位LED数码管显示器的原理及其各个口德地址分配,学习验证静态显示与动态显示方式。了解显示缓冲区及显示子程序在程序设计中的应用。2、实验原理(显示模块电路原理图)3、实验内容、验证程序示例单个LED数码管的显示控制(静态按位手动查表显示)ORG0000HLJMPMAINORG0080HMAINMOVA,43HMOVDPTR,0FF20HMOVXDPTR,AMOVDPTR,0FF21HMOVA,0FEHMOVXDPTR,AMOVA,0F8HMOVDPTR,0FF22HMOVXDPTR,ASJMP/DATA1DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H/DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHEND、验证程序示例六位LED数码管的显示控制(动态六位自动查表循环显示)ORG0000HLJMPMAINORG0080HMAINMOVA,43HMOVDPTR,0FF20HMOVXDPTR,AMOV7EH,02HMOV7DH,00HMOV7CH,00HMOV7BH,09HMOV7AH,00HMOV79H,04HS0MOVR0,7EHMOVR2,0DFHMOVR3,00HSMOVDPTR,0FF21HMOVA,R2MOVXDPTR,AMOVA,R0MOVDPTR,TABMOVCA,ADPTRMOVDPTR,0FF22HMOVXDPTR,AS1DJNZR3,S1MOVA,0FFHMOVXDPTR,ADECR0SETBCMOVA,R2RRCAMOVR2,ACPLAJNZSSJMPS0TABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHEND、设计任务自行编程完成3个字节在六位显示器上显示GOOGLE(提示一个字节拆分成为高四位和低四位并分别送显示缓冲区并循环动态显示)。实验报告并完成实验报告,写出实验结果及程序注释。、验证程序示例编写子程序完成六位数码管显示扫描功能,同时标注入口参数。ORG0000HLJMPMAINORG0080HMAINMOV7EH,2MOV7DH,0MOV7CH,1MOV7BH,4MOV7AH,0MOV79H,9MOVSP,53HMOVA,43HMOVDPTR,0FF20HMOVXDPTR,ALCALLDISP占用30H,31H内存单元,每次刷新显示时间SJMPMAINDISPSETBRS1MOVR5,05HDISP2MOV30H,20HMOV31H,7EHMOVR7,06HDISP1MOVA,30HCPLAMOVDPTR,0FF21HMOVXDPTR,AMOVR0,31HMOVA,R0MOVDPTR,DDFFMOVCA,ADPTR取字形代码MOVDPTR,0FF22HMOVXDPTR,AMOVA,30H右移RRAMOV30H,ADEC31HMOVA,0FFHMOVDPTR,0FF22HMOVXDPTR,ADJNZR7,DISP16位显示完了吗DJNZR5,DISP25次显示完了吗CLRRS1RETDDFFDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHEND4、实验报告完成实验内容。要写出程序注释、实验结论和实验体会收获。实验六多位BCD码加法(设计性实验)1、实验目的通过本次试验,学习BCD码相关知识,掌握51单片机汇编语言指令系统中ADD、ADDC、DA等相关指令的运用,同时掌握汇编语言的程序设计方法。2、实验原理框图(4位加法)存放被加数高位存R1,低位存R0存放加数高位存R3,低位存R2加数与被加数低位相加结果进行BCD调整后存在R4中加数与被加数高位带进位相加结果进行BCD调整后存在R5中进位调整清进位标志C3、实验内容、验证程序示例被加数以BCD码格式存放在R0、R1中,加数也以BCD码格式存放在R2、R3中,和值以BCD码格式存放在R4、R5、R6。(4位加法)ORG0000HLJMPMAINORG0080HMAINMOVR0,88HMOVR1,34HMOVR2,78HMOVR3,96HMOVA,R0ADDA,R2DAAMOVR4,AMOVA,R1ADDCA,R3DAAMOVR5,AMOVR6,00HCLRAADDCA,R6MOVR6,ASJMPEND、设计任务完成6位数加法程序。、验证程序示例完成四位BCD加法并在显示器上显示结果。ORG0000HLJMPMAINORG0080HMAINMOVR0,88HMOVR1,34HMOVR2,78HMOVR3,96HMOVA,R0ADDA,R2DAAMOVR4,AMOVA,R1ADDCA,R3DAAMOVR5,AMOVR6,00HCLRAADDCA,R6MOVR6,AANLA,0F0HSWAPAMOV7EH,AMOVA,R6ANLA,0FHMOV7DH,AMOVA,R5ANLA,0F0HSWAPAMOV7CH,AMOVA,R5ANLA,0FHMOV7BH,AMOVA,R4ANLA,0F0HSWAPAMOV7AH,AMOVA,R4ANLA,0FHMOV79H,AMOVDPTR,0FF20HMOVA,43HMOVXDPTR,AS0MOVR0,7EHMOVR2,0DFHMOVR3,00HSMOVDPTR,0FF21HMOVA,R2MOVXDPTR,AMOVA,R0MOVDPTR,TABMOVCA,ADPTRMOVDPTR,0FF22HMOVXDPTR,AS1DJNZR3,S1MOVA,0FFHMOVXDPTR,ADECR0SETBCMOVA,R2RRCAMOVR2,ACPLAJNZSSJMPS0TABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHEND、设计任务完成六位BCD码加法程序并显示结果(最高位可以用一个LED小灯表示是否有进位)4、实验报告完成实验内容。要写出程序注释、实验结论和实验体会收获。实验七数据排序(设计性实验)1、实验目的熟悉51指令系统,掌握程序设计方法。2、实验原理框图用冒泡法将内存RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。3、实验内容、验证程序示例将内部数据区50H5AH送入乱序数据后,编程将其进行有序排序。ORG0000HLJMPMAINORG0080HMAINMOV50H,34HMOV51H,98HMOV52H,0F5HMOV53H,0D3HMOV54H,25HMOV55H,78HMOV56H,72HMOV57H,18HMOV58H,09HMOV59H,88HMOV5AH,88HDORDE1CLR00HMOVR0,50HMOVR7,0AHDORDE2MOVA,R0INCR0MOV22H,R0CJNEA,22H,DORDE3SJMPDORDE4DORDE3JCDORDE4SETB00HXCHA,R0DECR0XCHA,R0INCR0DORDE4DJNZR7,DORDE2JB00H,DORDE1SJMPEND、设计任务完成上述实验验证,修改成为倒序排序。、验证程序示例找出50H5AH中的最大和最小值并在六位LED显示器上显示。程序示例ORG0000HLJMPMAINORG0080HMAINMOV50H,34HMOV51H,98HMOV52H,0F5HMOV53H,0D3HMOV54H,25HMOV55H,78HMOV56H,72HMOV57H,18HMOV58H,09HMOV59H,88HMOV5AH,88HDORDE1CLR00HMOVR0,50HMOVR7,0AHDORDE2MOVA,R0INCR0MOV22H,R0CJNEA,22H,DORDE3SJMPDORDE4DORDE3JCDORDE4SETB00HXCHA,R0DECR0XCHA,R0INCR0DORDE4DJNZR7,DORDE2JB00H,DORDE1MOVA,50HANLA,0FHMOV79H,AMOVA,50HANLA,0F0HSWAPAMOV7AH,AMOV7CH,14HMOV7BH,14HMOVA,5AHANLA,0FHMOV7DH,AMOVA,5AHANLA,0F0HSWAPAMOV7EH,ANOPMOVDPTR,0FF20HMOVA,43HMOVXDPTR,AS0MOVR0,7EHMOVR2,0DFHMOVR3,00HSMOVDPTR,0FF21HMOVA,R2MOVXDPTR,AMOVA,R0MOVDPTR,TABMOVCA,ADPTRMOVDPTR,0FF22HMOVXDPTR,AS1DJNZR3,S1MOVA,0FFHMOVXDPTR,ADECR0SETBCMOVA,R2RRCAMOVR2,ACPLAJNZSSJMPS0TABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH,0BFHEND、设计任务完成计算50H5AH的算术平均值,并将结果添加到在上述程序的中间两位显示。4、实验报告完成实验内容。要写出程序注释、实验结论和实验体会收获。实验八外部中断计数(综合性实验)1、实验目的通过本实验,使学生能够进一步领会中断的概念,学会外部中断的编程方法及中断应用。2、实验原理框图及线路连接用单脉冲发生器输出作为外部中断源,编写程序实现对单脉冲发生器输出次数进行计数。、实验原理图(手动中断脉冲发生单元电路、硬件消抖模块)、实验线路单脉冲发生单元的下降沿插孔连接到总线扩展单元的P32插孔。P10插孔连接到交通灯演示单元的任意一个小灯插孔。3、实验内容、验证程序示例(观察小灯状态及20H单元加1计数。)ORG0000HLJMPMAINORG0003HLJMPZD0MAINMOVSP,53HSETBIT0SETBEX0SETBEAMOV20H,00HSJMPZD0CLREAINC20HCPLP10SETBEARETIEND、设计任务将外部中断0改为外部中断1,重复上述实验。、设计任务增加一个计数单元21H,并实现20H和21H单元秒分进制计数。、程序示例六位的十进制加计数器,记录中断次数并显示ORG0000HLJMPMAINORG0003HLJMPZD0ORG0080HMAINMOVSP,53HSETBIT0SETBEX0SETBEAMOVA,43HMOVDPTR,0FF20HMOVXDPTR,AMOV7EH,00HMOV7DH,00HMOV7CH,00HMOV7BH,00HMOV7AH,00HMOV79H,00HS0MOVR0,7EHMOVR2,0DFHMOVR3,00HSMOVDPTR,0FF21HMOVA,R2MOVXDPTR,AMOVA,R0MOVDPTR,TABMOVCA,ADPTRMOVDPTR,0FF22HMOVXDPTR,AS1DJNZR3,S1MOVA,0FFHMOVXDPTR,ADECR0SETBCMOVA,R2RRCAMOVR2,ACPLAJNZSSJMPS0TABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHZD0CLREAPUSHACCCPLP10INC79HMOVA,79HCJNEA,10,ZD1MOV79H,00HINC7AHMOVA,7AHCJNEA,10,ZD1MOV7AH,00HINC7BHMOVA,7BHCJNEA,10,ZD1MOV7BH,00HINC7CHMOVA,7CHCJNEA,10,ZD1MOV7CH,00HINC7DHMOVA,7DHCJNEA,10,ZD1MOV7DH,00HINC7EHMOVA,7EHCJNEA,10,ZD1MOV7EH,00HZD1POPACCSETBEARETIEND、设计任务设计一个六位的十进制减计数器,记录中断次数并显示。5、实验报告完成实验内容。要写出程序注释、实验结论和实验体会收获。实验九定时器实验(综合性实验)1、实验目的了解掌握定时/计数器的工作原理,学会其使用编程方法。2、程序框图及线路连接、程序框图(秒定时)服务程序开始,关中断判断1秒是否到1秒时间到,取反P10重新初始化定时器T0开中断返回否主程序开始,置位P10初始化定时器T0,设置100MS设置中断次数初值,定时时间1S开中断等待中断到是、线路连接P10插孔连接到交通灯演示单元的任意一个小灯插孔。3、实验内容、验证程序示例定时器T0设计P10口输出50HZ占空比可调矩形波,可调步长1MS。ORG0000HLJMPMAINORG0080HMAINMOVTMOD,01HCLRP10MOV20H,0HSETBTR0MOVTL0,18HMOVTH0,0FCHSJNBTF0,查询方式MOVTL0,18HMOVTH0,0FCHCLRTF0INC20HMOVA,20HCJNEA,2,S1CPLP10S1CJNEA,18,SCPLP10MOV20H,00HSJMPSEND、验证程序示例定时器T0完成秒定时(定时中断方式)ORG0000HLJMPMAINORG000BHLJMPZDT0ORG0080HMAINMOVSP,53HMOV20H,20MOVTMOD,01HMOVTH0,3CHMOVTL0,0B0HSETBET0SETBEASETBTR0SJMPZDT0MOVTH0,3CHMOVTL0,0B0HCLREADJNZ20H,ZDAMOV20H,20CPLP10ZDASETBEARETIEND、设计任务用定时器T1完成秒定时。验证定时器工作方式。、设计任务增加两个计数单元21H、22H和一个小灯,并实现21H和22H单元秒分进制计数,同时控制小灯实现秒分进制显示。、验证程序示例时钟程序ORG0000HLJMPMAINORG000BHLJMPZDT0ORG0080HMAINMOVSP,53HMOV26H,20MOVA,43HMOVDPTR,0FF20HMOVXDPTR,AMOVTMOD,01HMOVTH0,3CHMOVTL0,0B0HMOV7EH,01HMOV7DH,06HMOV7CH,01HMOV7BH,02HMOV7AH,01HMOV79H,00HSET
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园水域安全管理制度
- 校园监控视频管理制度
- 校园规范用字管理制度
- 校园附属设施管理制度
- 2025初级社会工作者考试《社会工作综合能力》真题及解析
- 体育行业运动员比赛成绩证明书(5篇)
- 商务英语综合教程(第3版 第二册)Unit 8 参考答案
- 《科技与创新主题小学科学实验教案》
- 社区发展试题及答案
- 几何图形中考试题及答案
- 招聘心里测试题及答案
- 高校教师资格证考试《高等教育学》真题及解析(2025年新版)
- T/SHSOT 015.1-2024皮肤角质层胶带剥离方法及应用第1部分:角质层剥离方法
- 上海市静安区2023-2024学年八年级下学期期末语文试题(解析版)
- 2025年中医基础理论考试试题及答案
- 银行个人资产证明信(8篇)
- 合同款项代付协议书
- 2025甘肃省农垦集团有限责任公司招聘生产技术人员145人笔试参考题库附带答案详解
- 2025年春季《中华民族共同体概论》第四次平时作业-国开(XJ)-参考资料
- 2025至2030年中国豆角丝行业投资前景及策略咨询报告
- 《2025年CSCO肾癌诊疗指南》解读
评论
0/150
提交评论