--51单片机基础部分实验内容

合集下载

51单片机实验指导书

51单片机实验指导书

目录目录 0第一章实验装置 (1)一.伟福开发环境的使用 (1)二.LJD-SY-5100学习实验开发板的使用 (17)第二章微机原理及应用实验 (22)实验一开发环境的使用 (22)实验二数据传送 (23)实验三数码转换 (23)实验四数值运算 (24)实验五堆栈操作 (25)实验六查表操作 (25)实验七逻辑运算操作 (26)实验八中断及I/O口实验 (26)实验九串行通讯实验 (28)第一章实验装置一.伟福开发环境的使用1.菜单文件菜单选项●文件 | 打开文件打开用户程序,进行编辑。

如果文件已经在项目中,可以在项目窗口中双击相应文件名打开文件。

●文件 | 保存文件保存用户程序。

用户在修改程序后,如果进行编译,则在编译前,系统会自动将修改过的文件存盘。

●文件 | 新建文件建立一个新的用户程序,在存盘的时候,系统会要求用户输入文件名。

●文件 | 另存为将用户程序存成另外一个文件,原来的文件内容不会改变。

●文件 | 重新打开在重新打开的下拉菜单中有最近打开过的文件及项目,选择相应的文件名或项目名就可以重新打开文件或项目。

●文件 | 打开项目打开一个用户项目,在项目中,用户可以设置仿真类型。

加入用户程序,进行编译,调试。

系统中只允许打开一个项目,打开一个项目或新建一个项目时,前一项目将自动关闭。

伟福开发环境的项目文件包括仿真器设置,模块文件,包含文件。

仿真器设置包括仿真器类型,仿真头(POD)类型,CPU类型,显示格式和产生的目标文件类型,可以用以下几种方法设置仿真器。

✧在项目窗口中双击第一行,将打开仿真器设置窗口,对仿真器进行设置。

✧按鼠标右键,在弹出菜单中选择[仿真器设置]。

✧主菜单| 仿真器| 仿真器设置。

加入模块文件✧按鼠标右键,在弹出菜单中选择[加入模块文件]。

✧主菜单| 项目| 加入模块文件。

加入包含文件✧按鼠标右键,在弹出菜单中选择[加入包含文件]。

✧主菜单| 项目| 加入包含文件。

51单片机基础综合实验板_实验指导书ok(C和汇编程序综合版)

51单片机基础综合实验板_实验指导书ok(C和汇编程序综合版)

MCS-51单片机基础合实验板实验指导书李家庆2009年11月目录第1章实验箱功能简介1.1 实验箱外观 (1)1.2 实验箱配置 (2)1.3 仿真下载使用说明 (3)1.4 电路图 (4)第2章实验箱使用快速入门2.1 KEIL C51 简介 (5)2.2 uVision使用入门 (5)2.3 实验箱的仿真 (10)2.4 实验箱的下载 (13)第3章单片机实验3.1 基本实验 (23)实验一熟悉Keil C51开发环境 (23)实验二熟悉实验箱的仿真与下载 (26)实验三 I/O口延时实现流水灯 (27)实验四蜂鸣器驱动实验 (29)实验五定时器中断实验 (32)实验六外部中断实验 (33)实验七数码管显示123456 (34)实验八 8155扩展实验 (35)实验九 ADC0809实验 (37)实验十 DAC0832实验 (41)实验十一串口通信实验 (42)3.2 高级实验 (51)实验十二 100位计数器实验 (51)实验十三矩阵键盘实验 (53)实验十四实时时钟实验 (56)实验十五数字温度计实验 (64)实验十六 I2C总线实验 (68)实验十七单片机实钟实验 (74)注:实验书只是提供了部分参考实验,供用户初次使用时熟悉各模块电路,更多实验源代码详见光盘,另外,您也可根据自己的思路编写各种各样的实验代码,均可以非常方便的在此实验箱上运行。

其它相关资料,请参考光盘第1章 实验板功能简介1.1 单片机实验板概览实物图如图1.1所示:1.2 实验箱配置 基础板配置:1、STC89C51支持在线下载程序。

.2、8位LED 发光二极管(可做流水灯实验)。

3、4位数码管(可做动态扫描及静态显示实验)。

图1.1 单片机实验板实物图 8155 8LED 数码管 外扩256 DA0832 AD0809 单片机 IIC IIC Beep 矩阵 键盘下载 图1.2 单片机实验板功能组成4、4 *4矩阵键盘。

51单片机实验手册

51单片机实验手册

51单片机实验手册实验一RAM数据传送程序设计【实验目的】1.学习51微控制器汇编语言的编写。

2.了解51微控制器RAM的读写及调试方法。

【实验原理】51微控制器片内RAM低128字节(00H~7FH)包含工作寄存器区(00H~1FH)、位操作区(20H~2FH)和数据区(30~7FH)。

对该128字节的RAM区,均可采用直接寻址和间接寻址方式,若采用间接寻址用R0或R1作间址寄存器。

特殊功能寄存器占用片内RAM 地址空间80H~FFH,对它只能采用直接寻址方式。

采用16位数据指针DPTR作间址寄存器,可寻址64KB的RAM和I/O接口。

数据传送指令是汇编语言程序设计的基本要素,数据块传送也是程序设计的基本技巧之一。

编写数据块传送程序,重点要掌握数据指针R0或R1以及DPTR的使用。

【实验内容及要求】1.试编写程序:把内部RAM的(30H~7FH)单元清零。

2.试编写程序:用数据传送指令将片内RAM地址50H~5FH中的内容置成00H~0FH,然后将其中的内容传送到外部RAM地址1000H~100FH中,最后再将外部RAM地址1000H~100FH中的内容传回内部RAM地址中。

3.试编写程序:求n2(0≤n≤9),并将结果送RAM的地址30H中。

