单片机软件实验报告

合集下载

单片机实验报告一 单片机软件实验

单片机实验报告一 单片机软件实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.9 实验成绩:实验一单片机软件实验(一)实验目的1.掌握51单片机keil软件集成开发环境,能够使用汇编语言编写应用程序。

2.掌握使用集成开发环境Keil进行单片机程序开发的方法3.掌握使用集成开发环境Keil进行单片机程序跟踪调试的方法。

(二)设计要求熟悉51单片机的keil软件集成开发环境,使用汇编语言编写“1+2+3+…+100”的程序。

(三)实验原理KeilC51软件使用:在KeilC51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。

(四)实验设备PC机,Keil C51集成开发环境。

(五)实验结果对汇编程序进行编译、链接、调试,在Keil C51软件中运行仿真结果如下图所示,由于“1+2+……100”运行结果超过8位二进制所能表示的范围,计算结果将存放于两个8位工作寄存器单元R2、R3中。

其中,低八位存放于R2中,高八位存放于R3中,R4中存放计算数。

下图中的寄存器窗口中可以显示计算结果为0x13ba。

调出存储器窗口Memory:选择菜单命令View →Memory Window →Memory 1:可见计算结果存放于当前工作寄存器R2(02H)与R3(03H)中,为0x13BA。

(六)结果讨论与心得体会第一次使用Keil C51软件,初步了解了软件:Keil uVision4的使用方法,初步了解了Keil软件中程序的编辑,新工程的建立运行,初步对单片机实验进行了解,加强了实验动手操作能力。

第一次尝试单步调试,能观察到内存中每一个单元的变化,感到单片机系统复杂中的严谨,收获颇丰。

(七)附录:实验源代码实验源代码如下:ORG 0000HLJMP MAINORG 0050H MAIN:MOV R2,#00HMOV R3,#00HMOV R4,#64HMOV A,#00HCLR C LOOP:MOV A,R2ADD A,R4MOV R2,AMOV A,#00HADDC A,R3MOV R3,ADJNZ R4,LOOPSJMP $END。

proteus单片机实验报告

proteus单片机实验报告

proteus单片机实验报告
Proteus单片机实验报告
一、实验目的
本次实验旨在通过Proteus单片机仿真软件,探索单片机的基本原理和应用,加深对单片机工作原理的理解,提高对单片机编程的熟练程度。

二、实验内容
1. 搭建单片机电路
在Proteus中选择合适的单片机模型,搭建基本的单片机电路,包括单片机、晶振、电源等。

2. 编写程序
利用Proteus提供的编程环境,编写简单的单片机程序,如LED灯闪烁、数码管显示等。

3. 仿真调试
通过Proteus的仿真功能,调试程序,观察单片机在仿真环境下的运行情况,检查程序是否正常运行。

三、实验步骤
1. 打开Proteus软件,选择合适的单片机模型,搭建单片机电路。

2. 编写简单的单片机程序,如让LED灯交替闪烁。

3. 在Proteus中进行仿真调试,观察程序运行情况。

四、实验结果
通过实验,我们成功搭建了单片机电路,并编写了简单的程序。

在Proteus的仿真环境下,LED灯按照设定的程序交替闪烁,证明程序正常运行。

五、实验总结
通过本次实验,我们加深了对单片机的理解,掌握了在Proteus中搭建单片机电路、编写程序并进行仿真调试的基本方法。

同时,也提高了对单片机编程的熟练程度。

总之,Proteus单片机实验为我们提供了一个良好的学习平台,使我们能够更好地理解单片机的工作原理和应用,为以后的学习和实践打下了坚实的基础。

希望通过不断地实践和探索,能够更深入地理解单片机的原理,并在实际应用中发挥其巨大的作用。

单片机实验报告

单片机实验报告

单片机实验报告一、实验目的本次单片机实验的主要目的是通过实际操作和编程,深入了解单片机的工作原理和应用,掌握单片机系统的设计、开发和调试方法,提高自身的动手能力和解决问题的能力。

二、实验设备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 引脚。

单片机实验报告

单片机实验报告

单片机实验报告单片机是一种集成电路,具有计算能力、控制能力和通信能力,广泛应用于各个领域。

本次实验是使用单片机进行LED灯控制的实验。

实验目的是了解单片机的基本原理和操作方法,掌握单片机控制LED灯的方法。

实验器材有STM32F103C8T6单片机、面包板、杜邦线、LED灯等。

实验过程如下:1. 准备工作:将单片机和LED灯连接在面包板上,连接好电源。

2. 打开Keil MDK软件,创建新工程,设置好芯片型号和工作频率。

3. 编写程序代码:在程序编辑窗口中编写相关代码,实现控制LED灯亮灭的功能。

代码主要包括引用头文件、引用库、定义引脚等内容。

4. 编译和下载:完成代码编写后,点击编译按钮进行编译,生成可执行文件。

将可执行文件下载到单片机中。

5. 运行实验:将单片机连接至电源,观察LED灯的亮灭情况。

根据代码的设置,单片机会控制LED灯的亮度和闪烁频率。

实验结果如下:通过实验,我们成功地控制了LED灯的亮灭。

根据设定的代码,单片机可以实现不同的控制灯光效果,如常亮、闪烁、呼吸灯等。

此外,可以通过修改代码来实现不同的灯光效果。

实验总结如下:通过本次实验,我对单片机的原理和操作方法有了更深入的了解。

学会了如何利用单片机控制LED灯,熟悉了编写程序代码的过程。

此外,我还学会了如何使用Keil MDK软件进行单片机开发。

单片机作为一种重要的微处理器,具有广泛的应用前景。

通过掌握单片机的工作原理和操作方法,我可以在实际应用中使用单片机进行各种控制和计算任务。

本次实验的不足之处是实验过程较为简单,仅涉及到LED灯的控制,对单片机的其他功能了解较少。

在以后的学习中,我将进一步深入学习单片机的原理和应用,提高自己的技术水平。

通过本次实验,我对单片机有了初步的了解,对以后学习和实践单片机相关的内容打下了坚实的基础。

单片机实验报告

单片机实验报告

