单片机实验一、查表程序(MOVC A,@A DPTR)

合集下载

实验一、查表程序(MOVC A,@A+DPTR)

实验一、查表程序(MOVC  A,@A+DPTR)

实验名称:一、查表程序日期:2011.4.24得分:同组人:(不填)指导教师:马惠兰一、实验目的1.熟悉Keil uvision3单片机仿真软件的使用方法。

2.熟练掌握单片机实验操作步骤。

3.熟练掌握用MOVC A , @A+DPTR和MOVC A , @A+PC进行查表的程序设计方法和编程技巧。

4.掌握Keil uvision3对寄存器和SFR赋值和查看数据的命令和方法。

二、实验设备PC机一台三、实验内容根据累加器A中的自变量,查表求1~20的平方数,平方高位数存放在寄存器R6中,平方低位数存放在寄存器R7中。

四、实验原理本次实验采用查表指令MOVC A , @A+DPTR实现上述字数据查表。

因为最大的自变量20的平方数是400,为了查表后验证方便,自变量1~20对应的平方数用伪指令DW定义,并且定义为压缩BCD码。

查表指令MOVC A , @A+DPTR只能进行字节查表,要查找一个字数据,必须进行两次查表。

利用指令MOVC A , @A+DPTR查表,表可以存放在任何位置,查表前只需要将表的首地址用MOV指令送DPTR、累加器A中必须是要查找数据在表中的偏移地址即可,查找到的数据存放在累加器A中。

编程时,首先将表的首地址送DPTR,累加器A中的自变量减1形成要查找数据在表中的序号,序号乘2得到表内偏移地址,将该偏移地址暂存到寄存器R6中,用MOVC A , @A+DPTR指令进行第一次查表,得到该自变量的平方高8位在累加器A 中,并与R6进行交换,这样查找的平方高位数存放在寄存器R6中,累加器A中是第一次查表时的表内偏移地址;累加器A再加1,得到要查找的平方低位数在表内的偏移地址,再用MOVC A , @A+DPTR指令进行第二次查表,累加器A得到该自变量的平方低8位,送寄存器R7。

据此实验原理编写的实验源程序清单见附页。

五、实验步骤1.在F盘下为工程建立文件夹张三1;2.新建工程项目文件张三1.uv2,保存在文件夹张三1中,并为工程选择目标器件为AT89S52;3.编辑源程序,建立源文件张三1.ASM,保存在文件夹张三1中;4.将源文件张三1.ASM添加到工程项目组中;5.设置调试环境,选择调试模式为软件模拟;6.加载运行程序,根据预先设计的数据记录表格记录实验数据;7.实验数据经过实验指导教师检查正确后,实验结束。

8051软件实验4 查表及散转实验

8051软件实验4 查表及散转实验

软件实验4 查表及散转实验1.实验目的1)掌握查表指令的使用方法和查表程序设计;2)理解并能运用散转指令进行程序设计。

2.预习要求1)了解近程和远程两条查表指令的功能和特点;2)了解多分支结构程序的编程方法,以及根据数值实现散转的方法;3)预习本节实验内容,编写实验程序。

3.实验说明运用查表指令设计查表程序,可以使微控制器方便地实现一些复杂函数(如sin x、x+x2)等的运算。

先把函数值按一定规律编成表格存放在程序存储器中,根据自变量就可以查表得到函数值。

这种方法程序简单,执行速度快。

1)查表指令近程查表指令:MOVC A,@A+PC该指令以PC作为基址寄存器,PC的内容和A的内容相加后指向表格中某个数值的地址,从该地址中的数值即为要查找的数送入累加器A。

近程查表指令不占用其它特殊功能寄存器,A的范围是0~255,该指令只能查找本指令后的256B范围内的表格,因此表格的存放空间受到限制。

远程指令:MOVC A,@A+DPTR该指令以DPTR为基址寄存器,DPTR的内容和A的内容相加后指向表格中某个数值的地址,从该地址中的数值即为要查找的数送入累加器A。

DPTR总是设置指向表头,表格的存放空间可以是64KB范围内的任意ROM中,A的范围是0~255,表格的长度与近程查表指令相同。

2)查表程序设计在微控制器应用系统中,查表程序使用频繁。

利用它可避免进行复杂的运算或转换过程,应用比较广泛。

查表就是根据自变量x的值,在表中查找y,使y=f(x)。

x和y可以是各种类型的数据,微控制器中的表格通常是一维表格。

表格通常存放在程序存储器中。

