单片机实验一 拆字程序

合集下载

单片机实验3 拆字、拼字子程序设计

单片机实验3  拆字、拼字子程序设计

实验3 拆字、拼字子程序设计
1、实验内容
1)内部RAM 20H单元存放二位压缩的BCD码,
试将BCD码变成相应的ASCII码存放到以
40H单元为首地址的内部RAM单元
2)内部RAM 79H,7AH内存放着个位和十位两位
BCD码, 将它们变成压缩的BCD码存到R2内。

(以上程序要求取数、送数均用间接寻址)
3) 内部RAM 7AH,79H内存放两位BCD码高位在前,将它们拼成一个字节加1并进
行十进制凋整,然后再将个位送79H拾位送7AH。

要求伎用拼字、拆字子程完成。

2、实验步骤
1)打开PV32编程序。

汇编正确进入调试界面。

否则修改程序重新汇编直到通过。

2)打开DATD窗口给加数、被加数赋值
3)单步调试观察并记禄寄存器、内存的变化。

判断程序是否正确。

若发现问题重返编辑
界面,修改、存盘、汇编。

返回调试界面调试通过。

4)设断点调试、记禄结果。

3、实验报告
1)折字子程序流程图及程序清单
2)拼字子程序流程图及程序清单
3)标准BCD码与压缩BCD码的相同点与不同点是什么?
4)*第3问的流程图及程序清单(选做)。

单片机实验一拆字程序

单片机实验一拆字程序

单片机实验一拆字程序 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】实验一拆字程序1 实验名称拆字程序2 实验目的掌握汇编语言测试和调试方法。

3 实验内容把7000H的内容拆开,高位送7001H的低位,低位送7002H的低位,7001H、7002H高位清零,本程序应用于把数据送显示缓冲区。

4 硬件连线5 实验步骤(1)PC机开始菜单程序 51JH实验系统 DVCC实验系统 ,进入实验界面。

选中本次实验名称,查看实验目的、内容、硬件连线、步骤。

输入源程序,编译、联接、运行实验程序。

(2)DVCC实验系统①先用存储器读写方法将7000H单元内容置成34H。

按复位键,显示P.,输入7000H,按MEM键,输入34。

②用单步、断点或连续执行程序的方法从其始地址0050H开始运行程序(输入0050后按STEP为单步,按EXEC为连续)。

按RESET后,显示P.,输入0050,按EXEC③按MON键或RESET键退出。

④检查7001H、7002H单元中的内容应为03H、04H。

输入7000H,按MEM键,显示03,按NEXT显示04。

6 实验程序ORG 0050HCWORD: MOV DPTR,#7000HMOVX A,@DPTRMOV B,ASWAP AANL A,#0FHINC DPTRMOVX @DPTR,AINC DPTRMOV A,BANL A,#0FHMOVX @DPTR,ACWORD1: SJMP CWORD1END7 实验拓扑修改源程序,实现将把3000H的内容拆开,高位送3001H的低位,低位送3002H的低位,7001H、7002H高位清零。

用存储器读写方法将3000H单元内容置成76H。

8 实验结果分析向存储器7000H单元写入34H,执行程序,检查拆字后7001H、7002H单元中的内容为03H、04H。

向存储器3000H单元写入76H,执行程序,检查拆字后7001H、7002H单元中的内容为07H、06H。

单片机原理与应用实验教案

单片机原理与应用实验教案

《单片机原理及应用》实验教学大纲课程编号:B04611016课程类别:专业课实验学时:16学时学分:2.5适用专业:计算机科学与技术一、实验教学目的和任务本课程是计算机及应用专业一门重要的专业课。

其教学内容直接面向生产。

同时,微机向小型化、超小型化方面发展愈来愈迅猛。

单片机应用已渗透社会各个领域,特别在通信技术中的应用,大大提高了通信技术水平。

学生应具备这方面的知识与技能,为今后参加工作,打下坚实的基础。

二、实验教学基本要求本课程是一门很注重实践的课程。

以研究MCS-51系列单片机入手,掌握其硬件结构、指令系统和程序设计,以及常用接口技术和典型应用实例。

三、实验教学内容实验项目一:清零程序1、实验目的及要求要求学生掌握软件的结构和键盘的调试。