【实验报告要求】1.画出程序框图,整理实验程序程序。

2.如果把程序1中(30H~7FH)单元的内容改为55H,如何修改程序。

3.如果把程序2中(50H~5FH),(1000H~100FH),(60H~6FH)单元的内容改为0FFH,如何修改程序。

4.如果把程序3中求n2改为求n3,分析会出现什么结果?5.分析微控制器存储器的地址空间分配,并画出简图。

6.理解数据指针:数据块传送若在内部RAM中进行,用什么作数据指针?若在外部RAM 或ROM中进行,用什么作数据指针?7.存储器和数据存储器的地址空间可以重叠,对此如何解释?【实验参考程序】程序1:内部RAM清零ORG 0000HCLEAR:MOV R0,#30H ;30H送R0寄存器MOV R6,#4FH ;4FH送R6寄存器(计数)CLR1:MOV A,#00H ;00送累加器AMOV @R0,A ;00送到30H-7FH单元INC R0 ;R0加1DJNZ R6,CLR1 ;不到4F个字节再清WAIT:LJMP WAITEND程序2:数据传送ORG 0000HMAIN: MOV R0,#50HMOV R7,#10HMOV A,#00HA1: MOV @R0,AINC AINC R0DJNZ R7,A1MOV R0,#50HMOV DPTR,#1000HMOV R7,#10HA2: MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R7,A2MOV R0,#60HMOV DPTR,#1000HMOV R7,#10HA3: MOVX A,@DPTRMOV @R0,AINC R0INC DPTRDJNZ R7,A3HERE: AJMP HEREEND程序3:计算N的平方ORG 0000HMOV DPTR,#1000HMOVC A,@A+DPTRMOV 30H,AORG 1000HTABEL: DB 00,01,04,09,16DB 25,36,49,64,81NOPEND实验二、数制转换程序设计【实验目的】1.学习ASCII码与十六进制互换算法及程序设计方法。

51单片机实验报告(共五则)

51单片机实验报告(共五则)

51单片机实验报告(共五则)第一篇:51单片机实验报告51单片机实验报告实验一点亮流水灯实验现象 Led灯交替亮,间隔大约10ms。

实验代码#include 〈reg51、h> void Delay10ms(unsigned int c);voidmain(){)1(elihwﻩ{ ﻩP0= 0x00;Delay10ms(50);;ffx0 =0Pﻩﻩ;)05(sm01yaleDﻩ } } void Delay10ms(unsigned int c){unsigned char a,b;for(;c>0;c-—){)——b;0〉b;83=b(rofﻩ{ ﻩﻩfor(a=130;a〉0;a--);}ﻩﻩ}} 实验原理W W hi i le(1)表示一直循环。

循环体内首先将P0 得所有位都置于零,然后延时约5 5 0*10=500ms,接着 0 P0 位全置于 1 1,于就是 D LED 全亮了。

接着循环,直至关掉电源..延迟函数就是通过多个for r 循环实现得。

实验 2 流水灯(不运用库函数)实验现象起初 led 只有最右面得那一个不亮,半秒之后从右数第二个led也不亮了,直到最后一个也熄灭,然后 led 除最后一个都亮,接着上述过程 #includemain(){unsigned char LED;LED = 0xfe;while(1){ ﻩ;DEL = 0PﻩDelay10ms(50);00x0 == 0P(fiﻩ {;1〈〈 DEL = DELﻩ)ﻩ;efx0 = DELﻩ} ﻩ}ﻩ} void Delay10ms(unsigned int c){unsigned char a,b;for(;c>0;c-—){)—-b;0〉b;83=b(rofﻩ{ ﻩﻩﻩ;)--a;0>a;031=a(rofﻩ} ﻩ} ﻩ} 实验原理这里运用了C语言中得位运算符, , 位运算符左移, , 初始值得二进制为1111 1 110, 之后左移一次变成1111 1 100 0,当变成00000 0000 时通过 f if 语句重置 1 1 11 1 11110、延迟函数在第一个报告已经说出了,不再多说..实验 3 流水灯(库函数版)实验现象最开始还就是最右边得一个不亮,然后不亮得灯转移到最右边得第二个,此时第一个恢复亮度,这样依次循环.实验代码#include 〈reg51、h> #include 〈intrins、h〉void Delay10ms(unsigned int c); void main(void){unsigned char LED;;EFx0 = DELﻩ)1(elihwﻩ{ ﻩP0 = LED;;)05(sm01yaleDﻩﻩ;)1,DEL(_lorc_ = DELﻩ} ﻩ} void Delay10ms(unsigned in t c){unsigned chara, b;for(;c〉0;c——){ ﻩfor(b=38;b〉0;b—-){ ﻩﻩ;)-—a;0〉a;031=a(rofﻩ} ﻩ}}实验原理利用头文件中得函数,_cro l_(,), 可以比位操作符更方便得进行 2 2 进制得移位操作, , 比位操作符优越得就是,该函数空位补全时都就是用那个移位移除得数据, , 由此比前一个例子不需要f if 语句重置操作..数码管实验实验现象单个数码管按顺序显示0-9与 A-F。

51单片机实验手册

51单片机实验手册

51单片机实验手册一、概述51单片机是一种经典的8位微控制器,具有广泛的应用领域。

本实验手册旨在提供详细的实验指导,帮助初学者快速入门,并为进一步的学习提供基础。

二、实验准备在进行51单片机实验之前,我们需要准备以下材料:1. 一块51单片机开发板2. USB数据线或者串口线3. 电脑及编程软件4. 面包板及对应的连接线5. 红、绿、蓝LED以及相应的电阻三、实验一:LED闪烁LED闪烁是最基础的实验之一,通过控制51单片机的I/O口状态,使LED灯交替亮灭。

