51单片机实验报告

合集下载

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单片机最小系统实验报告

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单片机流水灯实验实验报告
如果使用带进位的位移运算指令rlc和rrc则需要定期把cy置0否则会出现同时亮起两个发光二极管的情况
实验一 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号二极管下面是在仿真系统中的实验结果:

C51单片机实验报告

C51单片机实验报告

C51单片机实验报告
一、实验内容
本次实验的目的是实现用C51单片机实现简易的闹钟功能:即用户可以设置闹钟时间,当到达闹钟的设定时间的时候,单片机会控制LED灯或者蜂鸣器发出报警信号来提醒用户。

二、实验任务
本次实验任务如下:
1.使用C51单片机读取外部时钟的时间。

2.实现从按键输入闹钟设定的时间。

3.使用定时器实现任务调度,即在每个时刻检查一次外部时钟的时间是否到达闹钟的设定时间,如果到达设定时间,则控制LED灯或者蜂鸣器发出报警信号。

三、实验过程
1.硬件部分:本实验使用的硬件是硬件C51单片机,它具有单片机主频11.059MHz,外部内存2K和内部RAM 128字节。

本次实验采用的C51单片机核心是AT89C51,它具有4K字节的Flash存储器,它有128个8位I/O口和3个定时器/计数器。

本次实验使用到的外设有:LCD1602显示模块、4个4*4的数字键盘、AT24C02的IIC从机存储器、LED灯和蜂鸣器。

2.软件部分:本次实验使用的软件工具是Keil C51编译器,使用它来编写C51单片机程序。

单片机实训实验报告

单片机实训实验报告

一、实验名称单片机原理及应用实验二、实验目的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单片机的基本原理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单片机流水灯实验报告

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”模式。

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

实验一数据传送实验实验内容:将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. CPU 对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. 按照实验内容补全程序。

2. 加数单元、被加数单元和结果单元的地址和内容为?3130H,2120H,6688H3. 如何检查双字节相加的最高位溢出?看psw.3 的溢出标志位ov=1 则溢出4. 改变加数和被加数,测试程序的执行结果。

实验三数据排序实验实验内容:将内部RAM 50H—59H中的数据按从小到大的次序排列。

将程序经模拟调试通过后,运行程序,检查相应的存储单元的数据是否为排序状态。

源程序清单:ORG 0000HRESET: AJMP MAINORG 0100HMAIN: MOV SP, #60HMOV R0, #50HMOV @R0, #6FHINC R0MOV @R0, #6EHINC R0MOV @R0, #6AHINC R0MOV @R0, #6CHINC R0MOV @R0, #6DHINC R0MOV @R0, #5BHINC R0MOV @R0, #67HINC R0MOV @R0, #69HINC R0MOV @R0, #68HINC R0MOV @R0, #64HACALL QUEHERE: AJMP HEREQUE: CLR 00HMOV R7, #09HMOV R0, #50HMOV A , @R0L2: INC R0MOV R2, ASUBB A, @R0MOV A, R2JC L1SETB 00HXCH A, @R0DEC R0XCH A, @R0INC R0L1: MOV A, @R0DJNZ R7, L2JB 00H, QUERET思考题:1. 按照实验内容补全程序。

2. 检查程序执行结果。

5BH,64H,67H,68H,69H,6AH,6CH,6DH,6EH,6FH 3. 修改程序,按从大到小次序排序。

ORG 0000HRESET: AJMP MAINORG 0100HMAIN: MOV SP, #60HMOV R0, #50HMOV @R0, #6FHINC R0MOV @R0, #6EHINC R0MOV @R0, #6AHINC R0MOV @R0, #6CHINC R0MOV @R0, #6DHINC R0MOV @R0, #5BHINC R0MOV @R0, #67HINC R0MOV @R0, #69HINC R0MOV @R0, #68HINC R0MOV @R0, #64HACALL QUEHERE: AJMP HEREQUE: CLR 00HMOV R7, #09HMOV R0, #50HMOV A , @R0L2: INC R0MOV R2, ASUBB A, @R0MOV A, R2JNC L1SETB 00HXCH A, @R0DEC R0XCH A, @R0INC R0L1: MOV A, @R0DJNZ R7, L2JB 00H, QUERET实验四双字节乘法实验实验内容:[(R3)(R2)*(R5)(R4)]→R0指出的四个单元。