2、实验内容及学时分配(2学时)(1)了解MCS-51软件的构造(2)掌握清零程序的输入方法(3)了解起始伪指令的输入方法实验项目二:拼字和拆字程序1、实验目的及要求要求学生掌握存储器分配和汇编语言的简单应用。

2、实验内容及学时分配(2学时)(1)进一步掌握MCS-51软件的基本使用方法(2)掌握指令的寻址方式(3)掌握数据传送指令和地址内容的分配实验项目三:数据区传送子程序1、实验目的及要求要求学生掌握RAM数据存储器实际操作。

2、实验内容及学时分配(2学时)(1)掌握MCS-51逻辑运算指令和位操作指令(2)进一步掌握数据传送子程序的简单方法(3)掌握查表程序的编写实验项目四:数据排序实验1、实验目的及要求要求学生掌握汇编语言的应用和实际操作。

2、实验内容及学时分配(2学时)(1)掌握MCS51逻辑运算指令和位操作指令(2)进一步掌握简单顺序程序的编写和调试方法(3)掌握查表程序的编写实验项目五:查找相同个数1、实验目的及要求熟悉汇编语言程序,使用环移指令和加1指令。

2、实验内容及学时分配(2学时)(1)掌握赋值指令(2)掌握带进位的环移指令和加1程序的编写实验项目六:双字节无符号数的乘法实验1、实验目的及要求要求学生掌握MCS-51汇编语言设计和调试方法。

微处理器实验报告顺序程序设计拆字和拼字

微处理器实验报告顺序程序设计拆字和拼字

微处理器原理与应用实验日志实验题目:顺序程序设计:拆字和拼字实验目的: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的使用有了更加透彻的理解,熟悉了仿真实验系统的键盘操作以及基本仿真软件的使用,并且逐步掌握汇编语言设计和调试方式。

单片机实验3 拆字、拼字子程序设计

单片机实验3 拆字、拼字子程序设计

单片机实验3 拆字、拼字子程序设计拆字和拼字是人类阅读、语言学习和表达中的基本技能。

在这个实验中,我们将设计一个单片机程序,通过拆字和拼字的子程序来练习和提高汉字的识别和组词能力。

一、实验目的1. 加深对单片机中汇编语言的理解和掌握。

2. 熟悉单片机的输入、输出、延时等基本指令。

3. 实现汉字的拆字和拼字的子程序,提高汉字识别和组词能力。

二、实验器材1. 单片机开发板(AT89C52)2. 八位数码管3. 九键键盘4. 连接线5. 电脑、Keil C51集成开发环境三、实验内容A.数码管显示编写一个数码管驱动程序,通过按键输入一个数字,将其显示在数码管上。

数码管由8个LED组成,每个LED对应一个二进制位。

因此,我们需要将输入的数字转换为二进制数,并控制相应的LED显示。

B.拆字子程序编写一个拆字子程序,将输入的汉字拆成单个的汉字拼音。

汉字的拼音有一个对应的二进制编码,可参考GB2312中的表格。

在程序中,我们需要首先读取键盘输入的汉字,然后将汉字转换为相应的二进制代码,并将其存储在单片机中。

接着,我们需要将二进制代码分解成单个的拼音,并依次显示在数码管上。

四、程序设计在程序中,我们首先需要定义数码管所对应的输出端口和数码管的位数。

```;定义IO端口和数码管位数MOV P0,#0MOV P2,#0x01MOV DPTR,#TABLEMOVX A,DPTRMOV P2,#0x00MOV R0,#0x00MOV R1,#0x01MOV R2,#0x00MOV R3,#0x00MOV R4,#0x00MOV R5,#0x00MOV R6,#0x00MOV R7,#0x00```在键盘输入数字后,我们需要将其转换为二进制数,并存储在单片机的寄存器中。

对于一个单独的数字,我们可以用以下程序将其转换为二进制码:```;循环显示DISPLAY:MOV P0,#0xFFCLR CJNB R0,SKIP1MOV P0,#0xFESKIP1:RRC AJNB R1,SKIP2MOV P0,#0xFDSKIP2:RRC AJNB R2,SKIP3MOV P0,#0xFBSKIP3:RRC AJNB R3,SKIP4MOV P0,#0xF7SKIP4:RRC ADJNZ R5,DISPLAY```在将汉字转换为二进制编码之后,我们需要编写一个循环程序来分解二进制编码,并将每个拼音对应的二进制代码显示在数码管上。

