51单片机实验报告
51单片机流水灯实验报告
51单片机流水灯实验报告51单片机流水灯实验报告引言:51单片机是一种常用的微控制器,广泛应用于各种电子设备中。
流水灯实验是学习单片机编程的基础实验之一,通过控制多个LED灯的亮灭顺序,可以了解单片机的基本原理和编程方法。
一、实验目的本实验旨在通过使用51单片机,设计并实现一个简单的流水灯电路,加深对单片机原理的理解,掌握基本的单片机编程方法。
二、实验原理51单片机是一种8位微控制器,具有强大的功能和广泛的应用。
流水灯实验中,我们需要控制多个LED灯的亮灭顺序,通过编写程序,将指令发送给单片机,控制LED灯的亮灭。
三、实验器材1. 51单片机开发板2. LED灯若干3. 面包板4. 连接线四、实验步骤1. 将51单片机开发板连接到电脑上,打开开发板的编程软件。
2. 在编程软件中,新建一个工程,选择适合的单片机型号。
3. 编写程序,设置相应的引脚为输出模式,并配置流水灯的亮灭顺序。
4. 将单片机开发板与面包板连接,将LED灯连接到相应的引脚上。
5. 将编写好的程序下载到单片机中。
6. 打开电源,观察LED灯的亮灭顺序是否符合预期。
五、实验结果与分析经过实验,我们成功地实现了一个简单的流水灯电路。
LED灯按照设定的顺序亮灭,形成了流水灯的效果。
通过调整程序中的指令顺序,我们可以改变LED灯的亮灭顺序,实现不同的流水灯效果。
六、实验心得通过这次实验,我对51单片机的原理和编程方法有了更深入的了解。
流水灯实验是一种简单但基础的实验,通过实际操作和编程,加深了我对单片机的理解和掌握。
在实验过程中,我遇到了一些问题,如LED灯连接错误、程序逻辑错误等,但通过仔细检查和调试,最终成功解决了这些问题。
这次实验让我更加熟悉了单片机的应用,为以后更复杂的项目打下了基础。
七、实验拓展在掌握了基本的流水灯实验后,我们可以进一步拓展实验内容。
例如,可以增加控制开关,实现对流水灯的启停控制;可以设计不同的流水灯效果,如闪烁、变速等;还可以与其他传感器、模块进行组合,实现更多功能和效果。
单片机实训报告总结
单片机实训报告总结篇一:51单片机实训报告“51单片机”精简开发板的组装及调试实训报告为期一周的单片机实习已经结束了。
通过此次实训,让我们掌握了单片机基本原理的基础、单片机的编程知识以及初步掌握单片机应用系统开发实用技术,了解“51”单片机精简开发板的焊接方法。
同时培养我们理论与实践相结合的能力,提高分析问题和解决问题的能力,增强学生独立工作能力;培养了我们团结合作、共同探讨、共同前进的精神与严谨的科学作风。
此次实训主要有以下几个方面:一、实训目的1.了解“51”精简开发板的工作原理及其结构。
2.了解复杂电子产品生产制造的全过程。
3.熟练掌握电子元器件的焊接方法及技巧,训练动手能力,培养工程实践概念。
4.能运用51单片机进行简单的单片机应用系统的硬件设计。
5.掌握单片机应用系统的硬件、软件调试方法二、实验原理流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。
它的电气性能指标:输入电压:~6V,典型值为5V。
可用干电池组供电,也可用直流稳压电源供电。
如图所示:本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。
三、硬件组成1、晶振电路部分单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。
他是由一个晶振和两个瓷片电容组成的,x1和x2分别接单片机的x1和x2,晶振的瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。
2、复位端、复位电路给单片机一个复位信号(一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,时如果手按着一直不放,系统将一直复位,不能正常。
51单片机最小系统实验报告
51单片机最小系统实验报告1.实验目的:1).学习、了解单片机原理,即单片机的各引脚功能、特殊功能寄存器、中断系统、定时/计数器和通信方式等;2).了解指令系统,各指令的功能;3).学习电路原理设计,PC板设计以及编排;2.方案设计:1).最小系统部分的设计能够用于基本的数字信号处理,运行一些简单的程序。
此部分主要包括电源电路、复位电路、时钟电路、USB 接口设计等;2).扩展电路的设计对于51最小系统CPU芯片等在芯片出厂时不可能让片内存储器的大小满足所有功能的要求,如果将片内存储器做太大,必然造成芯片成本的提高。
所以合适的外部RAM、液晶、外部中断和串行接口电路设计等。
3.任务:51单片机最小系统的设计1)CPU选择:STC15W4K系列选择原因:a.宽电压(2.5V-5.5V)b. 大容量4K字节SRAM和多组并行端口c.16/32/56/61/63.5字节多选Flash程序储存器以及普通定时、计数器T0-T4外部管脚可掉电唤醒。
d.内置高精准时钟(5-28MHz任意设置)和集成MAX810专用复位电路e.看门狗、对外输出时钟及复位2).系统要实现的功能:以UPU为核心器件,并利用外存储器对最小系统电路进行扩展。
在介绍CPU基本特点的基础上,通过学习指导,开展出51单片机最小系统板。
系统要实现以下功能,最小系统部分的设计能够用于基本的数字信号处理,运行一些简单的程序。
此部分主要包括电源电路、复位电路、时钟电路、中断系统,USB 接口的设计和相对扩展等。
4.外围器件选择及说明:1).外部RAM:IS62C256AL。
ISSI的IS62C256AL是一个32Kx8位字长的低功耗CMOS静态随机存取存储器。
IS62C256AL采用ISSI公司的高性能,低功耗CMOS工艺制造。
当/CE处于高电平(未选中)时,IS62C256AL进入待机模式。
在此CMOS 输入标准的待机模式下,功耗低至150 μW(典型值)。
实验一51单片机流水灯实验实验报告
实验一 51单片机流水灯实验实验报告
“流水灯”实验报告 一、实验目的 1.了解单片机I/O口的工作原理。 2.掌握51单片机的汇编指令。 3.熟悉汇编程序开发,调试以及仿真环境。 二、实验内容 通过汇编指令对单片机I/O进行编程(本实验使用P0口),以控制八个发光二极管以一定顺序亮灭。(即流水灯效果) 三、实验原理 通过更改P0口8位的高低电平,分别控制8个发光二极管的亮灭。具体的亮灭情况如下表:
要实现“流水灯”效果,也就是需要将P0口的输出值发生以下变化: FE→FD→FB→F7→EF→DF→BF→7F→BF→DF→EF→F7→FB→FD→FE→...... 可以使用一个循环,不断对数据进行移位运算实现。这里的移位指令采用RL和RR,即不带进位的位移运算指令。如果使用带 进位的位移运算指令(RLC和RRC),则需要定期把CY置0,否则会出现同时亮起两个发光二极管的情况。 四、实验过程 1.在仿真系统中绘制RG 0000H Delay: MOV R0, #0FFH SJMP Start Delay1: MOV R1, #0FFH Start: MOV A, #0FEH Delay2: NOP MOV P0, A DJNZ R1, Delay2 CLR P2.7 DJNZ R0, Delay1 CLR P3.7 RET Move: MOV R2, #7H END MOV R3, #7H RMove: RL A MOV P0, A CALL Delay DJNZ R2, RMove LMove: RR A MOV P0, A CALL Delay DJNZ R3, LMove SJMP Move 五、实验结果 为了便于实验结果的描述,下面分别把P0.0, P0.1…, P0.7对应的发光二极管编号为1, 2, …, 8号二极管。 在仿真系统中,先从1号二极管下面是在仿真系统中的实验结果:
单片机实训实验报告
一、实验名称单片机原理及应用实验二、实验目的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口输出高低电平,控制数码管显示数字。
c51单片机实验报告
c51单片机实验报告C51单片机实验报告引言C51单片机作为一种常见的微控制器,广泛应用于各种电子设备中。
本实验报告旨在介绍C51单片机的基本原理、实验过程和结果分析,以及对其在实际应用中的潜力进行探讨。
一、C51单片机的基本原理C51单片机是一种高度集成的微处理器,由中央处理器、存储器、输入输出接口和时钟电路等组成。
其核心是Intel公司开发的8051系列单片机,具有高性能、低功耗和易于编程等优点。
C51单片机采用汇编语言进行编程,可以实现各种功能,如数据处理、控制和通信等。
二、实验过程本次实验选取了LED灯的控制作为示例,通过C51单片机控制LED灯的亮灭来展示其基本功能。
1. 实验材料准备准备工作包括C51单片机开发板、连接线、电源和LED灯等。
确保所有材料齐全并连接正确。
2. 编写程序使用汇编语言编写程序,通过控制特定的IO口来控制LED灯的亮灭。
程序需考虑到时序和逻辑关系,确保正确的控制信号发送到LED灯。
3. 烧录程序将编写好的程序通过烧录器烧录到C51单片机中,确保程序能够正确运行。
4. 运行实验将电源接入开发板,开启电源。
通过按下相应的按键或其他输入方式,触发C51单片机发送控制信号,从而控制LED灯的亮灭。
三、实验结果分析经过实验,我们成功地实现了通过C51单片机控制LED灯的亮灭。
通过改变程序中的控制信号,我们可以实现不同的灯光效果,如闪烁、流水灯等。
这说明C51单片机具有良好的可编程性和控制能力。
此外,我们还发现C51单片机具有较高的稳定性和可靠性。
在实验过程中,单片机能够稳定地工作,并根据程序的要求正确地控制LED灯的状态。
这为其在实际应用中提供了良好的基础。
四、C51单片机在实际应用中的潜力C51单片机作为一种常见的微控制器,广泛应用于各种电子设备中。
其可编程性和控制能力使得它在工业自动化、家电控制、通信设备和电子产品等领域有着广阔的应用前景。
例如,在工业自动化领域,C51单片机可以用于控制机器人、自动化生产线和仪器设备等。
51单片机流水灯实验报告
51单片机流水灯实验报告一、实验目的1.熟悉51单片机的硬件资源2.掌握51单片机的I/O口编程3.掌握51单片机的定时器/计数器编程二、实验原理流水灯是一种简单的电子设计,通过依次点亮和熄灭多个LED灯来形成流水灯的效果。
本实验使用的是51单片机,它有40个I/O口和3个定时器/计数器,可以方便地实现流水灯的效果。
三、实验器材1.51单片机开发板B数据线3.LED灯若干4.面包板5.连线材料(公对公、公对母杜邦线)四、实验过程1.准备工作:a.将51单片机开发板和LED灯连接起来,将LED灯依次插在面包板上,并与51单片机的I/O口相连接。
b.连接电脑与51开发板,使用USB数据线将它们连接起来。
2.编写程序:a. 打开Keil开发环境,新建一个工程。
b.在C代码文件中编写流水灯的控制程序,并引用51单片机的头文件和IO口控制相关的函数。
代码示例:```c#include <reg51.h>sbit LED1 = P1^0;sbit LED2 = P1^1;sbit LED3 = P1^2;sbit LED4 = P1^3;sbit LED5 = P1^4;void delay(unsigned int t)while(t--)for(unsigned int i = 0; i < 125; i++);}void maiwhile(1)LED1=0;//点亮LED1delay(1000); // 延时LED1=1;//熄灭LED1LED2=0;//点亮LED2delay(1000); // 延时LED2=1;//熄灭LED2LED3=0;//点亮LED3delay(1000); // 延时LED3=1;//熄灭LED3LED4=0;//点亮LED4delay(1000); // 延时LED4=1;//熄灭LED4LED5=0;//点亮LED5delay(1000); // 延时LED5=1;//熄灭LED5}}```3.烧录程序:a.将开发板上的烧录开关调整为“USB”模式。
51单片机实验报告
51单片机实验报告51单片机是一款非常流行的单片机芯片,被广泛应用于各种电子产品中。
在这篇文章中,我们来探讨一下51单片机的一些实验,以及对于这些实验的理解和体会。
第一部分:实验内容我们进行的51单片机实验主要包括以下几个方面:1. 闪烁LED灯实验:这个实验是入门级别的,主要是为了熟悉51单片机的基本操作和编程方法。
在这个实验中,我们使用了一块51单片机开发板和几个LED灯,通过控制单片机的IO口信号来实现LED灯的闪烁。
2. 按键控制LED实验:这个实验是在闪烁LED实验的基础上进一步延伸的,主要是为了了解如何通过外部按键来控制单片机的输出。
在这个实验中,我们运用了单片机的外部中断和定时器等功能,实现了按键控制LED灯的亮灭。
3. LCD1602显示屏实验:这个实验是为了让我们熟悉如何在51单片机中使用LCD1602液晶显示屏。
在这个实验中,我们使用了I2C总线来与LCD1602进行通信,通过向LCD1602发送命令和数据来实现字符的显示。
4. 电机驱动实验:这个实验是让我们了解如何使用51单片机来控制电机的运转。
在这个实验中,我们运用了单片机的PWM控制功能,通过改变PWM波的占空比来控制电机的转速和方向。
第二部分:实验体会通过这些实验,我对于51单片机有了更深刻的理解和体会。
在这里,我想分享一下我的一些体会。
首先,我认为51单片机具有非常强大的控制能力和灵活性。
通过编写程序,我们可以控制单片机的各种IO口、定时器、PWM输出等功能,从而实现各种复杂的控制任务。
同时,由于其能够直接操作硬件,所以可以快速响应各种外部事件,对实时性要求较高的应用场景有很好的适应性。
其次,我发现在51单片机开发中,良好的软硬件结合非常重要。
由于51单片机具有丰富的外部中断、定时器等功能,因此我们可以很好地利用这些硬件资源来实现各种功能。
同时,在编写程序时,我们也需要充分发挥51单片机的硬件优势,例如使用定时器来完成计时任务,使用外部中断来完成输入检测等等。
51单片机实验报告
51单片机实验报告一、引言51单片机是一种广泛应用于嵌入式系统开发的微控制器芯片。
本实验旨在通过对51单片机的实验研究,加深对该芯片的理解和应用。
二、实验一:LED灯闪烁控制本实验通过编写程序,控制51单片机上的LED灯以特定的频率闪烁。
为了实现这个目标,我们首先需要了解51单片机的引脚布局,确定LED灯的连接方式。
然后,通过编写相应的汇编程序,控制引脚的电平变化,从而实现LED灯的闪烁。
三、实验二:数码管显示数码管是一种常见的输出设备,通过控制引脚的输出来显示特定的数字。
本实验中,我们通过编写程序,实现通过51单片机控制数码管的显示。
通过对数码管的驱动原理和编程的学习,我们可以灵活地控制数码管的显示内容和频率。
四、实验三:蜂鸣器发声蜂鸣器是一种常见的声音输出设备,通过控制引脚的输出来产生特定的声音。
本实验中,我们通过编写程序,实现通过51单片机控制蜂鸣器的发声。
通过学习蜂鸣器的驱动原理和编程,我们可以根据需要产生不同频率和节奏的声音。
五、实验四:温湿度检测温湿度检测是一种常见的环境监测需求。
本实验中,我们通过引入温湿度传感器,实现通过51单片机获取环境的温度和湿度信息。
通过编写程序和读取传感器的数据,我们可以实时监测环境的温湿度,并进行相应的控制和反馈。
六、实验五:红外遥控红外遥控是一种常见的无线通信方式,通过发送和接收红外信号来实现远程控制。
本实验中,我们通过引入红外发射和接收模块,实现通过51单片机进行红外遥控。
通过编写相应的程序,设置红外遥控的编码和解码方式,我们可以实现对外部设备的遥控操作。
七、实验六:定时器应用定时器是51单片机中的重要模块,它可以实现定时和计数等功能。
本实验中,我们通过学习定时器的工作原理和编程,实现通过51单片机进行定时和计数的应用。
通过编写相应的程序和设置定时器的参数,我们可以实现不同的定时和计数功能,满足各种需要。
八、实验七:串口通信串口通信是一种常见的数据通信方式,通过串口接口发送和接收数据。
C51单片机实验总结报告
C51单片机实验总结报告HEFEI UNIVERSITY单片机实验报告系别电子信息与电气工程系专业班级学号姓名指导老师完成时间实验一构建单片机最小系统和实验环境熟悉一、预习要求1.构建单片机最小系统,熟悉51单片机的结构及编程方法2.按照程序流程图编写出程序二、实验目的1.熟悉星单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的使用方法。
2.熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。
三、实验内容单片机最小系统实验:1、熟悉单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的安装和使用方法。
2、作出单片机最小系统的组成原理图,分析其各构成单元的工作原理。
存储单元数据传输实验1、熟悉MCS51汇编指令。
2、进行存储单元数据传输实验,编写程序。
3、运行程序,验证译码的正确性。
四、实验原理1、作出单片机最小系统的组成原理图12.最小系统版的组成:时钟电路,复位电路,电源电路。
3.软件编译环境的熟悉实验中我们使用keilC环境编译程序。
其窗口界面如下:4.测试程序;将从外部RAM3000H单元开始连续存放的;50个单字节数据传送到内部RAM30H单元的50个单元中。
ORG 0000HMOV R0,#32H ;计数初值50MOV A,#78H ;(A)=78H送外部3000H--3050HMOV DPTR,#3000H ;外部数据存储器首地址3000H送DPTRLOOP0: MOVX @DPTR,A ;送78H到外部数据存储区3000H INC DPTR ;外部数据存储区地址增一DJNZ R0,LOOP0 ;循环次数减一不为零转LOOP0SETB P1.2CLR P1.3CLR P1.4 ;74HC138输入为100,使CS2=0选中62256 MOV R0,#32H ;循环次数50送R0MOV R1,#30H ;内部数据存储区首址30H送R1MOV DPTR,#3000H ;外部数据存储区首址3000H送DPTR2LOOP: MOVX A,@DPTR ;读外部数据存储区3000H内容送AMOV @R1,A ;累加器A的内容送内部数据存储区30HINC DPTR ;外部数据存储区地址增一INC DPTR ;内部数据存储区地址增一INC R1DJNZ R0,LOOPSJMP $END五、实验仪器、设备1、单片机最小系统2、Keil C51集成环境软件六、实验注意事项1.注意在星研集成环境下如何进行程序调试2.注意保护实验箱七、实验方法及步骤1、调试单片机最小系统板。
51单片机实验报告
51单片机实验报告51单片机是一种广泛应用于控制领域的微型处理器。
本文将介绍我所进行的两个基础实验,包括实验目的、实验内容、实验原理和实验结果。
实验一——点亮LED灯实验目的:了解51单片机的基本接口和编程方法;学会使用单片机的开发工具和调试器;掌握51单片机控制LED灯的方法。
实验内容:将LED灯连接至51单片机的P1.0引脚,并进行控制。
编写程序,使得LED灯能稳定地点亮。
实验原理:单片机可通过其IO口控制外部设备,使用高低电平来控制LED灯的开关。
P1.0是51单片机的一个输出端口,可通过赋予其电平状态从而控制LED的点灯与熄灭。
当单片机输出高电平时,LED灯会点亮,否则会熄灭。
实验结果:经过编写程序和调试后,成功实现了LED灯的点亮和熄灭。
按下按键即可改变LED的状态。
实验二——数码管计数器实验目的:了解51单片机的数字口和中断响应机制;掌握编写定时器中断程序的方法;学会使用键盘进行输入和外接数码管进行输出。
实验内容:通过对8位数码管控制台的编程,实现对数字的控制,使用定时器中断实现计数器功能,加深对51单片机中断响应机制的理解。
实验原理:单片机中断请求源包括外部中断源、定时器/计数器中断源以及串口中断源。
本次实验使用定时器中断,可实现一定时间间隔内数字的加减;使用键盘进行输入,采用P3口中断请求源实现按键响应,输出则通过数码管接口外设实现。
实验结果:通过定时器计数器、中断响应和数码管接口外设,成功实现一组数字的计数。
按下按键即可进行数字的加减,并通过数码管显示出来。
结语:本文所述实验为51单片机的基础操作,相信可以为读者提供实用的参考和帮助,帮助大家更加深入地理解51单片机的基础知识和使用方法。
51单片机求平均值实验报告
51单片机求平均值实验报告实验名称:基于51单片机的求平均值实验实验目的:1.掌握51单片机的基本编程原理;2.理解基本电路原理,学会使用万用表等工具对电路进行测量;3.能使用51单片机对多个数值进行求平均值的操作。
实验原理:本实验主要涉及到51单片机基础知识和基本电路原理,涉及到以下几个方面的知识:1.51单片机的工作原理:51单片机的基本原理是通过将程序代码下载到单片机中,通过控制IO口,实现对外部设备的控制和数据的处理。
2.模拟电路基础知识:本实验中使用的是AD转换器,该电路主要由电阻、电容和运算放大器组成,可以将模拟信号转换为数字信号。
3.基本的电子元器件:在本实验中,需要使用到的电子元器件有电阻、电容和电位器,这些元器件是电路中基本的组成部分,掌握它们的使用和特性对于电路的设计和调试都非常关键。
实验材料:1.51单片机板2.数码管3.AD转换器模块4.电阻、电容、电位器5.跳线6.万用表实验步骤:1.搭建实验电路:将51单片机板、数码管、AD转换器模块等按照电路图连接起来。
2.编写程序:根据实验要求编写51单片机程序,实现求平均值的操作。
3.下载程序:将编写好的程序下载到单片机中。
4.测试电路:通过万用表对电路进行测试,检查电路中存在的问题,如有短路、断路等等。
5.开始实验:启动实验程序,将多个数值输入程序中,通过程序对这些数值进行处理,最后输出平均值。
6.记录实验结果:记录每次实验结果,这有助于后期分析实验数据并进行相关研究。
实验结果:通过多次实验,我们最终得到了一组较为稳定的数据,数据如下:输入的数值为:6、8、10、12、14平均值为:10实验结论:通过本实验我们可以发现,51单片机在数据处理中的作用十分巨大,通过编写程序,我们可以方便地对多个数值进行求平均值操作。
电子元器件的选择和故障排除对于电路的设计和调试非常关键,我们需要对电路中常见元器件的使用和特性有一定的掌握,才能确保实验的顺利进行。
51单片机实验报告范文
51单片机实验报告范文51单片机实验报告实验一点亮流水灯实验现象Led灯交替亮,间隔大约10ms。
实验代码#include〈reg51、h>voidDelay10ms(unsignedintc);voidmain(){)1(elihwﻩ{ﻩP0=0x00;Delay10ms(50);;ffx0=0Pﻩﻩ;)05(sm01yaleDﻩ}}voidDelay10ms(unsignedintc){unsignedchara,b;for(;c>0;c-—){)——b;0〉b;83=b(rofﻩ{ﻩﻩfor(a=130;a〉0;a--);}ﻩﻩ}}实验原理WWhiile(1)表示一直循环。
循环体内首先将P0得所有位都置于零,然后延时约550*10=500ms,接着0P0位全置于11,于就是DLED全亮了。
接着循环,直至关掉电源..延迟函数就是通过多个forr循环实现得。
实验2流水灯(不运用库函数)实验现象起初led只有最右面得那一个不亮,半秒之后从右数第二个led也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程#includemain(){unsignedcharLED;LED=0xfe;while(1){ﻩ;DEL=0PﻩDelay10ms(50);;1〈〈DEL=DELﻩ)00x0==0P(fiﻩ{ﻩ;efx0=DELﻩ}ﻩ}ﻩ}voidDelay10ms(unsignedintc){unsignedchara,b;for(;c>0;c-—){ﻩﻩﻩ)—-b;0〉b;83=b(rofﻩ{;)--a;0>a;031=a(rofﻩ}ﻩ}ﻩ}实验原理这里运用了C语言中得位运算符,,位运算符左移,,初始值得二进制为11111110,之后左移一次变成111111000,当变成000000000时通过fif语句重置1111111110、延迟函数在第一个报告已经说出了,不再多说..实验3流水灯(库函数版)实验现象最开始还就是最右边得一个不亮,然后不亮得灯转移到最右边得第二个,此时第一个恢复亮度,这样依次循环.实验代码#include〈reg51、h>#include〈intrins、h〉voidDelay10ms(unsignedintc);voidmain(void){unsignedcharLED;;EFx0=DELﻩ)1(elihwﻩ{ﻩP0=LED;;)05(sm01yaleDﻩﻩ;)1,DEL(_lorc_=DELﻩ}ﻩ}voidDelay10ms(unsignedintc){ unsignedchara,b;for(;c〉0;c——){ﻩfor(b=38;b〉0;b—-){ﻩﻩ;)-—a;0〉a;031=a(rofﻩ}ﻩ}}实验原理利用头文件中得函数,_crol_(,,),可以比位操作符更方便得进行22进制得移位操作,,比位操作符优越得就是,该函数空位补全时都就是用那个移位移除得数据,,由此比前一个例子不需要fif语句重置操作..数码管实验实验现象单个数码管按顺序显示0-9与A-F。
51单片机实验一实验报告
51单片机实验一实验报告实验报告班级:姓名:学号:组别:课程名称:单片机原理及应用实验室:实验时间:实验项目名称:实验一MCS-51单片机及其开发系统(仿真器)的认识一、实验目的:学习并掌握单片机仿真系统的操作方法,熟悉系统功能及用法。
(1)了解MCS-51单片机开发常用工具。
(2)了解仿真器构成、功能及连接。
(3)掌握MCS-51开发软件(汇编器)安装、功能及基本操作。
(4)掌握源程序的编辑、汇编、运行(包括连续执行、单步执行和跟踪执行)。
(5)掌握汇编语言指令与机器语言指令之间的对应关系。
(6)掌握ORG、DATA、BIT等伪指令的作用。
(7)掌握在仿真开发系统下浏览、修改特殊功能寄存器、内部RAM、外部RAM 单元的方法。
(8)理解MCS-51单片机在复位期间及复位后有关引脚的状态、特殊功能寄存器的初值。
二、实验内容及原理:MdeWin单片机仿真系统的安装、设置、主要功能操作练习。
三、实验器材:MdeWin单片机仿真系统一套、PC机一台。
四、实验步骤及实验结果分析:一、程序输入练习:首先在Medwin下新建一项目,并新建一后缀名为asm的文件(汇编源文件),并添加入项目中。
按规定的格式输入以上程序(只输源程序部分)。
二、程序运行和控制:1.程序的编译、产生代码并装入:输入源程序完毕后,可在“项目管理”窗口中点击“编译/汇编”选项,如程序无输入错误、语法错误等,编译完成。
在消息窗口中,产生编译成功信息。
如有错误,则消息窗口中指出错误所在行及错误类型,请重新修改源程序。
编译成功后,在“项目管理”窗口中点击“产生代码并装入”选项,对编译无误后产生的OBJ文件进行连接,并把代码装入仿真器。
代码装入仿真器后,即可实行仿真。
可在反汇编窗口中查看编译产生的机器码,并与上述程序中对照。
记录你认为能说明问题的检查结果。
2.程序的全速、断点、单步等执行方式:为提高调试程序的运行速度,程序采用全速断点运行方式。
c51单片机实验报告
c51单片机实验报告
《C51单片机实验报告》
C51单片机是一种广泛应用于嵌入式系统中的微控制器,具有高性能、低功耗和丰富的外设接口,因此在各种电子设备中得到了广泛的应用。
本次实验将以C51单片机为研究对象,通过实验验证其性能和功能。
实验一:LED灯控制实验
首先,我们将C51单片机与LED灯连接起来,通过程序控制LED灯的亮灭。
实验结果表明,C51单片机可以准确地控制LED灯的亮度和闪烁频率,具有良好的稳定性和可靠性。
实验二:蜂鸣器控制实验
接着,我们将C51单片机与蜂鸣器连接起来,通过程序控制蜂鸣器的发声。
实验结果显示,C51单片机可以精准地控制蜂鸣器的音调和音量,具有较高的音频输出质量。
实验三:温湿度传感器实验
最后,我们将C51单片机与温湿度传感器连接起来,通过程序读取并显示温湿度数值。
实验结果表明,C51单片机可以准确地读取传感器的数据,并通过显示屏输出,具有良好的数据处理能力。
通过以上实验,我们验证了C51单片机在LED灯控制、蜂鸣器控制和温湿度传感器应用方面的性能和功能。
C51单片机具有较高的稳定性、可靠性和可编程性,适用于各种嵌入式系统的设计与开发。
希望本次实验报告能够对C51单片机的应用和研究提供一定的参考价值。
51单片机实验报告
实验一数据传送实验实验内容:将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,#40HMOV R0, #50HMOV R2, #10HA3: MOV A, @R1MOV @R0, AINC R0INC R1DJNZ R2, A3LJMP 0000H思考题:1.按照实验内容补全程序.2.CP.对8031内部RAM存储器有哪些寻址方式?直接寻址, 立即寻址, 寄存器寻址, 寄存器间接寻址。
3.执行程序后下列各单元的内容是什么?内部RAM 40H~4FH ___0A0H~0AFH______________________内部RAM 50H~5FH___0A0H~0AFH_______________________实验二多字节十进制加法实验实验内容:多字节十进制加法。
加数首地址由R0 指出, 被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。
将程序经模拟调试通过后, 运行程序, 检查相应的存储单元的内容。
源程序清单: ORG 0000HRESET: AJMP MAINORG 0100HMAIN: MOV SP, #60HMOV R0, #31HMOV @R0, #22HDEC R0MOV @R0, #33HMOV R1, #21HMOV @R1, #44HDEC R1MOV @R1, #55HMOV R2, #02HACALL DACNHERE: AJMP HEREDACN: CLR CDAL: MOV A, @R0ADDC A, @R1DA AMOV @R1, AINC R0INC R1DJNZ R2, DALCLR AMOV ACC.0 , CRET思考题:1.按照实验内容补全程序。
51单片机数码管显示实验报告
51单片机数码管显示实验报告实验目的:1.学习51单片机的编程方法和硬件连接方法;2.掌握使用51单片机驱动数码管显示的方法。
实验器材:1.51单片机开发板;2.公共阳极共阳向数码管一个;3.若干杜邦线。
实验原理:数码管是一种数字显示器件,由7个发光二极管和若干个选通器件构成。
每个发光二极管可以发出两种颜色的光,通常使用红色和绿色。
这篇实验报告以共阳数码管为例,共阳数码管的每个发光二极管的阳极都连接到电源VCC上,而七个阴极分别用来选择一些数字进行显示。
当要选择一些数码管显示时,需要对对应的阴极进行低电平使能,而使能其他阴极保持高电平,这样就可以通过控制每个数码管的阴极低电平使能来选择要显示的数字。
实验步骤:1.将51单片机开发板上的数码管连接到51单片机开发板的P1口和P0口上,连接方式如下图所示:```-----------------VCC-P0.0--,a,-----------------P0.1--,b,------P0.2--,c,---,数字2P0.3--,d,------P0.4--,e,------P0.5--,f,---,数字1P0.6--,g,------P0.7--,h,-----------------------P1.0P1.1```2. 在Keil µVision中新建工程,编写程序。
3.利用P0口控制数码管的阴极,利用P1口选择数码管要显示的数字。
4.在主程序中循环选择每个数码管,并通过P0口设置要显示的数字。
实验结果:```---------------------------------P1.0P1.1P0.6P0.7空空数字2数字1abcdefgh---------------------------------```实验结论:通过本次实验,学习了51单片机的编程方法和硬件连接方法,并掌握了使用51单片机驱动数码管显示的方法。
同时,还了解了数码管的工作原理和编程的基本步骤。
51单片机并行端口实验报告
实验 一 MCS-51单片机并行端口实验一、实验目的和要求目的:进一步熟悉和掌握KEIL 集成调试软件和DP-51PROC 综合实验系统的使用,掌握单片机并行端口的编程及使用方法。
统的使用,掌握单片机并行端口的编程及使用方法。
要求:将P1口地8位端口使用排线与LED1—LED8按照顺序连接,使用一条单独连接线将P3.2与SW1连接。
编制一个P1口地输出程序:将累加器A中的数据通过P1输出,SW1=1时,对累加器A 的内容右移并输出;SW1=0时,对累加器A 左移并输出。
左移并输出。
二、实验算法编制循环结构的程序,在循环结构内,通过判断P3.2是0还是1,实现对累加器A 的左移和右移,并输出到P1口,P3.2=1时,对累加器A 的内容右移并输出;P3.2=0时,对累加器A 左移并输出,为方便肉眼观察还需编制延时子程序,通过调用延子程序实现延时的目的。
程序,通过调用延子程序实现延时的目的。
三、实验电路图四、实验流程图五、程序清单开始SETB P3.2P3.2=1?RLA RRAA —>P1DELAYSETB P3.2MCS —51P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.01+5V+5V SW1ORG 8000H ;定义程序的初始地址;定义程序的初始地址 LJMP STARTORG 8100HSTART: MOV SP,#60H ;将栈顶指针赋初值;将栈顶指针赋初值SETB P3.2 ;初始化 3.2口准备做数据输入端MOV A,#0FEH ;累加器A 赋初值赋初值LOOP: JNB P3.2,LR ;如果3.2口!口!=1=1则跳转到LRRR A ;累加器A 里的值循环右移里的值循环右移SJMP SHOW ;跳转到SHOWLR: RL A ;累加器A 里的值循环左移里的值循环左移SHOW: MOV P1,A ;显示程序,将A 的值作为输出到P1口ACALL DELAY ;调用子程序DELAY DELAY,进行延迟功能,进行延迟功能,进行延迟功能AJMP LOOP ;跳转到LOOP,LOOP,进行循环程序进行循环程序进行循环程序DELAY: PUSH 01H ;子程序作为延时功能;子程序作为延时功能PUSH 02HMOV R1,#00H ;两层循环总共延时了FF*FF 次DELAY1:MOV R2,#00HDJNZ R2,$DJNZ R1,DELAY1POP 02HPOP 01HRETEND六、实验结果与分析当把开关至开是可以看到LED 灯不停的右移,当开关至关时看到LED 灯不停的左移,完全符合实验要求,实验成功。
51单片机P1口输入输出实验实验报告
实验一P1口输入输出实验一实验目的1 掌握P1口作为I/O口时的使用方法。
2 理解读引脚和读锁存器的区别。
二实验原理由 AT89C51 组成的单片机系统,通常情况下 P0 口分时复用作为地址、数据总线, P2 口提供 A15-A8 即高 8 位地址, P3 口用作第二功能,只有 P1 口用作 I/O 口。
P1 口是 8 位准双向口,它的每一位都可独立地定义为输入或输出。
既可作为 8 位的并行 I/O 口,也可作为 8 个不同的输入输出端。
P1 口的结构如图 2.1 所示,当其工作在输入方式时,对应锁存器必须先写 1 ,才能正确地读到引脚上的信号,否则,若对应锁存器的值为 0 ,执行读引脚指令时,读到的结果永远为 0 。
每个 I/O 端口都有两种读入,即读锁存器和读引脚,读引脚指令一般都是以 I/O 端口为源操作数的指令,如 MOV C , P1.3 ,而读锁存器指令一般为“读 - 修改 - 写”指令,如 ANL P1.3 , C 指令,请同学们在实验中体会。
图 2 中, P1.2 作为输出口, P1.3 作为输入口。
三实验内容与要求1.编写程序实现当P1.3为低电平时(SW1闭合),发光管亮;P1.3为高电平时发光管灭。
修改程序在执行读P1.3之前,先执行CLR P1.3,观察结果是否正确,分析在第二种情况下程序为什么不能正确执行,理解读引脚和读锁存器区别。
四实验内容实验程序:ORG 0000HMAIN: MOV SP,#60H ; 设置堆栈指针SP为60HMOV P1,#0FFH ;当P1口用作输入时,所有位对应的锁存器必须先置1 LOOP: ;CLR P1.3MOV C,P1.3 ;读P1.3JC LIGHTCLR P1.2 ;LED灭SJMP LOOPLIGHT: SETB P1.2 ;LED 亮SJMP LOOPRETEND若在执行读P1.3之前,先执行CLR P1.3,观察结果将会不正确。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
51单片机实验报告实验一点亮流水灯实验现象Led灯交替亮,间隔大约10ms。
实验代码#include <reg51.h>void Delay10ms(unsigned int c); void main(){while(1){P0 = 0x00;Delay10ms(50);P0 = 0xff;Delay10ms(50);}}void Delay10ms(unsigned int c){unsigned char a, b;for (;c>0;c--){for (b=38;b>0;b--){for (a=130;a>0;a--);}}}实验原理While(1)表示一直循环。
循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。
接着循环,直至关掉电源。
延迟函数是通过多个for循环实现的。
实验2 流水灯(不运用库函数)实验现象起初led只有最右面的那一个不亮,半秒之后从右数第二个led也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程#include <reg52.h>#include <intrins.h>void Delay10ms(unsigned int c);main(){unsigned char LED;LED = 0xfe;while (1){P0 = LED;Delay10ms(50);LED = LED << 1;if (P0 == 0x00){LED = 0xfe;}}}void Delay10ms(unsigned int c){unsigned char a, b;for (;c>0;c--){for (b=38;b>0;b--){for (a=130;a>0;a--);}}}实验原理这里运用了C语言中的位运算符,位运算符左移,初始值的二进制为1111 1110,之后左移一次变成1111 1100,当变成0000 0000时通过if语句重置1111 11110.延迟函数在第一个报告已经说出了,不再多说。
实验3流水灯(库函数版)实验现象最开始还是最右边的一个不亮,然后不亮的灯转移到最右边的第二个,此时第一个恢复亮度,这样依次循环。
实验代码#include <reg51.h>#include <intrins.h>void Delay10ms(unsigned int c); void main(void){unsigned char LED;LED = 0xFE;while(1){P0 = LED;Delay10ms(50);LED = _crol_(LED,1);}}void Delay10ms(unsigned int c) {unsigned char a, b;for (;c>0;c--){for (b=38;b>0;b--){for (a=130;a>0;a--);}}}实验原理利用头文件中的函数,_crol_( , ),可以比位操作符更方便的进行2进制的移位操作,比位操作符优越的是,该函数空位补全时都是用那个移位移除的数据,由此比前一个例子不需要if语句重置操作。
数码管实验实验现象单个数码管按顺序显示0-9和A-F。
#include<reg51.h>void Delay10ms(unsigned int c);unsigned char code DIG_CODE[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};void main(void){unsigned char i = 0;while(1){P0= ~DIG_CODE[i];i++;if(i == 16){i = 0;}Delay10ms(50);}}void Delay10ms(unsigned int c) //Îó²î 0us{unsigned char a, b;for (;c>0;c--){for (b=38;b>0;b--){for (a=130;a>0;a--);}}}实验原理根据数码管的点亮原理,依次找到代表0-9,A-F的位码,用循环和延迟函数就可以达到要求了。
实验动态数码管#include<reg51.h>#define GPIO_DIG P0#define GPIO_PLACE P1unsigned char code DIG_PLACE[8] = { 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code DIG_CODE[17] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; unsigned char DisplayData[8];void DigDisplay();void main(void){unsigned char i;for(i=0; i<8; i++){DisplayData[i] = DIG_CODE[i];}while(1){DigDisplay();}}void DigDisplay(){unsigned char i;unsigned int j;for(i=0; i<8; i++){GPIO_PLACE = DIG_PLACE[i];GPIO_DIG = DisplayData[i];j = 10;while(j--);GPIO_DIG = 0x00; }}实验原理依然找到相应数字和字母的编码,由于必须通过快速扫描利用视觉暂留来实现数码管的显示,分段码和位码,不断扫描。
最后如果更换数字的话,需要消隐操作,防止数码管重复显示所带来的不清楚。
实验外部中断实验现象每按一下独立按键,就会在数码管显示屏上+1。
#include < reg51.h >#include <intrins.h>sbit LS138A=P2^2;sbit LS138B=P2^3;sbit LS138C=P2^4;unsigned int LedNumVal_1,LedNumVal_2,LedOut[8]; Unsigned char code Disp_Tab[]= {0x3f ,0x06 , 0x5b ,0x4f, 0x66 , 0x6d , 0x7d , 0x07 , 0x7f , 0x6f , 0x40};void delay(unsigned int i){char j;for(i; i > 0; i--)for(j = 200; j > 0; j--);}void main(void){ unsigned char i;P0=0xff;P1=0xff;P2=0xff;IT0=1;EX0=1;IT1=1;EX1=1;EA=1;while(1){LedOut[0]=Disp_Tab[LedNumVal_1%10000/1000]; LedOut[1]=Disp_Tab[LedNumVal_1%1000/100]|0x80;LedOut[2]=Disp_Tab[LedNumVal_1%100/10]; LedOut[3]=Disp_Tab[LedNumVal_1%10];LedOut[4]=Disp_Tab[LedNumVal_2%10000/1000]; LedOut[5]=Disp_Tab[LedNumVal_2%1000/100]; LedOut[6]=Disp_Tab[LedNumVal_2%100/10]; LedOut[7]=Disp_Tab[LedNumVal_2%10];for( i=0; i<8; i++){ P0 = LedOut[i];switch(i){case 0:LS138A=0; LS138B=0; LS138C=0; break;case 1:LS138A=1; LS138B=0; LS138C=0; break;case 2:LS138A=0; LS138B=1; LS138C=0; break;case 3:LS138A=1; LS138B=1; LS138C=0; break;case 4:LS138A=0; LS138B=0; LS138C=1; break;case 5:LS138A=1; LS138B=0; LS138C=1; break;case 6:LS138A=0; LS138B=1; LS138C=1; break;case 7:LS138A=1; LS138B=1; LS138C=1; break; }delay(150);}}}void counter0(void) interrupt 0 using 1{EX0=0;LedNumVal_1++;EX0=1;}void counter1(void) interrupt 2 using 2{EX1=0;LedNumVal_2++;EX1=1;}实验原理对于数码管的显示采用138译码器,通过switch语句与数字一一对应,通过P3.2 P3.3外部中断接口使数码管成功计数。
外部中断函数为INT0与INT1。