1. 连接电路将51单片机的VCC引脚连接到正极,GND引脚连接到负极,将LED的长脚连接到P1.0引脚,短脚连接到GND引脚。

2. 编写程序使用C语言编写如下程序:```c#include <reg52.h>void main() {while(1) {P1 = 0x00; // P1置低电平,LED灯熄灭Delay(1000); // 延时1秒P1 = 0xFF; // P1置高电平,LED灯点亮Delay(1000); // 延时1秒}}void Delay(unsigned int t) {while (t--);}```3. 烧录程序将编写好的程序通过编程软件下载到51单片机中。

4. 运行实验将USB数据线或串口线连接到51单片机开发板和电脑,将开发板上的开关打开,观察LED灯的闪烁情况。

四、实验二:数码管显示通过控制51单片机的I/O口状态,驱动数码管显示数字。

1. 连接电路将51单片机的VCC引脚连接到正极,GND引脚连接到负极,将数码管的A、B、C、D、E、F、G引脚分别连接到P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6引脚。

2. 编写程序使用C语言编写如下程序:```c#include <reg52.h>unsigned char code segment[] = { // 数码管段码表0x3F, // 数字00x06, // 数字10x5B, // 数字20x4F, // 数字30x66, // 数字40x6D, // 数字50x7D, // 数字60x07, // 数字70x7F, // 数字80x6F // 数字9};void main() {unsigned int i;while(1) {for(i = 0; i < 10; i++) {P1 = segment[i]; // 依次在数码管上显示数字0-9 Delay(1000); // 延时1秒}}}void Delay(unsigned int t) {while (t--);}```3. 烧录程序将编写好的程序通过编程软件下载到51单片机中。

51单片机实验报告

51单片机实验报告

51单片机实验报告
实验目的:
本实验旨在让学生熟悉并掌握51单片机的基本知识和编程能力,进一步了解单片机的原理和应用。

实验内容:
本次实验主要包括以下几个内容:
1.熟悉51单片机的基本原理和结构;
2.学习51单片机的汇编语言编程;
3.使用51单片机进行简单的I/O控制;
4.学习串口通信的原理和编码。

实验步骤:
1. 配置开发环境:安装Keil C编译器和Proteus电路仿真软件;
2.学习汇编语言编程基础知识,包括寄存器的使用、指令的执行等;
3.编写第一个程序:实现将一个数字显示在数码管上;
4.学习I/O控制:通过按键来控制LED灯的亮灭;
5.学习串口通信:通过串口与计算机进行通信,实现数据的发送与接收。

实验结果:
在实验过程中,我成功编写了几个基本的程序,并在Proteus中进行
了仿真。

通过按键来控制LED灯的亮灭,也成功地使用串口进行了数据的
发送和接收。

通过实验,我更深入地理解了51单片机的工作原理和编程
方法。

实验总结:
通过本次实验,我对51单片机有了更深的理解,并掌握了一些基本
的编程技巧。

通过实际操作,我培养了自己的动手能力和问题解决能力。

作为一门基础课程,51单片机为我今后的学习打下了坚实的基础。

我相信,在今后的学习和实践中,我能够更加熟练地运用51单片机进行各种
应用和项目的设计。

该报告共计1200字。

参考资料:
[1]《单片机技术与应用》.吕春阳、吕立民、钱锋.电子工业出版社,2024年。

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单片机程序。

51单片机实验指导书

51单片机实验指导书

实验一、80C51存储器数据传输实验:1、实验目的:1)熟悉嵌入式交叉开发环境,结合简单的应用实例,完成工程的建立、应用程序的编写,并进行编译、调试,观察相关寄存器及存储空间的使用情况。

2)熟悉51单片机的开发环境Keil C51,掌握80C51单片机内部数据存储器、外部数据存储器的数据传送特点和应用。

2、实验内容:第三章思考与练习(p87),从12、14、15、16中任选2题进行实验验证要求:回答题目中问题,并列写出程序执行完后所涉及的各寄存器的值。

实验二、80C51汇编语言编程实验:1、实验目的:1)熟悉80C51单片微机汇编语言设计及编程技巧。

2)掌握逻辑运算程序的设计方法。

3)掌握多字节无符号十进制数加、减法程序的设计。

2、实验内容:1)逻辑运算设:A=63H ,B=82H ,C=C5H ,D=36H ,根据下列逻辑运算式,编写程序计算运算结果。

Y =A⨁B ∙C ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅∙D +A̅̅̅̅̅̅̅̅ 2)十进制加、减运算286729 + 652430 -752196 = ?在8051片内数据存储器的20H~22H 中放入3字节被加数(低位在先)、23H~25H 放入加数(低位在先)、26~28H 放入减数,结果存入29H~2BH 单元(低位在先)。

