河北工业大学单片机实验报告
河北工业大学 单片机实验 第四次试验 实验八 查表程序设计

实验八查表程序设计一、实验目的1.进一步熟悉MCS-51指令系统和汇编语言程序设计。
2.学会用MOVC指令编写查表程序。
二、实验内容1.设计并调试一个查平方表的程序,其功能为应用查表指令MOVC A,@A+PC,求累加器A中数的平方值,结果平方值送A。
要求待查的(A)≤15。
2.设计并调试一个根据电压值查与其对应的温度值的查表程序,其功能为应用查表指令MOVC A,@A+DPTR,求(A)中电压值对应的温度值,将温度值送R2R3(温度值为二字节的压缩BCD码),电压值的范围为(A)≤0FFH。
实验程序参考框图如3-8所示。
三、实验步骤1.键入程序和预定表后;2.通过修改自变量参数启动并调试程序,直至正确为止。
3.边调试边体会用PC或DPTR作指针查表的区别。
四、实验报告要求根据实验内容和程序参考流程,编出所需查表程序,列出实验程序清单。
五、思考题1.当表的长度〉255个字节时应选哪一条指令查表?答:当表的长度〉255个字节时应选“MOVC A,@A+DPTR”指令查表,并且需要对DPH、DPL进行运算处理,求出表目地址,再用“MOVC A,@A+DPTR”指令查表。
2.用PC指针查表编程时应注意什么?答:应先用传送指令把所查数据的项数送入累加器A,并用“ADD A,#data”对A进行修正data值等于查表指令和数据表格之间的字节数,然后用“MOVC A,@A+PC”查表,同时用PC指针查表的表的范围不能大于255个字节。
六、参考程序清单1.求平方值查表程序:ORG 0000HADD A,#02HMOVC A,@A+PCSJMP $DB 0,1,4,9,16,25 36,49DB 64,81,100,121,144,169,196,225END本程序实现通过查表得A累加器中数的平方值并将结果送A,根据A中数值采用基址加变址方法找到所查数的地址得所对应的平方数。
例:当(A)=5时,执行过程如下:D:0XE0(A)PC指针 ORG 0000H 05HC:0X0000 ADD A,#02H 07HC:0X0002 MOVC A,@A+PC 19H ;A+PC=A(10),查表的19H(25) C:0X0003 SJMP $C:0X0005 DB 0,1,4,9,16,25 36,49DB 64,81,100,121,144,169,196,225END2.测量温度查表程序:双字节查表程序刘程序如图3-8所示:双字节查表参考程序清单:ORG 0000HMOV DPTR,#TABMOV R0,AADD A,R0MOV F0,CADD A,DPLMOV DPL,ACLR AADDC A,DPHMOV C,F0ADDC A,#0MOV DPH,ACLR AMOVC A,@A+DPTR ;查第一个字节MOV R2,ACLR AINC DPTRMOVC A,@A+DPTR ;查第二个字节MOV R3,ASJMP $TAB:DW 0100H,0110H,0120H,0130H,0140H,0150H,0160H ;温度表END本程序实现根据A中电压查表中与之对应的温度值,表中温度均为2字节故(A)*2+DPTR(表首地址)即可查的对应温度值。
单片机实训实验报告总结