3)散转程序设计根据不同的输入条件或不同的运算结果,使程序转向不同的处理程序,称之为散转程序。

散转程序是分支结构程序的一种。

散转程序需要一个表,但表中所列的不是普通数据,而是某些功能程序的入口地址或转向这些功能程序的转移指令。

8051微控制器中用JMP @A+DPTR指令实现程序散转,它是一条单字节转移指令,转移的目标地址由A中8位无符号数与DPTR的16位数内容之和来确定,DPTR内容为基址,A的内容为变址。

单片机汇编实验程序

单片机汇编实验程序

实验一;1、把R1中内容传送至R0中org 0000hmov r1,#22hmov a,r1mov r0,a;2、把内部数据存储器20H单元中的内容传送至内部数据存储器30H单元中mov 20h,#33hmov 30h,20h;3、把外部数据存储器20H单元中的内容传送至内部数据存储器20H单元中mov dptr,#20hmov a,#66hmovx @dptr,aclr amovx a,@dptrmov 20h,a;4、把外部数据存储器20H单元中的内容传送至内部数据存储器20H单元中mov dptr,#2000hmovx @dptr,aclr amovx a,@dptrmov 20h,a;5、把外部程序存储器2000H单元中的内容传送至内部数据存储器20H单元中mov dptr,#2000hclr amovc a,@a+dptrmov 20h,asjmp $org 2000htab: db 88hend6.把外部数据存储器2050H单元、2060H单元中的内容相互交换。

mov dptr,#2050hmov a,#55hmovx @dptr,amov dptr,#2060hmov a,#66hmovx @dptr,aclr amovx a,@dptrpush accmov dptr,#2050hmovx a,@dptrmov dptr,#2060hmovx @dptr,apop accmov dptr,#2050hmovx @dptr,a;8、应用MOVC A,@A+dptr指令求累加器A的平方值Y(设Y<=255),并把结果送至R7中保存。

org 0000hljmp mainorg 0030hmain: mov a,#3h ;查3的平方值mov dptr,#tab ;指向平方表的表头movc a,@a+dptr ;查表指令sjmp $tab:db 0,1,4,9,16,25,36,47,64,81,100,121,144,169,196,255;平方表end;实验二;1、将(R2R3)和(R4R5)中的双字节无符号数相加,结果存放在40H和41H单元中。

单片机实训报告

单片机实训报告

前言随着社会的进步,人们的发展水平逐渐提高,单片机技术已经成为我们生活的一部分。

随着时代的发展,单片机已经为现代人工作、科研、生活、提供更好的更方便的设施,一切都已向着数字化控制,智能化控制方向发展。

通过本次的实习,使我们进一步的理解了我们学到的理论知识,巩固和深化了单片机的基本认识,提高了单片机应用技术的实践操作技能,掌握单片机的应用系统设计的一般方法。

本次实习培养我们利用单片机进行科研技术革新,开发和创新的基本能力,为毕业从事与单片机有关的事业打下了一定的基础。

本次设计的总体就是利用Protuse软件以及keil软件进行基础的认识,学会对单片机系统的设计及仿真,并能学会自主对单片机进行设计和仿真。

本次实习主要进行了两个设计并对其进行了扩展:单片机控制步进电动机以及数字温度计设计。

虽然仅仅是两个基本设计,但从中我们也获益无穷,正说为只有基础稳定,我们才能站的更高,看的更远,学到跟多的知识。

本人水平有限,编写过程中难免有错误之处,希望老师能给与批评指导。

一实习中常用软件1.Proteus 7 Professional软件Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

Proteus是世界上著名的EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB 设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB 等多种编译器。

2.1Proteus 7 Professional基本概念2.1.1 功能特点Proteus软件具有其它EDA工具软件的功能。

《单片机应用技术》答案

《单片机应用技术》答案