附:实验二参考例程1)逻辑运算:ORG 0000HAJMP MAINORG 0080HMAIN: M OV A, #63H;将A 值给累加器A MOV R0, #36H;将D 值给R0 ORL A, R0;将A 与D 逻辑或,即A+D 存入累加器A CPL A;求A +D ̅̅̅̅̅̅̅̅ MOV R1, A;将A +D ̅̅̅̅̅̅̅̅存入R1 MOV A, #82H;将B 值给累加器A MOV R0, #0C5H;将C 值给R0 ANL A, R0;B 与C 逻辑与,结果存入累加器A CPL A;求反,即B ∙C ̅̅̅̅̅̅ MOV R0, #63H;将A 值存入RO XRL A, R0;A⨁B ∙C ̅̅̅̅̅̅,存入累加器A CPL A;A⨁B ∙C ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅ ANL A, R1;A⨁B ∙C ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅∙D +A̅̅̅̅̅̅̅̅ END2)十进制加、减运算:ORG 0000HAJMP MAINORG 0080HMAIN: M OV 20H, #29H ;将被加数放入片内数据存储器20H~22HMOV 21H, #67HMOV 22H, #28HMOV 23H, #30H ;将加数放入片内数据存储器23H~25HMOV 24H, #24HMOV 25H, #65HMOV 26H, #96H ;将减数放入片内数据存储器26H~28HMOV 27H, #21HMOV 28H, #75HMOV A, 20HADD A, 23H ;最低字节相加DDA ;二-十进制调整MOV 2DH, A ;将相加结果存入2DHMOV A, 21HADDC A, 24H ;次低字节带进位相加DAA ;二-十进制调整MOV 2EH, A ;将次低字节相加结果存入2EHMOV A, 22HADDC A, 25H ;最高字节带进位相加DA A ;二-十进制调整MOV 2FH, A ;将最高字节相加结果存入2FHCLR C ;清零C标志位MOV A, #9AH ;求26H中的十进制补码SUBB A, 26HADD A, 2DH ;加上补码DA A ;二-十进制调整MOV 2DH, A ;将最低字节运算结果存入2DHCPL C ;标志位取反MOV A, #9AH ;求27H中的十进制补码SUBB A, 27HADD A, 2EH ;加上补码DA A ;二-十进制调整MOV 2EH, A ;将次低字节运算结果存入2EHCPL C ;标志位取反MOV A, #9AH ;求28H中的十进制补码SUBB A, 28HADD A, 2FH ;加上补码DA A ;二-十进制调整MOV 2FH, A ;将最高字节运算结果存入2FHEND注:○1字节减法改为加该字节的补码,如减1,改为加99H。

单片机实训实验报告

单片机实训实验报告

一、实验名称单片机原理及应用实验二、实验目的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单片机实验报告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单片机实验报告的样例。

以下是一个可能的实验报告结构:
实验名称:51单片机的基本使用
实验目的:掌握51单片机的基本使用方法和功能。

实验器材:51单片机开发板、USB接口线、计算机、电源。

实验步骤:
1. 连接电源,将开发板与计算机连接。

2. 打开软件IDE,新建一个工程。

3. 在工程中编写代码,实现将LED灯进行亮灭交替的功能。

4. 将编写好的代码下载到51单片机开发板中。

5. 检查电路连接是否正确,确保没有问题。

6. 启动51单片机开发板,观察LED灯的亮灭情况。

7. 记录实验结果。

8. 关闭开发板和计算机。

实验结果:
通过编写的代码,成功地实现了LED灯的亮灭交替功能。

LED灯每隔一段时间亮起,然后又灭掉,不断循环。

实验分析:
实验结果表明,51单片机因其高性价比和广泛应用领域,可以使用简单的代码实现一些基本功能。

在这个实验中,我们使
用了51单片机的GPIO口控制LED灯的亮灭,通过不断循环的方式实现了交替闪烁的效果。

实验总结:
通过这次实验,我了解了51单片机的基本使用方法,学会了如何编写简单的代码来控制外部设备。

这对于我以后的学习和应用起到了很好的基础作用。

51单片机实验报告

51单片机实验报告

51单片机实验报告一、引言51单片机是一种广泛应用于嵌入式系统开发的微控制器芯片。

本实验旨在通过对51单片机的实验研究,加深对该芯片的理解和应用。

二、实验一:LED灯闪烁控制本实验通过编写程序,控制51单片机上的LED灯以特定的频率闪烁。

为了实现这个目标,我们首先需要了解51单片机的引脚布局,确定LED灯的连接方式。

然后,通过编写相应的汇编程序,控制引脚的电平变化,从而实现LED灯的闪烁。

三、实验二:数码管显示数码管是一种常见的输出设备,通过控制引脚的输出来显示特定的数字。

本实验中,我们通过编写程序,实现通过51单片机控制数码管的显示。

通过对数码管的驱动原理和编程的学习,我们可以灵活地控制数码管的显示内容和频率。

四、实验三:蜂鸣器发声蜂鸣器是一种常见的声音输出设备,通过控制引脚的输出来产生特定的声音。

本实验中,我们通过编写程序,实现通过51单片机控制蜂鸣器的发声。

通过学习蜂鸣器的驱动原理和编程,我们可以根据需要产生不同频率和节奏的声音。

五、实验四:温湿度检测温湿度检测是一种常见的环境监测需求。

本实验中,我们通过引入温湿度传感器,实现通过51单片机获取环境的温度和湿度信息。

通过编写程序和读取传感器的数据,我们可以实时监测环境的温湿度,并进行相应的控制和反馈。

六、实验五:红外遥控红外遥控是一种常见的无线通信方式,通过发送和接收红外信号来实现远程控制。

本实验中,我们通过引入红外发射和接收模块,实现通过51单片机进行红外遥控。

通过编写相应的程序,设置红外遥控的编码和解码方式,我们可以实现对外部设备的遥控操作。

七、实验六:定时器应用定时器是51单片机中的重要模块,它可以实现定时和计数等功能。

本实验中,我们通过学习定时器的工作原理和编程,实现通过51单片机进行定时和计数的应用。

通过编写相应的程序和设置定时器的参数,我们可以实现不同的定时和计数功能,满足各种需要。

八、实验七:串口通信串口通信是一种常见的数据通信方式,通过串口接口发送和接收数据。

51单片机实验报告

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单片机流水灯实验-实验报告5页

实验一-51单片机流水灯实验-实验报告5页

实验一-51单片机流水灯实验-实验报告5页实验目的:通过51单片机控制LED流水灯的实验,提高学生对于51单片机I/O端口控制的掌握程度,并加深对于“流水灯原理”的理解,在此基础之上,提高同学们对于算法的理解与启发式思路。

实验器材:1. 计算机及Keil C51开发软件。

2. STC89C52单片机开发板一块。

3. LED灯若干(使用的LED有红、黄、绿、蓝、紫共5种,将每种颜色灯各6枚组合成一共30颗灯)。