单片机拆字程序

单片机拆字程序

单片机拆字程序单片机是一种集成电路,也是现代电子技术中常用的控制器件。

拆字程序是一种针对单片机的特定功能程序,用于将输入的文字进行拆分和显示。

在现代社会中,信息交流已经成为人们生活中不可或缺的一部分。

而文字作为最基本的信息表达方式,扮演着至关重要的角色。

然而,在某些场景下,我们可能需要对文字进行一些特殊的处理,比如拆分成单个的字母或汉字。

这时,单片机拆字程序就能发挥作用了。

单片机拆字程序的实现过程主要分为三个步骤:输入、处理和输出。

我们需要将待拆分的文字输入到单片机中。

这可以通过多种方式实现,比如通过键盘输入、通过串口接收等。

在输入过程中,我们需要保证输入的文字是有效的,即不能包含非法字符或符号。

接下来,单片机需要对输入的文字进行处理。

处理的方式可以根据具体需求而定。

对于英文字母,可以直接将每个字母分开显示;对于汉字,可以根据拼音或笔画将其拆分成单个的字母或汉字,并按照一定的顺序进行显示。

处理过程中需要注意的是避免重复输出相同的内容,确保每个字母或汉字只显示一次。

处理完成后的结果需要通过合适的输出方式进行显示。

单片机可以连接到液晶显示屏、数码管、LED灯等输出设备,将拆分后的字母或汉字按照预定的格式进行显示。

显示的方式可以是逐个显示,也可以是同时显示所有拆分后的字母或汉字。

除了基本的拆字功能,单片机拆字程序还可以扩展其他功能,比如添加字体库,使得显示的文字更加丰富多样;可以根据输入的文字进行动画效果的显示,增加视觉效果;还可以与其他设备进行联动,实现更复杂的应用场景。

总结起来,单片机拆字程序是一种针对文字拆分和显示的特定功能程序。

通过输入、处理和输出三个步骤,单片机可以将输入的文字按照一定的方式进行拆分和显示,提供更加个性化和丰富的信息交流方式。

随着技术的不断进步,单片机拆字程序在各个领域都有广泛的应用,为人们带来更多的便利和乐趣。

单片机拆字拼字实验报告

单片机拆字拼字实验报告
二.实验目的:
1、掌握基本的51汇编程序书写、编译
2、熟悉51指令的运用
3、掌握内RAM,外RAM区域数据操作
三.程序与流程图
程序一:
ROG 0000H
SJMP MAIN
ORG 0030H
MAIN:MOV A,20H
ANL A,OFH
CJNE A,#10,NEXT1
NEXT1:JNC NEXT2
ADD A,#30H
单片机实验报告单片机综合实验报告单片机实验板单片机实验箱单片机实验单片机实验心得单片机实验板原理图单片机实验软件单片机实验室单片机实验da
单片机原理及其接口技术实验报告
实验二0H单元的二进制代码转化为ASCII码,保存在21H,22H单元中;将7030H,7031H中的二进制代码压缩后存放于7032H中
END
程序二:
ORG 0700H
MAIN: MOV DPTR,#7030H
MOVX A,@DPTR
ANL A,#0FH
SWAP A
MOV B,A
INC DPTR
MOVX A,@DPTR
ANL A,#0FH
ORL A,B
INC DPTR
MOVX @DPTR,A
SJMP $
END
四.实验感受:
我的感受是:1更加了解了汇编语言
SJMP DONE
NEXT2: ADD A,#37H
DONE:MOV 21H,A
MOV A,20H
ANL A,#0H0H
SWAP A
CJNE A,#10,NEXT3
NEXT3:JNC NEXT4
ADD A,#30H
SJMP DONE1
NEXT4: ADD A,#37H

实验二 拆字程序、拼字程序

实验二  拆字程序、拼字程序