将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。

源程序清单:ORG 0000HRESET: AJMP MAINORG 0100HMAIN; MOV SP, #60HMOV R2, #0FFHMOV R3, #0FHMOV R4, #0FFHMOV R5, #0FHMOV R0, #33HMOV R7, #04HML0: MOV @R0, #00HDJNZ R7, ML1ACALL M2HERE: AJMP HEREML1: DEC R0AJMP ML0M2: MOV A, R2MOV B, R4MUL A BACALL ADDMMOV A, R2MOV B, R5MUL A BDEC R0ACALL ADDMMOV A, R4MOV B, R3MUL A BDEC R0DEC R0ACALL ADDMMOV A, R5MOV B, R3MUL A BDEC R0ACALL ADDMRETADDM: ADD A, @R0MOV @R0, AMOV A, BINC R0ADDC A, @R0MOV @R0, AINC R0MOV A, @R0ADDC A, #00HMOV @R0, ARET思考题:1. 程序结果存放在哪几个单元中?33H~30H2. 乘积为多少?0FFE001H实验五电子钟实验实验内容:熟悉单片机在线仿真调试方法。

将仿真头插入实验板的CPU插座中,再打开电源,输入程序进行调试。

程序运行时,按下S0键,蜂鸣器发出响声,两个数码管开始从零显示时间,定时器定时时间为一分钟,定时时间到,蜂鸣器再次发出响声,重新按下S0键,重复上述过程。

源程序清单:ORG 0000HSTART:AJMP MAINORG 000BHAJMP PIT0ORG 0100H MAIN:MOV SP,#60HMOV 50H,#00HMOV 51H,#00HACALL DISPLAYMOV TMOD,#01HMOV TL0,#0B0HMOV TL1,#3CHACALL KEYCLR P2.7ACALL LONGDELAYSETB P2.7SETB 00HSETB TR0SETB EASETB ET0MOV 30H,#20 ML0:ACALL DISPLAYMOV C,00HJC ML0CLR P2.7ACALL LONGDELAYSETB P2.7AJMP MAINPIT0:PUSH PSWPUSH ACCSETB PSW.3MOV TL0,#0B0HMOV TH0,#3CHMOV A,30HDEC AMOV 30H,AJNZ RET0MOV 30H,#20MOV R0,#51HACALL DAAD1MOV A,R2XRL A,#60HJNZ RET0ACALL CLR0CLR 00HRET0:POP ACCPOP PSWRETIDAAD1:MOV A,@R0DEC R0SWAP AORL A,@R0ADD A,#01HDA AMOV R2,AANL A,#0FHMOV @R0,AMOV A,R2INC R0ANL A,#0F0HSWAP AMOV @R0,ARETCLR0:CLR AMOV @R0,ADEC R0MOV @R0,ARETDISPLAY:MOV A,50HMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P2,AMOV A,51HMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,ACLR P0.7LCALL DELAYRETKEY:MOV C,P3.0JC KEYACALL DELAYKEY1:MOV C,P3.0JNC KEY1ACALL DELAYRETDELAY:MOV R1,#250LOOP:DJNZ R1,LOOPRETLONGDELAY:MOV A,R0PUSH ACCMOV A,R1PUSH ACCMOV R1,#250LOOP1:MOV R0,#250LOOP2:NOPNOPNOPNOPNOPDJNZ R0,LOOP2DJNZ R1,LOOP1POP ACCMOV R1,APOP ACCMOV R0,ARETTABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END思考题:1程序中哪部分为显示程序?DISPLAY:MOV A,50HMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P2,AMOV A,51HMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,ACLR P0.7LCALL DELAYRET2程序中如何实现一秒钟的定时?用T/C0定时50ms。

共20次。

3写出各段子程序的作用。

MAIN:主程序,PIT0:中断服务子程序LONGDELAY和DELAY:延时的子程序ADDA1是非压缩的BCD码和压缩的BCD码的转化程序。

相关文档
最新文档