4. 单片机烧录器。

实验原理:数码管实验就是在P0口中,以位选方式驱动数码管,以位选控制器件的组成电路。

流水灯实验就是在P1口中,以位移方式驱动LED灯,以主控程序的组成电路。

实验内容:实验中使用Keil C51软件编写程序,由程序控制单片机的P1口输出电平,从而控制LED的灯光闪烁。

LED灯的控制方式为从左到右控制LED逐层点亮或逐层熄灭,或者从左到右逐层递增亮度或递增颜色。

另外,LED灯的控制还可以从中间开始点亮或者点熄,并在两边逐层变化。

实验时,需要先理清楚流水灯的控制原理,明确各个控制变量的功能,并制定出相应的算法,在程序中进行实现。

实验步骤:1. 将30个LED灯按照左到右的次序排列好,将其中一个LED固定在开发板上的对应P1口位置上。

2. 根据实验要求,编写一个程序,对于LED的灯光状态进行控制,使LED灯从左到右依次变亮或变暗。

编写程序时可以采用多种实现方式,如如果使用循环语句,可以循环控制LED序列中的每个灯的亮度状态,使得程序能够不断运行直到停止。

3. 编写完成程序后,通过单片机烧录器,将程序烧录到开发板上,并将开发板上的电源连接上。

4. 开发板接通电源后,可以看到电路中的LED发出不同的亮光信号,如果控制程序设计得好,可以实现一些比较有意思的效果,如从起始位置到中间逐渐点亮,或者从中间到两侧依次点亮,等等。

实验结果:通过程序的编写和烧录,可以实现对于LED流水灯的控制。

程序运行期间会通过P1口输出电平信号,控制LED灯的点亮和熄灭,从而实现LED的流水灯效果。

51单片机实验

51单片机实验