一、实验背景与目的随着科技的不断发展,单片机作为一种微小的计算机系统,在工业控制、智能家居、汽车电子等领域得到了广泛的应用。
为了提高学生的实践能力和创新意识,本实训课程旨在通过实际操作,让学生掌握单片机的原理、编程和调试方法,培养学生的动手能力和团队协作精神。
本次实训以51单片机为核心,结合数码管、LED灯、按键等外围电路,设计了多个实验项目,包括LED流水灯、交通灯控制系统、简易计算器、温湿度监控系统等。
通过这些实验,使学生深入了解单片机的硬件结构和软件编程,提高学生的实际操作能力和问题解决能力。
二、实验内容与过程1. 实验一:LED流水灯(1)实验目的:掌握51单片机的I/O口编程,实现LED灯的流水效果。
(2)实验步骤:① 硬件连接:将LED灯连接到P1口;② 编写程序:使用循环语句和延时函数控制LED灯的流水效果;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察LED灯的流水效果。
2. 实验二:交通灯控制系统(1)实验目的:学习单片机在交通灯控制系统中的应用,实现红黄绿灯的变换及倒计时功能。
(2)实验步骤:① 硬件连接:将LED灯连接到P1口,按键连接到外部中断INT0;② 编写程序:设置定时器中断,实现倒计时功能;编写外部中断程序,实现红黄绿灯的变换;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察交通灯的工作状态和倒计时效果。
3. 实验三:简易计算器(1)实验目的:掌握矩阵键盘扫描原理、LCD1602显示屏控制,实现基本的四则运算。
(2)实验步骤:① 硬件连接:将矩阵键盘和LCD1602显示屏连接到单片机;② 编写程序:实现矩阵键盘扫描、LCD1602显示控制和运算逻辑处理;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察计算器的工作状态和运算结果。
4. 实验四:温湿度监控系统(1)实验目的:学习单片机在温湿度监控系统中的应用,实现温度和湿度的实时显示。
(2)实验步骤:① 硬件连接:将温度传感器和湿度传感器连接到单片机,将LED灯连接到P1口;② 编写程序:实现温度和湿度的实时采集,并根据采集到的数据控制LED灯的亮灭;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察LED灯的亮灭状态和数码管上的温度、湿度值。
单片机实验报告

单片机实验报告一、实验目的本次单片机实验的主要目的是通过实际操作和编程,深入了解单片机的工作原理和应用,掌握单片机系统的设计、开发和调试方法,提高自身的动手能力和解决问题的能力。
二、实验设备1、单片机开发板2、计算机3、编程软件(如 Keil)4、下载器5、示波器6、万用表三、实验内容1、点亮 LED 灯通过编写简单的程序,控制单片机的引脚输出高低电平,从而点亮或熄灭连接在该引脚上的 LED 灯。
这是单片机最基础的操作之一,旨在熟悉单片机的编程环境和引脚控制方式。
2、数码管显示利用单片机驱动数码管,实现数字的显示。
需要了解数码管的工作原理和驱动方式,通过编程控制数码管的段选和位选信号,显示不同的数字。
3、按键输入设计按键电路,通过读取按键的状态,实现对单片机系统的输入控制。
例如,通过按键切换不同的显示模式或控制其他外部设备。
4、定时器/计数器应用使用单片机的定时器/计数器功能,实现定时、计数等操作。
例如,设计一个定时闪烁的 LED 灯,或者通过计数器统计外部脉冲的个数。
5、串口通信实现单片机与计算机之间的串口通信,将单片机采集到的数据发送到计算机上进行显示和处理,或者接收计算机发送的指令对单片机系统进行控制。
四、实验原理1、单片机的基本结构单片机通常由中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入输出接口(I/O 口)、定时器/计数器、中断系统等部分组成。
2、编程语言本次实验采用 C 语言进行编程。
C 语言具有简洁、高效、可移植性强等优点,非常适合单片机的开发。
3、引脚功能单片机的引脚分为电源引脚、时钟引脚、复位引脚、I/O 引脚等。
通过对这些引脚的合理配置和控制,可以实现各种功能。
4、数码管驱动原理数码管分为共阴极和共阳极两种类型。
通过控制数码管的段选和位选信号,可以使数码管显示不同的数字和字符。
5、按键检测原理按键通常采用上拉电阻或下拉电阻的方式连接到单片机的I/O 引脚。
单片机实验报告(相当不错,有具体实验结果分析哦)

学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。
二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。
以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。
因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。
2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。
用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。
六、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。
单片机实验报告