单片机原理及其接口技术实验报告实验二:拆字程序、拼字程序学院:基础与信息工程学院专业:电子信息工程专业学号:姓名:日期:一.实验要求:将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学会了准备实验。

单片机_拆字程序实验

单片机_拆字程序实验

单片机_拆字程序实验太原工业学院计算机工程系成绩:单片微型计算机原理及应用课程实验报告课程:单片机微型计算机原理及应用姓名:专业:计算机科学与技术学号:日期:2016年4月太工计算机工程系计算机原理实验室实验一:拆字程序实验实验环境PC机+Win 7+V系列仿真器集成调试软件实验日期2016.04.22 一.实验内容基本要求:1.熟悉51仿真系统2.设计并单步调试实现将R5中一字节数拆分成两位独立的数据分别存于R6,R7中扩展要求:1.将R6,R7中的一位HEX数据转换为输出ASCII编码二.理论分析或算法分析设计并单步调试实现将R5中一字节数拆分成两位独立的数据分别存于R6,R7中R5←#data低四位清零R6←高四位高四位清零R7←低四位将R6,R7中的一位HEX数据转换为输出ASCII编码三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)基本要求源程序:org 80hmov r5,#2bhmov a,r5anl a,#0f0hswap amov r6,a;高位mov a,r5anl a,#0fhmov r7,a;低位sjmp$end扩展要求源程序:org 80hmov r5,#2bhmov a,r5anl a,#0f0hswap amov r6,a;高位mov a,r5anl a,#0fhmov r7,a;低位clr cmov a,r6subb a,#0ahjc l1mov a,r6add a,#37hmov r6,asjmp nextl1: mov a,r6add a,#30hmov r6,anext: clr cmov a,r6subb a,#0ahjc l2mov a,r7add a,#37hmov r7,asjmp herel2: mov a,r7add a,#30hmov r7,ahere: sjmp hereend四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)基本要求:扩展要求:五.结论通过本实验,对单片机的使用有了更加透彻的理解,为以后基于汇编的单片机程序开发打下坚实的基础。

MCS-51单片机实验4-1拆字与拼字程序

MCS-51单片机实验4-1拆字与拼字程序

A只CC是BCD 码,每个
数字不会超过0808039H,可
2以0不H 用屏蔽0,8直H 接相
加,实验中的程序,
21H 03H
适合0至F所有十六进
2制2数H 的拆解8与3拼H合。
B
0003HH
实验一、拆字与拼字程序
【实验目的】
掌握顺序结构程序设计方法 掌握数字的拆解与拼合方法(含BCD码)
【接线方式】
暂无
实验一、拆字与拼字程序
【实验内容及要求】
编写程序,实现以下功能 1、将片内RAM的20H内容拆开,高位送21H,低 位送22H。 编写程序, 2、将20H的低位、21H的低位送22H的高位、低 位。
【实验流开程始图】
(20H)送A,
A内数据高低 四位交换
屏蔽高四位保 留低四位
A送21H
(20H)送A 屏蔽高四位保
留低四位
A送22H
结束
开始 (20H)送
A, A内数据屏蔽高四
位保留低四位 A内数据高低
四位交换
A送B
(21H)送A
屏蔽A高四位 保留低四位
A加B送A
A加B送A
结束
【程序代码及运行结果 拆字程序】
ORG 0000H MOV A,20H
ACC
SWAP A
ANL A,#0FH MOV 21H,
20H
A MOV A,20H
21H
ANL A,#0FH
22H
MOV 22H,A
803388HH
83H
08H 03H
SJMP $
【程序代码及运行结果 拼字程序】
ORG
0000H
MOV A,20H
ANL A,#0FH

单片机软件实验1-清零实验

单片机软件实验1-清零实验

:学号:班级:同组人:指导老师:报告日期:软件设计实验1:清零实验➢实验目的:掌握汇编语言设计和调试方法。

➢实验容:使用AT89C52单片机对单片机部RAM进行清零操作,实验容如下:1.把 90H-AFH的容置为#55H;2.把90H-9FH的容清零。

