单片机实验报告(1)培训课件.doc

合集下载

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

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

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期: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。

单片机实训报告范本(WORD档)11页word

单片机实训报告范本(WORD档)11页word

单片机实训报告题目:《单片机原理与应用》学院:电子信息工程学院专业:光电子技术学生姓名:学号:指导老师:日期: 2013年5月10日一、硬件系统:实验板的系统组成:1.8路跑马灯2.动态扫描共阳型数码管3.4x4矩阵键盘4.4路独立键盘5.蜂鸣器6.温度传感器DS18B207.I2C通信方式的EEPROM芯片24C02二、开发软件KEILC、下载软件:1、Keil C u Vision2使用说明(1)打开u Vision2(2)新建工程:菜单【Project】_>【New Project】选择工程存放路径,并输入工程文件名,然后点“保存”。

2、进入器件选择界面数列表框内选择“Atmel”_>”AT89s52”,然后点“确定”完成器件选择。

(1)编辑源程序:新建文件:菜单【File】_>【New…】。

然后输入代码存入硬盘。

C源文件存为.C后缀,汇编源文件存为.a或.src后缀,并存放在同一个工程文件夹下。

(2)加入源文件到工程中:在左边浮动窗口【file】选项卡里展开“Target 1”树,在“Source Group 1”上右键单击,弹出菜单,选【Add File to Group “Source Group 1”】,选择需要加入的源文件,点“Add”按钮加入,加入完成后按“Close”关闭。

(1)设置编译选项:先选中左边浮动窗口【File】选项卡里“Target 1”树节点,然后选菜单【Project】_>【Options for Target“Target 1”】。

(2)在弹出的“Options for Target “Target 1””对话框中选择【output】选项卡,勾选“Greate HEX File”,然后按“确定”完成设置。

(3)按“F7”开始编译,编译成功后会在工程文件夹内生成.hex目标文件生成的.hex文件就可以用来对AT89S52芯片进行编程和运行了。

实验1单片机系统认识实验ppt课件

实验1单片机系统认识实验ppt课件
.
2、程序调试步骤: ① 进入调试环境:CTRL+F5 ② 修改程序计数器PC的值 ③ 单步执行:F10(连续F5,断点) ④ 观察调试窗口的数据正确与否 ⑤ 退出调试环境。
.
六.书写实验报告
1.实验目的 2.实验设备 3.实验内容
画出单片机最小系统的基本电路; 结合图1.5描述小灯亮灭的原理; 如何使小灯两灭的时间间隔变长? 4.写出实验过程中遇到的问题及其解决方法
.
谢机系统认识实验
.
一、实验目的:
1、认识单片机最小系统的组成 2、掌握单片机最小系统的设计
二、实验内容:
1、熟悉最小系统的组成器件 2、理解最小系统的硬件电路 3、编写程序并下载运行,点亮小灯
.
三、硬件电路
.
四、参考程序
.
五、程序设计与调试步骤 (重要)
1、程序设计步骤: ① 创建工程 ② 选择单片机型号 ③ 新建源文件,编辑汇编或C51语言程序 ④ 保存源程序.asm或.c,并加入到工程中 ⑤ 进行编译;若不成功,要调试修改

单片机实验报告

单片机实验报告

单片机实验报告1. 实验背景单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、内存、计时器、I/O接口等功能的集成电路芯片。

它具有体积小巧、功耗低、性能高等优点,在嵌入式系统中应用广泛。

本实验旨在通过对单片机的实际操作,加深对单片机原理及应用的理解。

2. 实验目的本次实验的主要目的是:- 掌握单片机的基础知识,包括单片机的结构、工作原理等;- 学习单片机的编程方法,初步掌握单片机的编程技巧;- 进行简单的单片机应用实验,提高对实际应用的理解。

3. 实验设备与材料实验所需的设备和材料包括:- 单片机开发板;- 计算机;- 连接线等。

4. 实验过程与结果在本实验中,我们使用XXX型单片机开发板作为实验平台,通过连接计算机进行编程。

具体的实验过程如下:4.1 硬件连接将单片机开发板与计算机通过连接线连接,并确保连接正常。

接下来,将我们设计好的电路按照要求连接到开发板的相应引脚上。

4.2 编程使用XXX软件对单片机进行编程。

根据实验要求,编写相应的程序代码,并将代码下载到单片机开发板中。

验证代码是否编译通过,并将运行结果显示在数码管、液晶显示屏等外设上。

4.3 实验结果实验结果根据不同的实验要求而定,可以是对某个外设的控制、信号的采集、数据的处理等。

在实验过程中需记录实验结果,并进行分析。

5. 实验总结通过本次实验,我对单片机的基本原理及应用有了更深入的了解。