《单片机应用技术》习题答案第一章1-1选择1.计算机中最常用的字符信息编码是( A )A ASCIIB BCD码C 余3码D 循环码2.要MCS-51系统中,若晶振频率屡8MHz,一个机器周期等于(A ) μsA 1.5B 3 C3.MCS-51的时钟最高频率是( A ).A 12MHzB 6 MHzC 8 MHzD 10 MHz4.以下不是构成的控制器部件(D ):A 程序计数器、B指令寄存器、C指令译码器、D存储器5.以下不是构成单片机的部件(D )A 微处理器(CPU)、B存储器C接口适配器(I\O接口电路) D 打印机6.下列不是单片机总线是(D )A 地址总线B 控制总线C 数据总线D 输出总线7.-49D的二进制补码为.( B )A 11101111B 11101101C 0001000D 111011008.十进制29的二进制表示为原码(C )A 11100010B 10101111C 00011101D 000011119. 十进制0.625转换成二进制数是( A )A 0.101B 0.111 C10 选出不是计算机中常作的码制是( D )A 原码B 反码C补码 D ASCII1-2填空题原码、反码和补码000111013.十进制数-29的8位补码表示为.11100011CPU、存储器和I\O接口三部分组成.EA必须接地.6.输入输出设备是计算机与外部世界交换信息的载体..110100018.-49D的二进制补码为.11101101ASCII10.计算机中的数称为机器数,它的实际值叫真值。

1-3判断题1.我们所说的计算机实质上是计算机的硬件系统与软件系统的总称。

(√)2.MCS-51上电复位时,SBUF=00H。

(×)。

SBUF不定。

3.使用可编程接口必须处始化。

(√)。

4.8155的复位引脚可与89C51的复位引脚直接相连。

(√)5.MCS-51是微处理器。

(×)不是。

单片机课程设计60秒倒计时

单片机课程设计60秒倒计时

单片机课程设计60秒倒计时前言在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。

现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。

单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。

但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。

从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程序)方法实现了。

这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。

微控制技术是一种全新的概念,是对传统控制技术的一次革命。

随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。

近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

模拟多通道压力系统是利用压力传感器采集当前压力并反映在显示器上,它可以分析压力过量程,并发出报警。

并采用电子秤原理可根据输入单价准确的计算出物体的金额。

本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的四位LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。

第一章方案论证1.1课程设计的目的和要求1.目的课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。

进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不可少的,是非常必要的。

微机原理(单片机汇编)实验报告

微机原理(单片机汇编)实验报告

软件实验报告软件实验一一、实验目的1.熟悉软件实验的基本步骤和汇编程序的调试方法;2.了解内存块的移动方法;3.了解将十六进制数转换成ASCII值的方法。

二、实验原理用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。

三、实验内容及步骤1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。

打开CPU窗口,观察CPU窗口各寄存器的变化。

打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。

在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。

2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。

打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。

3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。

4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。

5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。

四、实验结果1.步骤1的结果为8000H-80FFH的内容都为1.2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。

查表程序设计例题

查表程序设计例题

查表程序设计例题(MOVC A,@A+DPTR; MOVC A,@A+PC)的应用西电出版社张毅坤《单片微型计算机原理与应用》P95~98例6:设有一巡检报警装置,需要对16路值进行比较,当每一路输入值超过该路的报警值时,实现报警。

要求编制一个查表子程序,依据路数Xi,查表得Yi的报警值。

解:Xi为路数,查表时按照O,1,2,…,15取值,故为单字节规则量。

表格依Xi顺序列表,仅存二字节报警值Yi,其表格构造见表3—4。

程序入口:(R2)=路数Xi。

程序出口:(R4 R3)=对应Xi的报警值Yi。

查表子程序如下:STAl:MOV A, R2 ;路数xi送ARL A ; Xi×2MOV R4, A ;暂存ADD A,#TABL(rel) ;加上表首偏移量MOVC A,@A+Pc ;查Yi第一字节 XCH A,R4 ;第一字节送R4ADD A,#TABL(rel)+1 ;形成第=字节表址MOVC A,@A+Pc ;取Yi第二字节MOV R3, A ;第二字节送R3RETTAB2:DW 050FH,OE89H,A695H,1EAAH ;报警值表 DW 0D9BH,7F93H,0373H,26D7HDW 2710H,9E3FH,1A66H,22E3HDW 1174H,16EFH,33E4H, 6CAOH上述查表程序中使用RL A使(A)乘2,这是由于DW定义的是双字节空间,为了保证指向正确的查表地址,所以要进行乘2处理。

另外,程序中使用MOVC A,@A+PC指令,使表格偏移不得超过255个字节。

当表格偏移大于255个字节时,应使用MOVC A,@A+DPTR查表指令。

例7:自变量xi为双字节规则量,函数值yi也为双字节数,对应xi依次存于表首地址为#TABL的表格中。

表格构造见表3—5。

编制一个查表程序,将查得的函数值yi存入R4、R3中。

解:入口:(R3R2)=由其它程序得到的xi规则量,即:xi=0000H,O0OlH,0002H,…出口:(R5 R4)=依据xi查得的函数值yi。

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