➢实验问答:1.清零之后,90H-9FH的容是什么?A0H-AFH的容是什么?答:90H-9FH容:00H;A0H-AFH:#55H================================================$NOMOD51$INCLUDE (80C52.MCU);============================================== =; DEFINITIONS;============================================== =;============================================== =; VARIABLES;============================================== =;============================================== =; RESET and INTERRUPT VECTORS;============================================== =; 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,#00H Loop:jmp Loop;============================================== =ENDINC R1DJNZ R2,CLR0; Write your code here:学号:班级:同组人:指导老师:报告日期:软件设计实验2:拆字拼字实验➢实验目的:进一步掌握汇编语言设计和调试方法。

实验报告--拆字

实验报告--拆字

实验报告--拆字微机原理实验报告一.实验内容拆字实验。

把片外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.撰写报告:丁娜、潘丽伊。

《单片微机原理及应用》实验参考程序(32页)

《单片微机原理及应用》实验参考程序(32页)

《单片微机原理及应用》实验参考程序杭州电子科技大学电子信息学院张学超编写(使用达爱思Dais-80958B单片机实验开发系统)一、软件实验参考程序软件实验一清零程序Array ;将2000H-20FFH的内容清零SS01: CLR AMOV DPTR, #2000HMOV R7, #0FFHCLR0: MOVX @DPTR,AINC DPTRDJNZ R7, CLR0CLR1: SJMP CLR1 ; SJMP $软件实验二拆字程序;把2000H的内容拆开,高4位送2001H的低4位,低4位清零。

SS02: MOV DPTR, #2000HMOVX A, @DPTR ;取数MOV B, A ;暂存该数SW AP A ;高低半字节交换ANL A, #0FH ;屏蔽高4位INC DPTRMOVX @DPTR,A ;原数高半字节送2001HMOV A, B ;取回原数ANL A, #0FH ;屏蔽高4位INC DPTRMOVX @DPTR,A ;原数低半字节送2002HSJMP $软件实验三拼字程序;把2000H和2001H的低4位分别送入2002H的高低4位。

SS03: MOV DPTR, #2000HMOVX A, @DPTR ;取第一个半字节ANL A, #0FH ;屏蔽高4位SW AP A ;高低半字节交换MOV B, A ;暂存该数INC DPTRMOVX A, @DPTR,;取第二个半字节ANL A, #0FH ;屏蔽高4位ORL A, B ;两个半字节拼成一个字INC DPTRMOVX @DPTR,A ; 拼好的字送2002HSJMP $软件实验四数据区传送子程序;把R2R3为源RAM区首址内的R6R7字节数据传送到R4R5为目的RAM区。

SS04: MOV DPH, R2MOV DPL, R3 ;取源地址指针MOVX A, @DPTR ;取数据INC DPTR ;源地址指针+1MOV R2, DPHMOV R3, DPL ;保存源地址指针MOV DPH, R4MOV DPL, R5 ;取目的地址指针MOVX @DPTR, A ;存数据INC DPTR ;目的地址指针+1MOV R2, DPHMOV R3, DPL ;保存目的地址指针CLR CMOV A, R7SUBB A, #1MOV R7, AMOV B, A ;暂存16位字节数低字节MOV A, R6SUBB A, #0MOV R6, A ;字节数减一:(R6R7)← (R6R7)−1ORL A, B ;(R6R7)=0?JNZ SS04 ;未完继续传送RETSS04C: MOV R3, #00HMOV R2, #20H ;指定源地址为MOV R5, #00HMOV R4, #30H ;指定目的地址为3000HMOV R7, #00HMOV R6, #01H ;传送字节数为100HLCALL SS04 ;从2000H开始向3000H开始的地址区传送100H个数据SJMP $软件实验五数据排序实验;把8051中RAM 50H-5AH中放入不等的数据,运行本实验程序后检查50-5AH中内容是否按从小到大排列。

实验一拆字程序

实验一拆字程序

实验一拆字程序一、实验目的1、掌握汇编语言设计和调试方法,熟悉键盘操作2、初步了解汇编语言的环境和使用3、熟悉MCS51仿真开发系统的调试和使用二、实验仪器PC机一台、单片机实验开发箱、MCS51仿真开发系统三、实验原理程序框图开始(2000)送A,A送B交换高低位,屏蔽高位,存入(2001H)B送A, 屏蔽高位,存入(2002H)结束首先把指令右边的值赋给左边用户定义的A,在把2000H拆开,高位送2001H程序存储器,低位送2002H程序存储器,2001H、2002H高位清零,最后在数据在显示缓冲区显示改变。