单片机实验报告1. 实验背景单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、内存、计时器、I/O接口等功能的集成电路芯片。
它具有体积小巧、功耗低、性能高等优点,在嵌入式系统中应用广泛。
本实验旨在通过对单片机的实际操作,加深对单片机原理及应用的理解。
2. 实验目的本次实验的主要目的是:- 掌握单片机的基础知识,包括单片机的结构、工作原理等;- 学习单片机的编程方法,初步掌握单片机的编程技巧;- 进行简单的单片机应用实验,提高对实际应用的理解。
3. 实验设备与材料实验所需的设备和材料包括:- 单片机开发板;- 计算机;- 连接线等。
4. 实验过程与结果在本实验中,我们使用XXX型单片机开发板作为实验平台,通过连接计算机进行编程。
具体的实验过程如下:4.1 硬件连接将单片机开发板与计算机通过连接线连接,并确保连接正常。
接下来,将我们设计好的电路按照要求连接到开发板的相应引脚上。
4.2 编程使用XXX软件对单片机进行编程。
根据实验要求,编写相应的程序代码,并将代码下载到单片机开发板中。
验证代码是否编译通过,并将运行结果显示在数码管、液晶显示屏等外设上。
4.3 实验结果实验结果根据不同的实验要求而定,可以是对某个外设的控制、信号的采集、数据的处理等。
在实验过程中需记录实验结果,并进行分析。
5. 实验总结通过本次实验,我对单片机的基本原理及应用有了更深入的了解。
掌握了单片机的硬件连接方法和编程技巧,并成功完成了实验要求。
实验结果表明,单片机在各个领域都有广泛的应用前景,对于嵌入式系统的开发起着重要作用。
当然,本次实验只是单片机应用的初步探索,还有很多更深入的研究和应用值得去探索。
在今后的学习与实践中,我将进一步深化对单片机的理解,并将其灵活应用于各种项目中。
6. 参考文献[参考文献1][参考文献2][参考文献3](文章内容仅供参考,具体实验过程和结果以实际情况为准。
)。
单片机实验报告