51单片机实验1、LED灯闪烁实验2、LED流水灯实验3、无源蜂鸣器实验4、继电器控制实验5、数码管显示实验6、独立按键实验1、LED灯闪烁实验#includevoid Delay(unsigned int i) //延时程序,i是形式参数,i为1时延时约1MS{unsigned int j;for(;i>0;i--) //变量i由实际参数传入一个值,因此i不能赋初值for(j=0;j<125;j++) //j由0自增到125 所用的时间大约是1MS{;}}void main() //主函数{P0=0xff; //初始化端口全部置1高电平LED熄灭P1=0xff; //初始化端口全部置1 高电平LED熄灭while(1) //无限循环一直执行以下程序{P0=0x00; //灯亮P1=0x00; //灯亮Delay(500); // 将实际参数500传递给形式参数i,延时500ms 也就是0.5SP0=0xff; //灯灭P1=0xff; //灯灭Delay(500); //将实际参数500传递给形式参数i,延时500ms 也就是0.5S}}2、LED流水灯实验#include函数功能:延时一段时间void Delay(unsigned int i) //延时程序,i是形式参数,i为1时延时约1MS{unsigned int j;for(;i>0;i--) //变量i由实际参数传入一个值,因此i不能赋初值for(j=0;j<125;j++){;}}void main(void){P0=0xff;P1=0xff;while(1) //无限循环执行程序{P0=0xfe; //P0第一个灯亮P1=0xfe; //P1第一个灯亮Delay(200); //调用延时函数P0=0xfd; //P0第二个灯亮P1=0xfd; //P1第二个灯亮Delay(200); //调用延时函数P0=0xfb; //P0第三个灯亮P1=0xfb; //P1第三个灯亮Delay(200); //调用延时函数P0=0xf7; //P0第四个灯亮P1=0xf7; //P1第四个灯亮Delay(200); //调用延时函数P0=0xef; //P0第五个灯亮P1=0xef; //P1第五个灯亮Delay(200); //调用延时函数P0=0xdf; //P0第六个灯亮P1=0xdf; //P1第六个灯亮Delay(200); //调用延时函数P0=0xbf; //P0第七个灯亮P1=0xbf; //P1第七个灯亮Delay(200); //调用延时函数P0=0x7f; //P0第八个灯亮P1=0x7f; //P1第八个灯亮Delay(200); //调用延时函数}}3、无源蜂鸣器实验#includesbit BEEP=P3^6; //定义蜂鸣器控制端P36sbit L00=P0^0; //定义L0.0 LED灯void Delayst(unsigned int i) //延时程序,i是形式参数,i 为1时延时约250US{unsigned int j;for(;i>0;i--) /变量i由实际参数传入一个值,因此i不能赋初值for(j=0;j<31;j++) // 此数值为125时大约延时1MS 由此计算出为1时延时大约8US 31X8=248US≈250US {;}}void Delay(unsigned int i) //延时程序,i是形式参数,i为1时延时约1MS{unsigned int j;for(;i>0;i--) //变量i由实际参数传入一个值,因此i不能赋初值for(j=0;j<125;j++){;}}void main() //主函数{unsigned int j;while(1) //无限循环一直执行以下程序{L00=0; //点亮L00 LED灯for(j=1000;j>0;j--) //蜂鸣器响大约500MS{BEEP = ~BEEP;Delayst(2); //延时500US 发出大约1KHZ频率的响声}L00=1; //熄灭L00 LED灯BEEP=1; //蜂鸣器不响Delay(500); //将实际参数500传递给形式参数i,延时500ms 也就是0.5S}}4、继电器控制实验#include //包含单片机头文件sbit Reley=P3^7; //定义继电器控制端P37sbit L00=P0^0; //定义L0.0 LED灯sbit K5=P1^4; //定义K5独立按键sbit K6=P1^5; //定义K6独立按键void Delay(unsigned int i) //延时程序,i是形式参数,i为1时延时约1MS{unsigned int j;for(;i>0;i--) //变量i由实际参数传入一个值,因此i不能赋初值for(j=0;j<125;j++){;}}void main() //主函数{while(1) //无限循环一直执行以下程序{if(K5==0) //按键K5按下{Delay(20); //延时20MS 按键消抖if(K5==0) //再次确认按键是否按下{L00=0; //点亮L00 LED灯Reley=0; //继电器吸合}}if(K6==0) //按键K6按下{Delay(20); //延时20MS 按键消抖if(K6==0) //再次确认按键是否按下{L00=1; //熄灭L00 LED灯Reley=1; //继电器释放}}}}5、数码管显示实验#include //包含52单片机寄存器定义的头文件void delay(void) //延时函数,延时约0.6毫秒{unsigned char i;for(i=0;i<200;i++); //空循环起延时作用}void main(void){P0=0xff; //初始化端口P2=0xff; //初始化端口while(1) //无限循环//假定数码管从左到右依次是DS0-DS7{P2=0xfe; //P2.0引脚输出低电平,DS0点亮P0=0xf9; //数字1的段码delay();P2=0xfd ; //P2.1引脚输出低电平,DS1点亮P0=0xa4; //数字2的段码delay();P2=0xfb; //P2.2引脚输出低电平,DS2点亮P0=0xb0; //数字3的段码delay();P2=0xf7; //P2.3引脚输出低电平,DS3点亮P0=0x99; //数字4的段码delay();P2=0xef; //P2.4引脚输出低电平,DS4点亮P0=0x92; //数字5的段码delay();P2=0xdf ; //P2.5引脚输出低电平,DS5点亮P0=0x82; //数字6的段码delay();P2=0xbf; //P2.6引脚输出低电平,DS6点亮P0=0xf8; //数字7的段码delay();P2=0x7f; //P2.7引脚输出低电平,DS7点亮P0=0x80; //数字8的段码delay();P2=0xff;}}6、独立按键实验#include#define uchar unsigned char#define uint unsigned int //数据类型的宏定义sbit K1 = P3^2; //定义独立按键K1sbit K2 = P3^3; //定义独立按键K2sbit K3 = P3^4; //定义独立按键K3sbit K4 = P3^5; //定义独立按键K4sbit K5 = P1^4; //定义独立按键K5sbit K6 = P1^5; //定义独立按键K6sbit K7 = P1^6; //定义独立按键K7sbit K8 = P1^7; //定义独立按键K8sbit BEEP = P3^6; //蜂鸣器控制端口P36/* 延时子程序*/void delay1(uchar x){ uchar j;while((x--)!=0){ for(j=0;j<125;j++){;}}}------------------------------------------------- void delay0(uchar x) //x*0.14MS{unsigned char i;while(x--){for (i = 0; i<13; i++) {}}}------------------------------------------------- void delay(uint ms){uchar t;while(ms--){for(t = 0; t < 120; t++);}}-------------------------------------------------void beep() //蜂鸣器响一声函数{unsigned char i;for (i=0;i<100;i++){delay0(4);BEEP=!BEEP; //BEEP取反}BEEP=1; //关闭蜂鸣器delay1(250); //延时}-------------------------------------------------main(){P1 = 0xff; //初始化端口P2 = 0x7f; //初始化端口选通数码管最右侧点亮while(1){P0 = 0xbf; //显示“-”if(K1==0){delay(20);if(K1==0){beep(); //调用蜂鸣器响一声函数告知有按键按下P0 = 0xf9; //显示”1“delay(1000); //延时大约1秒维持显示状态}}else if(K2==0){delay(20); //延时20MS 按键消抖if(K2==0){beep(); //调用蜂鸣器响一声函数告知有按键按下P0 = 0xa4; //显示”2“delay(1000); //延时大约1秒维持显示状态}}else if(K3==0){delay(20); //延时20MS 按键消抖if(K3==0){beep(); //调用蜂鸣器响一声函数告知有按键按下P0 = 0xb0; //显示“3”delay(1000); //延时大约1秒维持显示状态}}else if(K4==0){delay(20); //延时20MS 按键消抖if(K4==0){beep(); //调用蜂鸣器响一声函数告知有按键按下P0 = 0x99; //显示“4”delay(1000); //延时大约1秒维持显示状态}}else if(K5==0){delay(20); //延时20MS 按键消抖if(K5==0){beep(); //调用蜂鸣器响一声函数告知有按键按下P0 = 0x92; //显示“5”delay(1000); //延时大约1秒维持显示状态}}else if(K6==0){delay(20); //延时20MS 按键消抖if(K6==0){beep(); //调用蜂鸣器响一声函数告知有按键按下P0 = 0x82; //显示“6”delay(1000); //延时大约1秒维持显示状态}}else if(K7==0){delay(20); //延时20MS 按键消抖if(K7==0){beep(); //调用蜂鸣器响一声函数告知有按键按下P0 = 0xf8; //显示“7”delay(1000); //延时大约1秒维持显示状态}}else if(K8==0){delay(20); //延时20MS 按键消抖if(K8==0){beep(); //调用蜂鸣器响一声函数告知有按键按下P0 = 0x80; //显示“8”delay(1000); //延时大约1秒维持显示状态}}} }。

单片机实训基础实验报告

单片机实训基础实验报告

一、实验目的通过本次单片机实训,掌握单片机的基本原理、组成结构以及编程方法,熟悉Keil C51集成开发环境的使用,能够进行简单的单片机程序设计,实现基本的硬件控制功能。

二、实验环境1. 硬件环境:STC89C52单片机实验板、数字万用表、示波器、面包板、导线等。

2. 软件环境:Keil uVision5集成开发环境、Proteus仿真软件。

三、实验原理单片机是一种集成在单一芯片上的微型计算机,具有运算、存储、输入/输出控制等功能。

STC89C52是一款常用的51系列单片机,具有8K字节片内存储器和32个可编程I/O口。