单片机实验报告引言:单片机是一种集成了处理器、存储器和输入输出设备的微型计算机,广泛应用于电子设备中。

本实验通过对单片机的学习和实践,探索了其原理和应用。

一、实验目的本次实验的目的是熟悉单片机的基本原理和操作方法,掌握单片机的编程语言和开发工具,实现简单的实时控制和数据采集。

二、实验装置及材料1. 单片机:我们选择了常用的51系列单片机,拥有较好的性能和兼容性。

2. 开发板:用于实验中运行和调试所写的程序。

3. 传感器:温度传感器、光照传感器等,用于实现数据采集。

4. LED灯和蜂鸣器:用于实现实时控制和输出。

5. 连接线:将单片机与传感器、开发板等连接起来。

三、实验过程和结果1. 单片机的编程语言:单片机主要使用汇编语言和C语言进行编程。

汇编语言能够直接操作硬件资源,灵活性较高;而C语言则更易于理解和编写,可提高开发效率。

我们选择了C语言进行编程。

2. 开发工具:为了编写和调试单片机程序,我们使用了KeilC51和Proteus软件进行开发。

Keil C51提供了编译器和调试器,可对程序进行编译和调试;Proteus能够模拟开发板的运行情况,方便我们验证程序的正确性。

3. LED控制实验:我们首先进行了LED控制实验,通过单片机的I/O口来控制LED的开灭。

编写程序后,在开发工具中进行仿真,确保程序和电路无误后,将程序下载到单片机上进行实际运行。

实验结果显示,当程序指定LED灯为高电平时,LED灯亮起;当程序指定为低电平时,LED灯熄灭。

4. 数据采集实验:接下来,我们进行了数据采集实验,利用温度传感器和光照传感器采集环境温度和光照强度。

将传感器与单片机连接后,编写相应程序进行数据读取。

实验结果显示,我们能够通过单片机读取到精确的温度和光照数值。

5. 实时控制实验:为了验证单片机的实时控制能力,我们使用蜂鸣器进行了实时报警实验。

通过编写程序,设置蜂鸣器的开关状态,当某个条件满足时,蜂鸣器会发出警报声。

(单片机实验报告)keil软件使用

(单片机实验报告)keil软件使用

实验报告(单片机)
班级:微电子技术系07级1班姓名:学号:组别:第一组实验名称:Keil使用实验实验日期:2009-03-02 成绩:
一、实验目的
1、熟悉Keil使用;
2、认识如何进行实验
二、实验仪器
1、微机;
2、单片机实验箱DVCC-598JH;
3、Keil c51软件。

三、实验原理
单片机Keil集成开发环境简述
Kiel软件是目前比较流行的、用于开发51 系列单片机的软件。

该软件提供了包括c编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVisionIDE, 将这些部分组合在一起。

通过KIEL软件,可以对C语言或宏汇编语言源程序进行汇编,生成.HEX文件,对程序进行调试。

kiel软件由以下部分组成
Vision IDE包括一个工程管理器,一个源程序编译器的一个程序调试器。

C51编译器。

A51汇编器。

LIB 51库管理器。

BL51链接/定位器。

OH51目标文件生成器。

Monitor-51。

RTX51实时操作系统。

四、实验内容及步骤
Keil软件使用简述
五、实验结论。

单片机实验报告KeilC的使用与汇编语言上机操作

单片机实验报告KeilC的使用与汇编语言上机操作

单片机实验报告KeilC的使用与汇编语言上机操作单片机实验报告:Keil C的使用与汇编语言上机操作一、实验目的1.掌握Keil C的使用方法,了解其集成开发环境下的单片机编程流程。

2.掌握汇编语言的基本语法和指令,通过上机操作熟悉其应用。

3.通过实际操作,增强动手能力和解决问题的能力。

二、实验设备1.单片机开发板2.Keil C软件3.电脑及编程器三、实验原理及步骤1.Keil C使用介绍Keil C是一款广泛使用的单片机集成开发环境,它提供了包括编译器、调试器、仿真器等在内的全套开发工具。

使用Keil C可以方便地进行代码编写、编译、调试和模拟,适用于多种单片机开发。

2.汇编语言基础汇编语言是一种直接与硬件相关的编程语言,它通过特定的指令集直接控制硬件进行操作。

汇编语言具有高效、直接的特点,但编写和理解相对困难。

本实验主要学习并熟悉汇编语言的基本语法和指令。

3.实验步骤(1) 在Keil C中创建新项目,选择合适的单片机型号。

(2) 创建源文件,编写汇编程序。

(3) 对源文件进行编译,生成目标文件。

(4) 将目标文件下载到单片机开发板进行调试和运行。

四、实验内容及分析1.在Keil C中创建新项目并选择单片机型号。

在创建项目时,需要选择正确的单片机型号,这将直接影响到程序的编写和运行。

根据实际需要,我们选择了AT89C51作为实验用的单片机。

2.创建源文件并编写汇编程序。

在Keil C中,可以方便地创建新的源文件,并在其中编写汇编程序。

例如,下面是一个简单的汇编程序,用于点亮开发板上的LED灯:MOV P1, #1 // 将1赋值给P1端口此程序将使P1端口的所有引脚输出高电平,从而点亮LED灯。

3.对源文件进行编译并生成目标文件。

在Keil C中,可以通过简单的点击完成编译操作。

编译成功后,将生成一个目标文件(如*.obj文件)。

4.将目标文件下载到单片机开发板进行调试和运行。

在Keil C中,可以通过仿真功能模拟程序的运行,也可以通过调试功能查看程序运行过程中的细节信息。

单片机实验报告

单片机实验报告

单片机与嵌入式系统实验报告一、软件模拟调试实验:本部分实验内容主要为指令系统和汇编语言程序设计。

采用软件模拟调试的方法,目的在于通过这些实验使学生巩固所学知识,加深对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内寄存器的变化情况,按要求将结果记录入下表。

51单片机实验报告总结

51单片机实验报告总结

51单片机实验报告总结51单片机实验是必修课程之一,目的是让学生了解和掌握嵌入式系统开发的基本原理和方法。