掌握了单片机的硬件连接方法和编程技巧,并成功完成了实验要求。

实验结果表明,单片机在各个领域都有广泛的应用前景,对于嵌入式系统的开发起着重要作用。

当然,本次实验只是单片机应用的初步探索,还有很多更深入的研究和应用值得去探索。

在今后的学习与实践中,我将进一步深化对单片机的理解,并将其灵活应用于各种项目中。

6. 参考文献[参考文献1][参考文献2][参考文献3](文章内容仅供参考,具体实验过程和结果以实际情况为准。

)。

单片机实验报告

单片机实验报告

一、实验目的1. 熟悉单片机的硬件组成和基本工作原理。

2. 掌握单片机最小系统的搭建方法。

3. 学习使用单片机编程软件进行程序编写和调试。

4. 通过实际操作,加深对单片机应用的理解。

二、实验环境1. 实验设备:MCS-51单片机实验板、电源模块、面包板、连接线、LED灯、蜂鸣器、按键等。

2. 软件环境:Keil uVision5、Proteus仿真软件。

三、实验内容1. 点亮LED灯(1)实验目的:掌握单片机I/O口的使用,实现LED灯的点亮。

(2)实验步骤:① 将LED灯的阳极连接到单片机的P1.0口,阴极连接到GND。

② 在Keil uVision5中新建工程,编写程序如下:```cvoid main() {while (1) {P1 = 0xFF; // 点亮LED灯delay(500000); // 延时P1 = 0x00; // 熄灭LED灯delay(500000); // 延时}}③ 将程序编译并下载到单片机中,观察LED灯的点亮效果。

2. 蜂鸣器控制(1)实验目的:掌握单片机I/O口的使用,实现蜂鸣器的控制。

(2)实验步骤:① 将蜂鸣器的正极连接到单片机的P1.1口,负极连接到GND。

② 在Keil uVision5中编写程序如下:```cvoid main() {while (1) {P1 = 0x02; // 使能蜂鸣器delay(100000); // 延时P1 = 0x00; // 禁止蜂鸣器delay(100000); // 延时}}```③ 将程序编译并下载到单片机中,观察蜂鸣器的鸣叫效果。

3. 按键扫描(1)实验目的:掌握单片机I/O口的使用,实现按键的扫描和识别。

(2)实验步骤:① 将两个按键分别连接到单片机的P1.2和P1.3口。

② 在Keil uVision5中编写程序如下:void main() {while (1) {if (P1 & 0x04) { // 检测按键1是否按下// 执行按键1按下后的操作}if (P1 & 0x08) { // 检测按键2是否按下// 执行按键2按下后的操作}}}```③ 将程序编译并下载到单片机中,观察按键的扫描和识别效果。

单片机实训实验报告

单片机实训实验报告

一、实验名称单片机原理及应用实验二、实验目的1. 熟悉单片机的基本结构和原理,了解单片机在电子系统中的应用。

2. 掌握单片机编程语言C的基本语法和编程技巧。

3. 学会使用单片机进行简单控制,实现LED流水灯、数码管显示等基本功能。

4. 提高动手实践能力,培养团队合作精神。

三、实验仪器与设备1. 单片机实验箱:包括单片机、电源、按键、LED灯、数码管等。

2. 电脑:用于编程和仿真。

3. 编程软件:Keil uVision5或IAR EWARM等。

四、实验原理单片机是一种集成度高、功能强大的微控制器,具有运算速度快、功耗低、体积小等优点。

本实验以51单片机为例,介绍其基本原理和编程方法。

51单片机主要由以下几个部分组成:1. 中央处理器(CPU):负责执行指令,控制整个单片机系统。

2. 存储器:包括程序存储器(ROM)和数据存储器(RAM),用于存储程序和数据。

3. 输入/输出接口:用于与外部设备进行数据交换。

4. 定时器/计数器:用于实现定时和计数功能。

5. 中断系统:用于处理中断事件。

本实验主要涉及以下几个方面:1. 单片机基本结构和工作原理。

2. 单片机编程语言C的基本语法和编程技巧。

3. 单片机I/O口的使用和驱动能力。

4. 定时器/计数器的使用和编程。

5. 中断系统的使用和编程。

五、实验内容1. 实验一:LED流水灯(1)实验目的:掌握单片机I/O口的使用,实现LED流水灯效果。

(2)实验原理:通过单片机I/O口输出高低电平,控制LED灯的亮灭,实现流水灯效果。

(3)实验步骤:① 连接实验箱电路,将LED灯连接到单片机的P1口。

② 编写程序,设置P1口为输出模式,通过循环改变P1口输出电平,实现LED流水灯效果。

③在电脑上编译、下载程序,观察实验效果。

2. 实验二:数码管显示(1)实验目的:掌握单片机I/O口的使用,实现数码管显示功能。

(2)实验原理:通过单片机I/O口输出高低电平,控制数码管显示数字。

单片机项目实训实验报告

单片机项目实训实验报告

一、实验背景与目的随着科技的发展,单片机作为嵌入式系统的重要组成部分,广泛应用于各个领域。

为了提高学生的实践能力和创新精神,我们选择了单片机项目实训作为实验课程。

本次实训旨在让学生掌握单片机的基本原理,熟悉其硬件和软件设计,并通过实际项目实践,提高学生的动手能力和解决问题的能力。

二、实验内容与步骤本次实训项目为设计一款基于ATmega16单片机的简易计算器。

该计算器能够实现基本的四则运算,并通过矩阵键盘和LCD1602显示屏进行人机交互。

1. 实验内容(1)设计计算器的硬件电路,包括ATmega16单片机、矩阵键盘、LCD1602显示屏等。

(2)编写计算器的软件程序,实现四则运算功能。

(3)测试计算器的功能,确保其正常运行。

2. 实验步骤(1)硬件设计根据实验要求,设计计算器的硬件电路。

主要包括以下步骤:1)选择合适的ATmega16单片机开发板。

2)设计矩阵键盘电路,包括按键布局和连接方式。

3)设计LCD1602显示屏电路,包括数据线和控制线。

4)将以上电路连接到ATmega16单片机开发板上。

(2)软件设计编写计算器的软件程序,实现以下功能:1)初始化ATmega16单片机,设置时钟频率。