一、实验目的1. 熟悉单片机的硬件组成和基本工作原理。
2. 掌握单片机最小系统的搭建方法。
3. 学习使用单片机编程软件进行程序编写和调试。
4. 通过实际操作,加深对单片机应用的理解。
二、实验环境1. 实验设备:MCS-51单片机实验板、电源模块、面包板、连接线、LED灯、蜂鸣器、按键等。
2. 软件环境:Keil uVision5、Proteus仿真软件。
三、实验内容1. 点亮LED灯(1)实验目的:掌握单片机I/O口的使用,实现LED灯的点亮。
(2)实验步骤:① 将LED灯的阳极连接到单片机的P1.0口,阴极连接到GND。
② 在Keil uVision5中新建工程,编写程序如下:```cvoid main() {while (1) {P1 = 0xFF; // 点亮LED灯delay(500000); // 延时P1 = 0x00; // 熄灭LED灯delay(500000); // 延时}}③ 将程序编译并下载到单片机中,观察LED灯的点亮效果。
2. 蜂鸣器控制(1)实验目的:掌握单片机I/O口的使用,实现蜂鸣器的控制。
(2)实验步骤:① 将蜂鸣器的正极连接到单片机的P1.1口,负极连接到GND。
② 在Keil uVision5中编写程序如下:```cvoid main() {while (1) {P1 = 0x02; // 使能蜂鸣器delay(100000); // 延时P1 = 0x00; // 禁止蜂鸣器delay(100000); // 延时}}```③ 将程序编译并下载到单片机中,观察蜂鸣器的鸣叫效果。
3. 按键扫描(1)实验目的:掌握单片机I/O口的使用,实现按键的扫描和识别。
(2)实验步骤:① 将两个按键分别连接到单片机的P1.2和P1.3口。
② 在Keil uVision5中编写程序如下:void main() {while (1) {if (P1 & 0x04) { // 检测按键1是否按下// 执行按键1按下后的操作}if (P1 & 0x08) { // 检测按键2是否按下// 执行按键2按下后的操作}}}```③ 将程序编译并下载到单片机中,观察按键的扫描和识别效果。
利用单片机取得随机数

河北工业大学计算机硬件技术基础(MCS-51单片机原理及应用)课程设计报告学院土木班级交通工程C021班设计人田立全学号 026885一、设计题目:利用单片机取得随机数二、问题的提出:利用单片机的中断和定时器/计数器相结合产生一个6位的二进制随机数(即产生一个0-63之间的一个随机数)。
每当按下按钮之后,在LED显示器上显示这个二进制的随机数。
三、总体设计:1.所设计题目的功能:可以利用定时器/计数器进行自动重装载的计数,当触发中断的时候读出定时器/计数器的计数值作为产生的随机数。
整个程序分为两个部分,主程序部分负责定时器/计数器的初始化、中断系统初始化和LED显示三部分功能。
外部中断处理部分的程序负责取定时器/计数器中的随机数,然后取该数的低六位,然后将这个数转化为六个字节的二进制数(例如:将25h转变为:01h,00h,01h,00h,00h,01h)。
然后利用LED显示器显示这6个字节的数据。
2.总体方案设计:(1)断源的选择因为定时器/计数器只是在外部中断被触发的时候负责提供数据,所以虽然我们用到了定时器/计数器,但是它并不是一个中断源,即本系统的中断源只有一个外部中断。
(2)二进制转换的实现进制转换可以利用除二取余法。
四、 硬件系统设计 硬件电路:五、软件系统设计 1. 程序清单ORG 0000HAJMP MAIN;INT0 ENTERENCEORG 0003H AJMP INTER0ORG 0200HMAIN: MOV SP, #6FH;SET TIMMERMOV TMOD, #20HMOV TH1, #00HMOV TL1, #00HSETB TR1;ENABLE INTERRUPTSETB EX0SETB PX0SETB IT0SETB EAAJMP DSPLY;DISPLAY AND W AIT FOR INTERRUPTORG 0300HDSPL Y: MOV A, #03HMOV DPTR, #0FF20HMOVX @DPTR, ADSPL Y1: MOV R3, #01HMOV R0, #30H ;RESULT ENTRANCEMOV A, R3LD0: MOV DPTR, #0FF21HMOVX @DPTR, AMOV A, @R0MOV DPTR, #DTABMOVC A, @A+DPTRMOV DPTR, #0FF22HMOVX @DPTR, AACALL DELAYINC R0MOV A, R3JB ACC.5, LD1RL AMOV R3, AAJMP LD0LD1: SJMP DSPLY;DELAY FOR 1MSDELAY: MOV R7,#02HDL1: MOV R6,#0FFHDL2: DJNZ R6, DL2DJNZ R7, DL1RETORG 0400HINTER0: MOV A, TL1 ;READ COUNTERANL A, #00111111B;REQUIRE LAST 6 BITS AND 00111111BMOV R1, #30H;RESULT MEM ADDRESS STARTMOV R0, #06H ;LOOP FOR 6 TIMES ;CLEAR MEMMOV 0030H,#00HMOV 0031H,#00HMOV 0032H,#00HMOV 0033H,#00HMOV 0034H,#00HMOV 0035H,#00H;DIV LOOPLOOPED1: MOV B, #02HDIV ABMOV @R1, BINC R1DJNZ R0, LOOPED1RETIDTAB: DB 0C0H, 0F9HEND2.流程图。
单片机课程设计实验报告

单片机课程设计实验报告单片机课程设计实验报告引言单片机是嵌入式系统中常见的一种计算机芯片,具有体积小、功耗低、成本低等优势。
本次实验旨在通过单片机的应用设计,加深对单片机原理和应用的理解,并提升解决问题的能力。
实验目的本次实验的目的是设计一个简单的温度监测系统,通过单片机采集温度传感器的数据,并将数据显示在液晶显示屏上。
通过这个实验,我们可以掌握单片机的基本编程和电路连接方法,同时加深对温度传感器的原理和应用的理解。
实验原理1. 单片机基本原理单片机是一种集成电路,内部包含了CPU、内存、输入输出端口等功能模块。
通过编程,可以控制这些功能模块的工作,实现各种应用。
2. 温度传感器原理温度传感器是一种能够感知环境温度变化的器件,常见的有热敏电阻、热电偶等。
本次实验使用的是热敏电阻,其电阻值随温度的变化而变化。
实验材料1. 单片机开发板2. 温度传感器3. 液晶显示屏4. 连接线等实验步骤1. 连接电路将单片机开发板与温度传感器、液晶显示屏连接起来,确保电路连接正确无误。
2. 编写程序使用C语言编写单片机的程序,实现温度传感器数据的采集和液晶显示屏的显示。
程序的基本思路是通过单片机的模拟输入端口读取温度传感器的电阻值,然后将电阻值转换为温度值,并将温度值显示在液晶显示屏上。
3. 烧录程序将编写好的程序烧录到单片机开发板上,确保程序能够正常运行。
4. 实验测试将温度传感器放置在不同的环境中,观察液晶显示屏上的温度数值是否能够准确显示,并记录实验结果。
实验结果与分析经过实验测试,我们发现温度传感器能够准确地采集环境温度,并将温度数值显示在液晶显示屏上。
通过对比实际温度和显示温度的差异,我们可以评估温度传感器的准确性和精度。
实验总结通过本次实验,我们深入了解了单片机的基本原理和应用,掌握了单片机的编程方法和电路连接方法。
同时,我们也加深了对温度传感器的原理和应用的理解。
这些知识和技能对于今后的学习和工作都具有重要意义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011、12、02单片机实验报告书(软件部分)姓名:学号:班级:指导老师:目录1 熟悉键盘操作及数传指令编程设计 (1)2 数传指令程序设计 (6)3算数运算指令编程设计 (10)4逻辑运算及位操作指令编程设计 (17)5代码转换 (23)6移位操作 (30)7分支 (31)8循环程序设计 (32)9查表程序设计 (49)10散转程序设计 (52)11子程序设计 (60)实验一熟悉键盘操作及数传指令编程设计一、实验内容印证数据传送指令的功能、寻址方式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。
1.内部RAM数据传1)2) 直接寻址,需查看30H、31H、32H、40H、ACC、PSW等单元的内容。
步数30H 31H 32H 40H ACC PSW PC原值变值原值变值原值变值原值变值原值变值原值变值原值变值ORG 0100H 0000X00X0MOV 30H,#45H 0000X00X00 ·MOV 31H,#46H 045000X00X00000103MOV 02H,31H 4546000X00X00 `0106MOV 0E0H,30H 4546000X00X001060109MOV 32H,ACC 4546000X00X450X00X010109010CMOV ACC,PSW 454645000X450X01010C010FMOV 40H,ACC 454645 00X450X450X01010F0112SJMP $ 4546450X450X450X0101120115END3)寄存器间接寻址,需查看@R0、RO等的内容@RO RO PC原值变值原值变值原值变值ORG 0200H 00 0X00MOV 30H,#66H 00 66 0X00MOV R0,#30H 66 0X00 0200 0203 MOV @R0,#30H 66 30 0X00 0X30 0203 0205SJMP $30 0X30 0205 0207END 30 0X302.外部数据传送需要查看的数据有外部数据存储器单元2000H,外部程序存储器单元2001H。
步数外部数据存储器单元2000H外部程序存储器单元2001HPC原值变值原值变值原值变值ORG 0000H 44 00MOV A,#89H 44 00MOV DPTR,#2000H44 00 0002MOVX @DPTR,A44 00 0005INC DPTR 44 00 89 0006 CLR A 44 89 0007 MOVCA,@A+DPTR 44 89 0008 SJMP $44 89 0009ORG 2000HDB 44HDB 78HDB 67HEND3.堆栈操作需要查看的数据有50H、51H、A及SP指针和堆栈区中数据随PUSH和POP指令执行后的变化情况和数据的存放次序等。
1)可用于保护现场和恢复现场的程序50H 51H A SP PC原值变值原值变值原值变值原值变值原值变值ORG 0000H 00 00 0X00 0X07MOV SP,#5FH00 00 0X00 0X07 0X5fMOV 50H,#3BH00 3B 00 0X00 0X5f 0003 MOV 51H,#2FH3B 00 2F 0X00 0X5f 0006 MOV A,#12H 3B 2F 0X00 0X12 0X5f 0009 PUSH 50H3B 2F 0X12 0X5f 0X60 000B PUSH 51H3B 2F 0X12 0X60 0X61 000D PUSH ACC3B 2F 0X12 0X61 0X62 000F POP 0E0H 3B 2F 0X12 0X62 0X61 0011 POP 51H 3B 2F 0X12 0X61 0X60 0013 POP 50H 3B 2F 5 0X60 0X5f 0015 SJMP $ 0017 END第三步:81H 00变为5F第四步:50H 00变为3B第五步:51H 00变为2F第六步:E0H 00变为12第七步:81H 00变为60第八步:61H 00变为2F 81H 00变为61 第九步:62H 00变为12 81H 61变为62 第十步:81H 62变为61第11步: 81H 61变为60第12步: 81H 60变为5f2)可用于数据交换的程序原值变值原值变值原值变值原值变值原值变值ORG 0100H 00 00 0X00 0X07MOV SP,#6FH00 00 0X00 0X07MOV 50H,#3BH00 00 0X00 0X07 0X6f 0100 0103 MOV 51H,#2FH00 3B 00 0X00 0X6f 0103 0106PUSH 50H3B 00 2F 0X00 0X6f 0106 0109 PUSH 51H3B 2F 0X00 0X6f 0109 010B POP 50H3B 2F 0X00 0X6f 0X70 010B 010D POP 51H3B 2F 2F 0X00 0X70 0X71 010D 010F SJMP $2F 2F 3B 0X00 0X71 0X70 010F 0111 END 2F 3B 0X00 0X70 0X6f第三步: 81H 00变为6F第四步: 50H 00变为3B第五步: 51H 00变为2F第六步: 70H FF变为3B 81H变为70第七步: 71H 00变为2F 81H变为71第八步: 50H 3B变为2F 81H变为70第九步: 81H 70变为6F4.数据交换记录每条指令运行后的结果,从而加深对各种不同的交换指令的理解。
1)SWAP指令A 40H PC步数原值变值原值变值原值变值ORG 0000HMOV A,#58H0x00 0x58SWAP A0x58 0x85 0000 0002MOV 40H,A00 85 0002 0003SJMP $ 0003 005END2)XCHD 指令A R0 30H PC 41H步数原值变值原值变值原值变值原值变值原值变值ORG 0030HMOV A,#30H0x00 0x30MOV R0,#30H0x00 0x30 0000 0032MOV @R0,#09H 0X00 0X09 0032 0034 0 9 XCHD A,@R00x30 0x39 0X09 0X00 0034 0036MOV 41H,A 0036 0037 0X00 0X39 SJMP $ 0037 0039ENDXCH 指令50H A R7 R0 PC原值变值原值变值原值变值原值变值原值变值ORG 0100HMOV 50H,#1 00 01MOV A,#89H 00 89 0100 0103 XCH A,50H 01 89 89 01 0103 0105MOV R7,#3 00 03 0105 0107 XCH A,R7 01 03 0107 0109 XCH A,@R0 03 00 00 03 0109 010A SJMP $ 010A 0103END五、思考题1、寄存器寻址与寄存器间接寻址有什么区别?寄存器寻址是将指令指定的寄存器作为操作数地址,寄存器间接寻址是将指令指定的寄存器内容作为操作数地址。
2、PC指针与SP指针有什么区别?答:PC指针是16位的存储器,指向即将执行命令的栈顶。
SP指针是8位的存储器。
指栈顶。
3、DPTR指针与Ri(R0,R1)指针有什么区别?Ri(R0,R1)指针可寻址片内RAM低128B,用DPTR可寻址片外数据存储器的64KB4、立即寻址与直接寻址有什么区别?直接寻址指令中直接给出操作数所在的单元地址或位地址,立即寻址中操作数直接由指令给出。
5、同一个特殊功能寄存器不同表达形式。
如累加器A 可表示为 A ACC 或者OEOH6、三种不同的交换指令的区别是什么?XCH是字节间的整字节交换,XCHD是字节间的低字节交换指令,SWAP是累加器高低半字节交换。
实验二数传指令程序设计实验内容1、把内部RAM 40H~4FH置初值0A0H~0AFH;2、而后把40H~4FH内容传送到外部RAM 9800H~980FH中;3、再把 9800H~980FH内容传送到 50H~5FH中。
RO R2 A 4iH DPTR 980iH pc步数原值变化值原值变化值原值变化值原值变化值原值变化值原值变化值原值变化值ORG 0000HMAIN: MOV R0,#40H 04MOV R2,#10H 0100000002MOV A,#0A0H 0a00020004A1: MOV @R0, A 00(40)A00040006INC R0 44100060007INC A aa100070008DJNZ R2, A1 00080009 0a9A1: MOV @R0, A 00(46)A700090006INC R04400007 8 06 07INC A a7a800070008DJNZ R2, A1 00080009 021A1: MOV @R0, A 00(4E)AF00090006INC R0 4f500060007INC A afb00070008DJNZ R2, A1 0100080009MOV R0, #40H 540009000BMOV DPTR, #9800H 00OO98000B000DMOV R2, #10H 01000D0010A2: MOV A, @R0 ba00100012MOVX @DPTR, A 00(9800H)A00120013INC R0 44100130014INC DPTR 980098100140015DJNZ R2, A2 00150016 0a9A2: MOV A, @R0 a6a700160012MOVX @DPTR, A 00(9807H)A700120013INC R0 474800130014INC DPTR 980198800140015DJNZ R2, A2 00150016 021A2: MOV A, @R0 aeaf00160012MOVX @DPTR, A 00(980fH)AF00120013INC R0 4f500130014INC DPTR 980f98100140015DJNZ R2, A2 0100150016MOV R0, #50H 00160018MOV DPTR, #9800H MOVR2,#10H98198000018001A 01A3: MOVX A,@DPTR afa001D001FMOV @R0, A 001F0020INC DPTR 980098100200021INC R0 55100210022DJNZ R2, A3 0000 0baA3: MOVX A,@DPTR a5a60023001FMOV @R0, A 001F0020INC DPTR 980198700200021INC R0 565700210022DJNZ R2, A3 00220023 032A3: MOVX A,@DPTR ad0023001FMOV @R0, A ae001F0020INC DPTR 00200021INC R0 980e98f00210022DJNZ R2, A3 00220023 (5)e5fA3: MOVX A,@DPTR 0210023001FMOV @R0, A aeaf001F0020INC DPTR 980e98100200021INC R0 5f600210022DJNZ R2, A3 00220023SJMP $ 0000END五、思考题1)若两个数据块都在外部数据存储器中,如何实现数据块的传送?答:选择PC或DPTR指针,用MOVX通过A储存器进行交换。