本次实验涵盖了单片机的基本操作、输入输出控制、时序控制、通信技术、中断处理、PWM技术等内容,让我们一步步进入嵌入式系统的世界。

通过这些实验,我们深刻体会到嵌入式系统开发的艰辛和复杂程度。

在每个实验中,我们需要认真思考实验目的,设计符合要求的电路,编写精确并且有效的程序。

我们还要学会阅读芯片数据手册,并对不同的芯片进行适配,合理利用芯片的资源。

这些实战经验对我们今后从事嵌入式系统开发会有很大帮助。

在这些实验中,我们学会了使用单片机进行输入输出控制。

通过外部电路(比如数码管、LED灯、按键等),让单片机可以感知外界的状态变化,并根据程序控制输出对应的信号。

我们实现了按键控制LED灯亮灭、数码管显示数字和摆动等功能。

在实验中我们还学习了流水灯和矩阵键盘控制的实现方法,这给我们后续实验和项目提供了很好的思路和解决方案。

在时序控制实验中,我们掌握了计时器和定时器的基本原理和使用方法。

它们可以精确地生成特定频率和宽度的高低电平,也能间歇性地输出脉冲信号,这为摆线电机的控制和PWM驱动电机等实际应用打下了基础。

通过这些实验,我们更加深入地了解到计时器、定时器和中断的运作原理和使用方法。

在串口通信和I2C通信实验中,我们还学习了如何使用串口和I2C通信实现数据传输,可以将单片机与其他设备进行沟通和交流。

在日常工程开发中,这样的应用场景非常广泛,例如单片机与PC的数据传输、I2C总线上多个设备之间的通信等。

在PWM技术实验中,我们学习了如何使用定时器和PWM输出控制电机转速,这些技术可以实现高精度的电机控制和驱动,这是在机器人控制、智能家居等应用中必不可少的技术。

在这些实验中,我们不仅学会了单片机的基本原理和使用方法,而且也经历了从理论到实践的探索和体验。

这些实验的收获在于训练我们的动手实践能力,增强我们的团队合作精神,提高我们的问题解决能力,也让我们更加深入地了解嵌入式系统的精髓。

单片机实验报告范文

单片机实验报告范文

单片机实验报告范文单片机(Microcontroller)是指一种封装了微处理器(Microprocessor)、存储器和各种输入输出接口电路功能的集成电路。

单片机在电子设计与开发中有广泛应用,可以用于控制和监测各种系统和设备。

本实验报告将介绍在实验中使用单片机所进行的实验步骤和实验结果。

实验目的:1.理解单片机的基本工作原理和功能。

2.掌握单片机的编程和调试方法。

3.应用单片机实现简单的控制功能。

实验仪器和材料:1.单片机开发板2.计算机B数据线4.电源适配器5.LED灯6.麦克风模块7.温度传感器实验步骤:1.准备工作:将单片机开发板与计算机连接,接通电源适配器。

2.熟悉开发工具:安装单片机开发软件,并了解软件的基本功能。

3.学习编程语言:了解单片机的编程语言,例如C语言或汇编语言,并编写简单的程序。

4.硬件连接:将LED灯、麦克风模块和温度传感器连接至开发板的相应引脚。

5.编程实现:根据实验要求,编写相应的程序,控制LED灯、获取麦克风模块的声音信号或获取温度传感器的温度值。

7.实验结果:根据实验要求,记录LED灯的亮灭状态、麦克风模块的声音信号强度或温度传感器的温度数值。

实验结果:通过实验,我们成功地控制了LED灯的亮灭状态,获取了麦克风模块的声音信号强度和温度传感器的温度数值。

在编程实现过程中,我们学会了使用单片机编程语言,了解了一些常用的语法和函数。

在调试测试中,我们可以通过相关的输出或显示结果来判断程序的正确性,及时发现和修复错误。

实验总结:本实验通过单片机开发板和相应的硬件以及编程实现了简单的控制和监测功能。

通过实验,我们深入了解了单片机的基本工作原理和功能,并掌握了一些基本的编程和调试方法。

实验结果表明,我们成功实现了实验要求,并对单片机的应用有了更加深入的理解。

通过这次实验,我们不仅提高了动手实践能力,也增加了对科技发展的看法。

单片机实验报告

单片机实验报告