把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。

四、实验内容及步骤用连续或单步方式运行程序,检查2000—2002H中内容变化情况。

1)打开MCS51仿真开发系统,编写好程序,保存、编译正确后进入调试界面。

2)打开存储器窗口,观察(2000)与A中的数值。

3)单步调试观察并记录寄存器(2001)与(2002)的变化。

判断程序是否正确。

若发现问题重返编辑界面,修改、存盘、汇编。

返回调试界面调试通过。

4)设断点调试、记录结果。

ORG 0660HSE02: MOV DPTR,#2000HMOVX A,@DPTRMOV B,A ;(2000)→A→BSWAP A ;交换ANL A,#0FH ;屏敝高位INC DPTRMOVX @DPTR,A ;送2001HINC DPTRMOV A,BANL A,#0FH ;(2000)内容屏敝高位 MOVX @DPTR,A ;送2002HSJMP $END五、实验结果及数据处理:外部存储区第一次运行2 3 4 5 6 7 8 92000H 34H 0F5H 79H 8AH 0C8H 05H 32H 78H 9DH2001H 03H 0FH 07H 08H 0CH 00H 03H 07H 09H2002H 04H 05H 09H 0AH 08H 05H 02H 08H 0DH六、实验结果分析及问题讨论:(1)观察程序执行前后相关寄存器和存储单元内容的变化。

实验报告格式1-拆字、拼字实验

实验报告格式1-拆字、拼字实验

单片机原理及应用实验报告实验项目名称:拆字、拼字实验实验日期:2012年11月26日实验成绩:实验评定标准:1)实验结果是否正确A()B()C()2)实验结果分析A()B()C()3)实验报告是否按照规定格式A()B()C()一、实验目的掌握汇编语言的设计和调试方法,掌握拆字和拼字的程序编写方法。

二、实验器材PC一台keil软件一套三、实验内容把7000H的内容拆开,高位送到7001H低位,低位送7002H低位,7001H、7002H高位清零,把7000H、7001H的低位相拼后,送入7002H中。

拆字程序如下:MOV DPTR,#7000HMOV A,#68HMOVX @DPTR,AMOVX A,@DPTRANL A,#0F0HSW AP AINC DPTRMOVX @DPTR,AMOV DPTR,#7000HMOVX A,@DPTRANL A,#0FHMOV DPTR,#7002H MOVX @DPTR,A拼字程序:LJMP MAINMAIN: MOV 50H,#20H MOV 51H,#16HMOV 52H,#10HMOV 53H,#2AHMOV 54H,#29HMOV 55H,#06HMOV 56H,#1AHMOV 57H,#0EHMOV 58H,#0ACHMOV 59H,#03HMOV 60H,#01HMOV R0,#50HMOV R3,#9HLP0: CLR 7FHMOV A,R3MOV R2,AMOV R0,#50HLP1:MOV 20H,@R0 MOV A,@R0INC R0MOV 21H,@R0CLR CSUBB A,21HJC LP2MOV @R0,20HDEC R0MOV @R0,21HINC R0SETB 7FHLP2:DJNZ R2,LP1JNB 7FH,LP3DJNZ R3,LP0LP3:SJMP $END四、实验结果拆字实验结果:拼字实验结果五、实验结果分析拆字实验调试程序时,单步运行到BP1,观察到7000H和A单元中内容是68,单步运行到BP2,观察到7001H单元中内容为6,单步运行到BP3,观察到内容为8。

单片机实验报告_拆字程序

单片机实验报告_拆字程序

第二步:获取2000H中的高四位放到2001H中第二步:获取2000H中的低四位放到2002H中五、思考1、如何用断点方式调试本程序。

2、将程序中的汇编语言中每条单步执行的指令阐述出来。

