单片机实验二 拆字程序 实验报告
- 格式:doc
- 大小:27.67 KB
- 文档页数:2
重庆交通大学学生实验报告实验课程名称单片机原理与应用实验名称拆字、拼字实验实验类型设计性开课实验室语音楼学院信息科学与工程学院学生姓名学号开课时间2012 至2013 学年第1学期一、实验目的掌握汇编语言的设计与调试方法,掌握拆字拼字的程序编写方法;二、实验内容把7000H的内容拆开,高位送7001H低位,低位送7002H低位,7001H,7002H高位清零,把7000H、7001H的低位相拼后,送入7002H三、实验步骤(1)打开Keil程序,执行菜单命令“Project –“New Project”创建“拆字、拼字实验”项目,并选择单片机型号为AT89C51;(2)执行菜单命令“New”创建文件,输入源程序,保存为“拆字、拼字实验.A51”。
在Project”栏的File项目管理窗口中右击文件组,选择“Add Fileto Group‘Source Grop1’”将源程序“拆字、拼字实验.A51”添加到项目中。
(3)执行菜单命令“Project”->“Option For Target‘Target 1’”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。
(4)执行菜单命令“Project”->“Build Target”,编译源程序。
如果编译成功,则在“Output Window”窗口中显示没有错误,并创建了“拆字、拼字实验.HEX”文件。
(5)执行菜单命令“Debug”->“Start /Stop Debug Seesion”,按F11键,单步运行程序。
四、实验调试及结果程序:MOV DPTR,#7000HMOV A,#68HMOVX @DPTR,AMOVX A,@DPTRANL A,#0F0HSWAP AINC DPTRMOVX @DPTR,AMOV DPTR,#7000HMOVX A,@DPTRANL A,#0FHMOV DPTR,#7002HMOVX @DPTR,A结果:调试方法:单步运行到BP1,观察7000H单元中的内容和A单元中的内容是否为68,单步运行到BP2,观察7001H单元中的内容是否为6,单步运行到BP3,观察7002H单元中的内容是否为8,若是,程序对,若不是,反复修改程序直到正确为止。
微处理器原理与应用实验日志实验题目:顺序程序设计:拆字和拼字实验目的:1、掌握顺序程序编写方法2、掌握拆字和拼字方法3、学会编写和调试程序的过程和方法4、掌握C51编程方法。
实验要求:1、阅读、运行并调试已给的程序;2、模仿已给程序分别汇编程序和C程序完成拼字程序;实验主要步骤:1、启动计算机,进入Keil C51的集成开发环境;2、根据已给程序分别编辑汇编程序和C程序;3、编辑完成以后对程序进行编译,生成目标代码;4、运行、调试目标代码和进行结果检查;5、根据要求分别编写汇编程序和C程序;6、编译,生成目标代码,分别采用单步和宏单步运行程序,观察有关单元中的内容的变化;7、修改内存单元中的内容在观察存储单元内容的变化;实验结果:汇编程序:ORG 0000HAJMP STARTORG 0100HSTART: MOV A,30HANL A,#0FHSW AP AMOV 32H,AMOV A,31HANL A,#0FHORL 32H,ASJMP $END#include""#include""void main(){DBYTE[0x30]=0x12;DBYTE[0x31]=0x34;DBYTE[0x30]<<=4; //20DBYTE[0x31]&=0x0f; //04DBYTE[0x32]=DBYTE[0x30]|DBYTE[0x31];}心得体会:在本次实验中,发现输入数据有两种方法,一种是在程序中直接赋值,另一种是直接双击0x0200这个单元,就可以对它赋值,最后运行结果一样,但后一种明显改动数据方便,这让我意识到了优化程序的重要性。
在第三个实验中,对用C语言编写的程序,不知道或语句怎么写,在请教老师之后得以解决,但是,在编译程序时没有问题,运行程序出现了错误。
一直没有找到问题,在最后重新建立工程,文件等必要步骤之后,就完成了程序的运行。
单片机拆字程序实验单片机拆字程序实验是一种通过单片机控制LED灯来实现拆字效果的实验。
通过该实验,可以学习单片机编程和数字电子技术知识,既能提高对硬件的理解,又能锻炼编程能力。
一、实验器材1. 单片机开发板2. 16x8 点阵 LED 模块3. 20P 配对排母头4. DC5V 2A 电源适配器5. 杜邦线、电阻等。
二、实验原理本实验通过单片机控制16x8点阵LED模块实现拆字效果,具体原理如下:1. 系统时钟为12M,通过定时器中断驱动点阵扫描显示,显示速度为50ms/帧。
2. 使用一个数组存储汉字的字模数据,每个汉字占据16字节,字节以二进制形式存储,通过给定的字模数据生成汉字的字形。
3. 利用按键调用拆字函数实现对汉字的拆分,如将“福”字拆分为“示”、“口”、“田”。
4. 利用移位运算实现汉字显示的左右滚动,通过控制移位幅度来实现滚动速度。
三、实验步骤1. 连接电路:将16x8点阵LED模块与单片机开发板相连,DC24V接DCIN,GND接GND, DIN接P2.0, CLK接P2.1, CS接P2.2。
2. 编写程序:在Keil C51编译器中编写程序,包括定义汉字数组、各个函数和中断程序等。
3. 烧录程序:将编写好的程序烧录到单片机开发板中。
4. 调试程序:按键触发拆字函数,观察汉字的拆分和滚动效果是否正确。
五、实验注意事项1. 拆字函数必须考虑多种情况,比如汉字的结构、不同拆分方式的可行性等,以保证拆分的正确性。
2. 调试时需要注意数组赋值的顺序,尤其是大端小端问题,否则可能会导致汉字显示出错。
3. 单片机开发板的电源必须与点阵LED模块的电源匹配,以确保正常工作。
六、实验拓展1. 实现更多的汉字拆分和显示样式,比如上下滚动、闪烁等。
2. 利用串口通信实现汉字输入和显示。
3. 尝试利用其他芯片和硬件实现类似的效果。
《微机原理与接口技术》课程实验报告
一、实验目的和要求
实验目的:掌握汇编语言设计和调试方式。
实验要求:通过本实验,掌握8051汇编程序设计以及仿真实验的流程及方法。
二、实验环境
DVCC单片机仿真实验系统独立工作以及连PC机。
三、实验内容及实施
【实验内容】把7000H的内容拆开,高位送7001H低位,低位送7002H低位。
7001H、7002H高位清零,一般本程序用于把数据送显示缓冲区使用。
【源程序】
【实验步骤】
(1)先用存储器读写方法将7000H单元置成34H。
(2)用单步、断点或连续执行程序的方法从起始地址0050H开始运行程序(输人0050H后按STEP为单步,按EXEC为连续)。
(3)按MON键或RESET键退出。
(4)检查7001H和7002H单元中的内容应为03H和04H
四、实验结果
五、实验讨论
用断点方式调试本程序的方法:把光标指向语句左边,然后单击,会出现一个符号。
同样的方法对需要在结束语句左边做同样的事情,然后全速运行,按下停止按钮,程序就会在相应的位置停止。
通过本次实验,对单片机的RAM和ROM的使用有了更加透彻的理解,熟悉了仿真实验系统的键盘操作以及基本仿真软件的使用,并且逐步掌握汇编语言设计和调试方式。
suogr@教学群号:31696867教9楼C 区181号信箱西北师范大学计算机科学与工程学院单片机与接口软件实验2-拆字程序索国瑞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 @ 实验内容⏹编一程序,将2000H 单元的内容拆开:其中的高四位D7~D4送入2001H 单元的低四位;2000H 单元的低四位D3~D0送入2002H 单元的低四位,并将2001H 和2002H 单元的高四位清零。
2013年4月7日星期日6西北师大计算机学院索国瑞:suogr @ 参考代码⏹0RG 0010HMOV DPTR,#2000H MOVX A,@DPTR MOV B,A SWAP AANL A,#0FH INC DPTRMOVX @DPTR,A INC DPTR MOV A,B2013年4月7日星期日7西北师大计算机学院索国瑞:suogr @ ANL A, #0FH MOVX @DPTR,AWAIT2: SJMP WAIT22013年4月7日星期日8西北师大计算机学院索国瑞:suogr @ 实验步骤⏹启动Keil 软件⏹输入实验程序⏹检查已输入的程序⏹设法使得CPU 启动后能转到0010H 单元⏹单步执行程序,观察实验现象,记录各单元结果⏹以断点方式执行程序,观察实验现象,记录各单元结果⏹将实验中2000H 单元的高低四位保存位置互换,再重复上述过程2013年4月7日星期日9西北师大计算机学院索国瑞:suogr @ 实验记录⏹记录程序输入后与汇编指令对应的机器码⏹记录程序执行后各指定单元的值⏹记录程序执行过程中PC 、DPTR 、A 、B 的变化规律2013年4月7日星期日10西北师大计算机学院索国瑞:suogr @ 实验结果分析⏹分析各指定单元的结果变化特点⏹分析WAIT2标号的地址值⏹分析A 、DPTR 、B 的作用⏹分析程序各指令作用,加注释⏹分析整个程序的结果特点,绘制出程序流程图。
软件实验在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。
实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容把2000~20FFh的内容清零。
三、程序框图四、实验过程(1)实验中定义R0为循环次数,利用定义了初值的数据指针DPTR不断加1指向需要被清零的外部数据存储器单元。
(2)再利用MOVX语句,将外部存储器指定内容清零。
(3)用CJNE比较语句判断循环是否结束。
五、实验结果及分析问题回答:清零前2000H~20FFH中为内存里的随机数,清零后全变为0。
六、实验源程序;清零程序ORG 0000HMOV DPTR,#2000HMOV R0,#0FFHORG 0660HMAIN: MOV A,#00HMOVX @DPTR,AINC DPTRDJNZ R0,MAINEND实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。
二、实验内容把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序框图四、实验过程(1)定义数据指针DPTR为2000H,将其中内容送入累加器A中,利用高低四位交换语句SWAP可将高四位移至低四位,再用语句ANL与0FH进行与操作取出高四位送入2001H低位(2)再次让数据指针DPTR为2000H,将其中内容送入累加器A中,直接与0FH相与取出低四位送入2002H低位。
五、实验结果及分析问题回答:将ANL A,#0FH改为ORL A,#0F0H可以实现将高位置为1。
六、实验源程序;拆字程序ORG 0000HMAIN: MOV DPL, #00HMOV DPH, #20HMOVX A, @DPTRSWAP AANL A, #0FHINC DPTR-3-MOVX @DPTR, AMOV DPL,#00HMOVX A, @DPTRANL A, #0FHINC DPTRINC DPTRMOVX @DPTR, AEND实验三拼字程序一、实验目的进一步掌握汇编语言设计和调试方法。
一、实验目的及要求:(1)学习Keil C51集成开发工具的操作及调试程序的方法,包括:仿真调试与脱机运行间的切换方法;(2)熟悉TD-51单片机系统板及实验系统的结构及使用;(3)进行MCS51单片机指令系统软件编程设计与硬件接口功能设计;(4)学习并掌握Keil C51与Proteus仿真软件联机进行单片机接口电路的设计与编程调试;(5)完成指定MCS51单片机综合设计题二、实验运行环境软件环境:KEIL uv2, PROTEUS7.4硬件环境:PC机, TD-51系统板三、软件部分实验一清零程序与拆字程序设计(1)清零程序:把7000H-7FFFH的内容清零。
(2)拆字程序:把7000H的内容拆开,高位送7001H低位,低位送7002H低位。
7001H,7002H高位清零,一般本程序用于把数据送显示缓冲区时用。
a)程序流程图图1 清零程序图2 拆字程序b)实验参考程序清零程序:ORG 0000HLJMP MAINORG 0100HMAIN: MOV A, #00HMOV DPTR,#7000H ;赋给首地址MOV R1,#100H ;循环次数,完成对7000H-70FFH的置一MOV R2, #10HLOOP1: MOVX @DPTR,AINC DPTRDJNZ R1,LOOP1DJNZ R2,LOOP1 ; 因为都是先减一之后再做比较,所以0FFH、0FH个数要100H、10H次SJMP $END拆字程序:ORG 0000HLJMP MAINORG 1000HMAIN:MOV DPTR,#7000HMOVX A,@DPTR ;赋值MOV R0,AANL A,#0F0H ;得到高四位SWAP AINC DPTRMOVX @DPTR,A ;高位给7001HMOV A,R0ANL A,#0FH ;得到低四位INC DPTRMOVX @DPTR,A ;低位给7002HSJMP $END实验二拼字程序与数据传送程序设计(1)拼字程序:把 7000H,7001H 的低位相拼后送人 7002H,一般本程序用于把显示缓冲区的数据取出拼装成个字节。
太原工业学院计算机工程系成绩:单片机原理及接口技术课程实验报告课程:单片机原理及接口技术姓名:张成专业:计算机科学与技术学号:132054116日期:2016年6月太工计算机工程系计算机原理实验室实验一:拆字程序实验实验环境 V 系列仿真器集成调试软件实验日期2016.4.22一.实验内容1.熟悉51仿真系统2.设计并单步调试实现将R5中一字节数拆分成两位独立的数据分别存于R6,R7中3.将R6,R7中的一位HEX 数据转换为输出ASCII 编码二.理论分析或算法分析 1. 将一个数存放在R5中2. 通过A 寄存器将R5中的高4位和第四位存放在R6与R7中(将高位和0f0做与操作,低四位和0f 做与操作)3. 清零CY ,通过SUBB 让高四位和低四位与0A 做差,判断操作数的大小4. 通过JC 判断如果操作数大于9,则加37H ,否则加30H5. 将结果送回R5,R6中开始将一个数存入R5中拆分R5,将高位存入R6,低位存入R7清零CY ,高位低位分别与0A 做SUBB 操作,JC 判断大于等于则加37H小于加30H将结果存入R6,R7中结束三.实现方法org 2000hmov r5,#2AH mov a,r5anl a,#0f0h ;高swap amov r6,amov a,r5anl a,#0fh ;低mov r7,aclr cmov a,r6subb a,#0ahjc l1sjmp l2l0:clr cmov a,r7subb a,#0ahjc l3sjmp l4 l1:mov a,r6 add a,#30h mov r6,a sjmp l0l2:mov a,r7 add a,#37h mov r6,a sjmp l0l3:mov a,r7 add a,#30h mov r7,a jmp l5l4:mov a,r7 add a,#37h mov r7,al5:nopsjmp $ END四.实验结果分析输入的操作数是2AR6中存放高位ASCII码32,R7中存放低位ASCII码41五.结论完成了本次实验要求的设计并单步调试实现将R5中一字节数拆分成两位独立的数据分别存于R6,R7中将R6,R7中的一位HEX数据转换为输出ASCII编码实验内容。
实验一清零程序一、实验目的(1)掌握汇编语言设计和调试方法;(2)熟悉MCS-51 单片机实验系统。
二、实验内容把c000H~c0FFH的内容清零。
三、程序框图清零四、实验步骤用连续或单步方式运行程序,检查C000~C0FF中执行程序前后的内容变化。
五、思考(1)对于清零程序,假使把C000H~C0FFH中的内容改成FF,如何修改本程序?(2)如何用断点方式调试程序?实验二拆字程序一、实验目的(1)掌握汇编语言设计和调试方法;(2)熟悉MCS-51 单片机实验系统。
二、实验内容把C000H的内容拆开,高位送C001H低位,低位送C002H低位,C001H、C002H 高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序框图拆字四、实验步骤程序一:用连续或单步方式运行程序,检查C000~C002H中内容变化情况。
程序二:单步或用断点方式运行程序,检查C002H内容变化情况。
五、思考编写程序:把C000H、C001H的低位分别送入C002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。
实验三数据区传送程序(综合性)一、实验目的(1)掌握RAM中的数据操作;(2)熟悉8031(8051)指令系统,掌握程序设计方法。
二、实验内容把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。
三、程序框图数据区传送四、实验步骤在R2、R3中输入源首址(例如c000H),R4、R5中输入目的地址(例如D000H),R6、R7中输入字节数(例如0FFFH),运行程序,检查C000~CFFFH中内容是否和D000~DFFFH 中内容完全一致。
一、实验目的(1)学习P1口的使用方法;(2)学习延时子程序的编写。
二、实验预备知识本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。
对于延时程序DELAY: MOV R6,#00HDELAY1:MOV R7,#80HDJNZ R7,﹩DJNZ R6,DELAY1MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/6.0MHZ,所以该段指令执行时间为:((80+1)×256+1)×2×(12÷6000000)=132.1ms。
第1篇实验报告编号:2021XX0001实验名称:拆字码制实验实验时间:2021年X月X日实验地点:XX大学计算机科学与技术学院实验室实验目的:1. 理解拆字码制的原理和应用。
2. 通过实际操作,掌握拆字码制的编码和解码方法。
3. 分析拆字码制的优缺点,并探讨其在实际应用中的可行性。
实验内容:1. 拆字码制的原理介绍2. 编码和解码实验3. 优缺点分析4. 应用探讨一、拆字码制的原理介绍拆字码制是一种基于汉字的编码方法,它将汉字拆分成若干部分,然后将这些部分转换成数字或字母,从而实现汉字的编码。
拆字码制的基本原理如下:1. 拆分:将汉字按照一定的规则拆分成若干部分,如部首、笔画等。
2. 转换:将拆分得到的部分转换成数字或字母,形成编码。
3. 存储:将编码存储在计算机或其他存储设备中。
4. 解码:将编码转换回汉字,实现信息的传输和显示。
二、编码和解码实验1. 实验材料- 汉字:若干常用汉字- 拆字规则:部首拆分、笔画拆分等- 编码转换规则:数字编码、字母编码等2. 实验步骤a. 选择若干常用汉字,如“人”、“山”、“水”等。
b. 根据拆字规则,将选定的汉字拆分成若干部分。
c. 根据编码转换规则,将拆分得到的部分转换成数字或字母,形成编码。
d. 将编码存储在计算机或其他存储设备中。
e. 将存储的编码转换回汉字,实现解码。
3. 实验结果a. 编码示例:- “人”编码:0010- “山”编码:0101- “水”编码:1001b. 解码示例:- 编码0010解码为“人”- 编码0101解码为“山”- 编码1001解码为“水”三、优缺点分析1. 优点a. 简单易学:拆字码制规则简单,易于理解和掌握。
b. 编码紧凑:拆字码制可以将汉字编码成较短的数字或字母,提高存储和传输效率。
c. 兼容性强:拆字码制可以兼容多种编码方式,方便与其他系统进行数据交换。
2. 缺点a. 拆分规则不统一:不同的拆字规则可能导致同一汉字的编码不同,增加使用难度。
单片机原理及其接口技术实验报告实验二:拆字程序、拼字程序学院:基础与信息工程学院专业:电子信息工程专业学号:姓名:日期:一.实验要求:将20H单元的二进制代码转化为ASCII码,保存在21H,22H 单元中;将7030H,7031H中的二进制代码压缩后存放于7032H中二.实验目的:1、掌握基本的51汇编程序书写、编译2、熟悉51指令的运用3、掌握内RAM,外RAM区域数据操作三.程序与流程图程序一:ROG 0000HSJMP MAINORG 0030HMAIN: MOV A,20HANL A,OFHCJNE A,#10,NEXT1NEXT1: JNC NEXT2ADD A,#30HSJMP DONENEXT2: ADD A,#37H DONE: MOV 21H,AMOV A,20HANL A,#0H0HSWAP ACJNE A,#10,NEXT3 NEXT3: JNC NEXT4ADD A,#30HSJMP DONE1 NEXT4: ADD A,#37H DONE1:MOV 22H,ASJMP $END程序二:ORG 0700H MAIN: MOV DPTR,#7030H MOVX A,@DPTRANL A,#0FHSWAP AMOV B,AINC DPTRMOVX A,@DPTRANL A,#0FHORL A,BINC DPTRMOVX @DPTR,ASJMP $END四.实验感受:我的感受是:1更加了解了汇编语言2单片机学习更加有目的性3学会了准备实验。
班级:学号:姓名:成绩:实验二拆字、拼字程序一实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二实验内容1.把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。
2. 把2000H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成—个字节三实验步骤⑴将存储器单元的D0~D7总线接口用8芯排线或8芯扁平线与数据总线单元D0~D7的任一接口相连,存储器单元的A0~A7地址接口与地址总线单元(低8)A0~A7的任一接口相连,存储器单元的A8~A15地址接口与地址总线单元(高8)A8~A15的任一接口相连。
⑵存储器单元的MWR与控制总线单元的IOW相连。
⑶存储器单元的MRD与控制总线单元的IOR相连。
⑷存储器单元的MACS与地址总线单元的A15相连。
编译、装载程序,以连续或单步方式运行程序,检查2000~20FFH中执行程序前后的变化。
四思考1.将2000的高低位分别送入3000H、3001H的高位, 3000H、3001H低位清零;;拆字程序ORG 0660HSE02: MOV DPTR,#2000HMOVX A,@DPTRMOV B,ASW AP AANL A,#0F0HMOV DPTR,#3001HMOVX @DPTR,A ;MOV DPTR,#3000HMOV A,BANL A,#0F0HMOVX @DPTR,ASJMP $END2.把片内20H,21H的高位拼在一起送到片内30H单元。
如何修改程序。
请把修改之后的程序和运行的结果截图。
拼字程序ORG 0680HSE03: MOV R0,#20HMOV A,@R0ANL A,#0F0HSW AP AMOV B,AINC R0MOV A,@R0ANL A,#0F0HORL A,BMOV R1,#30H MOV @R1,A SJMP $END。
微机原理实验报告姓名:学号:班级:实验日期:年月日批阅老师:实验名称:拆字、拼字程序一、实验预习内容1、8086/8088有14个16位寄存器,按其用途可分为8个寄存器、2个寄存器和4个寄存器。
2、通用寄存器分别是。
代码段寄存器是,数据段寄存器是,堆栈段寄存器是。
3、在数据寄存器中,被称为累加器的用于算术运算外,还用于输入/输出等操作。
被称为基址寄存器的它可作为存储器指针来使用。
被称为计数寄存器的在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用来指明移位的位数。
而数据寄存器在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。
4、堆栈指针寄存器与SS配合使用,可指向目前的堆栈位置;基址指针寄存器可用作SS的一个相对基址位置;源变址寄存器可用来存放相对于DS段之源变址指针;目的变址寄存器可用来存放相对于ES 段之目的变址指针。
指令指针寄存器用来存放代码段中的偏移地址。
5、在8088指令的寻址方式中,下列各指令中属于立即寻址的是,属于寄存器寻址的是,属于直接寻址的是,属于寄存器间接寻址的是,属于基址寻址的是,属于基址加变址寻址的是。
A、MOV AX,2000HB、MOV AX,[2000H]C、MOV AX,CXD、MOV AX,[DI]E、MOV AX,[BX][SI]F、MOV AX,[BP]6、在DEBUG下,反汇编命令是,汇编命令是,显示显示内存单元内容的命令是,修改内存单元内容的命令,检查和修改寄存器内容的命令是,逐步追踪执行命令是,连续执行程序命令是,退出命令是。
二、实验内容与过程1、设DS为当前段地址,BX=0300H,SI=0002H;请用DEBUG 的命令在存储器偏移地址300H~304H单元中连续按顺序装入0AH,0BH,0CH,0DH,0EH。
在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么,并指出这条指令是什么寻址方式。
实验报告--拆字微机原理实验报告一.实验内容拆字实验。
把片外7000H单元的内容拆开,高位送7001H单元的低位,低位送7002H 单元的低位。
7001H、7002H高位清零。
在实际应用中,本程序一般用于把数据送显示缓冲区时使用。
二.实验时间2014年12月9日三.实验过程(1)画程序框图(2)根据程序框图写实验程序试验程序如下:ORG 0050HMOV DPTR,#7000H;MOVX A,@DPTR;MOV B,A;SWAP A;ANL A,#0FH;INC DPTR;MOVX @DPTR,A;MOV A,B;INC DPTR;ANL A,#0FH;MOVX @DPTR,A;END(3)调试操作1.在试验机上按下复位,PCDBG键。
2.在DVCC试验系统上点击联接,调试,解决程序中出现的错误。
3.在试验机上按下复位,输入地址7000H,按下MEM,输入数据34H,再按MEM进行保存。
4.根据提示点击动态调试里的连续单步运行程序5.在试验机上或在窗口里的显示外部数据来检查7001H和7002H中是否分别为03H和04H。
四.附录(程序中出现的错误及改错方法)1.开始程序如下:ORG 0050H;MOV DPTR,#7000H;MOVX A,@DPTR;SWAP A;ANL A,#0FH;INC DPTR;MOVX @DPTR,A;DEC DPTR;MOVX A,@DPTR;INC DPTR;INC DPTR;ANL A,#0FH;MOV @DPTR,A;END开始时想通过DPTR的移动来实现取存不同的数据,但红色部分出现‘syntax error’;查算术运算指令表知,并不存在DEC DPTR指令,故修改,将放在A里面存放的#7000H先复制在B中进行保存,程序如三.(2)所示。
2.调试三.(2)时在END指令行出现“beyond body”错误,在英文状态下重新输入END 错误消失。
五.实验分工1.编写程序:丁娜2.程序调试:潘丽伊3.撰写报告:丁娜、潘丽伊。
本科生实验报告实验课程XXXXX学院名称XXXXXXXXXXXXXXX专业名称XXXXXXXXX学生姓名XXXX学生学号XXXXXXXXXXXX指导教师XXXXXX实验地点XXXXXX实验成绩二〇一六年四月二〇一六年六月《单片机原理及应用》实验报告摘要《单片机原理及应用》是电子科学与技术、电子信息工程、计算机科学与技术、自动控制等专业工程应用能力和创新能力培养的一门重要专业基础课。
课程重点讲授:单片机存储器体系结构、指令系统与编程技术、中断系统及应用、定时器及应用、外围设备与单片机的接口技术,单片机应用系统设计。
因为单片机这门课是一门实践性很强的课程,单纯学习课本不能掌握这门知识,必须要经过试验课程才能更加具体和深入地学会这门课。
通过试验课的学习,使学生掌握单片机技术及其在工业控制、经济建设和日常生活中的应用,培养学生实践能力、创新能力和新产品设计开发能力,为将来从事电子电器新产品设计开发,电子产品的检测和维护等工作奠定坚实的基础。
本实验板可以实现的实验内容:(1)单片机开发软件及仿真器的使用和P1口实验(2)I/O口实验(交通灯实验,温度传感器,蜂鸣器、I2C)(3)定时器实验(流水灯、交通灯、数码管等)(4)总线实验(流水灯LED、外部RAM)(5)系统扩展(包括:LCD、ADC、DAC、RAM等)(6)通信实验(RS232与计算机之间的串口实验)(7)传感器实验(1-Wire温度实验)(8)键盘实验(扫描接口)(9)电机实验(四相六线式步进电机)(10)时钟实验(RTC—PCF8563)(11)软件实验(多个数求和、排序等)(12)中断实验(外部中断、定时器、UART)本实验设计主要完成了数码管、流水灯、键盘、蜂鸣器等实验,与实验指导书结果符合,了解了部分功能的使用。
关键词:单片机 LED数码显示键盘串口第一章单片机集成开发环境应用一实验目的1.熟悉单片机集成开发软件(Keil);2.掌握单片机实验板的使用;3.掌握单片机P1口使用;二实验内容1、集成开发环境Keil介绍及开发流程Keil μVision4集成开发环境(Integrated Development Environment,IDE)是一个基于Windows的开发平台,它包含高效的源代码编辑器、项目(Project)管理器和程序生成(MAKE)工具。
《微控制器原理与应用》实验指导书实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容把2000H-20FFH的内容清零。
三、程序框图四、实验步骤用连续或单步方式运行程序,检查2000-20FF中执行程序前后的内容变化。
五、实验报告要求(1) 实验名称、专业、班级、姓名、同组者姓名、实验台号、实验日期、交报告日期(2)实验目的(3)实验原理(4)实验步骤(5)程序清单(6)结论及体会六、思考题假使把2000H-20FFH中的内容改成FF,如何修改程序。
实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。
二、实验内容把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序框图四、实验步骤用连续或单步方式运行程序,检查2000—2002H中内容变化情况。
五、实验报告要求(1)实验名称、专业、班级、姓名、同组者姓名、实验台号、实验日期、交报告日期(2)实验目的(3)实验原理(4)实验步骤(5)程序清单(6)结论及体会六、思考题如何用断点方式调试本程序。
实验二拼字程序一、实验目的进—步掌握汇编语言设计和调试方法。
二、实验内容把2000H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成—个字节。
三、程序框图四、实验步骤单步或用断点方式运行程序,检查2002H内容变化情况。
五、实验报告要求(1)实验名称、专业、班级、姓名、同组者姓名、实验台号、实验日期、交报告日期(2)实验目的(3)实验原理(4)实验步骤(5)程序清单(6)结论及体会实验三数据区传送子程序一、实验目的掌握RAM中的数据操作。
二、实验内容把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM 区。
三、程序框图四、实验步骤在R2、R3中输入源首址(例如0000H),R4、R5中输入目的地址(例如2000H), R6、R7中输入字节数(例如1FFFH),运行程序,检查0000-1FFFH中内容是否和2000-3FFFH中内容完全—致。
《单片机实验》报告实验名称分支程序设计指导教师刘冬生专业班级学号联系方式一. 任务要求熟练掌握KeilC 环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO 口的使用。
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 元,请按要求编写程序。
240/2204020X X Y X X XX ⎧≥⎪=<<⎨⎪≤⎩当当当2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
为低电平时开始计时,为高电平时停止计时。
提高部分(选做):a. 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用状态选择加、减计数方式。
b. 利用P3口低四位状态控制开始和停止计数,控制方式自定。
二. 设计思路1.分段函数设计对于第一个任务,根据变量X 的值的不同进行相应的计算。
所以我们首先要判断X 的值属于那个范围。
我们可利用比较转移指令CJNE 来判断X 是否等于临界值20,40,若不等,再根据执行CJNE 指令后的进位位CY 的值来判断X 与临界值的的大小关系,如:CY=0则X 大于临界值,CY=1则X 小于临界值;然后根据X 的值所在的区间进行相应的计算。
应该注意的是,除法计算中可能产生余数,商和余数应该分开存储,若乘方运算结果大于255,高八位与低八位应分开存储2.24进制时钟本程序须可以构建两部分循环。
首先构建一个三重循环实现“一秒延时”,循环体利用NOP 指令(单字节指令,1µs )经多次循环达到延时一秒的效果。
再利用已经构建好的“一秒延时”部分,设计计时系统的三重循环,秒(0-59)、分(0-59)、时(0-23)。
秒和分计60次,小时计24次,但,是从0开始计,所以在分、秒达到59,小时达到23时,下一次应该为零。
《单片机实验》报告实验名称分支程序设计指导教师刘冬生专业班级学号联系方式一. 任务要求熟练掌握KeilC 环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO 口的使用。
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 元,请按要求编写程序。
240/2204020X X Y X X XX ⎧≥⎪=<<⎨⎪≤⎩当当当2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
提高部分(选做):a. 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用P3.7状态选择加、减计数方式。
b. 利用P3口低四位状态控制开始和停止计数,控制方式自定。
二. 设计思路1.分段函数设计对于第一个任务,根据变量X 的值的不同进行相应的计算。
所以我们首先要判断X 的值属于那个范围。
我们可利用比较转移指令CJNE 来判断X 是否等于临界值20,40,若不等,再根据执行CJNE 指令后的进位位CY 的值来判断X 与临界值的的大小关系,如:CY=0则X 大于临界值,CY=1则X 小于临界值;然后根据X 的值所在的区间进行相应的计算。
应该注意的是,除法计算中可能产生余数,商和余数应该分开存储,若乘方运算结果大于255,高八位与低八位应分开存储2.24进制时钟本程序须可以构建两部分循环。
首先构建一个三重循环实现“一秒延时”,循环体利用NOP 指令(单字节指令,1µs )经多次循环达到延时一秒的效果。
再利用已经构建好的“一秒延时”部分,设计计时系统的三重循环,秒(0-59)、分(0-59)、时(0-23)。
秒和分计60次,小时计24次,但,是从0开始计,所以在分、秒达到59,小时达到23时,下一次应该为零。