目录一、实验一 (1)二、实验二 (7)三、实验三 (11)四、实验四 (15)实验一定时/计数器验证实验一、实验目的熟悉定时/计数器T0的特点,学会合理选择定时方式并能根据具体情况结合软件的方式定时;二、实验设备及器件IBMPC机一台PROTEUS硬件仿真软件KeilC51;三、实验内容用AT89C51单片机的定时/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时秒计数加1;秒计数到60时,自动从0开始;四、实验要求要求采用Proteus软件实现上述实验;五、实验步骤1.打开ProteusISIS编辑环境,按照表1-1所列的元件清单添加元件;元件全部添加后,在ProteusISIS的编辑区域中按图1-1所示的原理图连接硬件电路;图1-1电路原理图2.根据参考程序绘出流程图,并辅以适当的说明;流程图如图1-2所示:图1-2程序流程图3.打开KeilμVision4,新建Keil项目,选择AT89C51单片机作为CPU,将参考程序导入到“SourceGroup1”中;在“OptionsforTarget”对话窗口中,选中“Output”选项卡中的“CreateHEXFile”选项和“Debug”选项卡中的“Use:ProteusVSMSimulator”选项;编译汇编源程序,改正程序中的错误;4.在ProteusISIS中,选中AT89C51并单击鼠标左键,打开“EditComponent”对话窗口,设置单片机晶振频率为12MHz,在此窗口中的“ProgramFile”栏中,选择先前用Keil生成的.HEX文件;在ProteusISIS的菜单栏中选择“File”→“SaveDesign”选项,保存设计,在ProteusISIS的菜单栏中,打开“Debug”下拉菜单,在菜单中选中“UseRemoteDebugMonitor”选项,以支持与Keil的联合调试;5.在Keil的菜单栏中选择“Debug”→“Start/StopDebugSession“选项,或者直接单击工具栏中的“Debug”→“Start/StopDebugSession”图标,进入程序调试环境;按“F5”键,顺序运行程序;调出“ProteusISIS”界面可以看到7段数码管显示从0~59s的计数值,每个数值显示1s,如图1-3所示;图1-3程序运行结果六、实验程序SECOND EQU 30HCOUNT EQU 31HORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV SECOND,00HMOV COUNT,00HMOV DPTR,TABLECLR AMOV P0,AMOV P2,AMOV TMOD,00HMOV TH0,65536-50000/256MOV TL0,65536-50000MOD256SETB TR0SETB ET0SETB EAMOVIE,82HLJMP $INT_T0:MOV TH0,65536-50000/256MOV TL0,65536-50000MOD256INC COUNTMOV A,COUNTCJNE A,20,I2MOV COUNT,00HINC SECONDMOV A,SECONDCJNE A,60,I1MOV SECOND,00HI1: MOV A,SECONDMOV B,10HDIV ABMOVC A,A+DPTRMOV P0,AMOV A,BMOVC A,A+DPTRMOV P2,AI2: RETITABLE: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHEND七、思考题1.罗列一下Proteus软件的能带给我们的好处,指出一点最能帮助你的地方;使用Proteus软件能使我们方便的搭建电路,同时在没有元器件的情况下进行便于仿真,方便我们在将程序写入单片机前确认运行是否正确,同时可在采购器件之前即可开始开发产品,而不必等到器件采购完后搭建电路才进行程序调试;2.用Proteus界面中的播放键运行仿真与KeilμVision4的环境中联调运行它们两者的区别在什么地方3.用Proteus界面中的播放键运行仿真仅可以观察运行结果,即程序运行在硬件表面上的表现;而联调的时候可以再Keil软件里查看各寄存器和存储器的状况,即硬件的内部情况;4.Keil软件软件仿真与Proteus的仿真对比;使用Proteus仿真可从硬件的角度观察仿真结果,使仿真结果更加形象直观,使我们可从硬件运行状态清楚的判断运行结果是否正确;而在Keil环境中则是从程序的角度通过观察程序中数据的变化来观察仿真结果,需要对程序运行结果充分了解;八、实验总结及相关问题通过本次实验了解了Ptoteus软件的使用方法,以及在掌握了Keil的使用方法下,学会了Proteus与Keil软件联调的方法;在用Proteus中由于忽略了要在总线处放置网络标号导致联调失败,最后通过观察发现数码管引脚电平无变化发现此问题,放置网络标号后运行仿真时数码管引脚电平发生变化可是数码管却没有变亮,经过多次检查接线,未发现接线错误后,觉得可能是软件本身错误,故将总线及数码管周围硬件线路重新绘制一遍后再次运行仿真及可得到图1-3的结果;实验二单片机I/O口控制实验一、实验目的利用单片机的P1口作IO口,使同学学会利用P1口作为输入和输出口;二、实验设备及器件IBMPC机一台DP-51PRO单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.编写一段程序,用P1口作为控制端口,使D1区的LED轮流亮;2.编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭P1.7接按键,按下时LED亮,不按时LED灭;四、实验要求学会使用单片机的P1口作IO口,如果有时间同学也可以利用P3口作IO口来做该实验;五、实验步骤1.用导线把A2区的J61接口与D1区的J52接口相连;原理如图2-1所示;图2-1实验二原理图2.先编写一个延时程序;延时程序见程序1子程序DELAY;3.将LED轮流亮的程序编写完整并使用TKStudyICE调试运行;LED轮流亮程序见程序1;调试运行结果:D1区LED轮流亮;4.使用导线把A2区的J61接口的P1.0~P1.6与D1区的J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区的J53的KEY1相连;5.编写P1.7控制LED的程序,并调试运行;按下K1看是否全亮;P1.7控制LED的程序见程序2;调试运行结果:按下P1.7后D1区LED全灭;6.A2区J61接口的P1.7与D1区的J54的SW1相连;然后再使用TKStudyICE运行程序,查看结果;P1.7控制LED的程序见程序2;调试运行结果:按下P1.7后D1区LED全亮;六、实验参考程序程序1:ORG 0000HLJMP MAINORG 0100HMAIN: MOV A,0FFHCLR CMAINLOOP:CALL DELAYRLC AMOV P1,ASJMP MAINLOOPDELAY: MOV R7,0LOOP: MOV R6,0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOPRETEND程序2:ORG 000HLJMP MAINORG 0100HMAIN: JB P1.7,SETLEDCLRLED:CLR P1.0CLR P1.1CLR P1.2CLR P1.3CLR P1.4CLR P1.5CLR P1.6SJMP MAINSETLED:SETB P1.0SETB P1.1SETB P1.2SETB P1.3SETB P1.4SETB P1.5SETB P1.6SJMP MAINEND七、实验思考题1.请同学思考一下,想出几个实现以上功能的编程方法;程序1可利用单片机的定时计数器通过选择定时计数器工作方式和预置初值设定延时时间,通过定时计数器产生的中断在中断程序中对A进行移位后输出至P1口;程序2可在判断P1.7高低电平后根据判断结果直接将80H或7F直接送P1口而不必逐位进行位操作;2.请同学再思考一下,第二个程序中如果使用KEY1作为外部中断控制LED的亮和灭时,程序应如何修改;此时将KEY1接/INT0口,在主程序中开启外部中断设置外部中断触发方式,通过中断服务子程序控制LED亮灭;程序如下所示:ORG 000HLJMP MAINORG 0003H ;中断服务程序LJMP SETLEDMAIN: MOV SP,40HSETB ET0 ;开外部中断CLR IT0 ;设置为电平触发SETB EACLRLED:CLR P1.0CLR P1.1CLR P1.2CLR P1.3CLR P1.4CLR P1.5CLR P1.6SJMP CLRLEDSETLED:SETB P1.0SETB P1.1SETB P1.2SETB P1.3SETB P1.4SETB P1.5SETB P1.6RETIEND八、实验总结及相关问题通过本次实验掌握了使用TKStudyICE进行硬件仿真调试的方法,在设置仿真器驱动程序声明时对C:\Keil目录下的Tools.ini文件添加描述时,由于添加的路径错误导致无法进行硬件仿真调试,修改为正确路径后方可在DEBUG窗口中的Use选项中找到对应的选项;使用TKStudyICE进行硬件仿真调试相比本学期的电子系统设计中用到的调试方法更快捷,使用更方便;与此同时,通过本次实验对单片机的I/O控制有了更深入的了接,同时加深入对单片机I/O编程的理解;实验三串转并I/O口实验一、实验目的熟悉并掌握串转并的I/O口扩展方法;二、实验设备及器件IBMPC机一台DP-51PRO单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.写程序,通过单片机的P1口控制74HC164的串行输入端口,实现串并转换;2.验证串并转换数据的正确性;四、实验要求熟悉串并转换芯片的工作原理,学会使用串并转换芯片扩展单片机的I/O口资源;表3-174HC164真值表五、实验步骤1.短接C5区JP10接口,将C5区J43接口与A2区J61接口的P10~P13对应相连CLK对P10等等;如图3-1所示;图3-1实验三原理图2.运行编写好的软件程序,完成一次串并转换;实验程序见实验参考程序;2.使用C2区的逻辑笔或D1区的J52接口LED指示灯测试并行输出数据Q0~Q7数据的正确性;调试运行结果:通过观察LED的亮灭情况可判断完成一次串并转换,且转换结果正确无误;六、实验参考程序CLK EQU P1.0DINA EQUP1.1DINB EQU P1.2CLR164 EQUP1.3ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP,60HNOPCLR CLKSETB DINBCLR CLR164SETB CLR164MOV A,0FFHMOV R4,08HSLCHG: RLC AMOV DINA,CSETB CLKNOPCLR CLKNOPDJNZ R4,SLCHGSJMP$END七、实验思考题参考图3-2电路图,尝试编写软件程序,实现8位LED流水灯的控制;图3.2实验原理图可利用单片机的定时计数器通过选择定时计数器工作方式和预置初值设定延时时间,通过定时计数器产生的中断在中断程序中对A进行移位;程序如下所示:CLK EQU P1.0DINA EQUP1.1DINB EQU P1.2CLR164 EQUP1.3ORG 0000HLJMP MAINORG 000BH ;定时器0中断服务程序LJMP SLCHGMAIN: MOV SP,60HNOPCLR CLKSETB DINBCLR CLR164SETB CLR164MOV A,0FFHMOV TMOD,01H ;定时器0工作方式1MOV TH0,18H ;送2ms时间常数MOV TL0,0FCHSETB TR0 ;开中断SETB ET0SETB EASJMP $SLCHG: MOV TH0,18HMOV TL0,0FCHRLC AMOV DINA,CSETB CLKNOPCLR CLKRETIEND八、实验总结及相关问题由于具有之前实验的基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验对串并转化程序的编写有了一定了解,通过编写流水灯程序加深了对单片机串并口的了解;实验四继电器控制实验一、实验目的加深理解继电器的工作原理和特点,掌握利用单片机的IO口控制继电器的一般方法;二、实验设备及器件IBMPC机一台DP-51PRO单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.利用D1区的拨动开关和LED,学习继电器的工作原理和特点;2.编写一段程序,用P1.0口控制继电器,继电器控制LED的亮和灭,COM与CLOSE连通时,一盏LED亮;不连通时该LED灭;COM与OPEN连通时,另一盏LED亮,不通时该LED灭;四、实验要求学会继电器的使用和利用单片机的IO口控制继电器的方法;五、实验步骤图4-1继电器驱动控制电路图1.用短路帽短接JP7,使用导线把D1区J54接口的SW1与C7区J9接口的KJ任意一根针相连接;2.使用导线把D1区J52接口的LED1、LED2与C7区J103接口的OPEN1,CLOSE1分别相连,另外C7区J103接口的COM1接地GND;3.接好线后,同学可以拨动D1区的SW1拨动开关,观察现象拨到1时LED2亮,拨到0时LED1亮,并得出结论;运行结果:拨到1时LED2亮,拨到0时LED1亮,说明每拨动一次开关改变一次继电器的状态;4.然后把C7区J9接口的KJ改接到A2区的J61接口的P10;再编写一个程序程序参考实验二,使P1.0口延时一段时间后改变电平值,来控制继电器的开关;实验程序见实验参考程序;调试运行结果:两个LED交替变亮,继电器状态不断改变;六、实验参考程序ORG 0000HLJMP MAINORG 0100HMAIN: MOV R7,0LOOP: MOV R6,0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOPCPL P1.0SJMP MAINEND七、实验思考题1.请同学思考一下,改由OPEN2、COM2、CLOSE2时本实验如何进行;同使用OPEN1、COM1和CLOSE1时连接方法类似,把D1区J52接口的LED1、LED2与C7区J103接口的OPEN2,CLOSE2分别相连,另外C7区J103接口的COM2接地GND即可;2.请同学再思考一下,继电器的用途,并举例说明;继电器是一种电控制,是当输入量激励量的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器;它具有又称输入回路和被控制系统又称输出回路之间的互动关系;通常应用于自动化的控制中,它实际上是用小电流去控制大电流运作的一种“自动开关”;故在电路中起着自动调节、安全保护、转换电路等作用;按照其工作原理可有以下应用:电磁继电器固体继电器温度继电器舌簧继电器时间继电器高频继电器极化继电器其他类型的继电器八、实验总结及相关问题由于具有之前实验的基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验了解了继电器的控制方法;对继电器这一器件有了一定了解;。