ORG 0000H ;程序从ROM区地址为0000H处开始放置LJMP SE02 ;长跳转到SE02程序段ORG 0660H ;程序从ROM区地址为0660H处开始放置 SE02: MOV DPTR, #2000H ;调整DPTRMOV A, #0A5H ;A5H放置至A中MOVX @DPTR, A ;A5H放置至RAM区地址为2000H的存储单元MOVX A, @DPTR ;取出RAM区地址为2000H的存储单元中的数据放置A中MOV B, A ;A中的数据备份到B中SWAP A ;A中的数据进行高低四位交换ANL A, #0FH ;将A中的高四位过滤,保留低四位INC DPTR ;DPTR值增一MOVX @DPTR, A ;将RAM区2000H中数据的高四位存放到RAM区地址为2001H的存储单元INC DPTR ;DPTR值增一MOV A, B ;恢复A中的值ANL A, #0FH ;将A中的高四位过滤,保留低四位MOVX @DPTR, A ;将RAM区2000H中数据的低四位存放到RAM区地址为2002H的存储单元LOOP: SJMP LOOP ;循环等待END ;程序编码结束六、程序清单 (sw02.asm)ORG 0000HLJMP SE02ORG 0660HSE02: MOV DPTR, #2000HMOV A, #0A5HMOVX @DPTR, AMOVX A, @DPTRMOV B, ASWAP AANL A, #0FHINC DPTRMOVX @DPTR, AINC DPTRMOV A, BANL A, #0FHMOVX @DPTR, ALOOP: SJMP LOOPEND七、实验小结解:通过本实验,对单片机的RAM与ROM的使用有了更加透彻的理解,为以后基于汇编的单片机程序开发打下坚实的基础。

《单片机技术及其应用应用》实验指导书(新)

《单片机技术及其应用应用》实验指导书(新)

目录实验一开发板的基本操作与应用软件的使用 (1)实验二指令系统实验 (4)实验三汇编程序设计实验 (7)实验四键盘显示实验 (9)实验五外部中断实验 (11)实验六定时/计数器实验 (13)实验七串行口通信实验 (16)实验八模数、数模转换实验 (17)实验一开发板的基本操作与应用软件的使用一、实验目的(1)了解并熟悉开发板软、硬件,掌握开发板的基本操作;(2)重点掌握程序下载方法以及Keil C软件的使用;(3)掌握在开发板上调试程序的方法。

二、实验内容(1)开发板使用说明1.软件下载:打开STC-ISP软件,按照下图设置好对应的参数,将要下载的文件加载到软件当中,点击DownLoad,再出现“仍在连接中。

”,这时给开发板上电,几秒钟将程序下载到MCU中,下载完成后程序运行。

下图为下载完成后的图示。

2硬件结构说明:ISP下载口,实验开发板上开放出的ISP下载接口,可以兼容AT系列单片机下载功能,用户可以根据自己的需要制作下载器,或用同样线序的下载器下载。

本实验配备的是STC系列下载电路及下载线。

实验板供电部分:实验板采用了典型取电模式USB供电,而且提供了外接电源接口。

用户可以根据自己需要选择电源的供电。

3流水灯连接电路注意跳线J9-LED发光二极管供电,其中蜂鸣器共用P10口。

低电平时LED点亮,高电平时LED熄灭。

(2)流水灯实验程序内容:循环点亮P1口对应的8个LED灯,造成循环流水点亮的效果汇编语言:ORG 0000HMOV P1,#0FFHMOV A,#0FEHNEXT: MOV P1,AACALL DEYRL ASJMP NEXTDEY: MOV R3,#00H ;延时子程序LOOP: MOV R4,#00HDJNZ R4,$DJNZ R3,LOOPRETENDC语言编程:#include<reg52.h>void delay(unsigned int cnt){while(--cnt);}main(){P1=0xfe; //给初始化值换算成二进制是1111 1110 while(1) { delay(30000);//延时程序P1<<=1; //左移一位该语句等效于 P1=P1<<1P1|=0x01; //最后一位补1,该语句等效于 P1=P1|0x01 符号"|"表示"或"if(P1==0x7f) //检测是否移到最左端?"=="表示检测符号2端的值是否相等 {delay(30000);P1=0xfe; //重新赋值}}}三、主要实验仪器(1)单片机开发板、(2)安装有Keil软件的计算机实验二指令系统实验一、实验目的(1)掌握单片机的寻址方式;(2)掌握传送类指令的使用;(3) 掌握算数逻辑运算类指令的使用;(4)掌握跳转类指令的使用;(5)掌握位操作指令的使用。