本实验主要涉及单片机的以下几个部分:1. 中央处理单元(CPU):负责指令的执行和数据的处理。

2. 存储器:分为片内存储器和片外存储器,用于存储程序和数据。

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

4. 定时器/计数器:用于产生定时/计数信号。

四、实验内容1. 单片机系统初始化2. 单片机I/O口编程3. 定时器/计数器编程4. 中断系统编程5. 简单的硬件控制实验五、实验步骤1. 单片机系统初始化(1)将STC89C52单片机插入实验板,连接电源和地。

(2)使用Proteus软件创建仿真电路,添加STC89C52单片机和其他外围电路。

(3)编写初始化程序,设置单片机的工作模式、时钟频率等。

2. 单片机I/O口编程(1)编写程序,使P1口输出高电平,P2口输出低电平。

(2)编写程序,使P3口输入数据,通过P1口输出。

3. 定时器/计数器编程(1)编写程序,使定时器0产生1秒的定时信号。

(2)编写程序,使计数器0对P3.2口输入的脉冲进行计数。

4. 中断系统编程(1)编写程序,使外部中断0在P3.2口输入低电平时触发。

(2)编写程序,使定时器0中断在定时1秒后触发。

5. 简单的硬件控制实验(1)编写程序,使LED灯闪烁。

(2)编写程序,使蜂鸣器发出特定频率的音频信号。

六、实验结果与分析1. 单片机系统初始化成功,CPU正常工作。

51单片机实验报告

51单片机实验报告

开放性实验报告智能实验室姓名:***学号: ********班级:***专业:***********指导老师:****目录实验一IO口的输出应用 (3)一.实验目的 (3)二.实验内容 (3)三.实验器材 (3)四.实验步骤 (3)五.实验结果 (3)六.实验结果分析 (4)程序附录: (4)实验二用STM32驱动小车 (5)一.实验目的 (5)二.实验内容 (5)三.实验器材 (5)四.实验步骤 (5)五.实验结果 (5)六.实验结果分析 (6)程序附录 (6)实验三STM32循迹小车 (7)一.实验目的 (7)二.实验内容 (7)三.实验器材 (7)四.实验步骤 (7)五.实验结果 (7)六.实验结果分析 (8)程序附录: (8)实验四 STM32循迹小车加蜂鸣器 (12)一.实验目的 (12)二.实验内容 (12)三.实验器材 (12)四.实验步骤 (12)五.实验结果 (12)六.实验结果分析 (13)程序附录 (13)实验五 OLED显示 (16)一.实验目的 (16)二.实验内容 (16)三.实验器材 (16)四.实验步骤 (16)五.实验结果 (16)六.实验结果分析 (17)程序附录 (17)总结 (28)实验一IO口的输出应用一.实验目的通过此次实验学习普通IO口作为输出口的应用。

二.实验内容我们通过普通IO口驱动一个LED灯闪烁。

三.实验器材STM32FI03C8T6单片机、LED灯或实验箱。

四.实验步骤1.在MDK开发环境下建立一个工程。

2.程序的编写。

3.程序下载调试五.实验结果本实验的焊接结果如图1所示。

图1 IO口输出实物图六.实验结果分析现象:给单片机供电,LED灯闪烁;原因:LED灯通电,电路连接正确,LED灯一端连接电源,一端连接PC13,P1C13电平由高电平变为低电平,灯亮;反之,灯灭。

程序附录:#include "stm32f10x.h"#include "led.h"#include "delay.h"int main(void){delay_init();LED_Init();while(1){GPIO_SetBits(GPIOC,GPIO_Pin_13);delay_ms(500);GPIO_ResetBits(GPIOC,GPIO_Pin_13);delay_ms(1000);}}实验二用STM32驱动小车一.实验目的通过此次实验熟练掌握STM32的使用二.实验内容通过STM32、驱动模块实现小车直行三.实验器材STM32FI03C8T6单片机、LM298N小车、电池。

51单片机的40个实验(实例介绍)

51单片机的40个实验(实例介绍)

1.闪烁灯1.实验任务如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。

2.电路原理图图4.1.13.系统板上硬件连线把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。

4.程序设计内容(1).延时程序的设计方法作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体介绍其原理:如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒MOV R6,#202个机器周期2D1:MOV R7,#2482个机器周期22+2×248=49820×DJNZ R7,$2个机器周期2×248498DJNZ R6,D12个机器周期2×20=4010002因此,上面的延时程序时间为10.002ms。

由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。

如本实验要求0.2秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如下:DELAY:MOV R5,#20D1:MOV R6,#20D2:MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RET(2).输出控制如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。

