《关于单片机原理及接口技术实验指导书.docx》由会员分享,可在线阅读,更多相关《关于单片机原理及接口技术实验指导书.docx(63页珍藏版)》请在三一办公上搜索。
1、单片机原理及接口技术实验指导书前言本实验指导书是以启动计算机总厂生产的DICE-5212K单片机实验系统为硬件根基来编写的。其主要内容为实验设备的介绍、操作使用及MCS51系列单片机的相关实验工程。第1章实验设备介绍1.1 实验设备简介DICE-5212K多功能单片机实验开发系统是MCS-51单片机原理与接口C8051嵌入式单片机控制技术自动化控制传感器控制等课程教学的配套实验设备。它以小系统、多功能、易扩展为设计思想,系统的地址总线、数据总线、控制总线全部引出,对用户开放,并留有扩展单元(区),学生可以选配各种扩展模块开展实验工程。本设备不仅针对教学实验、课程设计、毕业设计等教学环节提供了良
2、好的实验开发环境,同时也可为学生课外科技活动的开展提供硬件支持。下列图为DICE-5212K单片机实验箱的实物图。图1-lDICE-5212K单片机实验箱的实物图1.2 、系统组成及工作方式DlCE-5212K单片机实验系统由用户实验箱、仿真器和ISP下载器等局部组成。其工作方式有脱机运行和联机运行两种,其中脱机运行又分为固化程序脱机运行和ISP脱机运行两种。下面分别介绍各种工作方式。1.2.1 固化程序脱机运行DICE-5212K用户实验箱的外部扩展程序存储器W27512(ROM64K)内部烧写了局部硬件实验模块程序,在不用仿真器和PC机联机时可直接通过实验仪4*6键盘调出相应的程序并全速运
3、行。便于用户测试和演示实验。1.2.2 ISP脱机运行可以通过ISP下载线,将HEX文件直接下载到AT89S52单片机内部8K的FLASHROM中运行Q1.2.3 联机运行通过仿真器及配套上位软件在PC机上编写、编译、装载、运行、调试程序。具体操作详见“第2章DlCE-5212K仿真联机运行”。1.3 系统地址分配及系统接口定义1.3.1 系统地址分配(1)I/O地址分配地址扩展名称用途8000H8FFFH自定义实验用口地址9000H9FFFH自定义实验用口地址OAOOOHOAFFFH自定义实验用口地址OBOOOHOBFFFH自定义实验用口地址OCOOOHOCFFFH自定义实验用口地址ODOO
4、OHODFFFH自定义实验用口地址OEOOOHOEFFFH自定义实验用口地址OFOOOHOFEFFH自定义实验用口地址0FF20H8155控制口写方式字0FF21H8155PA口字位口0FF22H8155PB口字形口0FF23H8155PC口键入口0FF28H8255PA口扩展用0FF29H8255PB口扩展用0FF2AH8255PC口扩展用0FF2BH8255控制口写方式字(2)存储器地址分配地址器件用途OOOOHOFFFFHAT89S52/27C512用户程序空间OOOOU7FFFH62256用户数据空间1.3.2系统接口定义(1) RS232用户通信口短路块定义:A:EXT-C(2、3)
5、位置,表示RXD、TXD插孔悬空,用户使用时需用导线连接。B:Keil-C(U2)位置,表示RXD、TXD插孔已经内部与单片机P3.0、P3.1连接。C4C222U*4S-Xft2-RXD3-11DImLT二8 7 1 3 4 5 4Q9I10H826115111112=tlTJ2Ls二一232电路PC机标相室口定义图1-2(2) CZ4:打印接口DTAO) IDMN) IDMN) IDAIM)IBUrY)12 3 4 5c 7WBPAO IDXTM) 亘1 DRTR3) PA2 IDMQ PM DTX7) 更 史O UTB) GHD图1-3(3) JXO,JX17:为系统提供的数据总线接口O
6、g(4) CZ7:系统提供的扩展接口”工iyB0a)(M)D0mD2mXmDC6图1-5JX14(5) JXl2、JX14:液晶显示接口JX12ewWDB7DBO图1-6(6) ISP下载接口图17Pl.7/SCKP1.6/MIS0RSTNCP1.5/M0SIL4通用单元电路(1)LED发光二极管输出模块实验台上有8只发光二极管及相应驱动电路。见图1-8,L1L8为相应发光二极管驱动信号输入端,该输入端为高电平“1”时发光二极管亮。图1-8UL2L3L4L5UL7L8(2)开关量输入模块一实验台上有8只开关K1-K8,与之相对应的K1-K8个引线孔为逻辑电平输出端。开关向上拨相应插孔输出高电平
7、“1”,向下拨相应插孔输出低电平“0”。见图l-9o(3)单脉冲电路实验仪上单脉冲产生电路如图1-11所示,标有“”和“1”的两个引线插孔为正负单脉冲输出端。附近按钮ANO为单脉冲产生按钮,每按一次产生一个单脉冲。(5)脉冲发生电路实验仪上提供一8MHZ的脉冲源,见图1T3,实验仪上标有8MHZ的插孔,即为脉冲的输出端。8MHZ插孔图1-14(7)数码管显示电路。见图1-15数码管显示电路中,SW3、SW4红色拨码开关打在“ON”位置,数码管代码端和公共端与8155PA、PB口相连。如果SW3、SW4红色拨码开关打在相反位置,即“OFF”位置,数码管电路与8155断开,数码管代码端和公共端对外
8、开放。位扫描口图1-15(8)矩阵键盘模块电路。见图1-16图1-16(9)目标CPU(AT89S52)的控制电路注:图1-17中的74LS245与74LS373功能由CPLD器件1016实现。grj,SIloMuP059274LS245DO-DTa*1222222三QQBBQQQ5Dl口aadDIdBUUDIn)ALElV(10)存储器控制电路。见图178AO A15DOD2口25BCE MN22N2*2M2AltMlla2Al*l5图1-18(三)实验扩展模块图1-19所示为实验扩展模块引脚定义,对应插孔号。KZKZ8还配有排针/锁紧孔转接口。6ZMOlZXAT+Zl-2l+y2Ooooo
9、OooooAD7AD5AD3ADlKZlKZ6NCKZ7KZ8VCCOooooOooooOooooOooooAD6AD4AD2ADOKZ2KZ3KZ5NCKZ4GND第2章DICE-5212K仿真联机运行2.1 DICE-KEILUSB仿真器与DICE-5212K的连接(1)确认KBl开关打在“一般模式”,KB2短路块插在MCS-51(12)位置,SWI短路块插在“UP”位置。SW3、SW4、SW5打在“ON”的位置。这些都是出厂时的默认设置;(2)在确认断电的情况下,取下DICE-5212K实验仪右上角绿色锁紧插座上的AT89S52单片机芯片;(3)将40芯白色扁平线上的1DC40插头与DI
10、CE-KE1LUSB仿真器的1DC40插座接插好,然后用随机配送的USB线将仿真器与PC机连接;(4)将40芯白色扁平线另一头的40芯仿真头插在D1CE-5212K实验仪右上角绿色锁紧插座上。注意:不要插反,绿色锁紧插座左上角第一脚为单片机第一脚。40芯仿真头的第一脚上有箭头指示。DICE-KEILUSB仿真器应置于实验箱右侧。如有疑问请致电我公司技术支持。2.2 KEILC仿真软件的操作应用(1)建设一个工程:点击PrOjCCt(工程)菜单,选择NeWPrOjeCt(新工程),在文件名中输入您的第一个程序工程名称,假定我们用“test”o“保存”后的文件扩展名为uv2这是KEILUviSio
11、n2工程文件扩展名,以后我们可以直接点击此文件以翻开先前做的工程。注意输入的时候不要输入文件的后缀名,默认即可。为了查找方便,假定我们保存在C盘的根目录。这时会弹出让你选择单片机型号的对话框,我们选择ATMEL-AT89S52o图2-1(2)汇编源文件的建设:点击FILE(文件)菜单中的NEW.(新文件)命令新建一个文本编辑窗口。在里面输入一个程序范例如流水灯程序,然后点击FlLE(文件)菜单中的SAYE(保存)命令保存文件,注意必须输入文件的后缀名.asm,例如保存为C:/PrOg/001.asm(注意不要有中文目录,文件名不超过8个字符,否则编译不通过!如果您是第一次使用,那么建议您直接保
12、存在C盘的根目录,文件名同样取OOLASM,不要试图把他保存在桌面/我的文档等等!)图2-2请注意:C51用户请在您的代码的main。函数前面,加上一句:codeunsignedcharstop3_at_0x3b;ASM汇编用户请将你的主程序跳过中断区直到008OH以后,如:org0000H1.JMPmainorg0080Hmain:.;程序开场OllOlIOllCHU除姐总程序俎和姐内所有文件图2-3(3)点击Targetl(目标1)前面的“+”,出现SoUrCeGrOUP1,(源程序组1)选中右键点选“AddfilesGroupSourceGroup1”(增加文件到源程序组1)这时选择文件
13、类型为asm,再选中OOLaSm文件,再按Add添加,在随后的提示框中按“确定”。国西1目标1zJ_归标L田IlOll凶ORG0000H1.JHPHAINIORG0080H一目行目标1戊瘠丁工殂源程序蛆膘性日EX件,缄由EX程Q调试眇他设蓄IXMSVCSw三由方。0口MQ打开文件劭立新建送所有目标由海透目标彦IAiRiSJCft(4)仿真部份采用Mon51协议,在使用之前应必须对软件工程进展如下设置:单击“Project(工程)菜单,再在下拉菜单中单击“optionsfortargettarget1”(目标1属性)在下列图中选择OUtPUt(输出)CreateHEXfile”(产生hex文件)
14、的选项,以便汇编后生成HEX代码,供编程器使用。目标中标属性目标筠出列表IC51I51IBLSl定位BLSl杂项|Q选择ObJ文件夹.I瞅行文件名:p何旷生执生文件:A123见!调/信息P出浏览信息Ier乏龌成高逮)HEX格式:IHEX-803产生库文件A123,LIB(5)在“Debug(调试)中点选uKeilMonitor-51Driver,同时选中加载代码到仿真器,运行到main,在“恢复调试设置”中“断点”“工具栏”“浏览点”“储存器显示”也全部钩选上,然后点击“设置”。(6)点击“Settings”(设置)选择要使用串口必须和实际相符合,你的计算机可能是COM2或者其他,对此不能确定
15、可以通过观察控制面板硬件端口通讯端口来解决,同时注意电脑上不能够同时运行其他可能占用串口资源的软件,串口调试软件等等也必须退出,否则将引起冲突,(如果您使用的是USB通信方式,那么选择系统分配的虚拟串口号(7)按以下两个向下小箭头的图标进展编译,(或者按F7快捷)编译成功后如会出现下列图红箭头所指的文字正在汇编0(错误),0(警告)这里的意思是没有错误,没有警告,表示编译成功。此时在C盘的根目录就生成了test.hex文件,有了这个hex文件,我们也可用ISP方式烧写到单片机实验,然后可以进展硬件仿真了,将仿真头插入目标板的40Pin卡座,开场仿真,退出仿真时最好按一下仿真器上的复位按键,绿色
16、指示灯闪三下。(一般不需要这样做,除非系统没有复位)(8)在按图第三个红色的(debug)按钮或按CW+F5快捷键可以进入仿真。HVtest - uVision2 - C:001 .asm进入调试状态后,Debug菜单项中的命令可以使用了,有关编译的工具栏按钮消失了,出现了一个用于运行和调试的工具栏,Debug菜单上的大部份命令都有相应的快捷按钮。从左到右依次是复位、运行、暂停、单步跟踪、单步、执行完当前子程序、运行到当前行、下一状态、翻开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮命令;然后按一下列图示第二个“运行”按钮。连接上相关的实验
17、资源,本实验用一条8PIN的数据排线把实验仪的CPU部份的Pl口(JPl)连接到八路指示灯部份的L1L8.这时你会看到实验仪的八个红色LED,轮流点亮,表示运行成功,也可以查看相关的变量和参数,非常方便。D单步跟踪运行R使用菜单Debug-Step或上图第四个单步运行按钮或使用快捷键Fll可以单步跟踪执行程序,在这里我们按下FIl键,即可执行该箭头所指程序行,每按一次Fll,可以看到源程序窗口的左边黄色调试箭头指向下一行,如果程序中有Delay延时子程序,则会进入延时程序中运行。2)单步运行如果Delay程序有错误,可以通过单步跟踪执行来查找错误,但是如果Delay程序已正确,每次进展程序调试
18、都要反复执行这些程序行,会使得调试效率很低,为此,可以在调试时使用FlO来替代Fll(也可使用菜单StepOver或相应的命令按钮),在main函数中执行到DCIay时将该行作为一条语句快速执行完毕。为了更好的进展比照,我们重新进入仿真环境,将反汇编窗口关闭,不断按FlO键,可以看到在源程序窗口中的左边黄色调试箭头不会进入到延时子程序。3)全速运行5点击工具栏上的“运行”按钮或按F5键启动全速运行,全速执行程序,此时实验仪上的Pl口所接LED以流水灯状态显示。4)暂停点击工具栏上的按钮,此时用户板上的Pl口所接LED停顿以流水灯状态显示,只有一个1.ED灯点亮(取决于暂停前的Pl的值)5)观察
19、/修改存放器的值PrOjeCt窗口在进入调试状态后显示Regs页的内容,包括工作存放器ROR7的内容和累加器A、存放器B、堆栈指针SP的内容寄存器值BRegsrOxffrlOxffr2Oxffr3Oxffr4OxffOxOO OxOO 0x09 0x0000 C:Ox.OxOOD:OxEO: D:0xE8: D : OxFO: D:0xF8:D:0x00:D : 0x08:D:0x10: D:0xl8:D : 0x20:Fofofofff Fofofofff Fofofofff FOFOF8FFF Fofofofff Fofofofff O1OFF7FFF O9OFFOFFFFOFOFOFOF
20、OFFF FOFFFFOFOFOFOFOFFOFFFFFFFFOFFF FOFFFOAOFFF OFOFFFFCFFFFF 9 F F F F用户除了可以观察以外还可自行修改,例如将存放器a的值0x62改为0x85。方法一:用鼠标点击选中单元a,然后再单击其数值位置,出现文字框后输入0x85按回车键即可;方法二:在命令行窗口,输入A=0x85,按回车键将把A的数值设置为0x85。6)观察/修改存储器的数据点击菜单“视图VieW储存器窗口MemOl7WindoWS”,便会翻开储存器Mem。叮窗口(如窗口己翻开,则会关闭),MCmory窗口可以同时显示4个不同的存储器区域,点击窗口下局部的编号可以
21、相互切换显示。在储存器I(MCnIory#1)的地址输入栏内输入“D:OCoh,按回车键后,可以从内部可直接寻址RAM的eOH地址处开场显示,eOH地址的值就是存放器a的值,应与主存放器窗口下的值一样。X;I“M|存储器物A存储器件2人存储器#3人存点击窗口下局部的储存器2(MeInOry#2),在Address输入栏内输入D:OeOh,按回车键后,可以从内部可间接寻址RAM的eOH地址处开场显示。点击窗口下局部的Memory#3,在Address输入栏内输入“C:OXOo21”,按回车键后,可以从代码区域OoooH地址处开场显示,这时各地址值应与在反汇编窗口中的值一样。点击窗口下局部的Mem
22、ory#4,在AddreSS输入栏内输入“X:OOh”,按回车键后,可以从XdataRAM区域OOoOH地址处开场显示。通过Memory窗口修改数据在Memory窗口中显示的数据可以修改。例如,要改动data区域OXEO地址的数据内容:把鼠标移动到该数据的显示位置,按动鼠标右键在弹出的菜单中选中:更新储存器“ModifyMemoryatDiOxEOw,在弹出对话框的文本输入栏内输入相应数值,按回车键或点击0K,修改完成。地址 D.0e0hDzOxEO: D :0xE8: DzOxFO:D:0xF8: D:0x00: D:0x08: D:0xl0: D:0xl8: D:0x20:JJQ T7 r
23、r Rk Rk FT7 P 十进制无符号有符号ASdi 码 浮点 双箱型FF F FXfl FFFF FFFFCFFFF更做存储器D:OXEO雪RIMMN通过命令行查看数据例如,我们想查看data空间从0x01到0x03地址的内容,可在命令输入窗口输入“dd:OXOl,03H”,回车即可完成,d表示data空间,0x01表示起始地址,03H表示完毕地址(注意两种16进制的表示方法在这里都可以承受),输出结果在信息输出窗口中显示出来。通过命令行修改数据例如,我们想把Pl口的值从0x02数据修改成0x05,可在命令输入窗口输入Pl=OXo4”,回车即可完成,此时如果PI口接有led,将立即看到Ie
24、d状态改变。通过Memory窗口可以看到修改后的数据:在地址栏输入d:OOH然后回车。储存器1的d:0x90后的第一个数据就变成了04,这正是我们刚刚修改的结果。mHLlLIFFDOn -一c-.nq 一 c CC nrI Ii 悯 A*mDO DODO000000 00FFFC FF04Connected to Monitor-51 Load -Cjwtesf l0x04XSt4-ASSiraLBakD sableD:0X78: FF FF D:0x7E: FF FF D:0x84: FF FF D:0x8A: M100 D: 0x90:( 04 FF D:Ox96: D:0x9C: D:0
25、xA2: D:0xA8: D:OxAE: D:0xB4: D:OxBA: D:OxCO: D:0xC6: D:OxCC: D:0xD2:00 00 FF 007)观察/修改变量的值在暂停程序运行时,可以观察到有关的变量值。在监视/调用堆栈(Watch)窗口“局部”页自动显示当前正在使用的局部变量,不需要用户自己添加。监视(WatCh)页显示用户指定的程序变量。(先按F2键,然后输入变量的名称例如“delay”然后回车)仔。n国族0iO京乡匚I,-JjsJrOxffrlOxff /U的i甚3ORG0000H;1.JMPMAIN;UonOll一专为n IrHlnIORG0080H;NAIU:MOV
26、PlzODBHCALLDELay;wvpiILlUlCt0d t id :小都好=7目标I二1;01101101MAIN:MOVP1ODBHACALLDELay;MOVPl06DHACALLDELaV;dl王ACALLDELay;AJMPMAIN;delay:movr7j255;延时子程序10)带断点的全速运行按动F5启动全速运行,全速执行程序,当程序执行到第一个断点时,会暂停下来,这时你可以观察程序中各变量的值及各端口的状态,如下列图:第一个断点在movpl,#06dh之后,此时在储存器窗口MemoryWindows”,储存器I(MemOry#1)的地址输入栏内输入rtDiOOOhw,按回车
27、键后,可以从内部可直接寻址地址数据为6D和程序设计的一样。UKUUUOUD;MAIB:HOVPl,ODBH;11(HIOll-专为臾AfjUA-Xa;Iz0VPl,06;01101101ACALLDELay7FjfU由aoooACALLDELay;AJHPIUIn;delay:ovr7.*255;短时子程序dl:nov6,f25562: d)nz6,d2:O1 aI|4it:pOOhDzOxOO:FFFFFFFFFFFF00008B009100800000FFFFFF0:0x30:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0:0x60:FFFFFFFFFFFFFF
28、FFFFFFFFFFFFFFFFFFFFFFD:0x90:6DFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFD:OxCO:15FFFFFFFFFFFFFF00FC00000000FFFF00FFD:OxFO:00FFFFFFFFFFFFFFFF000000000000FFFFFFD:0x20:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD:0x50:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF网FFD:0x80:FF070000FFFF0010000000000000FCFF.6DFFD:OxBO:FFFFFFFFFFFFF
29、FFF8000FFFFFFFFFFFFXFFD:OxEO:00FFFFFFFFFFFFFF91000000000000FF00FFD:Ox10:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF此时用户目标板上会显示当前断点的状态,继续按动F5启动全速运行,程序执行到第二个断点时,会暂停下来,在变量观察窗口中,RAM的值应为B6;继续按动F5启动全速运行,程序又会执行到第一个断点处暂停,此时用户目标板上的灯又显示相应的状态。断点是仿真器调试的重要手段,请您仔细反史的练习直到熟练。id去除程序中所有断点闻如果想取消全部的断点全速运行时,要是逐个取消将是很烦琐的事,我们只要点
30、击工具栏相应的图标,就可去除程序中所有断点。1.2)执行到光标处Y1在体验“执行到光标处”之前,我们先点击工具栏上复位的图标,对仿真器的用户程序进展复位,把鼠标放在想要停顿的行点一下,再按“执行到光标处”程序全速执行到光标所在行,这与我们在前面看到的带断点的全速运行相类似。13)退出仿真通先按暂停按钮,再按复位RST,再按开启/关闭调试模式按钮,则退出仿真状态又重新回到编辑模式。(如果不能正确退出,请按一下仿真器上的复位按钮),此时可以对程序修改,然后重新编译,再按开启/关闭调试模式按钮,就又进入仿真模式了,:请注意!由于KEIL软件在仿真状态时和仿真器始终保持通信联系,为此退出仿真的时候最好
31、按照以上顺序退出,不要强行退出,否则容易造成电脑死机。到这里也就完成了keil软件的标准操作过程,由于KEIL操作过程较复杂,请您自行练习直到熟练!第3章MCS51单片机实验实验1实验设备的熟悉掌握及数据传送指令寻址方式的验证练习1、实验目的:了解实验设备及其使用方法。通过汇编语言根本指令的练习,灵活运用各类指令,熟练掌握编译软件的使用。2、实验设备:、DICE-5212K单片机综合实验箱1台、PC机1台3、原理图(AT89S52控制电路及存储器控制电路模块):74LS245AT89S52控制电路Dl口口dadB Um222m222L存储器?制电路0-32K3、实验内容:了解DlCE-5212
32、K实验箱的运行方式,学会KElLC软件的简单应用,包括:建设工程、建设汇编语言源文件、设置工程、编译、链接、运行指令、并通过窗口观察运行结果等。其中尤为重要的是掌握单步、单步追踪、运行到光标处、连续运行、断点等运行命令。、存放器、内部数据数据传送指令验证练习(各类寻址方式验证练习):ORG0000HLJMPMAlNORG0080HMAIN:MOVA,#30HMOVB,#0E4HMOVRO,#30HMOVRl,tt31HMOV30H,#3IHMOV34H,#32HMOVR0,AMOVA,ROMOVA,30HMOV31H,BMOV32H,AMOVR0,32HMOV33H,ROMOVR1,34HMO
33、V34H,RlMOV35H,34HMOV36H,R0MOV37H,R1MOVR0,36HMOVR1,37HS:CLRP1.0ACALLDELAYSETBP1.0ACALLDELAYSJMPSDELAY:MOVR7,#0FFHDELAYl:MOVR6,#0FFHDELAY2:DJNZR6,DELAY2DJNZR7,DELAYlRETEND要求:运行并观察并记录运行结果。学会观察存放器及内部数据。、外部数据数据传送指令的验证练习ORG000011LJMPMAINORG0080HMAIN:MOVA,#30HMOVDPTR,#1000HMOVXDPTR,AMOVXA,DPTRINCAMOVDPH,#I
34、oHMOVDEL,#07HINCDPTRMOVXDPTR,ANOPSJMP$END要求:运行并观察并记录运行结果,学会观察外部数据。、程序存储区指令验证练习指令读程序存储区ORG0000H1.JMPMAINORG0080HMAIN:CLRAMOVCA,A+PCINCAMOVCA,A+PCMOVDPTR,#008011MOVCA,A+DPTRINCAMOVCA,A+DPTRINCDPTRMOVCA,A+DPTRNOPSJMP$END要求:运行并观察并记录运行结果。学会观察程序存储区。用伪指令DB改写程序存储区ORG0000H1.JMPMAINORG1000HDBOCOH,0E9H,04H,OBO
35、H,99H,92H,82H,0E8H,80H,90HDB88H,83H,0C6H,OAlH,86H,8EH,OFFH,OCH,89H,ODEHORG0080HMAIN:CLRAMOVDPTR,#1000HMOVCA,A+DPTRMOVA,#03HMOVCA,A+DPTRMOVA,#ODHMOVCA,A+DPTRINCDPTRMOVA,#03HMOVCA,A+DPTRNOPSJMP$END要求:运行并观察并记录相关程序存储区运行结果。程序储存区中查表ORG0000H1.JMPMAlNORG0080HMAIN:CLRAMOVDPTR,ttTABMOVCA,A+DPTRMOVA,#03HMOVCA,
36、A+DPTRMOVA,#0DHMOVCA,A+DPTRINCDPTRMOVA,#03HMOVCA,A+DPTRNOPSJMP$TAB:DBOCOH,0F9H,0A4H,OBOH,99H,92H,82H,0F8H,80H,90HDB88H,83H,0C6H,OAlH,86H,8EH,OFFH,OCH,89H,ODEHEND要求:运行并观察并记录相关程序存储区运行结果。结论:标号是程序存储区中的地址位置标记,是由用户自己定义的字母和数字的组合,是由编译器自动分配的,它的宽度是16位的。在控制转移类指令中经常用到。、堆栈指令验证练习ORG0000H1.JMPMAINORG0080HMAIN:MOVS
37、P,#30HMOVA,#4511MOV56H,#89HPUSHACCPUSH56HPOPACCPOP57HNOPSJMP$END要求:运行并观察并记录相关程序存储区运行结果。、累加器传送命令练习ORG0000H1.JMPMAINORG0080HMAIN:MOVA,#30HMOVR0,#34HXCHA,ROMOV30H,#98HXCHA,30HXCHA,RoSWAPASJMP$END4、实验报告:、按要求完成上述实验内容并做好指令注释。、记录好观察到的实验结果。实验二程序状态字及其相关指令的影响实验1实验目的:学习掌握MCS51单片机程序状态字PSW及影响其各个状态位的指令验证练习,进一步熟练掌
38、握KEIL编译器软件的应用。2、实验设备:、DICE-5212K单片机综合实验箱1台、PC机1台3、实验原理图:(同上)4、实验内容:、学习如何观察程序状态字PSW的状态。、算数运算类指令练习验证例如:存放器加指令练习ADD,RnORG0000HLJMPMAINORG0080HMAIN:SETBCMOVA,#30HMOVR3,#45HADDA,R3SJMP$END要求:观察指令执行后PSTV各个相关位的变化并记录。直接地址加指令练习ADDA,directORG0000HLJMPMAINORG0080HMAIN:MOVA,#3011MOV26h,#45HADDA,26hSJMP$END要求:观察
39、指令执行后PSW各个相关位的变化并记录。存放器间接寻址加法指令练习ADDA,RiORG0000HLJMPMAINORG0080HMAIN:MOVA,#30HMOV26H,#0F5HMOVR0,#26HADDA,ROSJMP$END要求:观察指令执行后PSW各个相关位的变化并记录。立即数加法指令练习ADDA,#dalaORG0000HLJMPMAlNORG0080HMAIN:MOVA,#30HADDA,#0F5HSJMP$END要求:观察指令执行后PSW各个相关位的变化并记录。、程序状态字PSW中RSO和RSl控制位的练习ORG0000H1.JMPMAINORG0080HMAIN:MOVR0,#
40、36HCLRRSOSETBRSlMOVRO,#45HMOVA,ROMOV20H,R0CLRRSlNOPSJMP$END要求:观察指令执行后PSW各个相关位及存放器的变化并记录。、学生自行练习教科书上的其他算术运算类指令,内容不限。5、实验报告:、按要求完成上述实验内容并做好指令注释。、记录好观察到的实验结果。实验三MCS51根本指令练习1 .实验目的:学习掌握MCS51单片机其他指令(逻辑运算类指令、控制转移类指令、布尔处理类指令)验证练习,进一步熟练掌握KElL编译器软件的应用。2 .实验设备:、DlCE-5212K单片机综合实验箱1台、PC机1台3 .实验原理图:(同上)4 .实验内容:、逻辑运算类指令练习ORG0000HLJMPMAINORG0080HMAIN:MOVA,#30HCLRAMOVA,#89HCPLRLASETBCRLCARRASETBCRRCAMOVA,#0FHMOVR7,#89HANLA,R7MOV30H,#89HANLA,30HMOVR0,#30HANLA,R0ANLA,#0FoHSJMP$END要求:独立练习逻辑“或”指令、逻辑“异或”指令。独立完成拆字拼字程序。程序例如:将20h、09h、(Mh拆分为上下4位并分别存放在内部数据区7eh、7dh、7ch7bh、7ah79hORG0000HLJMPMAINORG0080HMAI