2007级热动专业《单片机原理及应用》实验指导书.doc_第1页
2007级热动专业《单片机原理及应用》实验指导书.doc_第2页
2007级热动专业《单片机原理及应用》实验指导书.doc_第3页
2007级热动专业《单片机原理及应用》实验指导书.doc_第4页
2007级热动专业《单片机原理及应用》实验指导书.doc_第5页
已阅读5页,还剩52页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及应用实验指导书水利水电学院动力工程系2009年9月目录第一部分 伟福Lab2000系列单片机仿真实验系统上机说明第一章 概述1第二章 伟福实验系统组成和结构32.1 伟福实验系统的硬件组成32.2 伟福实验系统的支持软件102.3 外接单片机仿真功能10第三章 板上仿真器使用方法113.1 显示功能说明113.2 键盘功能说明113.3 脱机仿真12第四章 系统的使用154.1系统的安装和启动154.2用系统机仿真:15第二部分 参考实验程序实验一 多字节算数运算程序171.多字节BCD数加法172.多字节二进制数减法183.双字节二进制数乘法204.双字节二进制数除法22实验二 二进制到BCD码转换程序实验25实验三 P1口输入、输出实验27实验四 交通灯控制30实验五 八段数码管显示实验33实验六 电子时钟37第三部分 部分选做实验实验七 BCD码到ASCII码转换41实验八 键盘扫描显示实验43实验九 单片机串行口通讯实验48实验十 D/A、A/D转换实验521. D/A转换实验522. A/D转换实验54i第一部分 伟福Lab2000系列单片机仿真实验系统上机说明第一章 概述近十年来,我国经济快速稳步增长,电力建设发展十分迅速。目前,无论是发电厂、变电站及输电线路,还是各种配电网络,广泛采用各种微机化仪器设备,如微机励磁装置、微机调速装置、微机保护装置、微机载波通信设备、微机无功补偿控制器以及相应的计算机监控系统等。作为电力和动力专业的一门重要的计算机应用技术基础课程,“单片机原理及应用”对于学生掌握电站和电力系统自动装置的工作原理及结构十分重要。为提高学生的计算机应用能力、科学实验技能以及动手能力,培养出高素质的专业人才,实验装置采用先进的伟福Lab2000教学实验仪,它具有功能强,使用灵活方便等特点。通过选择不同的MPU/CPU型号,可实现MCS-51/MCS-96/8086计算机系统实验。伟福仿真实验系统由板上仿真器、实验仪、伟福仿真软件、开关电源构成,具有双平台(DOS版本、WINDOWS版本)、双工作模式(软件模拟仿真、硬件仿真)、双(多)CPU 结构、双集成环境、强大的逻辑分析仪综合调试功能和追踪器功能,可以通过更换不同的POD,对各种不同类型的单片机进行仿真。1.系统实验板本实验板提供以下实验: (1) 数模变换电路 (2) 模数变换电路 (3) 逻辑电平输入开关 (4) 逻辑电平显示电路 (5) 单脉冲电路 (6) 逻辑笔电路 (7) 1MHz及500KHz脉冲信号源 (8) PWU转换电压电路 (9) 模拟量电压(电位器)电路 (10) 串口通信实验电路 (11) 扬声器驱动电路 (12) 继电器控制电路 (13) 逻辑门电路 (14) 六位8段码LED数字显示器 (15) 46键盘 (16) 存贮器 (17) 通用集成电路插座(DIP40282420181614) (18) 地址,数据及控制电路总线接出插座通过可选附件还可以扩展完成以下实验:(19) 步进电机实验(20) 打印机驱动实验(21) 传感器实验(22) 直流电机实验2. 仿真器系统构成本仿真实验系统具有四种使用方法:(1)无系统机,仅用实验仪的板上仿真器进行仿真和实验。(2)有系统机,用系统机上的WINDOWSDOS软件驱动板上仿真器进行仿真和实验(3)有系统机、用外接仿真器进行仿真和实验。(4)无实验仪、无仿真器,仅在系统机上采用软件模拟方式进行仿真。3. MCS51、80C196系列通用。配80888086附加板,可以进行80888086实验。4. 实验系统自带键盘和显示器,自带系统监控程序。如果没有系统机也照样进行各种学习和实验。5. 配备有DOS,Windows两套PC机系统软件,在有系统机的情况下,通过外接仿真器实现64K全空间的硬件断点和仿真6. PC机和系统机软件具有全集成化仿真环境,中、英文两种界面,软件仿真与硬件仿真两种模式,软件仿真可以在无仿真仪的情况下进行。综上所述,本实验仪可以方便灵活地构成各种实验方案,在有无系统机和实验仪的情况下,都能进行相应的编程实验,从而具有极为广泛的应用范围,板上提供了基本的实验电路,减少繁琐的连接线过程,板上也提供了DIP402824201614插孔和CPU的地址数据总线引出插孔,供学生自己扩展其它实验,培养实际动手能力,加强对实验电路的理解。实验程序采用多种语言适应不同层次的学生的需要,通过应用高级语言的编程和实验,可使学生掌握高级语言的编程方法,为今后进入社会实践打下坚实的基础,而汇编语言又能让学生了解机器深层的原理。55第二章 伟福实验系统组成和结构伟福实验系统可根据教学实践的需要实现MCS51MCSl96单片机原理与接口,80888086微机原理与接口的一系列实验,并在硬件上预留了自主开发实验的空间。该实验系统对基本实验仅需少量连线就可进行,同时也提供了一些需较多连线的扩展性实验以进一步锻炼动手能力。此外,它还提供了强大的软硬件调试手段2.1 伟福实验系统的硬件组成本实验仪上有丰富的实验电路和灵活的组成方法。这些电路既可以和8031系列,也可以和80196系列CPU及80888086CPU组合完成各种实验。为了描述清楚,在此作统一的介绍。2.1.1 LED6位数字显示器2.1.2 4x6键盘电路本实验仪已经将LED显示电路和键盘电路集成到一个集成电路中。LED显示和键盘的等效电路如图1。其中的U1,U2,U3,U4并不实际是74LS系列电路,它们都被集成在CPLD现场可编程器件内,U5是74164移位寄存器,可以实现串行数到并行数的转换,U6是有反向功能的驱动电路,向U3的地址分别发高电平和低电平,也就是向U5(74164移位寄存器)发时钟信号,向U4的地址所发的数据,被送到U5(74164移位寄存器)的数据口,这个数据被时钟信号送入U5(74164移位寄存器),转换成并行数据,作为LED的段码。向U1地址写的数据经U6(MCl413)反相驱动后,作为LED的位码,用于选择的LED位,每次点亮一位,循环显示6位LED显示器,向U1地址写的数据也可以作为键盘列扫描码,从u2地址读回的数据是键盘行数据,U1输出的列扫描码经U2读入后,用来判断是否有键被按下,以及按下的是什么键。如果没有键按下,由于上拉电阻的作用,经U2读回的值为高,如果有键按下,U1输出的低电平经过按键被接到u2的端口上,这样从u2读回的数据就会有低位,根据U1输出的列信号和U2读回的行信号,就可以判断哪个键被按下。2.1.3 LED电平显示电路 实验仪上装有8只发光二极管及相应驱动电路。见图2,L0L7为相应发光二极管驱动信号输入端,该输入端为高电压电平“1”时发光二极管点亮我们可以通过P1口对其直接进行控制,点亮或者熄灭发光二极管。图2: LED电平显示电路图1:LED显示和键盘的等效电路2.1.4 逻辑电平开关电路实验仪上有8只开关K0K7,并有与之相对应的K0-K7引线孔为逻辑电平输出端开关向上拨相应插孔输出高电平“1”,向下拨相应插孔输出低电平“0”,见图3。图3: 逻辑电平开关电路2.1.5 单脉冲电路单脉冲电路由按键(PULSE)和去抖动电路组成,每按一次(PULSE)键产生一个单脉冲。其中去抖动电路已经被集成到U8芯片中去,单脉冲的输出信号插孔在总线区内。2.1.6 脉冲发生电路两路脉冲信号输出端,1MHZ脉冲发生电路已经被集成到U8电路中去,500MHZ是由1MHZ经U18二分频后得到。两个输出插座分别输出1MHZ和500MHZ脉冲信号。分频电路如图4:图4: 脉冲分频电路2.1.7 继电器输出电路当控制端电平置高,公共触点与常开端吸合,我们可以将常开端接入一发光二极管,公共端接+5V电平,通过对控制端进行控制,观察发光二极管的状态。见图5。图5: 继电器控制电路2.1.8 A/D转换电路实验仪上有一个0-5V的可调电位器,将可变电压输出端接入A/D转换电路的输入端,通过CPU软件处理,读进A/D转换值,再将转换值送数码管显示。我们可以调节电位器,使之输出不同电压值,通过数码管的显示,检验A/D转换正确与否。见图6。图6:A/D转换电路2.1.9 D/A转换电路实验仪上提供了D/A转换电路如图7所示。我们可以通过软件编程控制D/A转换芯片DAC832,输出相应电流值,经过采样电路取出模拟量电压值,用电压表测量电压输出端子,读出电压值。图7: D/A转换电路2.1.10 PWM转换电路见图8。图8: PWM转换电路2.1.11 音频放大电路见图9。图9: 音频放大滤波电路2.1.12 可调模拟量输入电路电位器电路用于产生可变的模拟量。见图10。图10: 电位器2.1.13 逻辑测量(逻辑笔)电路本实验仪上有逻辑测量电路,如图11。可用于测量各种电平,其中红灯表示高电平,绿灯表示低电平。如果两灯同时闪动,表示脉冲信号;两等都不两时,表示浮空(高阻态)。图11: 逻辑笔电路2.1.14 存储器电路本实验仪上有一片32K存储器61256。在无系统机的情况下,从0000H7EFFH可供用户使用,7E00H7FFFH为监控用。在有系统机的情况下,配合外接仿真器,此RAM的全部空间给用户,地址是0000H7FFFH。2.1.15 逻辑门电路本实验仪提供系列门电路:非门、或门、与门、D触发器。其中有些已被集成在U8芯片中。2.1.16 仿真插座在有系统机工作时,将E2000或G6W上的34芯仿真电缆插入实验板上该插座内。见下图。2.1.17 实验电路插座本实验仪具有1个40芯通用电路插座和2个20芯通用电路插座,每个插座的全部引脚都被引出到相应的插孔,40芯通用插座可兼容24和28芯宽间距插座,20芯通用插座可兼容14芯和16芯插座。利用这些插座,可对双列直插式的各种微机芯片进行实验。2.1.18 总线插孔本实验仪上有三排总线插座,用于引出各种总线信号,其中D0D7为8根数据总线,A0A15为16根地址总线,CSOCS3为4根地址选通线,对应的选通地址如下:均为低电平有效。 CSO 08000H-09FFFH CS1 0A000H-0BFFFH CS2 0C000H-0CFFFH CS3 0D000H-0DFFFH另外ALE,RD,WD,BHE为控制总线。第三排总线插孔的定义为上下两档,如果仿8051,定义看上一行,如果仿80C196,则看下面一行。2.1.19 串口通信程序实验插孔本实验仪在使用外接仿真器或使用板上仿真器时,可以用这两个插孔进行RS232通信程序实验,通过实验仪的通信电缆可以实现实验仪数据和系统机数据互传。2.1.20 串口通信选择 选择USER 调试用户串口通信程序,将用户的TXDRXD信号接到相应插孔上,就可以将串口信号接到PC机上。选择EMU 用WAVE仿真环境驱动实验仪时,要将跳线设置在EMU端,这样就可以将编译好的程序代码下传到实验上。也可以用WAVE仿真的控制指令控制实验仪的运行。2.1.21 CPU选择在实验仪的右上角有两个跳线器,其中跳线器JP2用于CPU种类的选择 选择1 8051 本实验仪对8051单片机进行仿真。选择0 80C196本实验仪对80C196单片机进行仿真。本实验仪上有两个CPU插座,一个为8031,一个为80C196KC。仿真哪一种CPU,就插哪一种CPU芯片,两种CPU芯片不能同时插。所插CPU的种类应和跳线器的选择相同。2.1.22 仿真方式选择跳线器JP1用于仿真方式的选择。选择1 LOCAL CTRL 不用系统机仿真,仿真仪上的键盘和LED显示器既可作为监控系统用,也可以作为用户资源,软件断点。选择0 EXT CTRL 用系统机和仿真器进行仿真,断点空间为64K,键盘和LED显示器都作为用户资源,硬件断点。2.2 伟福实验系统的支持软件2.2.1 板上单片机仿真部分(使用WAVE集成调试软件)。 支持DOS、Windows95/98双平台。 具有编辑、汇编、编译、调试和软件模拟等功能,所有操作均可通过窗口和菜单的选择来完成。方便用户编写和调试软件、直观反映程序运行情况,提高软件开发效率。 支持汇编语言,C,PLM高级语言源程序调试。 可观察数组,记录等各种复杂变量。 可脱开实验系统单独进行软件模拟,这种方式尤其适用于软件实验。2.2.2 在没有系统机的WAVE集成调试环境时,若使用板上单片机仿真,请参见“第三章 板上仿真器使用方法”2.3 外接单片机仿真功能除具有板上仿真器所有功能外,还具有以下特点: 不占用任何用户资源; 硬件断点; 仿真系统可分段或全区域提供仿真空间,最大0000H-0FFFFH; 可分段或全区域出借RAM给用户作数据存储器使用; 提供硬件诊断、测试功能。第三章 板上仿真器使用方法3.1 显示功能说明本实验仪共有6 位LED 发光数码管,左4位为地址位,右2位为数据位。当地址位4位数均有数值时,表示地址是程序存储器的地址或数据存储器的地址。当地址数码管只有右边2位时,表示内部寄存器地址。当地址数码管只有右边3位时( 最左面1 位暗,第二位显示“0”,第3和4位为数字),表示是内部特殊寄存器(SFR)的地址。最右边的两位是数据位,表示左边4位显示的地址单元中的数据。3.2 键盘功能说明RST键: 整机复位键。复位后数码管的地址位显示“8051”字样,表示复位操作完成。复位后程序存储器和外部数据存储器中的内容不变,程序指针回到0000处。CPU内部寄存器复位后为单片机复位操作规定的值,即有的寄存器中的数据不变,有的寄存器中的数据被复位。0到F键:数字输入键。用于输入16进制数。MON键: 监控键。表示某些操作已结束。某些操作的所有步骤完成后,按MON键表示操作结束。Trace键:跟踪执行键。在调试程序时先按MON键,最左侧一只LED数码管现示“P”,这时每按一次Trace键执行一条用户编写的单片机指令,如过遇到调用指令,跟踪到调用内部,可逐条检查用户程序的执行情况。Step键: 单步执行键。与Trace键不同的地方是执行到调用语句时,按一次此键将执行调用所含的所有语句。 Last键: 地址减1键。有两个作用:触发显示寄存器和存储器中的数据。在地址位上输入了寄存器或存储器中的地址时,按第一次Last键,数据显示数码管开始显示数据。 地址减1。在仿真器上输入地址后,在第二次以及之后的各次按键时,每按一次Last键,地址值自动减一,地址值所对应的数据同时更换。Next键: 地址加1键。两项功能与Last键类似,区别是Next键进行地址加1操作。Here键: 断点运行键。设置中断程序运行的地址,使程序执行到中断地址处停止执行,在中断地址处等待新的命令。设置中断的情况有两种:程序从0000地址处执行的中断点:A.按RST键复位,再按MON键,数码管显示“P”;B.输入4位中断地址;C.按Here键。按Here键后,中断地址确定,同时启动程序,程序自动执行到中断点停止,等待用户命令,此时显示中断点的地址和A寄存器中的内容。先使程序执行到某处,再设置中断点:A.先用单步、跟踪、中断等运行方式使程序执行到某处停止;B.按MON键,使地址数码管显示“P”;C.输入中断地址;D.按Here键。按键后,程序自动从设置前的停止处执行到所设的中断地址处。Exec键: 全速执行键。调试程序时,设置好执行的初始地址后,按Exec键可自动执行程序。3.3 脱机仿真下面根据仿真时的各类需要,逐一介绍有关的操作方法:3.3.1 将汇编源程序转换为机器码在仿真工作之前,应把汇编源程序转换为机器码。可用人工查手册的方法逐条翻译成机器码,在翻译成机器码的同时还要为各条机器码安排地址。也可用计算机自动汇编井生成列表文件,列表文件是指同时含有源程序、机器码和机器码地址的文件。用计算机生成机器码可避免人工翻译造成的人为错误,汇编的效率也远高于人工翻译。3.3.2 输入程序的机器码3.3.2.1 由计算机输入程序机器码为了节省输入机器码的时间,可先由计算机向仿真器输入机器码,然后再脱离计算机独自仿真。用计算机输入程序时先用:MCS51S1命令启动软件,调入用户的汇编源文件,选择仿真模式,执行汇编命令,汇编结束后机器码自动装入仿真器中。然后,关断计算机和仿真器的电源,拔出RS232接口插头。3.3.2.2 人工输入程序机器码如果没有计算机时,则用人工方法输入。人工输入的方法是:(1) 按RST键,整机复位。(2) 按MON键,使地址数码管出现“P”字符。(3) 输入4位地址码,此时地址位上显示的是输入的地址数,数据位上的数码管不亮。(4) 先按Next或Last键,数据位上的数码管闪烁,此时,再输入2位数据。(5) 程序输入完毕,可依次按RST、MON、4位地址数、Next键,检查输入的机器码,不断地按Next或Last键,可依次逐个检查各个地址中的数据,数据形式是16进制。3.3.3 执行程序3.3.3.1 跟踪执行程序当需要由用户通过键盘控制,逐条执行程序,以便检查单片机内部和外部电路时,可采用跟踪执行的方式。跟踪执行时如果遇到调用指令,仿真器将使程序的指针进入被调用的程序段内部。跟踪执行键Trace,以跟踪方式执行程序的操作方法是:(1) 按RST键整机复位。(2) 按MON键使地址数码管出现字符“P”。(3) 输入程序执行的起始地址,此时,4位地址数码管显示地址值,数据数码管暗。(4) 按Trace键,数据数码管亮,此后每按一次Trace键,执行一条指令。3.3.3.2单步执行程序单步执行程序的作用与跟踪执行相仿,区别是单步执行遇到调用时,将自动连续地执行调用内部的所有指令,然后停在调用执行后的第一条指令上,可继续单步执行。以单步方式执行程序的操作方法是:(1) 按CRST键整机复位。(2) 按MON键使地址数码管出现字符“P”。(3) 输入程序执行的起始地址,此时,4位地址数码管显示地址值,数据数码管暗。(4) 按Step键,数据数码管亮,此后每按一次Step键,执行一条指令。3.3.3.3全速执行程序当需从用户指定的程序地址处开始全速运行整个程序,或全速运行到断点处时,可采用全速执行方式。全速执行的操作方法是:(1) 按CRST键,整机复位。(2) 按MON键使地址数码管出现字符“P”。(3) 输入程序执行的起始地址,此时,4位地址数码管显示地址值,数据数码管暗。(4) 如果需要设置断点,可按上面介绍的Here命令。(5) 按Exec键,全速执行。程序运行时地址数码管数据数码管均暗。(6) 按RST中断运行。3.3.3.4检查执行结果当运用上述的各种执行方式运行程序时,需要及时地了解程序执行的结果,而运行结果很大程度上是由单片机内部各个部分的当前值来反映的。仿真器提供了查看单片机(由仿真器模仿)内部各个部分情况的功能,检查执行结果的主要任务就是查看单片机内部的情况。检查单片机内部各个寄存器、累加器、接口电路的方法在下面讲述: 检查和修改单片机内部寄存器数据:在调试过程中,如果需要查看当前状态下内部寄存器的情况,可按下列步骤进行:(1)、查出单片机内部寄存器地址码。如R1地址为01H。(2)、根据内部寄存器地址码输入2位地址码,此时地址数码管的右2位显示地址数,左2位暗。 (3)、按Next或Last键,使数码位出现内部寄存器中的数值。(4)、如果要查看相邻地址的寄存器的内容,可继续按Next或Last键。(5)、如果要修改内部寄存器中的内容,可按数字键0F。 检查和修改单片机内部专用寄存器(SFR)数据:在调试过程中,如果需要查看当前状态下单片机内部专用寄存器(SFR)的情况,可按下列步骤进行:(1)、查出单片机内部专用寄存器(SFR)地址码。如ACC地址为EOH(2)、仿真器规定专用寄存器地址要用3位数表示,专用寄存器的地址是2位,需先输入一个先导“0”,再输入2位专用寄存器地址码。地址输入后,此时地址数码管的右3位显示地址数,最左1位暗。(3)、按Next或Last键,使数码位出现专用寄存器中的数值。(4)、如果要查看相邻地址的专用寄存器的内容,可继续按Next或Last键。(5)、如果要修改专用寄存器中的内容,可按数字键0F。注意:在查看专用寄存器时,不可按RST键,因为按此键后各个专用寄存器中的内容将被复位。 检查和修改单片机程序存储器:(1)、按MON键,地址数码管出现“P”字样。(2)、输入4位地址,此时4位地址数码管亮,2位数据数码管暗。(3)、按Next或Last键,2位数据数码管亮,显示的即为4位 地址单元中的机器码值,如要修改则可按0F键。(4)、再按Next或Last键可查看相邻的地址中的机器码值。 检查和修改单片机外部数据存储器:(1)、按MON键,地址数码管出现“ ,”字样。(2)、输入4位地址,此时4位地址数码管亮,2位数据数码管暗,(3)、按Next或Last键,2位数据数码管亮,显示的即为4位地址单元中的机器码值,如要修改则可按0F键。(4)、再按Next或Last键可查看相邻的地址中的机器码值。第四章 系统的使用4.1系统的安装和启动(1) 进行MCS51单片机实验时,在U2插座上插入8031或8032芯片(如果68脚的U1插座上装有80C196芯片应将其拔下).(2) 将串口通信选择设在EMU位置,JP2设在1位置选择仿真8051。(3) 将配套的串行通讯电缆的一端与RS232 9芯D形插座相连,另一端与PC机的串行口相连。(4)连接220V电源(实验结束后应拔下)。(5) 打开实验台电源开关,红色电源指示灯亮。(6) 打开计算机电源,执行WAVE集成调试软件。注意:A.无论是集成电路的插拔、通讯电缆的连接、跳线器的设置还是实验线路的连接,都应确保在断电情况下进行,否则可能造成对设备的损坏。B.实验线路连接完成后,应仔细检查无误后再接通电源。4.2用系统机仿真:(1)、双击桌面上“WAVE”图标,打开伟福软件。(2)、设置仿真器:打开仿真器设置可用以下两种方法:点击任务栏中“仿真器”,选择“仿真器设置”;点击“仿真器设置图标”。A、“语言”设置: “编译器选择”选“伟福汇编器”。 “缺省显示格式”选“混合十、十六进制”。注意:A、不可轻易改动“LINK命令行”的内容,否则会造成编译连接问题。B、“目标文件”设置: 选中“缺省地址”、“生成BIN文件”、“生成HEX文件”。C、“仿真器”设置: “选择仿真器”栏选“Lab2000仿真实验系统”。 “选择仿针头”栏选“MCS51实验”。D、“通信设置”: “端口选择”栏选“COM1”。 “波特率选择”栏选“115,200”。设置完毕点击“测试串行口”,若串行口测试正常则关闭“测试串行口”,点击“好”,仿真器进行初始化,出现“伟福仿真器”窗口,窗口中出现“仿真方式:伟福硬件仿真器,型号:Lab2000仿真实验系统+MCS51实验(8031/32) 编号:2001110237”字样,点击“好”完成仿真器设置;若串口测试出现错误,则检查仿真器电源和串行口连接,重新进行设置。(3)、建立新文件:方法有二:、点击“文件”,选择“新建文件”;、点击“新建文件”图标。(4)、打开的文件窗口中输入汇编程序。(5)、程序输入完毕,保存文件。(6)、编译目标文件。(7)、运用单步、跟踪或全速执行运行程序。(8)、断点的设置: 方法有四: 、将光标放到要设断点处,点击“执行”,选择“设置/取消断点”; 、将光标移到编辑窗口内,行左边的空白处,光标变成右上指箭头,双击鼠标左键; 、将光标放到要设断点处,使用Ctrl-F8快捷键; 、将光标放到要设断点处,右击鼠标,弹出菜单,选择“设置/取消断点”。第二部分 参考实验程序实验一 多字节算数运算程序1.多字节BCD数加法一、实验要求 将两个多字节BCD数相加。二、实验目的 1、掌握基本指令。2、了解多字节BCD数加法。 三、实验说明 入口条件:字节数在R7中,被加数在R0中,加数在R1中。 出口信息:和在R0中,最高进位在Cy中。 影响资源:PSW、A、R2。 堆栈要求:2字节。 四、程序框图 设置块起始位置设置BCD数长度设置被加数、加数地址地址减1当前地址内容相加是否加完结束 否 是 五、程序清单 org 0000h 设置块起始地址 0000 7F03 mov r7,#03h 设置字节数首地址 0002 7840 mov r0,#40h 设置被加数首地址 0004 7930 mov r1,#30h 设置加数 0006 120011 lcall bcdan l: 0009 80FE sjmp l org 0011h bcdan: 0011 EF mov a,r7 0012 FA mov r2,a 0013 28 add a,r0 0014 F8 mov r0,a 设置被加数、加数首地址 0015 EA mov a,r2 0016 29 add a,r1 0017 F9 mov r1,a 0018 C3 clr c bcdan1: 0019 18 dec r0 被加数加数地址减一 001A 19 dec r1 001B E6 mov a,r0 001C 37 addc a,r1 被加数加数相加 001D D4 da a 二十进制调正 001E F6 mov r0,a 和送(R0) 001F DAF8 djnz r2,bcdan1 0021 22 ret2.多字节二进制数减法 一、实验要求 将给定的多字节二进制数相减。 二、实验目的 了解多字节二进制数减法。 三、实验说明 入口条件:字节数在R7中,被减数在R0中,减数在R1中。 出口信息:差在R0中,最高借位在Cy中。 影响资源:PSW、A、R2。 堆栈要求:2字节。 四、程序框图设置块起始地址设置BIN数长度设置被减数、减数地址地址减一当前地址内容相减是否减完结束 否 是五、程序清单 org 0030h 设置块起始地址 0030 7F03 mov r7,#03h 设置字节数 0032 7840 mov r0,#40h 设置被减数首地址 0034 7930 mov r1,#30h 设置减数首地址 0036 120040 lcall binsn l: 0039 80FE sjmp lorg 0040h binsn: 0040 EF mov a,r7 0041 FA mov r2,a 0042 28 add a,r0 0043 F8 mov r0,a 设置被减数、减数首地址 0044 EA mov a,r2 0045 29 add a,r1 0046 F9 mov r1,a 0047 C3 clr c binsn1: 0048 18 dec r0 0049 19 dec r1 被减数、减数地址减一 004A E6 mov a,r0 004B 97 subb a,r1 减法运算 004C F6 mov r0,a 差送(R0) 004D DAF9 djnz r2,binsn1 004F 22 ret3.双字节二进制数乘法 一、实验要求 将两个多字节无符号二进制数相乘。 二、实验目的1、 了解多字节二进制数的乘法。2、 了解字节交换指令。 三、实验说明 入口条件:被乘数在R2、R3中,乘数在R6、R7中。 出口信息:乘积在R2、R3、R4、R5中。 影响资源:PSW、A、B、R2-R7。 堆栈要求:2字节。 四、程序框图 设置块起始地址设置被乘数、乘数被乘数低字节与乘数低、高字节依次相乘被乘数高字节与乘数低、高字节依次相乘结束 五、程序清单 org 0060h 设置块起始地址 0060 7A12 mov r2,#12h 0062 7B34 mov r3,#34h 设置被乘数、乘数 0064 7E56 mov r6,#56h 0066 7F78 mov r7,#78h 0068 120071 lcall muld l: 006B 80FE sjmp l org 0071h muld: 0071 EB mov a,r3 被乘数低字节送A 0072 8FF0 mov b,r7 乘数低字节送B 0074 A4 mul ab 被乘数低字节与乘数低字节相乘 0075 ACF0 mov r4,b 乘积高字节送结果单元 0077 FD mov r5,a 乘积低字节送结果单元 0078 EB mov a,r3 0079 8EF0 mov b,r6 007B A4 mul ab 007C 2C add a,r4 被乘数低字节与乘数高字节相乘 007D FC mov r4,a 乘积送结果单元并累加 007E 7400 mov a,#00h 0080 35F0 addc a,b 0082 FB mov r3,a 0083 EA mov a,r2 0084 8FF0 mov b,r7 0086 A4 mul ab 0087 2C add a,r4 0088 FC mov r4,a 被乘数高字节与乘数低字节相乘 0089 EB mov a,r3 乘积送结果单元并累加 008A 35F0 addc a,b 008C FB mov r3,a 008D 7400 mov a,#00h 008F 3400 addc a,#00h 0091 CA xch a,r2 0092 8EF0 mov b,r6 0094 A4 mul ab 0095 2B add a,r3 被乘数高字节与乘数高字节相乘 0096 FB mov r3,a 乘积送结果单元并累加 0097 EA mov a,r2 0098 35F0 addc a,b 009A FA mov r2,a 009B 22 ret4.双字节二进制数除法一、实验要求将双字节无符号二进制数相除。二、实验目的1.了解双字节二进制数的比较除法。2.熟悉字节交换指令及逻辑运算类指令。三、实验说明入口条件:被除数在R2、R3、R4、R5中,除数在R6、R7中。出口信息:OV=0时商在R4、R5中,OV=1时商溢出。影响资源:PSW、A、B、R1-R7。堆栈要求:2字节。无符号单字节(8位)数据相除,可直接选用除法指令完成。多字节

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论