2)初始化LCD1602显示屏,显示“0”作为初始值。

3)编写矩阵键盘扫描程序,检测按键状态。

4)根据按键输入,执行相应的四则运算。

5)将运算结果显示在LCD1602显示屏上。

6)实现清零、退格等功能。

(3)测试与调试1)将编写好的程序烧录到ATmega16单片机中。

2)连接计算器硬件电路,进行功能测试。

3)针对测试过程中发现的问题,进行调试和修改。

4)确保计算器能够正常运行,实现预期功能。

三、实验结果与分析经过实际操作和调试,我们成功设计并实现了一款基于ATmega16单片机的简易计算器。

该计算器能够实现基本的四则运算,并通过矩阵键盘和LCD1602显示屏进行人机交互。

以下是实验结果分析:1. 硬件设计方面,我们选择了合适的ATmega16单片机开发板,并设计了简洁的矩阵键盘和LCD1602显示屏电路。

单片机实验教案 ppt课件

单片机实验教案 ppt课件
(2)用右键s to Group‘Source Group1’”选项。
(3)在弹出的“Add Files to Group‘Source Group1’对话框中选择需加入的文件,单击 “Add”按钮,如图6所示,加完后单击 “Close”按钮。关闭对话框
(六)调试程序
选择【Debug】/【Start/Stop Debug Session】 选项,进入调试界面。
2020/10/28 图8 启动程序调试示意图
17
Keil C软件的操作说明
在调试界面中可以对程序进行单步或者全速 运行的调试。如附图9所示。
连机/ 停止 全速 运行
单步
2020/10/28
2020/10/28
6
Keil C软件的操作说明
(一)创建工程名 (1) 选择【Project】/【New Project】选项;
图1 新建工程示意图
2020/10/28
7
Keil C软件的操作说明
(2)在弹出的“Create New Project”对话框中 选择要保存项目文件的路径,在“文件名” 文本框输入项目名,然后单击“保存”按 钮。
2020/10/28
20
仿真器使用者使用时应注意:
Keil C仿真器用户程序在全速运行时,如果 需暂停运行,请按仿真板上S1复位按钮, 此时仿真器存储器数据清零。如果您要再 次运行您所编写的程序,就必须重新装载 运行。
2020/10/28
21
实验一 跑马灯实验
一、实验电路及连线
图12 实验电路连线图
培训教程
➢MCS51实验系统装置的介绍 ➢Keil C软件的操作说明 ➢彩灯循环显示控制电路设计
2020/10/28

单片机实训报告

单片机实训报告

单片机实训报告导言:本文是针对单片机实训的一份报告,旨在总结实训过程中的学习成果和收获。

通过实践,我们对单片机的原理、应用和编程有了更深入的了解,并成功完成了一系列实验任务。

一、实训目的和背景单片机是嵌入式系统的核心部件,广泛应用于各个领域。

通过本次实训,我们旨在掌握单片机的基本原理和应用,提高我们的电子设计和编程能力,并培养我们的创新思维和解决问题的能力。

