单片机 数据块传送 软件实验1
数据快传送实验报告
一、实验目的1. 理解数据传送的基本原理和常用方法。
2. 掌握数据块传送指令的功能和使用方法。
3. 熟悉汇编语言编程,实现数据快速传送。
二、实验原理数据传送是计算机组成原理中的一项基本操作,主要涉及内存与寄存器、寄存器与寄存器之间的数据交换。
数据传送指令包括传送指令、数据块传送指令等。
数据块传送指令能够实现内存与寄存器、寄存器与寄存器之间的一组数据的快速传送。
三、实验设备1. 实验箱2. 电脑3. 汇编语言编程软件(如:MASM、TASM等)四、实验内容1. 编写汇编语言程序,实现数据块传送。
2. 通过程序观察数据传送的结果,分析数据传送指令的执行过程。
五、实验步骤1. 设计实验程序,实现数据块传送。
2. 编译实验程序,生成可执行文件。
3. 在实验箱上运行实验程序,观察数据传送结果。
4. 分析实验结果,验证数据传送指令的正确性。
六、实验程序以下为实验程序示例:```assembly; 数据块传送实验程序DATA SEGMENT; 定义源数据段source DB 1,2,3,4,5,6,7,8DATA ENDSCODE SEGMENTSTART:; 初始化数据段寄存器MOV AX, DATAMOV DS, AX; 初始化数据块传送指令参数MOV CX, 8 ; 传送字节数MOV SI, OFFSET source ; 源数据段偏移地址 MOV DI, OFFSET dest ; 目标数据段偏移地址 ; 执行数据块传送指令CLDMOVSB; 传送结果分析; ...; 程序结束MOV AX, 4C00HINT 21HCODE ENDSEND START```七、实验结果与分析1. 在实验箱上运行实验程序,观察数据传送结果。
2. 分析实验结果,验证数据传送指令的正确性。
3. 比较不同数据传送指令的执行时间,分析数据块传送指令的效率。
八、实验总结通过本次实验,我们了解了数据传送的基本原理和常用方法,掌握了数据块传送指令的功能和使用方法。
单片机实验一片内外清零、数据块的传送【精选】
片内从50H 开始的连续30个地址内容清零:
,以、谈信温入党志组中心组形式,每月底组织一次党向”、“坚持根本集中学习讨论不得”要求,开展党组讲党课,邀请党校系列 讲话,做合,做合格党员”学“学党章党规、学发〈关于在全市党6〕28号),结合”学习教育,基础面贯彻落实党的严三实”专创先争一
片内20H 开始的连续30个地址内容为0FEH :
片外7000H-70FFH 单元内容清零:
》的马克情怀路、“五位一体面的深刻内涵和要展科学发展、和谐新求,坚持以知促讲道德、有品行,讲奉献、有作把理想信念时时处体现为行动的力方针政策看齐,认真贯彻省委、市委党员永远是劳动人民的普通一员,密畏、手握戒尺,廉洁从政、从严治家防变的防线;始终持干事创业、开拓在X X 事业“十三五”规划开局起步、功立业。
全体党员要坚持学做结合党员意识,强化党的宗旨意识,积极级以上党员领导干部要学做结合“三严三实”要求和好干部标实五大发展理念,带头攻重温两对照”主题织党员重温入党书记作学习展“三交流。
单片机实验一片内外清零、数据块的传送
单片机实验报告专业:电子信息工程班级:姓名:学号:指导教师:单片机实验报告实验项目名称:片内外清零、置位和数据块传送程序实验日期: 2010-10-27 实验成绩:实验评定标准:1)实验内容否完整A()B()C()2)实验结果分析是否正确A()B()C()3)实验报告是否按照规定格式A()B()C()一、实验目的1、掌握汇编语言中对芯片内外存储器的清零,置位。
2、掌握8031 内部RAM 和外部RAM 之间的数据传送方法;掌握这两部分RAM 存贮器的特点与应用,掌握各种数据传送方法。
二、实验内容及要求1、将片内从50H开始的连续30个地址内容清零;将片外7000H_79FFH单元内容清零;将片内从20H开始的连续30个地址内容设置为0FEH。
2、试编写将外部的数据存贮区6030~607FH 的内容写入外部RAM 3030~307H 中。
三、实验步骤1、片内外清零、置位打开Keil程序,执行菜单命令“Project”→“New Project ”创建“片内外清零置位”项目,并选择单片机型号为AT89C51。
执行菜单命令“File”→“New ”创建文件,输入源程序,保存为“片内外清零置位.A51”。
在“Project”栏的File项目管理窗口中右击文件组,选择“Add Files to Group ‘Source Group1’”将源程序“片内外清零置位.A51”添加到项目中。
执行菜单命令“Project”→Options for Target ‘Target 1’”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。
执行菜单命令“Project”→“Build Target 1”,编译源程序。
如果编译成功,则在“Outp ut Window”窗口中显示没有错误,并创建了,“片内外清零置位. HEX”文件。
执行菜单命令“Debug”→“Start/Stop Debug Seesion”,按键F11键,单步运行程序。
单片机数据传送实验报告
竭诚为您提供优质文档/双击可除单片机数据传送实验报告篇一:单片机数据传送实验报告实验名称:数据传送实验实验类型:设计性实验姓名:袁志生时间:04.17第五六节课一、实验目的与要求实验目的:1、掌握单片机的汇编指令系统及汇编语言程序设计方法。
2、掌握单片机的存储器体系结构。
3、熟悉keil软件的功能和使用方法。
4、掌握单片机应用程序的调试方法。
实验要求:1、实现单片机内部RAm之间,外部RAm之间以及内部RAm与外部RAm之间的数据传送。
2、利用Keil软件编辑、汇编、调试、运行实验程序并记录实验数据。
二、设计要求1、编写程序将00h~0Fh16个数据分别送到单片机内部RAm30h~3Fh单元中。
2、编写程序将片内RAm30h~3Fh的内容传送至片内RAm40~4Fh单元中。
3、编写程序将片内RAm40h~4Fh单元中的内容传送到外部RAm4800h~480Fh单元中。
4、编写程序将片外4800h~480Fh单元内容送到外部RAm5800h~580Fh单元中。
5、编写程序将片外RAm5800h~580Fh单元内容传送回片内RAm50h~5Fh单元中。
三、实验程序流程框图和程序清单.程序清单:oRg0000hsTART:moVR0,#30hmoVDpTR,#Qw1moVR5,#0Loop:Qw1:Qw2:Loop1:Loop2:Loop3:R7,#16A,R5A,@A+DpTR@R0,AR0IncR5R7,LoopQw200h,01h,02 h,03h,04h,05h,06h,07h08h,09h,0Ah,0bh,0ch,0Dh,0eh,0F hR0,#30hR1,#40hmoVR5,#16A,@R0@R1,AR0R1R5,Loop1R1,#4 0hmoVDpTR,#4800hR5,#16A,@R1@DpTR,AR1DpTRR5,Loop2moV sp,#60h11h,#48h10h,#58hR2,#00hDpL,R210h11hDphmoVxA, @DpTRmoVmoVmoVcmoVIncDJnZLJmpDbDbmoVmoVmoVmoVIncInc DJnZmoVmoVmoVmoVxIncIncDJnZmoVmoVmoVmoVpushpushpop popmoVxInccJnemoVmoVmoVLoop4:moVxmoVIncIncDJnZenD四,实验小结Dph@DpTR,AR2R2,#10h,Loop3R1,#50hDpTR,#5800hR5,#16A, @DpTR@R1,AR1DpTRR5,Loop41通过本次实验熟悉了keil软件的功能和使用方法.2掌握单片机的数据传送类和循环类汇编指令系统,学会了各种数据传送形式的程序设计方法.3掌握了单片机的调试方法。
单片机实验
实验一数据传送指令的使用及编程方法1.片内RAM的数据传送【实验程序】源程序单元内容ORG 0000HLJMP MAINORG 0030HMAIN:MOV R0,#40H R0MOV R1,#41H R1MOV A,R0 AMOV 30H,A 30HMOV 20H,30H 20HMOV A,#30H AMOV @R0,A 40HMOV A,30H AMOV R7, A R7MOV A,@R0 AMOV R7,A R7MOV DPTR,#0A702H DPTRMOV 30H,R7 30HMOV 20H,@R0 20HMOV 21H,#10H 21HMOV @R0,21H 10HMOV @R1,#01H 41HSJMP $END【实验要求】(1)理解源程序中每条数据传送指令的操作含义,将结果填入每个单元的相应“内容”中。
(2)单步运行源程序,逐条检查“内容”是否正确。
2.外部RAM的数据传送。
【实验程序】源程序单元内容ORG 0000HLJMP MAINORG 0030HMAIN:MOV DPTR,#1A33H DPTRMOV A,#80H AMOVX @DPTR,A 1A33HMOV A,#00H AMOV P2,#1AH P2MOV R0,#34H R0MOV R1,#35H R1MOVX @R0,A 1A34HMOVX A,@DPTR AMOVX @R1,A 1A35HMOVX A,@R0 AMOVX A,@R1 ASJMP $END【实验要求】(1)理解源程序指令含义,指出各存储单元的内容,写在右边的“内容”中。
(2)单步运行源程序,逐条验证分析结果。
3.片内特殊功能寄存器(SFR)的数据传送【实验程序】源程序ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP,#60H ;设栈指针MOV R0,#30H ;#30H送R0(0区)MOV P1,#0EFH ;#EFH送P1口(直接地址为90H)MOV @R0,P1 ;将P1内容送R0所指单元MOV C,P1. 1 ;将P1口的D1位内容送CMOV P1. 7,C ;将CY的内容送P1. 7PUSH PSW ;保护0区寄存器MOV PSW,#08H ;选择1区寄存器MOV R0,#40H ;#40H送1区寄存器R0(08H)MOV @R0,P1 ;P1口内容送1区R0所指单元POP PSW ;恢复0区寄存器SJMP $END【实验要求】(1)理解源程序指令含义,并参照注释写出结果。
2013春单片机-实验4-数据块传输程序
suogr@教学群号:31696867教9楼C 区181号信箱西北师范大学计算机科学与工程学院单片机与接口软件实验4-数据块传输程序索国瑞2013春选课班s u o g r @f o x m a i l.c o mQ Q 群:31696867西北师大计算机学院单片机与接口2013年4月7日星期日2数据块传输程序⏹实验目的⏹实验设备⏹实验内容⏹实验步骤⏹实验记录⏹实验结果分析2013年4月7日星期日3西北师大计算机学院索国瑞:suogr @ 实验目的⏹练习汇编语言源程序的设计方法⏹了解手工汇编目标程序的方法⏹掌握Keil 软件的使用2013年4月7日星期日4西北师大计算机学院索国瑞:suogr @ 实验设备⏹装有Keil 软件的PC 机2013年4月7日星期日5西北师大计算机学院索国瑞:suogr @ 实验内容⏹编一程序,先将片内RAM 20H~2FH 的内容分别设置成立即数20H~2FH ,然后将20H~2FH 单元中的内容传送到片外RAM 的2520H~252FH 单元中,再将2520H~252FH 单元中的内容传回片内70H~7FH 单元中2013年4月7日星期日6西北师大计算机学院索国瑞:suogr @ 参考代码⏹0RG 2200H MOV R0,#20H MOV R7,#10H MOV A,R0LOOP1: MOV @R0,AINC R0INC ADJNZ R7,LOOP1MOV P2,#25H MOV R0,#20H MOV R6,#10H2013年4月7日星期日7西北师大计算机学院索国瑞:suogr @ LOOP2:MOV A,@R0MOVX @R0,A INC R0DJNZ R6,LOOP2MOV R1,#70HMOV DPTR,#2520H MOV R5,#10H LOOP3:MOVX A,@DPTR MOV @R1,A INC R1INC DPTRDJNZ R5,LOOP32013年4月7日星期日8西北师大计算机学院索国瑞:suogr @ WAIT4:SJMP WAIT4END2013年4月7日星期日9西北师大计算机学院索国瑞:suogr @ 实验步骤⏹启动Keil 软件⏹输入实验程序⏹检查已输入的程序,给20H~2FH 单元赋初值⏹设法使得CPU 启动后能转到2200H 单元⏹在220AH 、2216H 、2223H 处设置断点,再执行程序,在断点处检查运行结果,观察实验现象,记录各单元结果⏹将实验中20H~2FH 单元的内容改另外的一些数值,再重复上述过程2013年4月7日星期日10西北师大计算机学院索国瑞:suogr @ 实验记录⏹记录程序输入后与汇编指令对应的机器码⏹记录程序执行后各指定单元的值⏹记录程序执行过程中PC 、DPTR 、R0、R7、P2、R6、R5、R1、A 的变化规律2013年4月7日星期日11西北师大计算机学院索国瑞:suogr @ 实验结果分析⏹分析各指定单元的结果变化特点⏹分析LOOP1、LOOP2、LOOP3标号的地址值⏹分析各相关寄存器的作用⏹分析程序各指令作用,加注释⏹分析整个程序的结果特点,绘制出程序流程图。
单片机及其接口技术实验报告
单片机及接口技术实验报告实验一数据传送程序一、实验目的1、掌握汇编语言设计和调试方法。
2、掌握DVCC实验系统的操作步骤。
二、实验内容1、编程实现,把7000H~70FFH单元的内容清零。
2、编程实现,把源地址为6000H开始的单元内容,传送到目的地址7000H开始的单元中,传送个数为0FFFH个。
三、DVCC实验系统操作说明1、接通DVCC实验系统电源,在DVCC实验箱上应显示闪动的“P”,否则按Reset键。
2、运行DVCC软件。
(程序DVCC598H实验系统DVCC实验系统)3、单击工具栏上“新建”或“打开”按钮,编写源程序。
单击“编译”按钮,使其形成可执行文件。
4、单击工具栏上“联接”按钮,同时按下DVCC实验箱上PCDBG键(键盘上最右边第2个),实现PC机和实验箱的联接。
联机成功,屏幕上出现:.反汇编窗口、寄存器标示位窗口。
5、在成功联机后,单击工具栏上“调试”按钮,把最终目标文件装载到实验系统RAM区;或者通过单击菜单栏中的“动态调试”,选择“传送(.EXE)文件”来实现。
6、单击工具栏上“运行”或“单步”按钮,运行实验程序。
7、单击工具栏上“窗口”,选择“显示内部数据窗口”或“显示外部数据窗口”可显示数据窗口。
鼠标右击数据窗口的数据,可设置数据块新地址;鼠标左键单击数据,可修改数据数值。
8、运行完毕,先按实验箱上的复位按钮Reset键,再按PCDBG键,并且点击屏幕上OK,即可退出运行状态。
四、实验程序代码1、把7000H~70FFH单元的内容清零。
程序代码:ORG 0000HAJMP STARTORG 70HSTART: MOV P2, #70H ;送地址高8位到P2端口MOV R0, #00H ;R0=00H,表地址低8位CLR A ;将累加器A清0LOOP: MOVX @R0, A ;将A送入以R0内容为地址的外部RAM.INC R0 ;R0+1-->R0CJNE R0,#00H,LOOP;比较条件转移指令,若R0不等于0,则跳转到LOOPAJMP $ ;暂停END2、编程实现,将源地址为6000H开始的单元,传送到目的地址7000H开始的单元,传送个数为0FFFH个。
单片机实验——精选推荐
实验一认识实验一.实验目的1.了解仿真器的硬件结构与接线。
2.了解MCS-51单片机复位功能及复位后的内部状态。
3.通过示例程序的键入与执行,学习仿真器的使用与操作方法。
二.实验内容1.对照实验指导书,查对实验机具体接线。
2.按照开发系统的使用方法,分别查看复位后PC、SP、DPTR等特殊功能寄存器及片内、片外RAM的内容。
3.熟悉开发器的使用,将下面程序键入实验机。
ORG 2000H2000 74AA MOV A,#0AAH2002 75F0BB MOV B,#0BBH2005 E5F0 MOV A,B2007 78CC MOV R0,#0CCH2009 E8 MOV A,R0200A 80FE SJMP $4.程序键入后,检查各存储单元所储机器码是否正确如有误,重新键入,达到修正的目的。
5.单步执行示例程序,逐步检查执行结果,核查与分析结果是否相符,直到执行完最后一条指令。
6.练习连续执行示例程序,检查执行结果,核查与分析结果是否相符。
7.自己在示例程序中插入一条指令,执行并查看结果,然后删除,熟悉插入/删除操作。
8.将示例程序移到另外一个存储区,执行并查看结果,熟悉程序块移动操作。
三.实验预习要求1.认真阅读指导书的相关内容,熟悉开发系统的各种操作。
2.实验前应写出规定操作任务的具体操作方法步骤。
四.思考题1.MCS-51单片机怎样实现内部复位,画出一种复位电路。
2.PC、SP、P0、P1、P2、P3复位状态是什么?各有何意义?3.示例程序中最后一条指令SJMP $的作用是什么?如果取掉这一条指令,程序的执行将发生什么变化?4.实验机监控系统怎样实现程序“单步执行”功能?五.实验报告要求1.按实验顺序,写出实验操作的方法步骤。
2.写出实验中所遇到的问题与解决过程。
写出思考题的答案。
实验二建立数据区、数据块传送一.实验目的1.进一步熟悉实验机操作,练习程序调试方法。
2.理解并掌握建立数据区与数据块传送程序。
单片机 数据块传送 软件实验1
实验2:数据块传送程序:1.数据块传送程序 :ORG 0000HMAIN: MOV R0,#40HMOV R2,#10HMOV A,#0A0HA1: MOV @R0, AINC R0INC ADJNZ R2, A1注:此时R2=10h,通过djnz之后,r2=09h≠0,则跳转到A1段开始重复A1段中之前的语句。
R0从40h依次增加至4fh,R2则依次从10h 减少至01h,此时,在运行至djnz之后r0=00h,然后顺序执行语句。
从而完成了给40h~4fh赋值的目的。
MOV R0, #40HMOV DPTR, #9800HMOV R2, #10H注:此处重新给r0 ,dptr,r2.赋初值A2: MOV A, @R0MOVX @DPTR, AINC R0INC DPTRDJNZ R2, A2MOV R0, #50HMOV DPTR, #9800HMOV R2, #10HA2: MOV A, @R0 注:(40h)=a0hMOVX @DPTR, AINC R0INC DPTRDJNZ R2, A2注:此时r2=10h,经过djnz语句之后,r2=0fh≠0h,则语句跳转至A2处,依次执行之后,r2最后变为00h然后顺序执行。
此时,实现数据由片内传至片外的目的MOV R0, #50HMOV DPTR, #9800HMOV R2, #10HA3: MOVX A, @DPTRMOV @R0, AINC DPTRINC R0DJNZ R2, A3注:此时r2=10h,经过djnz语句之后,r2=0fh≠0h,则语句跳转至A3处,依次执行之后,r2最后变为00h然后顺序执行。
此时,实现数据由片内外回传至片内的目的2.多字节十进制加法:注:赋初值(30h)=23h,(20h)=41h,(31h)=27h,(21h)=25h,(32h)=13h,(22h)=50,(23h)=12h,(33h)=24h,(24h)=40h,(34h)=37h ORG 0000HMAIN: MOV R0, #30HMOV R1, #20HMOV 2FH,#04HCLR CDA1: MOV A,@R0ADDC A, @R1 注:此时a=23h,(20h)=41h,经过addc之后,a=64hDA A 进行2进制到十进制调整MOV @R1, AINC R0INC R1DJNZ 2FH, DA1 注:(2fh)=04h,经过djnz指令之后,(2fh)=03h≠0,则程序跳转至da1,直到(2fh)=0h后,顺序执行MOV 7FH, C 从而实现分别将(3ih)与(2ih)(其中i=0~4)的和经过da调整后,存放到2i中SJMP $END一、思考题1.若两个数据块都在外部数据存储器中,如何实现数据块的传送?答:选择R0和DPTR两个指针,用MOVX命令经过A累加器进行数据块传输。
单片机实验报告
单片机与嵌入式系统实验报告一、软件模拟调试实验:本部分实验内容主要为指令系统和汇编语言程序设计。
采用软件模拟调试的方法,目的在于通过这些实验使学生巩固所学知识,加深对MCS-51单片机内部结构、指令系统的理解,更进一步掌握汇编语言程序设计的方法和技巧。
实验一数据传送实验实验目的1、熟悉软件模拟调试环境。
2、掌握汇编语言程序设计的方法,加深对指令的理解。
3、学会软件模拟调试和察看、验证结果方法。
4、印证数据传送指令的功能、寻址方式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。
实验步骤1、进入调试软件环境,输入源程序;2、汇编源程序;3、用单步方式运行程序;4、检查并记录各寄存器和存储单元内容的变化。
实验内容:将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。
将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
源程序清单:ORG 0000HRESET:AJMP MAINORG 003FHMAIN:MOV R0,#40HMOV R2,#10HMOV A,#0A0HA1:MOV @R0,AINC R0INC ADJNZ R2, A1MOV R1,#10HMOV R0, #50HMOV R2, #10HA3: MOV A, @R1MOV @R0, AINC R1INC R2DJNZ R2, A3SJMP $END实验结果与分析:1、按照实验内容补全程序。
2、对源程序进行编译并查看相应程序存储器的内容,将源程序对应的机器码记录入下表,掌握ORG伪指令及汇编的过程。
ORG的作用及相关注意事项:ORG表示之后的语句从哪里开始,有的单片机里面的固定区域是用来做堆栈或者是子程序跳转地址的入口。
PC表示:下一条要执行的指令PSW表示:程序状态字,其各位的含义为:cy进位标志位AC辅助进位标志位Ov溢出标志位p校验位SP表示:堆栈指针R0~R7的物理位置:0000H-0007H3、运行机器码,查看片内数据区、CPU内寄存器的变化情况,按要求将结果记录入下表。
单片机 数据块传送 软件实验1
单片机数据块传送软件实验1实验目的:实验原理:数据块传送是指将一段连续的数据从一个位置传送到另一个位置的操作。
在单片机中,可以通过中断、DMA、软件等方式实现数据块传送。
本实验中使用软件实现数据块传送。
数据块传送一般需要两个指针,一个指向源地址,一个指向目的地址。
每次传送一个数据,源地址指针和目的地址指针都要加上一个数据的长度,直到传送数据结束。
软件实现数据块传送的步骤如下:1. 定义源地址和目的地址2. 定义数据长度5. 重复步骤4,直到传送数据结束实验器材:STM32单片机开发板实验程序:```c#include "stm32f10x.h"#define SRC_ADDRESS ((uint32_t)0x08000000) // 源地址#define DST_ADDRESS ((uint32_t)0x20002000) // 目的地址#define BLOCK_SIZE 128 // 数据块长度void TransferData(uint32_t srcAddr, uint32_t dstAddr, uint32_t size){uint32_t *srcPtr = (uint32_t *)srcAddr;uint32_t *dstPtr = (uint32_t *)dstAddr;for (int i = 0; i < size; i++){*dstPtr++ = *srcPtr++;}}实验说明:本实验中,定义源地址为0x08000000,目的地址为0x20002000,数据块长度为128字节。
使用指针将源地址和目的地址分别指向所定义的地址,循环传送数据块,每次传送一个数据,源地址和目的地址指针都加上一个数据的长度,直到传送数据结束。
实验结果:将实验程序下载到STM32单片机开发板中,按下复位键,观察LCD屏幕,发现数据块传送成功。
单片机软件实验1清零实验
单片机软件实验1-清零实验姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验1:清零实验➢实验目的:掌握汇编语言设计和调试方法。
➢实验内容:使用AT89C52单片机对单片机内部RAM进行清零操作,实验内容如下:1.把 90H-AFH的内容置为#55H;2.把90H-9FH的内容清零。
➢实验问答:1.清零之后,90H-9FH的内容是什么?A0H-AFH的内容是什么?答:90H-9FH内容:00H;A0H-AFH:#55H2.累加器A、堆栈指针SP的初始状态是什么?答:累加器A:00H,堆栈指针SP:07H。
➢实验程序:================================================ $NOMOD51$INCLUDE (80C52.MCU);======================= ======================== ; DEFINITIONS;======================= ========================;======================= ======================== ; VARIABLES;======================= ========================;======================= ======================== ; RESET and INTERRUPT Loop:jmp Loop;======================= ======================== ENDVECTORS;======================= ========================; Reset Vectororg 0000hjmp Start;======================= ======================== ; CODE SEGMENT;======================= ========================org 0100hStart:MOV R0,#90HMOV R3,#20HLOOP1:MOV @R0,#55HINC R0DJNZ R3,LOOP1MOV R2,#10HMOV R1,#90HCLR0:MOV @R1,#00HINC R1DJNZ R2,CLR0; Write your codehere** 单个实验报告内容限制在两页之内,采用双面打印,所有报告统一装订;表头内容需要手工签写。
单片机原理实验报告
单片机原理实验报告班级:姓名:学号:实验日期:成绩:实验一基本操作实验目的:熟悉伟福仿真机软件的基本操作,熟悉MCS-51指令。
实验内容A:数据传送程序实验程序:实验步骤:(1)从起始地址开始全速运行程序Ⅰ,检查运行结果, 外部数据窗口中7000H~700FH单元的内容皆为00H;(2)按要求修改程序如Ⅱ,用单步/跟踪运行程序, 查看寄存器和外部数据窗口;(3)在PLUS处设置断点,从起始地址开始全速运行程序,查看寄存器和外部数据窗口;(4)清除断点,用运行到当前行方式将程序运行到PLUS的下一条指令,查看运行结果是否正确。
实验内容B: 1 , 当X>0时求符号函数Y= 0 , 当X=0时-1 , 当X<0时实验程序:实验步骤:(1)准备好三个有代表性的数据,分三次用单步/跟踪方式运行程序,注意PC指针的变化;当(40H)= _____(X>0) 时,ACC.7= 0 , 运行后(41H)= _01H_____(Y= 1),当(40H)= _00H____(X=0) 时,ACC.7= 0 , 运行后(41H)= __00H____(Y= 0),当(40H)= _____(X<0) 时,ACC.7= 1 , 运行后(41H)= FFH (Y=﹣1)(2)思考:能否用“JC POSI ”指令替代“JB ACC.7, POSI ”指令, 修改运行程序,验证结果。
注意“CJNE A, #00H, NZEAR”执行后CY位为0/1 ?单片机原理实验报告班级:姓名:学号:实验日期:成绩:实验二输入/输出控制实验实验目的:掌握单片机I/O口输入输出的控制方法,学会编写数码管的显示程序。
实验内容A:P1 口做输出口,接8只发光二极管L1~L8(高电平时发光二极管点亮),编写程序,使L1~L8流水闪烁。
ORG 0000HSTART: MOV A,#01HMOV R2,#08HLOOP:MOV P1,ALCALL DELAYRL ADJNZ R2,LOOPAJMP STARTDELAY:MOV R5,#40 ;延时1秒D1:MOV R6,#50D2:MOV R7,#248D3:DJNZ R7,D3DJNZ R6,D2DJNZ R5,D1RETEND实验内容B:P1 口做输入口,接拨动开关K1~K8。
#MCS51实验指导(wave6000)
Lab6000通用微控制器实验系统简介0一.WAVE6000软件界面1二.主菜单的主要功能2第一次实验软件实验4软件实验一数据区清零、建立数据区与数据块传送4软件实验二二进制数转换为BCD数6软件实验三二进制数转换为ASCII码6【选做】实验验证第三章、第四章作业程序7第二次实验硬件实验7硬件实验一 P1口输入、输出实验7硬件实验十计数器实验8硬件实验十一外部中断实验9硬件实验十二定时器实验9硬件实验十六八段数码管显示实验10【选做】硬件实验十八电子时钟(实验十二、十六的结合>13Lab6000通用微控制器实验系统简介硬件实验平台的组成注意:如果是8086/8051二合一实验板,右上角的开关应该拨到“8051”2、电源线及电源开关1、连接通讯电缆【使用方法:】1、实验台右上角EX51B仿真器用于MCS51实验。
用串口通讯电缆将仿真器与计算机连接起来<注意:在仿真器与计算机连接串口电缆时,两台机器必须都关断电源。
否则易损坏计算机和仿真器)。
2、连接实验台220V电源,打开电源开关。
仿真器初始化成功后,LED显示8051。
3、打开计算机电源,运行wave6000集成调试软件。
软件开发环境WAVE6000使用方法一. W AVE6000软件界面二. 主菜单的主要功能1.文件(F>文件菜单中的大部分命令的使用同WINDOWS的其它软件类似命令使用相同。
这里新增了项目文件的新建、打开、保存、关闭。
其他仿真软件<如Keil,在“项目”主菜单下完成项目文件的新建、打开、保存、关闭)2.编辑(E>编辑菜单跟常用的WINDOWS其它软件使用方法相同。
3.搜索(S>它可以进行符号、字符串查找,转到程序的指定行、指定地址/标号和当前PC所在行,给调试程序增加了方便。
4.项目(P>在项目菜单中可以编译当前窗口的程序、编译项目中所有的模块和包含文件。
还可以直接装入在其它环境中编译好的调试信息,然后在伟福环境中调试。
实验一熟悉实验仿真环境及数据传送...
实验一熟悉实验仿真环境及数据传送实验【实验目的】1. 熟悉仿真软件的使用,掌握调试程序的几种方法;2. 理解常用指令的作用;3. 熟悉几种典型的子程序编程【实验内容】1.数据块传送程序的调试2.延时子程序的调试3.二进制数转换十进制数子程序的调试4.双字节无符号数加法程序调试(选作)【实验程序及操作步骤】1.数据块传送程序的调试实验程序one:将十六进制数0-F存到RAM的30H-3FH地址单元中;two:将RAM的30H-3FH地址单元中的数据传送到40H-4FH地址单元中。
源程序如下:Addr1 equ 30h ;定义源数据起始地址Addr2 equ 40h ;定义目的起始地址Len equ 10h ;定义数据块长度ORG 0000h ;指明程序的起始地址one: ; 将十六进制数0-F存到RAM的30H-3FH地址单元中;CLR A ;要传送的数据放A里,初始值为0MOV R0, #addr1 ;R0为地址指针,初始指向30HMOV R2, #Len ;R2是数据块的长度Loop1: MOV @R0, A ;把A里的数据送R0指向的地址(调试时观察数据存储区30H-3FH里数;据在执行指令前后的变化)INC R0 ;修改地址指针INC A ;修改A中的数据DJNZ R2, Loop1 ;控制循环次数(调试时观察R1里数据的变化,体会DJNZ指令的作用)two: ;将RAM的30H-3FH地址单元中的数据传送到40H-4FH地址单元中。
MOV R0, #addr1 ;R0 作为源数据地址指针,起始地址是30HMOV R1, #addr2 ;R1作为目地地址指针,起始地址是40HMOV R2, #len ;R2是数据块的长度Loop2: MOV A , @R0 ;取源数据(调试时观察R0的间接寻址的作用)MOV @R1, A ;源数据送目的地址单元(调试时观察R1的间接寻址的作用)INC R0 ;修改源数据地址指针INC R1 ;修改目的地址指针DJNZ R2, Loop2 ;控制循环次数,调试时观察R2里数据的变化,体会DJNZ 指令的作用SJMP $ ;程序原地踏步 END ;程序结束实验操作:(1)新建工程 单击桌面图标,打开1-1所示。
实验报告_数据块传送
一、实验目的1. 理解数据块传送的概念和原理。
2. 掌握数据块传送的方法和步骤。
3. 分析数据块传送过程中的问题及解决方案。
二、实验原理数据块传送是指将一组数据以块为单位进行传输,而不是单个数据。
数据块传送可以提高传输效率,减少传输过程中的延迟。
本实验主要采用串口通信来实现数据块传送。
三、实验设备与工具1. 电脑一台2. 串口通信设备(如串口模块、USB转串口线等)3. 串口通信软件(如PuTTY、串口调试助手等)四、实验步骤1. 连接设备将串口通信设备与电脑连接,确保通信正常。
2. 设置串口参数在串口通信软件中设置串口参数,包括波特率、数据位、停止位、校验位等。
根据实际设备要求设置相应的参数。
3. 编写数据块发送程序使用编程语言编写数据块发送程序。
以下以C语言为例:```c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>#include <termios.h>int main() {int fd = open("/dev/ttyUSB0", O_RDWR); // 打开串口设备if (fd < 0) {perror("Open serial port error");return -1;}struct termios tty;memset(&tty, 0, sizeof(tty));if (tcgetattr(fd, &tty) != 0) {perror("SetupSerial 1");return -1;}tty.c_cflag &= ~PARENB; // Clear parity bit, disabling parity (most common)tty.c_cflag &= ~CSTOPB; // Clear stop field, only one stop bit used in communication (most common)tty.c_cflag &= ~CSIZE; // Clear all the size bits, then use one of the statements belowtty.c_cflag |= CS8; // 8 bits per byte (most common)tty.c_cflag &= ~CRTSCTS; // Disable RTS/CTS hardware flow control (most common)tty.c_cflag |= CREAD | CLOCAL; // Turn on READ & ignore ctrl lines (CLOCAL = 1)tty.c_lflag &= ~ICANON; // Disable canonical modetty.c_lflag &= ~ECHO; // Disable echotty.c_lflag &= ~ECHOE; // Disable erasuretty.c_lflag &= ~ECHONL; // Disable new-line echotty.c_lflag &= ~ISIG; // Disable interpretation of INTR, QUIT and SUSPtty.c_iflag &= ~(IXON | IXOFF | IXANY); // Turn off s/w flow ctrltty.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL); // Disable any special handling of received bytestty.c_oflag &= ~OPOST; // Prevent special interpretation of output bytes (e.g. newline chars)tty.c_oflag &= ~ONLCR; // Prevent conversion of newline to carriage return/line feedtty.c_cc[VTIME] = 10; // Wait for up to 1s (10 deciseconds), returning as soon as any data is received.tty.c_cc[VMIN] = 0;if (tcsetattr(fd, TCSANOW, &tty) != 0) {perror("SetupSerial 3");return -1;}char buffer[1024];int len;while (1) {len = read(0, buffer, sizeof(buffer)); // Read input from stdinif (len > 0) {write(fd, buffer, len); // Write to serial port }}close(fd);return 0;}```4. 编写数据块接收程序使用编程语言编写数据块接收程序。
单片机实验指导书
第一章DVCC-52196JH单片机仿真实验系统简介第一节DVCC系列单片机仿真实验系统性能§ 1 . 1 系统性能指标1.仿真、实验相结合。
2.实验模块化结构,互不影响,通过连线又可将各模块有机结合。
3.实验内容设置丰富、合理,满足教学大纲要求。
4.每项实验连线方便,既能满足学生动手能力愿望,又能充分发挥学生的创新能力,提高教学实验的质量和效率。
5.自带集成调试环境,Win9X/NT软件平台,含:源程序库、芯片资料库、原理图库、元器件位置图库、实验说明、动态调试工具库。
6.提供源程序编辑、汇编、链接。
7.电路具有过压保护,确保系统安全、可靠工作。
8.整机采用热风整平工艺基板、波峰焊接,实验连接接口采用圆孔插座,整机可靠性好。
9.自带EPROM写入器,可对27128、2764EPROM进行写入。
10.自带键盘显示器,进口键座,专用彩色键帽,决无按键不可靠现象。
11.系统用串行口、用户用串行口相互独立,在通过RS232与上位机联机状态下,同样可以调试用户串行口程序。
12.系统带有示波器功能,通过RS232口,可将测得的信号显示在上位机的屏幕上。
该系统通过RS232口可连各种上位机,在Win9X/NT软件平台进行仿真开发和实验。
同时系统自带键盘显示器,无须任何外设也能独立工作,支持因陋就简建立单片机实验室。
系统提供实验程序库,均放在系统光盘上,可直接使用。
同时全部实验程序机器码已固化在EPROM中,作为用户程序。
在进入实验前,需将该EPROM中的程序(在固化区)传送到仿真RAM区,以便以单步、断点、连续等方式运行程序。
§ 1.2 系统提供的主要实验项目如下:一、MCS—51部分软件实验1、清零程序实验 6、字符串查找并统计相同字符串个数2、拆字程序实验 7、双字节乘法程序3、拼字程序实验 8、多分支程序设计4、数据块传送实验 9、定时/计数器实验5、数据排序实验 10、电脑时钟实验二、MCS—51部分硬件实验1、8031单片机P3、P1口应用 11、步进电机控制2、工业顺序控制 12、直流电机控制3、并行I/O口8255应用 13、电子音响4、简单I/O口输入、输出扩展 14、继电器控制5、A/D转换0809应用 15、数据存贮器扩展和程序存贮器扩展6、D/A转换0832应用 16、8031串行口应用实验(一)—双机通信实验7、串并转换实验 17、8031串行口应用实验(二)—与PC机通信8、定时计数器8253A应用 18、温度测量实验(5G14433应用)9、可编程键盘显示8279A应用 19、压力测量实验10、打印机接口应用对DVCC—××JH+机型增加下列四个扩展实验一、128×64液晶显示实验二、16×16LED点阵显示实验三、语音录放实验四、IC卡读写实验§ 1.3 实验系统主要机型如下:DVCC—52JH(JH+) 51实验、仿真DVCC—52196JH(JH+) 51、196实验、仿真DVCC—5286JH(JH+) 51实验、仿真,8088实验DVCC—598JH(JH+) 51、196实验、仿真,8088实验第二节 MCS—51实验系统安装与启动§ 2.1 MCS51实验系统安装与启动1. DVCC系列实验系统在出厂时均为51状态对DVCC—52196JH机型:SK1位1—5置ON位置,位6—10置OFF对DVCC—5286JH和DVCC—598JH机型:a.SK1位1—5置ON,位6—10置OFF;b.SK2位1—2置ON;c.SK3置ON;d.SK4置OFFe.卧式KBB置51、96位置,立式KBB1开关置51、88位置(只对DVCC—598JH/JH+);f.DL1—DL4连1、22. 如果系统用于仿真外接用户系统,将40芯仿真电缆一头插入系统中J6插座,另一头插入用户系统的8051CPU位置,注意插入方向,仿真头上小红点表示第一脚,对应用户8051CPU 第一脚。
数据块传送实验报告
一、实验目的1. 理解数据块传送的基本原理和操作方法。
2. 掌握数据块传送指令的运用。
3. 熟悉汇编语言编程环境,提高编程能力。
二、实验原理数据块传送是指将一段内存区域中的数据复制到另一段内存区域的过程。
在计算机系统中,数据块传送广泛应用于各种场景,如文件复制、数据备份等。
数据块传送指令是汇编语言中的一种基本指令,可以实现对内存中数据的快速传送。
数据块传送指令主要有以下几种:1. MOVS(Move String):将源字符串中的数据复制到目的字符串中。
2. CMPS(Compare String):比较源字符串和目的字符串,判断它们是否相等。
3. SCAS(Scan String):将源字符串中的数据与AL寄存器中的值进行比较。
三、实验设备1. 实验平台:PC微机一台2. 实验软件:汇编语言编程环境(如MASM、TASM等)3. 实验数据:一段待传送的数据块四、实验内容1. 数据块初始化2. 数据块传送3. 数据块传送结果分析五、实验步骤1. 数据块初始化(1)在数据段中定义两个数据块,分别命名为source和destination。
source DB 'Hello, World!', 0destination DB 12 DUP(0)(2)设置数据段寄存器DS指向数据段。
MOV AX, @DATAMOV DS, AX2. 数据块传送(1)设置源数据块偏移地址SI指向source数据块的起始地址。
MOV SI, OFFSET source(2)设置目的数据块偏移地址DI指向destination数据块的起始地址。
MOV DI, OFFSET destination(3)设置CX寄存器为数据块长度,即source数据块的长度。
MOV CX, 12(4)使用MOVS指令将source数据块中的数据复制到destination数据块中。
MOVS destination, source(5)数据块传送完成后,判断CX寄存器的值,如果为0,则传送完成。
单片机软件实验报告
\实验一内存操作1.实验目的①掌握数据传送指令;②掌握各种数据传送指令的寻址方式;③熟练运用keil 环境对汇编程序进行调试;④掌握数据传送、复制等程序的设计与调试方法。
2.预习要求①理解数据传送指令和循环指令的使用;②理解如何对内部寄存器、内部RAM、外部XRAM(外部数据存储器)的读写;③理解各种寻址方式,尤其是较为抽象的变址寻址及相对寻址的方式;④认真预习本实验内容,自行编写程序,填写实验报告。
3.实验设备计算机1台;4.基础型实验内容:1.下列程序的功能是给外部XRAM 8000H~80FFH的256个单元的内容赋值,赋值的内容取决于程序中A的赋值。
在Keil环境运行该程序,并观察寄存器及内存单元的变化。
ORG 0000HSTART EQU 8000H;MAIN: MOV DPTR,#START;;起始地址MOV R0,#0H;;设置256字节计数值MOV A,#1H;Loop: MOVX @DPTR,A;INC DPTR;;指向下一个地址DJNZ R0,Loop;;计数值减1NOP;SJMP $;END寄存器A为1H,DPTR递增到8100H,奇偶校验位由于A的内容是1H,所以p也是1.2.下列程序将外部XRAM 3000H起始的256个字节存储块移动到外部XRAM 4000H起始的256个字节存储块,在Keil环境运行如下程序,观察寄存器及存储单元的变化。
ORG 0000HMOV DPTR,#3000HMOV A,#01HMOV R5,#0HLOOP: MOVX @DPTR,AINC DPTRDJNZ R5,LOOPMOV R0,#30HMOV R1,#00HMOV R2,#40HMOV R3,#00HMOV R7,#0HLOOP1: MOV DPH,R0MOV DPL,R1MOVX A,@DPTRMOV DPH,R2MOV DPL,R3MOVX @DPTR,AINC R1INC R3DJNZ R7,LOOP1SJMP $END实现了将3000H开始的256个单元的内容复制到以4000H开头的外部RAM存储单元中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2:数据块传送程序:
1.数据块传送程序 :
ORG 0000H
MAIN: MOV R0,#40H
MOV R2,#10H
MOV A,#0A0H
A1: MOV @R0, A
INC R0
INC A
DJNZ R2, A1
注:此时R2=10h,通过djnz之后,r2=09h≠0,则跳转到A1段
开始重复A1段中之前的语句。
R0从40h依次增加至4fh,R2则依次从10h 减少至01h,此时,在运行至djnz之后r0=00h,然后顺序执行语句。
从而完成了给40h~4fh赋值的目的。
MOV R0, #40H
MOV DPTR, #9800H
MOV R2, #10H
注:此处重新给r0 ,dptr,
r2.赋初值
A2: MOV A, @R0
MOVX @DPTR, A
INC R0
INC DPTR
DJNZ R2, A2
MOV R0, #50H
MOV DPTR, #9800H
MOV R2, #10H
A2: MOV A, @R0 注:(40h)=a0h
MOVX @DPTR, A
INC R0
INC DPTR
DJNZ R2, A2
注:此时r2=10h,经过djnz语句之后,r2=0fh≠0h,则语句跳转至A2处,依次执行之后,r2最后变为00h然后顺序执行。
此时,实现数据由片内传至片外的目的
MOV R0, #50H
MOV DPTR, #9800H
MOV R2, #10H
A3: MOVX A, @DPTR
MOV @R0, A
INC DPTR
INC R0
DJNZ R2, A3
注:此时r2=10h,经过djnz语句之后,r2=0fh≠0h,则语句跳转至A3处,依次执行之后,r2最后变为00h然后顺序执行。
此时,实现数据由片内外回传至
片内的目的
2.多字节十进制加法:
注:赋初值(30h)=23h,(20h)=41h,(31h)=27h,(21h)=25h,(32h)=13h,(22h)=50,(23h)=12h,(33h)=24h,(24h)=40h,(34h)=37h ORG 0000H
MAIN: MOV R0, #30H
MOV R1, #20H
MOV 2FH,#04H
CLR C
DA1: MOV A,@R0
ADDC A, @R1 注:此时a=23h,(20h)=41h,经过addc
之后,a=64h
DA A 进行2进制到十进制调整
MOV @R1, A
INC R0
INC R1
DJNZ 2FH, DA1 注:(2fh)=04h,经过djnz指令之后,(2fh)
=03h≠0,则程序跳转至da1,直到
(2fh)=0h后,顺序执行
MOV 7FH, C 从而实现分别将(3ih)与(2ih)(其
中i=0~4)的和经过da调整后,存
放到2i中
SJMP $
END
一、思考题
1.若两个数据块都在外部数据存储器中,如何实现数据块的传送?
答:选择R0和DPTR两个指针,用MOVX命令经过A累加器进行数据块传输。
2.在调试第一个程序时,若不用程序给40H~4FH赋初值,而用键盘在CPU DATA区给40H~4FH单元预赋初值,如何做?
答:在存储器窗口d:0x00处键入d:0x40然后键入所需要的初值。
3.若把第二个程序改为无符号数的减法,怎样修改程序?
答:将ADDC命令改为SUBB命令,去掉DA命令行
4.在第二个程序中,若两数的和存放到从40H开始的单元,如何修改程序?
答: ORG 0000H
MAIN: MOV R0,#30H
MOV R1,#20H
MOV R3,#40H
MOV 2FH,#04H
CLR C
DA1: MOV A,@R0
ADDC A,@R1
DA A
MOV @R3,A
INC R0
INC R1
INC R3
DJNZ 2FH,DA1
MOV 7FH,C
SJMP $
END
程序修改处如红字。