单片机实验报告

单片机实验报告

实验报告实验课程:单片机原理及应用班级:12自动化2班学号:姓名:*师:**成绩:实验日期:年月日实验名称:实验1——计数显示器一、实验目的:学习Proteus 软件的使用,掌握单片机原理图的绘图方法。

二、实验内容:1、绘制“计数显示器”电路原理图;2、利用提供的hex文件验证此电路的运行效果。

三、实验要求:提交的实验报告中应包括:1、绘图方法简述,要求说明元件与电源的选取、摆放及属性编辑,总线与标签的画法等内容;2、电路原理图;3、仿真运行效果展示,要求就仿真文件加载方法及3~4幅运行截图进行简要说明;4、实验小结,说明遇到的主要问题或实验1体会等。

参考电路原理图如下:元件类别电路符号元件名称Microprocessor ICs “U1”80C51Miscellaneous “X1”/12MHz CRYSTALCapacitors “C1”~“C2”/1nF CAPCapacitors “C3”/22μF CAP-ELECResistors Packs “RP1”/7-100ΩRESPACK-7Resistors “R1”/100ΩRESOptoelectronics “LED1”~“LED2”7SEG-COM-CAT-GRNSwitches & Relays “BUT”BUTTON1、编程思路及C51源程序:2、电路原理图:3、仿真运行效果展示:4、实验小结:熟悉Proteus软件,了解软件的结构组成与功能;学习ISIS模块的使用方法,学会设置图纸、选元件、线画总线、修改属性等基本操作;学会可执行文件加载及程序仿法;理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制。