5.程序框图如图4.1.2所示图4.1.26.汇编源程序ORG0START:CLR P1.0LCALL DELAYSETB P1.0LCALL DELAYLJMP STARTDELAY:MOV R5,#20;延时子程序,延时0.2秒D1:MOV R6,#20D2:MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND7.C语言源程序#include<AT89X51.H>sbit L1=P1^0;void delay02s(void)//延时0.2秒子程序{unsigned char i,j,k;for(i=20;i>0;i--)for(j=20;j>0;j--)for(k=248;k>0;k--);}void main(void){while(1){L1=0;delay02s();L1=1;delay02s();}}2.模拟开关灯1.实验任务如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验仪器及设备
SST 51系列单片机实验板。 Keil C 单片机集成开发环境。 SST系列单片机专用下载程序。
定时器中断实验
实验内容及步骤:
读懂例子程序的基础上,用定时器控制4个LED灯的 点亮时间,并达到用不同速度循环显示的目的.
实验报告要求:
画出程序框图,给出源程序并注释.
思考题:
51单片机基础部分实验内容
实验一: LED显示实验 实验二: LCD显示实验 实验三:定时器中断实验 实验四:KEY实验 实验五:串口通讯实验 实验六:外部中断实验 实验七:AD/DA转换实验 实验八:红外遥控器解码实验 实验九:电子钟综合实验
SST51系列单片机实验板的组成
返回
数码管显示实验
实验目的:
熟悉51单片机的工作原理及组成,根据硬件原理 图,掌握数码管模块显示原理及单片机控制数码 管显示的软件编程方法。
实验仪器及设备
SST 51系列单片机实验板。 Keil C 单片机集成开发环境。 SST系列单片机专用下载程序。
数码管显示实验
实验内容及步骤:
读懂例子程序后,通过改编例子程序达到在数码管模块 上显示不同字符,并能闪烁或左右循环显示的目的.
实验仪器及设备
SST 51系列单片机实验板。 Keil C 单片机集成开发环境。
SST系列单片机专用下载程序。
红外遥控器解码实验
实验内容及步骤:
修改例子程序,正确接收红外遥控器的按键 信息,软件解码后,实时在LED上显示.
实验报告要求:
画出程序框图,给出源程序并注释.
思考题:
如何增强红外接收抗干扰的能力,如何提高 其稳定性?
KEY实验
实验内容及步骤:
读懂例子程序的基础上,用I/O口扩充KEY.达 到按一个KEY,可靠点亮对应LED灯的目的.
实验报告要求:
画出程序框图,给出源程序并注释.
思考题:
掌握按键去抖动的原理, 软件是如何实现的? 硬件去抖动应怎样设计?
串口通讯实验
实验目的:
熟悉51单片机串口的工作原理及硬件结构,根据硬 件原理图,掌握单片机串口的软件编程方法。
计时器综合实验
实验目的:
自己设计一个倒计时器,用KEY设置时间并在LCD 上显示。通过按键启动程序,在LCD上显示倒计时 的时间。用手机计时器来验证其准确性。
实验仪器及设备
SST 51系列单片机实验板。 Keil C 单片机集成开发环境。 SST系列单片机专用下载程序。
计时器综合实验
实验内容及步骤:
综合以上各实验的内容,完成本次实验。
实验报告要求:
画出程序框图,给出源程序并注释.自己有 何收获?
思考题:
如何消除计时误差,提高计时精度?
51单片机创新部分实验内容
实验一:步进电机控制实验 实验二:485总线通讯实验 实验三:CAN总线通讯实验 实验四:蓝牙模块通讯实验 实验五:GPRS模块通讯实验
了解51单片机I/O口的内部结构, I/O口接口函数应 怎样写?定时器的定时常数应怎样计算?
KEY实验
实验目的:
熟悉51单片机的工作原理及组成,根据硬件原理图, 掌握单片机扩充KEY的原理及软件编程方法。
实验仪器及设备
SST 51系列单片机实验板。 Keil C 单片机集成开发环境。 SST系列单片机专用下载程序。
实验仪器及设备
SST 51系列单片机实验板。 Keil C 单片机集成开发环境。 SST系列单片机专用下载程序。
串口通讯实验
实验内容及步骤:
读懂例子程序的基础上,将串口上接收的数 据,实时显示在LCD上.
实验报告要求:
画出程序框图,给出源程序并注释.
思考题:
如何写出自适应波特率的串口接收函数?
实验报告要求:
画出程序框图,给出源程序并注释.
思考题:
针对封装不同或个数不同的LED模块, 能否写出LED模 块显示函数?
LCD显示实验
实验目的:
熟悉51单片机的工作原理及组成,结合硬件原理图, 通过学习例子程序,掌握字符型LCD模块显示原理及 单片机软件编程方法。
实验仪器及设备
SST 51系列单片机实验板。 Keil C 单片机集成开发环境。 SST系列单片机专用下载程序。
步进电机控制实验
实验目的:
学习单片机控制步进电机接口的硬件 设计及软件编程。达到准确控制步进 电机可靠运行的目的.
实验仪器及设备
SST 51系列单片机实验板。 步进电机控制板。 步进电机。
LCD显示实验
实验内容及步骤:
读懂例子程序后,通过改编例子程序达到在LCD模块 上显示不同字符,并能闪烁或左右循环显示的目的.
实验报告要求:
画出程序框图,给出源程序并注释.
思考题:
针对不同规格字符型LCD模块或点阵式LCD模块的 显示函数应怎样写?
定时器中断实验
实验目的:
读懂硬件原理图,掌握51单片机定时器及中断 的基本工作原理及软件编程方法。单片机I/O 口的具体应用。
外部中断实验
实验目的:
熟悉51单片机外部中断的基本原理及种类, 掌握单片机外部中断对应软件的实现方法。
实ห้องสมุดไป่ตู้仪器及设备
SST 51系列单片机实验板。 Keil C 单片机集成开发环境。 SST系列单片机专用下载程序。
外部中断实验
实验内容及步骤:
读懂例子程序的基础上,将外部中断的次数, 实时在LED上显示.
实验报告要求:
画出程序框图,给出源程序并注释.
思考题:
如何精确计算出一次外部中断所需时间?
AD转换实验
实验目的:
了解AD转换的基本原理,掌握单片机控制 AD转换基本原理及软件的实现方法。
实验仪器及设备
SST 51系列单片机实验板。 Keil C 单片机集成开发环境。 SST系列单片机专用下载程序。
AD转换实验
实验内容及步骤:
读懂例子程序的基础上,转动可调电阻达到 电压在0-5V范围内调整,同时将AD转化的数 值,实时显示在LED上.
实验报告要求:
画出程序框图,给出源程序并注释.
思考题:
AD转换精度与位数有何关联?表示什么含义?
红外遥控器解码实验
实验目的:
依据硬件原理图,熟悉单片机与红外接收模块接口 的原理,掌握单片机正确接收红外脉冲的方法以及依 靠软件可靠解码。
相关文档
最新文档