二、实训内容1. 实验一:单片机基础知识学习在本实验中,我们学习了单片机的基本知识,包括单片机的概念、工作原理、常用的单片机型号和特点等。

我们还了解了单片机的接口引脚、存储器和时钟系统等重要组成部分,并通过实验掌握了单片机的编程方法和调试技巧。

2. 实验二:LED灯闪烁通过这个实验,我们学会了如何使用单片机控制LED灯的亮灭。

我们了解到LED灯是一种常见的输出设备,通过控制单片机的IO口状态,可以实现灯的闪烁等效果。

通过实验,我们还加深了对GPIO口的理解,并提高了我们的编程能力。

3. 实验三:数码管显示在这个实验中,我们学习了如何使用单片机控制数码管的显示。

数码管可以用来显示数字、字母和符号等信息,是一种重要的输出设备。

通过实验,我们掌握了数码管的接口连接、驱动方式,并通过编程实现了不同数字的动态显示。

4. 实验四:按键输入通过这个实验,我们学会了如何使用单片机实现按键输入的功能。

在实验中,我们了解到按键是一种常见的输入设备,通过判断按键的状态,可以实现对系统的控制。

通过编程,我们学会了读取按键状态、消抖处理和按键功能的实现。

5. 实验五:PWM波形产生在本实验中,我们学习了如何使用单片机产生PWM波形。

PWM是一种重要的控制信号,通过改变PWM信号的周期和占空比,我们可以实现对电机、灯光等设备的精确控制。

通过实验,我们掌握了PWM波形的产生原理和相关的编程技巧。

6. 实验六:串口通信通过这个实验,我们学会了如何使用单片机进行串口通信。

串口通信是现代电子设备常用的一种通信方式,通过串口,我们可以实现与其他设备的数据交换。

单片机实验报告

单片机实验报告

单片机实验报告 Modified by JEEP on December 26th, 2020.目录一、实验一 (1)二、实验二 (7)三、实验三 (11)四、实验四 (15)实验一定时/计数器验证实验一、实验目的熟悉定时/计数器T0的特点,学会合理选择定时方式并能根据具体情况结合软件的方式定时。

二、实验设备及器件IBM PC机一台 PROTEUS 硬件仿真软件 Keil C51。

三、实验内容用AT89C51单片机的定时/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时秒计数加1;秒计数到60时,自动从0开始。

四、实验要求要求采用Proteus软件实现上述实验。

五、实验步骤1.打开Proteus ISIS编辑环境,按照表1-1所列的元件清单添加元件。

表1-1 元件清单元件全部添加后,在Proteus ISIS的编辑区域中按图1-1所示的原理图连接硬件电路。

图1-1 电路原理图2.根据参考程序绘出流程图,并辅以适当的说明。

流程图如图1-2所示:图1-2 程序流程图3.打开KeilμVision4,新建Keil项目,选择AT89C51单片机作为CPU,将参考程序导入到“Source Group 1”中。

在“Options for Target”对话窗口中,选中“Output”选项卡中的“Create HEX File”选项和“Debug”选项卡中的“Use:Proteus VSM Simulator”选项。

编译汇编源程序,改正程序中的错误。

4.在Proteus ISIS中,选中AT89C51并单击鼠标左键,打开“EditComponent”对话窗口,设置单片机晶振频率为12MHz,在此窗口中的“Program File”栏中,选择先前用Keil生成的.HEX文件。

在ProteusISIS的菜单栏中选择“File”→“Save Design”选项,保存设计,在Proteus ISIS的菜单栏中,打开“Debug”下拉菜单,在菜单中选中“Use Remote Debug Monitor”选项,以支持与Keil的联合调试。

实训单片机实验报告

实训单片机实验报告

一、实验目的1. 熟悉单片机的基本结构和工作原理;2. 掌握单片机的编程方法和调试技巧;3. 通过实际操作,加深对单片机原理的理解和应用。

二、实验内容1. 单片机基本原理实验;2. 单片机编程实验;3. 单片机接口实验。

三、实验器材1. 单片机实验板;2. 编程器;3. 调试器;4. 仿真软件;5. 实验指导书。

四、实验步骤1. 单片机基本原理实验(1)搭建单片机最小系统,包括电源、晶振、复位电路、时钟电路等;(2)观察单片机的基本引脚功能,如P1、P2、P3等;(3)了解单片机的存储器结构,包括ROM、RAM、特殊功能寄存器等;(4)学习单片机的指令系统,如数据传送指令、算术逻辑运算指令、控制指令等。

2. 单片机编程实验(1)使用Keil uVision5软件,编写单片机程序;(2)学习C51语言编程,掌握数据类型、运算符、控制结构等;(3)编写程序实现点亮LED灯,观察程序运行效果;(4)编写程序实现按键输入,读取按键状态。