实验名称:实验2——LED指示灯循环控制一、实验目的熟悉μVision3编译软件、掌握C51编程与调试方法。

二、实验内容1、按照教材P243的图A.34,绘制实验二电路原理图;2、编写C51程序,实现8个LED灯依次点亮的功能:P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→P0.5→┅→P0.0的顺序,无限循环,间隔约50ms;3、观察仿真结果,完成实验报告。

单片机实验报告范文

单片机实验报告范文

单片机实验报告范文
一、实验目的
通过本次实验,掌握单片机的基本原理与编程方法,熟悉单片机的开发环境,技能,了解单片机的必要电路原理。

二、实验器材和软件
器材:STC89C52单片机板、开发环境、PC机、线路板、电源、按钮开关、LED灯、蜂鸣器等。

软件:Keil uVision4编译器。

三、实验内容
1.点亮一个LED灯
将LED灯连接到单片机的1号引脚,通过编写程序点亮LED灯。

2.使用按钮开关控制LED灯
将按钮开关连接到单片机的2号引脚,编写程序使按钮开关控制LED 灯的亮灭。

3.通过串口将数据发送给PC机
设置单片机与PC机进行串口通信,通过编写程序将单片机中的数据发送给PC机。

四、实验步骤
1.按照实验器材和软件的要求搭建实验电路。

五、实验结果与分析
实验中点亮一个LED灯、使用按钮开关控制LED灯、通过串口将数据发送给PC机的实验均取得了预期的结果,显示出了单片机的基本原理与编程方法。

六、实验总结
通过这次实验,我深入了解了单片机的工作原理和编程方法,掌握了单片机的开发环境和技能,学会了使用单片机将数据发送到PC机,并能通过编程控制LED灯的亮灭。

实验过程中也遇到了一些问题,如电路连接不正确、程序代码错误等,但通过仔细排查和调试,最终解决了问题。

这次实验使我对单片机的实际应用有了更深的认识,也为今后进一步学习和应用提供了基础。

参考资料:
无。

单片机实验2实验报告