单片机实验报告概要

单片机实验报告概要

微控制器技术实验报告专业班级:学号:姓名:指导老师:时间: 2014.04目录一、实验目的及要求 (1)二、实验基本内容 (1)三、实验设备 (5)四、实验设计思想和结果分析 (8)4.1清零程序与拆字程序设计 (8)4.2拼字程序与数据传送程序 (10)4.3 排序程序与散转程序 (12)4.4 数字量输入输出实验 (14)4.5定时器/计数器实验 (16)4.6 A/D、D/A转换实验 (22)4.7 串行通讯实验 (31)五、结束语 (40)一、实验目的及要求:1、学习Keil C51集成开发工具的操作及调试程序的方法,包括:仿真调试与脱机运行间的切换方法;2、熟练使用SST89C554RC单片机核心板及I/O扩展实验系统;3、熟练掌握在Keil C51与Proteus仿真软件虚拟联机环境下,基于51单片机控制器数字接口电路的硬件、软件设计与功能调试;4、完成MCS51单片机指令系统软件编程设计和硬件接口功能设计题;二、实验基本内容(TD-51单片机实验系统实现)实验一清零程序与拆字程序设计根据实验指导书之“第二章单片机原理实验”(P17~P23页)内容,熟悉实验环境及方法,完成思考题1、2(P23)基础实验项目。

实验二拼字程序与数据传送程序设计汇编语言完成实验指导书P24思考题3、4题的基础实验项目。

实验三排序程序与散转程序设计汇编语言完成实验指导书P24思考题5、6题的基础实验项目。

实验四数字量输入输出实验基本部分:阅读、验证C语言程序功能。

使用汇编语言编程,完成实验指导书之“3.1 数字量输入输出实验”基本实验项目(P36),。

提高部分:(任选一题)题目一:LED交通灯控制(使用8255接口芯片)要求:使用汇编语言编程,功能为:通过开关实现LED灯工作方式即时控制,完成LED交通灯的开关控制显示功能和LED交通灯自动循环显示功能。

题目二:LED灯控制(使用8255接口芯片)要求:使用汇编语言编程,功能为:通过KK1实现LED灯工作方式即时控制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一拆字程序
1 实验名称拆字程序
2 实验目的
掌握汇编语言测试和调试方法。

3 实验内容
把7000H的内容拆开,高位送7001H的低位,低位送7002H的低位,7001H、7002H高位清零,本程序应用于把数据送显示缓冲区。

4 硬件连线
5 实验步骤
(1)PC机
开始菜单程序51JH实验系统DVCC实验系统,进入实验界面。

选中本次实验名称,查看实验目的、内容、硬件连线、步骤。

输入源程序,编译、联接、运行实验程序。

(2)DVCC实验系统
①先用存储器读写方法将7000H单元内容置成34H。

按复位键,显示P.,输入7000H,按MEM键,输入34。

②用单步、断点或连续执行程序的方法从其始地址0050H开始运行程序(输入0050后按
STEP为单步,按EXEC为连续)。

按RESET后,显示P.,输入0050,按EXEC
③按MON键或RESET键退出。

④检查7001H、7002H单元中的内容应为03H、04H。

输入7000H,按MEM键,显示03,按NEXT显示04。

6 实验程序
ORG 0050H
CWORD: MOV DPTR,#7000H
MOVX A,@DPTR
MOV B,A
SW AP A
ANL A,#0FH
INC DPTR
MOVX @DPTR,A
INC DPTR
MOV A,B
ANL A,#0FH
MOVX @DPTR,A
CWORD1: SJMP CWORD1
END
7 实验拓扑
修改源程序,实现将把3000H的内容拆开,高位送3001H的低位,低位送3002H的低位,7001H、7002H高位清零。

用存储器读写方法将3000H单元内容置成76H。

8 实验结果分析
向存储器7000H单元写入34H,执行程序,检查拆字后7001H、7002H单元中的内容为03H、04H。

向存储器3000H单元写入76H,执行程序,检查拆字后7001H、7002H单元中的内容为07H、06H。

相关文档
最新文档