3. 单片机接口实验(1)学习单片机的外设接口,如串口、I2C、SPI等;(2)使用单片机串口通信,实现单片机与PC机的数据传输;(3)编写程序实现I2C通信,读取EEPROM数据;(4)编写程序实现SPI通信,读取传感器数据。

五、实验结果与分析1. 单片机基本原理实验通过搭建单片机最小系统,观察了单片机的基本引脚功能,了解了单片机的存储器结构和指令系统。

实验过程中,掌握了单片机的基本工作原理,为后续编程实验打下了基础。

2. 单片机编程实验使用Keil uVision5软件,编写了点亮LED灯的程序,实现了按键输入读取按键状态。

通过编程实验,掌握了C51语言编程方法,提高了编程能力。

3. 单片机接口实验通过串口、I2C、SPI等接口实验,实现了单片机与PC机的数据传输,读取EEPROM 数据和传感器数据。

实验过程中,了解了单片机的外设接口原理,提高了实际应用能力。

六、实验心得与体会1. 实验过程中,掌握了单片机的基本原理和编程方法,提高了自己的动手能力;2. 通过实验,加深了对单片机原理的理解,为以后的学习和工作打下了基础;3. 在实验过程中,学会了如何查找资料、解决问题,提高了自己的独立思考能力;4. 认识到理论与实践相结合的重要性,只有将所学知识应用于实际,才能真正掌握。

单片机实训教程实验报告

单片机实训教程实验报告

一、实验目的1. 熟悉单片机的基本结构和工作原理。

2. 掌握单片机的编程方法,包括C语言和汇编语言。

3. 学习单片机的接口技术和应用系统设计。

4. 培养动手能力和解决实际问题的能力。

二、实验环境1. 单片机开发系统:STC89C52单片机开发板2. 编译器:Keil uVision3. 调试器:Proteus4. 实验指导书:《单片机实训教程》三、实验内容1. 单片机基本原理实验(1)实验目的:了解单片机的结构、工作原理和引脚功能。

(2)实验步骤:1)搭建实验电路,连接单片机开发板与Proteus仿真软件;2)编写程序,设置单片机的工作模式;3)通过Proteus仿真软件观察单片机的运行状态。

(3)实验结果:通过仿真软件,观察到单片机能够按照程序的要求进行运行,实现了实验目的。

2. 单片机C语言编程实验(1)实验目的:掌握单片机的C语言编程方法。