单片机实验2实验报告
LCALL Keyscan
MOV R1, 07H
LJMP W2
CA4: MOV R4, #0FEH
W3: MOV A, R1
XRL A, #04H
JZ K3
MOV A, R1
JNZ TZ
K3: MOV P3, R4
CLR FM
LCALL delay500ms
SETB FM
LCALL delay500ms
v=keyscan();//调键扫描程序
}
break;
case 2:
temp=0x7f;
while(v==2||v==0)/*流水灯逆时针测试*/
{
P3=temp;
delay1s();
a=temp<<7;
temp=temp>>1;
temp=a|temp; /*或者用temp=_cror_(temp,1);*/
v=keyscan();//调键扫描程序
}
break;
case 4: temp=0xfe;
while(v==4||v==0)/*数码管显示数字0-7测试*/
{
P3=temp;
FM=0;
delay500ms();
FM=1;
delay500ms();
a=temp>>7;
temp=temp<<1;
temp=a|temp; /*或者用temp=_crol_(temp,1);*/
{
while(1)
{
switch(v)
{
case 1:
temp=0xfe;/*流水灯顺时针流水测试*/
while(v==1||v==0)
{
P3=temp;

单片机课程设计实验报告

单片机课程设计实验报告

单片机课程设计实验报告一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握其内部结构及工作流程。

2. 使学生掌握单片机编程的基本语法和编程技巧,能独立完成简单的程序编写。

3. 帮助学生了解单片机在现实生活中的应用,提高对新技术、新领域的认识。

技能目标:1. 培养学生运用单片机进行实验设计和实践操作的能力。

2. 培养学生分析问题、解决问题的能力,提高创新思维和动手实践能力。

3. 提高学生的团队协作和沟通能力,学会在实验过程中相互交流、共同进步。

情感态度价值观目标:1. 激发学生对单片机及电子技术的兴趣,培养主动学习的习惯。

2. 培养学生严谨、细致的实验态度,养成良好的实验操作习惯。

3. 增强学生的自信心和责任感,使他们认识到学习单片机对国家科技发展的意义。

课程性质分析:本课程为单片机课程设计实验,侧重于实践操作和实际应用。

课程要求学生具备一定的电子技术基础和编程能力,通过实验深入了解单片机的工作原理和应用领域。

学生特点分析:本课程面向高年级学生,他们在之前的学习中已掌握了基本的电子技术和编程知识,具备一定的自学能力和动手实践能力。

但学生在单片机应用方面的实践经验不足,需要通过本课程加强实践锻炼。

教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力。

2. 注重启发式教学,引导学生主动思考、探索,培养学生的创新精神和实践能力。

3. 关注学生的个体差异,给予个别辅导,确保每位学生都能达到课程目标。

二、教学内容1. 单片机基础知识:- 单片机原理与结构- 单片机内部资源及功能- 单片机编程语言(汇编语言、C语言)2. 单片机编程与实验:- 基本输入输出编程- 定时器、中断编程- 模数转换、串行通信编程3. 单片机应用案例:- 实例分析:温度控制器、智能小车等- 创新设计:学生自主选题,设计单片机应用项目4. 实验操作与调试:- 实验步骤与方法- 常用工具与仪器的使用- 故障分析与调试技巧教学大纲安排:第一周:单片机基础知识学习,包括原理、结构、编程语言等第二周:基本输入输出编程,实验一:LED灯控制第三周:定时器、中断编程,实验二:简易电子时钟第四周:模数转换、串行通信编程,实验三:温度传感器数据采集第五周:单片机应用案例分析,学生自主选题,设计单片机应用项目第六周:实验操作与调试,完成设计项目,撰写实验报告教材章节关联:教学内容与教材《单片机原理与应用》相关章节紧密关联,具体包括:- 第一章:单片机概述- 第二章:单片机的结构与原理- 第三章:单片机编程语言- 第四章:单片机内部资源及应用- 第五章:单片机实验与调试教学内容确保科学性和系统性,以培养学生的实际操作能力为目标,注重理论与实践相结合,提高学生的创新能力和实践技能。

keil c51实验报告

keil c51实验报告

keil c51实验报告Keil C51实验报告引言:Keil C51是一款嵌入式系统开发工具,被广泛应用于单片机编程和开发。

本实验报告将介绍在使用Keil C51进行单片机编程时的一些实验结果和经验总结。

一、实验背景在嵌入式系统开发中,单片机是最常用的控制器之一。

单片机的编程需要使用特定的开发工具,Keil C51就是其中之一。

Keil C51提供了强大的集成开发环境,使得单片机的编程工作变得更加高效和便捷。

二、实验目的本实验的目的是通过使用Keil C51开发工具,学习单片机的编程方法和技巧,并通过实验验证编写的程序的正确性和可靠性。

三、实验过程1. 硬件准备在进行实验之前,首先需要准备好所需的硬件设备,包括单片机开发板、电源、连接线等。

确保硬件设备的连接正确且稳定。

2. 软件安装下载并安装Keil C51开发工具,根据提示进行相应的设置和配置。

确保软件的安装和配置正确。

3. 编写程序使用Keil C51开发工具,编写所需的程序。

根据实验要求和目标,编写相应的代码,并进行调试和测试。

在编写过程中,可以使用Keil C51提供的丰富的函数库和工具,提高编程的效率和质量。

4. 烧录程序将编写好的程序通过编程器烧录到单片机中。

确保烧录的程序正确无误。

5. 实验验证将烧录好的单片机连接到实验电路中,进行实验验证。

通过观察实验结果和数据,判断编写的程序是否达到了预期的效果和要求。

四、实验结果与分析通过使用Keil C51进行单片机编程实验,我们得到了以下实验结果和分析:1. 实验一:LED闪烁在这个实验中,我们使用Keil C51编写了一个简单的程序,控制LED灯的闪烁。

通过调试和测试,我们成功地实现了LED灯的闪烁效果。

这个实验验证了我们对Keil C51开发工具的基本掌握程度。

2. 实验二:温度传感器读取在这个实验中,我们使用Keil C51编写了一个程序,通过温度传感器读取环境的温度值,并将其显示在数码管上。

单片机软件实验报告

单片机软件实验报告

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

实验一内存操作1.实验目的①,②掌握数据传送指令;③掌握各种数据传送指令的寻址方式;④熟练运用keil 环境对汇编程序进行调试;⑤掌握数据传送、复制等程序的设计与调试方法。

2.~3.预习要求①理解数据传送指令和循环指令的使用;②理解如何对内部寄存器、内部RAM、外部XRAM(外部数据存储器)的读写;③理解各种寻址方式,尤其是较为抽象的变址寻址及相对寻址的方式;④认真预习本实验内容,自行编写程序,填写实验报告。

¥4.实验设备计算机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,#3000H-MOV A,#01HMOV R5,#0HLOOP: MOVX @DPTR,AINC DPTRDJNZ R5,LOOP(MOV R0,#30HMOV R1,#00HMOV R2,#40HMOV R3,#00HMOV R7,#0H|LOOP1: MOV DPH,R0MOV DPL,R1MOVX A,@DPTRMOV DPH,R2MOV DPL,R3~MOVX @DPTR,AINC R1INC R3DJNZ R7,LOOP1SJMP $¥END实现了将3000H开始的256个单元的内容复制到以4000H开头的外部RAM存储单元中。

>R0的值为30H;R2的值变为40H;寄存器A中赋值为1H,对栈指针sp初始化为07H,其最大值亦为07H,DPTR中最后递增到40ffH,psw中只有奇偶校验位p是1H3在Keil环境运行如下程序,观察寄存器及内存单元的变化,将变化结果注释于右侧,并说明程序完成什么功能将程序中MOV A,@R0改成MOVX A,@R0,将MOV @R1,A改成MOVX @R1,A,运行如下程序,观察寄存器及相应地址RAM、XRAM地址单元存储内容的变化。

【1.ORG 0000H;程序从000H开始MOV R0,#30H;MOV R1,#50HMOV R2,#20HL1: MOV A,@R0MOV @R1,AINC R0INC R1DJNZ R2,L1、ENDR0的值递增到50H,R1的值递增到70H,A中的值是4FH中的值,即FFH(程序运行前自己设定的)该程序将内部RAM 30H开始的连续20H个存储单元中的内容复制到内部RAM 50H开始的连续20H个存储单元中。

其中30H到4FH中的值在程序运行前自定义。

2.将程序中MOV A,@R0改成MOVX A,@R0,将MOV @R1,A改成MOVX @R1,AORG 0000HMOV R0,#30H|MOV R1,#50HMOV R2,#20HL1: MOVX A,@R0MOVX @R1,AINC R0$INC R1DJNZ R2,L1END,寄存器A中的数值没有发生过任何变化,R0和R1同未改变前一样,一直递增到50H和70H虽然设定了外部RAM 30H到4FH中的值,但是并没有复制到50H到6FH存储单元中。

原因是初始化后P口都为#FFH,而使用MOVX A,@Ri 要求P2口为#00H,所以只要在程序前加MOV P2,#00H就能实现和原来一样的功能了>5.设计型实验①在keil环境下,修改内部RAM 30H ~3FH的内容分别为#00H ~#0FH,设计程序实现将内部RAM 30H-3FH单元的内容复制到40H-4FH中。

ORG 000H;MOV R2,#10H;MOV A,#0H;,MOV R1,#30H;MOV R0,#40H;LOOP: MOV @R1,A;INC R1;{INC A;DJNZ R2,LOOP;MOV R1,#30H;MOV R2,#10H;。

LOOP2:MOV A,@R1;MOV @R0,A;INC R1;INC R0;DJNZ R2,LOOP2;{SJMP $;END②$③在keil环境下,修改内部RAM 30H ~3FH的内容分别为#00H ~#0FH,设计程序实现将内部RAM 30H~3FH单元的内容复制到片外1030H~103FH中。

ORG 000H;MOV R2,#10H;MOV A,#0H;'MOV R1,#30H;MOV DPTR,#1030H;LOOP: MOV @R1,A;INC R1;[INC A;DJNZ R2,LOOP;MOV R1,#30H;MOV R2,#10H;—LOOP2:MOV A,@R1;MOVX @DPTR,A;INC R1;INC DPTR;DJNZ R2,LOOP2;|SJMP $;END》④设计程序将外部64KB的XRAM高低地址存储内容互换;如0000H与0FFFFH,0001H与0FFFEH,0002H与0FFFDH,…….互换;互换数据个数为256。

—ORG 000H;MOV DPTR,#0FFFFH;MOV R1,DPL ;保存当然DPTR低位loop:MOV DPL,R1;·MOVX A,@DPTR;MOV R3,A ;保存当前DPTR的内容MOV R0,DPH ;保存当然DPTR高位MOV A,DPH;CPL A ;求得当前DPTR高位的反码<MOV DPH,A;MOV A,R1;CPL A ;求得当前DPTR低位的反码MOV DPL,A ;求得当前DPTR反码MOVX A,@DPTR;、MOV R4,A ;保存当前DPTR对称码(反码)的内容MOV A,R3;MOVX @DPTR,A ;将当前DPTR(原码)的内容存入对称码中MOV DPH,R0;MOV DPL,R1 ;还原DPTR\MOV A,R4;MOVX @DPTR,A ;将对称码的内容存入当前DPTR(原码)DEC R1;CJNE R1,#0FFH,LOOP;SJMP $;、END运行前:}运行后:%6.综合型实验a)设计程序实现将外部XRAM 0000H起始的512个字节数据传送到外部XRAM 2000H起始的512个存储单元中。

ORG 0000H;MOV R3,#0H;MOV DPTR,#0000H;LOOP:MOVX A,@DPTR;{MOV R0,DPL;MOV DPH,#20H;MOVX @DPTR,A;INC R0;MOV DPL,R0;#MOV DPH,#0H;DJNZ R3,LOOP;SJMP $;ENDX:0H至X:0FFH的值是自定义的;运行程序后复制到X:2000H至X:20FFH;b)若源块地址和目标块地址有重叠,程序该如何设计(用地址减1方法移动块)假设源块地址2000H,目标块地址2050H,移动块长度80H;试设计程序实现该功能。

思路:先将由源块地址起始的数据块保存到非目标块地址中(防止覆盖目标地址),然后再复制到目标块地址;—ORG 0000H;MOV DPTR,#2000H;)MOV R3,#80H;LOOP:MOVX A,@DPTR;MOV R0,DPH;MOV R1,DPL;*MOV DPH,#30H;MOVX @DPTR,A;MOV DPH,R0;INC R1;MOV DPL,R1;}DJNZ R3,LOOP;本循环实现将x:2000H开始的80个单元中的内容复制到x:3000H开始的80个单元中去MOV DPTR,#3000H;MOV R3,#80H;MOV R4,#50H;¥LOOP2:MOVX A,@DPTR;MOV R2,A;MOV R0,DPH;MOV R1,DPL;!MOV A,R4;MOV DPH,#20H;MOV DPL,A;MOV A,R2;MOVX @DPTR,A;'INC R4;MOV DPH,R0;INC R1;MOV DPL,R1;DJNZ R3,LOOP2;本循环实现将x:3000H开始的80个单元中的内容复制到x:2050H开始的80个单元中去》SJMP $;END,:,]实验二数制及代码转换1.实验目的①了解微机系统中的数制与代码表示方法;②掌握计算机中使用的各种代码转换方法;③掌握实现分支、循环的指令及其程序的编写方法;2.{3.预习要求①理解十进制数、十六进制数的数制表示方法;②理解BCD码、ASCII码编码方式;③如何实现十六进制数与BCD码之间的转换;④如何实现ASCII码与BCD码之间的转换。

4.)5.实验设备计算机1台。

6.基础型实验内容①以下程序完成单字节的ASCII码到十六进制数转换,完成空白处程序填写,并在Keil环境运行程序,观察寄存器及相应地址内存单元内容的变化。

RESULT EQU 30H】ORG 0000HMOV A,#41H ;“A”的ASCII码CLR CSUBB A,#37H; 转换为十六进制值AMOV RESULT,A]LJMP $END②以下程序完成单字节的BCD码到十六进制数转换,,在Keil环境运行程序,观察寄存器及相应地址内存单元内容的变化。

…RESULT EQU 30HORG 0000HMOV A,#23HMOV R0,AANL A,#0F0HSWAP AMOV B,#0AHMUL ABMOV RESULT,A ;转换高位MOV A,R0)MOV B,#0FHANL A,B;ADD A,RESULTMOV RESULT,A ;转换低位SJMP $;END·③…④以下程序将单字节十六进制数A的值转换为十进制数,存放在30H~32H中,完成空白处程序填写,并在Keil环境运行程序,观察寄存器及相应地址内存单元内容的变化。

RESULT EQU 30HORG 0000HMOV A,#7BHMOV B,#100|DIV ABMOV RESULT,A ;除以100得百位数MOV A,BMOV B,#10DIV AB#MOV RESULT+1,A ;除以10得十位数MOV RESULT+2,B ;余数为个位数SJMP $END%:7.>8.设计型实验内容①将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中。

相关文档
最新文档