(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写C语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。

(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。

3. 单片机汇编语言编程实验(1)实验目的:掌握单片机的汇编语言编程方法。

(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写汇编语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。

(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。

4. 单片机接口技术实验(1)实验目的:了解单片机的接口技术,掌握常用接口的编程方法。

(2)实验步骤:1)搭建实验电路,连接单片机开发板与外部设备;2)编写程序,实现单片机与外部设备的通信;3)通过Proteus仿真软件观察通信过程。

(3)实验结果:通过仿真软件,观察到单片机与外部设备能够成功通信,实现了实验目的。

单片机实验报告(完整版)

单片机实验报告(完整版)

单片机原理与应用实验报告学院(部):专业:学生姓名:班级:学号:最终评定成绩:实验一存储器读写一、实验目的:1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作。

二、实验仪器设备1.PC机,1台2.WAVE软件开发系统三、实验内容及步骤:1、将下面的汇编程序输入到W A VE集成开发软件中ORG 0000HSJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08HMOV R1,#70HMOV DPTR,#2000HLOOP:MOVX A,@R1MOVX A,@DPTRINC R1INC ADJNZ R7,LOOPSJMP $END2、选择菜单“仿真器”→“仿真器设置”,按下图所示完成软件初始设置。

3、选择菜单“项目”下“编译”,编译通过后,选择“单步运行”,观察记录寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

四、源程序源程序:ORG 0000H ;定义起始地址SJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08H ;给内部RAM的70H单元赋初值MOV R1,#70H ;使R1指向内部70H单元MOV DPTR,#2000H ;定义外部存储器开始单元LOOP:MOVX A,@R1 ;将R1所指向的70H的内容赋给AMOVX @DPTR,A;将A的内容赋给外部存储器单元INC R1 ;内部RAM地址加1INC DPTR ;外部存储器地址加1DJNZ R7,LOOP ;循环,直到RAM中70H~7FH;单元的内容全部相应赋给;外部2000H~2007H单元SJMP $END3、记录下程序单步运行时,寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

五、仿真效果图实验二I/O端口操作一、实验目的:1、掌握I/O端口读写等基本汇编指令;2、掌握单片机最小系统硬件电路设计及仿真软件PROTEUS仿真、调试等基本操作方法。

单片机实验报告培训课件.doc

单片机实验报告培训课件.doc

单片机实验报告实验题目单片机数码管50 秒倒计时实验实验器材单片机、带公共端共阳七红色数码管、电阻、8排阻、电容、电解电容、i 晶振实验目的1. 理解单片机AT89C51的MCS-51的定时器/ 计数器的过程。

2. 用PROTEU设S 计、仿真AT89C51单片机的LED数码管50 秒倒计时实验。

实验内容PROTEU电S 路设计1. 单片机数码管50 秒倒计时实验如图(1)所示,电路设计在ISIS 平台中进行。

(1)2. 从PROTEU库S 中选取元器件(1)AT89C51:单片机;(2)RES、RX8:电阻、8 排阻;(3)7SEG-COM-AN-GRN带: 公共端共阳七红色数码管;(4)CAP 、CAP-ELEC电: 容、电解电容;(5)CRYSTAL: 晶振;3. 放置元件器、放置电源和地、连线、元器件属性设置、电气检测所有操作都是在ISIS 平台中进行数码阻值为470Ω管串联的电(1)所示。

与数码时实管50 秒倒计验原理如图左右。

文件源程序设计、生成目标代码1. 流程图(2)所示。

主程序的流程图如图开始中断入口设定数初值50s计置设时到0倒计秒钟Y N减 1 到0分钟(2)2.源程序设计“Source→Add/Remove Source Files⋯”新建源程序文件菜单通过shiyan2.ASM。

器SRCEDIT,通过辑“Source→shiyan2.ASM”,打开PROTEU提S供的文本编菜单辑器如下源程序:在其中编fen equ 30h ; 定义分miao equ 31h ; 定义秒;---------------------ORG0000hLJMP startORG000bh ; 中断入口设定LJMP intt0ORG 0030hstart:MOV fen,#0c0h ;30H 、31H为2个数码管的显示缓冲单元MOV miao,#0c0hMOV r1,#20 ; 用R1作为50ms中断计数器MOV r2,#50 ;R2为秒计数器MOV dptr,#table ; 将显示码表格首地址送DPTRMOV tmod,#01hMOV th0,#3chMOV tl0,#0b0h ; 置TL0初值SETB EA ; CPU开放中断SETB ET0 ; 允许T0中断SETB TR0 ; 启动T0loop:CJNE r1,#00,loop2MOV r1,#20DEC r2loop1:CJNE r2,#0xff,loop2MOV r2,#50loop2:MOV a,r2MOV b,#10DIV abMOVC a,@a+dptrMOV fen,aMOV a,bMOVC a,@a+dptrMOV miao,a;-----------------------------------------------; 显示;-----------------------------------------------disp:MOV a,fenMOV p1,a ; 从P1口输出ACALL delay ; 调用延时程序MOV a,miaoMOV p2,a ; 从P2口输出ACALL delayLJMP loop;-----------------------------------------------; 数码管表;-----------------------------------------------table:db 0c0hdb 0f9hdb 0a4hdb 0b0hdb 99hdb 92hdb 82hdb 0f8hdb 80hdb 90h;-----------------------------------------------; 延时程序;-----------------------------------------------delay:MOV r4,#1del1:MOV r5,#1del2:MOV r6,#1del3:DJNZ r6,del3DJNZ r5,del2DJNZ r4,del1RET;-----------------------------------------------; 中断程序;-----------------------------------------------intt0:CLR tr0 ; 定时器0 中断服务子程序,1 秒定时时间到,停止T0 工作DEC r1MOV th0,#3chMOV tl0,#0b0hSETB tr0 ; 启动T0RETIEND程序编辑好后,单击按钮保存存入shiyan2.ASM 中。

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

实验二、中断实验――中断优先级控制及中断保护一、实验目的1、掌握单片机中断机制。

2、熟悉中断的应用和编程。

二、实验设备1、仿真器;2、单片机最小系统;3、发光二极管阵列显示模块;4、独立式键盘模块。

三、实验要求连接单片机最小系统和发光二极管阵列的电路并编写程序,学习单片机中断机制,及中断优先级和中断保护的方法:使用独立式按键 1 连接INT 0(P3.2),按键 2 连接INT 1(P3.3),在平时状态下,发光二极管行以200ms 的时间间隔,依次点亮。

1 键按下时INT 0中断处理程序点亮P0.0 对应的发光管 2 秒钟,其他发光管熄灭; 2 键按下时P0.1 对应发光管点亮 2 秒,其他发光管熄灭。

四、实验原理通常一个微处理器读取外围设备(如键盘等)的输入信息的方法有轮询(Polling) 及中断(Interrupt) 两种。

轮询的方法是CPU 依照某种既定法则,依序询问每一外围设备I/O 是否需要服务,此种方法CPU 需花费一些时间来做询问服务,当I/O 设备增加时,询问服务时间也相对增加,势必浪费许多CPU 时间,降低整体运行的效率。

使用中断是一个较好的解决方法。

使用中断使系统对外部设备的请求响应更加灵敏,并且不需要占用CPU 的时间进行轮询。

但是,当使用中断,特别是有多个中断嵌套时要特别注意内存单元的保护。

180C51中断结构当中断发生后,程序将跳至对应中断入口地址去执行中断子程序,或称中断服务程序(Interrupt Service Routine) ,这些特殊的地址称为中断向量,例如当80C51 外部中断INTl 发生时,会暂停主程序的执行,跳至地址0013H 去执行中断服务程序,直到RETI 指令后,才返回主程序继续执行。

MCS-51 系列的程序内存中有7 个矢量地址,叙述如下:(1)00H 复位当第9 脚RESET 为高电平,CPU 会跳至地址00H 处开始执行程序,亦即程序一定要从地址00H 开始写起。

(2)03H(外部中断0)当I NT 0引脚由高电位变至低电位(跳沿触发方式)或采样到是低电位(电平触发方式)时,CPU 会接受外部中断0,并跳至地址03H 处去执行中断子程序。

(3)0BH( 定时器/计数器0 中断)当CPU 接受定时器/计数器0 中断置位而产生中断要求时,会跳至地址0BH 处去执行中断子程序。

(4)13H(外部中断1)当I NT 1引脚由高电位变至低电位(跳沿触发方式)或采样到是低电位(电平触发方式)时,CPU 会接受外部中断1,并跳至地址13H 处去执行中断子程序。

(5)1BH( 定时器/计数器 1 中断)当CPU 接受定时器/计数器 1 中断置位而产生中断要求时,会跳至地址1BH 刻去执行中断子程序。

(6)23H(串行中断1)当串行端口传送数据或接收数据完毕时,CPU 会接受串行中断,并跳至地址23H 处去执行中断子程序。

(7)2BH( 定时器/计数器 2 中断)此中断仅8052 系列才有。

当CPU 接受定时器/计数器 2 产生中断要求时,会跳至地址2BH 处去执行中断子程序。

INT 0 IT0 选择低电位或负沿触发IE0EX0ET0EAPX0高优先级低优先级高PT0TF0INT 1 I T1 选择低电位或负沿触发IE1EX1ET1P X1PT1TF1RI TI +ESPSET2PT2TF2+EXF2低图2.1 MCU 内部中断机制2.中断使能位8051 针对中断提供两层使能,第一层为EA 全局使能控制,第二层为分别控制EX0 ,ET0、EXl 、ETl 、ES、ET2。

当8051 在复位状态时,寄存器的各个中断使能位都预设为“0”,即所有中断都禁止,故欲允许中断时,应先使能相对应的中断。

当中断产生后,中断状态会记录于定时器/计数器控制寄存器(Timer /CounterControlRigister ,TCON) 和串口口控制寄存器SCON 的中断请求标志(InterruptRequest flag) 中,当标志被置位,表示中断已发生。

由图2.1 可知,当外部中断或定时器0、定时器 1 中断发生时,CPU 都可以判别是哪种中断。

因此当这四个中断发生时,中断服务程序被执行后,CPU 会主动清除中断请求标志,对于其他的中断,由于CPU 无法判别,因此中断请求标志需由程序指令来清除。

欲设定中断使能与否,必须设置中断使能寄存器IE(Interrupt Enable Register) ,其位地址A8H ,是一个可位寻址的寄存器。

3.中断保护由于各个中断入口间仅有8 个字节,一般情况下难以安排下一个完整的中断服务程序。

因此,通常总是在重点入口地址处放置一条无条件转移指令,使程序转向在其他地址存放的中断服务程序。

当执行新的中断服务程序时,注意不可以破坏旧有的数据和状态,因此在编写时还要注意保护现场,主要是各个寄存器的值。

通常会被更改的数据(如ACC 、PSW 等),可以利用堆栈在执行中断服务程序之前就将其PUSH 起来,待执行结束后再将相关寄存器POP 即可。

另外,因为8051 可任意选择四个工作寄存器区中的一组工作寄存器,所以利用选择不同寄存器区的方式亦可达到数据保存的目的。

4.中断优先级8051 对于各种中断优先权采用双层结构,首先对于优先权可由中断优先权寄存器(Interrupt Priority )IP 设定该中断为高优先权或低优先权,高优先权可以中断低优先权,反之不行。

当同一时间同一级别的多个中断请求是,则按自然优先级顺序相应中断。

IP 寄存器:PS PT1 PX1 PT0 PX0 (MSB) (LSB) PX0,PX1: 外部中断0,1 的中断优先级控制;1->高优先级,0->低优先级。

PT0,PT1:定时器/计数器0,1 的中断优先级控制;PS:串行口中断优先级控制。

IP 中对应位全为零时,CPU 按照片自然优先级来顺序响应中断:中断源外部中断0 高定时器/计数器0外部中断 1定时器/计数器 1串行口中断低五、实验步骤本实验将练习使用INT 0,I NT 1的中断,利用按键来触发外部中断的发生。

并通过两个中断先后到达的方法,来学习中断优先级的意义与控制。

1、电路说明在图 2.2 中,主程序执行时,单片机端口P0 所接的LED 由P0.7 至P0.0 一次一颗循环点亮。

当外部中断0 产生后,执行该中断子程序,此时P0.0 对应的二极管亮,其他二极管熄灭。

2 秒钟后,返回主程序的工作。

INT 1中断子程序则为点亮P0.1 对应的二极管,其他二极管熄灭。

注意,由于每次在按键按下或放开可能会有抖动现象,因而必须进行必要的处理,以免产生二次以上的相同中断信号。

在程序主循环进行时,当1 键按下,相应发光管点亮后,立即再按下 2 键,看反应如何;在程序主循环进行时,按下 2 键,相应发光管点亮后,立即按下 1 键,观察反应。

2.程序设计先按l 键执行INT 0 中断子程序,在此中断子程序未结束前再按 2 键,或是先按 2 键执行INT 1中断子程序,在此中断子程序未结束前再按l 键,或两者同时按,观察lED 亮暗的情形即可观察中断优先权执行的情形。

六、实验报告1.画出电路原理图,并简要分析工作原理;80C51 5VP0.0P0.1P0.2INT 0 P0.3P0.4INT 1P0.5GNDP0.6P0.7工作原理简述:外部中断按键INT0 ,INT1 连接按键接受外部中断请求,由P0 连接外部二极管,每个引脚控制一个发光二极管,低电平点亮。

当按键按下时,单片机接受外部中断请求,进行10MS 消抖延迟后如果判断按键依然有效,则执行相应的程序进行相应的中断处理,通过P0 进行灯的亮暗控制。

2.提供程序流程图和程序清单,适当给出注释;;******************************************************************************ORG 0000HAJMP MAINORG 0003HAJMP INT0INTORG 0013HAJMP INT1INT;********** 主程序**********************************ORG 0030HMAIN :MOV S P,#60HMOV IE,#10000101B ;使能INT0 ,INTlMOV TCON ,#00000101B ;设INT0 、INTl 跳沿触发。

MOV IP,#01H ;外部中断0 优先MOV A,#0FEHLOOP: RR AMOV P0,AACALL DELAY200MSAJMP LOOP;*****************INT0 中断服务程序*****************************INT0INT: CLR EAACALL DELAY10MS ;去抖动JNB INT0, HAVKEY1 ;确实有键,转HAVEKEY1SETB EARETIHAVEKEY1: PUSH PSWPUSH AccSETB EAMOV P0,#0FEHACALL DELAY2S ;亮2 秒钟POP AccPOP PSWRETI;************INT1 中断服务程序******************************INT1INT:CLR EA ;关闭中断ACALL DELAY10MS ;延迟10 毫秒JNB INT1,HAVEKEY2 ;如果依旧按键有效执行子程序HAVEKEY2:PUSH PSWPUSH Acc ;现场入栈MOV P0,#0FCH ;P0 赋值为1111,1101,即点亮P0.1 对应的LED 灯ACALL DELAY2S ;延迟 2 秒POP AccPOP PSW ;现场出栈SETB EA ;中断允许RETI ;中断返回;********************************************************DELAY200MS: ;延时200ms 子程序MOV R7,#2DELA1:MOVR6,#200DELA2:MOV R5,#248DJNZ R5,$DJNZ R6,DELA2DJNZ R7,DELA1RET;延迟时间=1+1*2+1*2*200+2*2*200*248+2*200*2+2*2+2=199607us-.>200msDELAY10MS: ;延时10ms 子程序DEL:MOV R7,#28HDEL1:MOV R6,#7DHDEL2:DJNZ R6,DEL2DJNZ R7,DEL1RET;时间计算同理DELAY2S: ;延时2s 子程序DEL:MOV R7,#14HDEL1:MOV R6,#C8H .DEL2:MOV R5,#F8DJNZ R5,$DJNZ R6,DEL2DJNZ R7,DEL1RET;时间计算同理END3.描述实验现象和结果,要求对实验现象和结果进行分析。

相关文档
最新文档