C51单片机实验报告
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。
c51定时中断实验报告
c51定时中断实验报告本文介绍的是C51定时中断实验,利用这个实验可以更好地理解C51的定时器与中断模块,进一步熟悉C语言的使用。
一、实验目的1.掌握C51单片机的定时器模块和中断模块。
2.熟悉定时器与中断的工作原理。
3.掌握利用中断实现定时功能的方法。
4.掌握如何调试程序,发现和解决程序问题。
二、实验装置硬件:STC89C52微控制器、电源、电路板、电路元件等。
软件:Keil C51集成开发环境。
三、实验原理1.定时器模块C51单片机中的定时器模块包含了3种不同的工作方式:工作模式0、模式1和模式2。
这些工作模式拥有不同的计数器范围和计数方式。
在本实验中,将使用工作模式1,因为它适用于大多数定时需求,并且易于编写程序。
工作模式1基本特点如下:(1)Timer1用两个8位计数器(TH1和TL1)组成,当一个计数器溢出时(从FFH计数到00H),计数值自动重装,同时中断请求位TF1被设置。
(2)计数器TH1可以初始值,TL1需要重新初始计数。
(3)Timer1的计数时钟来源可以是外部时钟源或内部时钟源,一般选择内部时钟源。
(4)TH开头的寄存器和TL开头的寄存器合起来组成16位的Timer1计数器,这个计数器的数值大小为TH1-TH1。
(5)x表示H或L。
用C语言对Timer1进行编程,首先需要完成以下配置:TMOD |= 0x10; // 定时器模式选择,使用模式1,TH0和TL0为一组计数器TH1 = (65536 - 50000) / 256; // 定时器初值设置ET1 = 1; // 打开定时器中断其中,TMOD是用来选择定时器工作模式,可以用对应的数值进行配置;TH1和TL1需要根据需要设置计数器初始值,该初值的计算公式为:计数初值 = (65536 - 计数时间/12)。
ET1为定时器1允许中断的位,EA为总中断允许位,TR1为定时器1工作使能位。
2.中断模块中断是一种实时响应外部事件处理的技术手段,当特定的硬件事件发生时,CPU自动调出相应的中断处理程序来响应事件,处理程序完成任务后返回继续程序运行,从而提高了CPU的效率。
C51单片机实验报告
tab2[]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3b,0x37,0x2f,0x1f};
tab3[]={0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
TL1=0x67;
a++;
if(a==1000)
{
b++;
a=0;
tab3[0]=b%10;
tab3[1]=b/10%10;
tab3[2]=b/100%10;
tab3[3]=b/1000%10;
}
show();
}
void main()
{
uchar m,k;
uint n=1;
P1M1=0x00;
P1M0=0xff;
case 2:P0=tab2[j];j++;P1=tab1[tab3[2]];break;
case 3:P0=tab2[j];j=0;P1=tab1[tab3[3]];break;
default:break;
}
}
void interrupt_timer1() interrupt 3
{
TH1=0xfc;
ki2=1;
ki3=1;
if(!ki1)
{
Delay5ms();
if(!ki1)
a=4;
while(!ki1);
}
if(!ki2)
{
Delay5ms();
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单片机程序。
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单片机实验主要包括以下几个方面: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单片机的硬件优势,例如使用定时器来完成计时任务,使用外部中断来完成输入检测等等。
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单片机的基础知识和使用方法。
C51实验报告
C51实验报告实验1 集成环境开发以及并行I/O端口应用(流水灯)实验目的:1、认识Keil uVision 、Proteus软件;2、掌握用Keil uVision、Proteus软件建立工程;3、掌握用Keil uVision、Proteus软件进行仿真调试;实验原理:仪器与材料:安装有Proteus和Keil软件的微机。
实验步骤:1、在proteus软件中画原理图;2、keil软件下编写源程序并编译形成可执行文件.hex;3、载源程序;4、仿真。
实验记录:#include <AT89X51.H>unsigned char i;unsigned char temp;unsigned char a,b;void delay(void){unsigned char m,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;s--);}void main(void){while(1){temp=0xfe;P1=temp;delay();for(i=1;i<8;i++){a=temp<<i;b=temp>>(8-i);P1=a|b;delay();}for(i=1;i<8;i++){a=temp>>i;b=temp<<(8-i);P1=a|b;delay();}}}讨论及回答问题:如何通过修改程序,改变流水灯的变化样式。
实验2 单片机的中断应用实验目的:1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
实验原理:1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。
2.必须在中断程序中设定是否允许中断重入,即设置EX0位。
另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。
使用拨动开关K1来产生中断触发信号。
由于采用边沿触发方式,K1应从高电平端,拨向低电平端来产生中断触发信号。
C51单片机课程设计实验报告
《单片机课程设计》说明书 --- 串口通信系统学号: 10121317姓名:班级: 10计Y指导教师:王建农2010年6月28日- 2010年7 月9日一、引言 ------------------------------------------------------------------------------------------------------------ 1二、工作原理 ------------------------------------------------------------------------------------------------------ 2三、硬件设计 ------------------------------------------------------------------------------------------------------ 6四、软件设计 ------------------------------------------------------------------------------------------------------ 9五、调试测试 ----------------------------------------------------------------------------------------------------- 16六、结论 ----------------------------------------------------------------------------------------------------------- 17七、结束语 -------------------------------------------------------------------------------------------------------- 18参考文献 ----------------------------------------------------------------------------------------------------------- 19一、引言目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
c51单片机实验报告
C51单片机实验报告实验目的本实验旨在通过对C51单片机的学习和实践,了解单片机的基本原理和使用方法,掌握C语言与单片机的编程技巧。
实验器材•C51单片机•电脑•C语言开发环境•连接线实验步骤步骤一:准备工作1.将C51单片机与电脑连接,确保连接线连接正确且稳固。
2.在电脑上安装C语言开发环境,如Keil等。
3.打开C语言开发环境,创建一个新的工程。
步骤二:编写程序1.在新建的工程中,打开主程序文件。
2.根据实验要求,编写相应的C语言程序。
3.确保程序逻辑正确,没有语法错误。
步骤三:编译程序1.在C语言开发环境中,点击编译按钮,对程序进行编译。
2.检查编译结果,确保没有出现错误提示。
步骤四:下载程序1.将编译成功的程序下载到C51单片机中。
2.确保下载过程中连接稳定,避免中断导致下载失败。
步骤五:运行程序1.完成程序下载后,断开C51单片机与电脑的连接。
2.将C51单片机连接到相应的电路中。
3.打开电源,启动C51单片机。
4.观察程序的运行情况,检查是否符合预期的结果。
实验结果根据实验要求,我们可以通过观察C51单片机的运行结果来验证程序的正确性。
如果程序实现了预期的功能,且单片机能够正常运行,即可认为实验结果是成功的。
实验总结本次实验通过对C51单片机的学习和实践,我们掌握了单片机的基本原理和使用方法,同时也提升了C语言与单片机的编程技巧。
在实验中,我们遵循了一步一步的思路,从准备工作到编写程序、编译程序、下载程序以及最终的运行程序,每个步骤都有条不紊地进行,确保实验的顺利进行。
通过本次实验,我们深刻认识到了单片机在现代电子技术中的重要性,它广泛应用于各个领域,如家电、汽车、通信等。
掌握单片机的原理和使用方法,对于我们今后的学习和工作都具有重要的意义。
参考资料[1] C51单片机实验指导书[2] C语言与单片机编程教程。
c51单片机实验温度采集控制报告
(一)试验要求
1、在数码管的第一、二个显示当前环境温度,第三、六个数码管熄灭,第四、五个数码管显示设定温度,第七、八个数码管显示电机转速;设定温度初值25,利用“+”“-”两个按键可以加减该温度数值,范围在16~30之间,按键按下蜂鸣器响0.2s。
2、根据设定温度和实际环境温度的温差驱动直流电机。设定温度等于环境温度,直流电机停转;设定温度和环境温度温差的绝对值越大,直流电机转速越快(要求最大转速控制在100以内)。
八、对本实验过程及方法、手段的改进建议
九、附录
温度采集控制实验程序
/*
main.c
LM75A数字温度计
*/
#include "I2C.h"
#include <reg51.h>
#include <string.h>
#include <absacc.h>
#include <CTYPE.H>
//定义显示缓冲区(由定时中断程序自动扫描)
3、I2C工作原理
1)I2C总线概述
I2C总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需
的包括总线裁决和高低速器件同步功能的高性能串行总线。
2)I2C信号线
I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。
单片机C51程序设计实验报告书(word文档良心出品)
实验一并行输入输出口的使用一、实验目的:学会设计proteus 7仿真电路,学习P1口的使用方法和延时子程序的编写用Keil uVision 3编程实现发光二极管的流水点亮。
二、实验原理:P1口为8位准双向I/O口,它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必须置1)。
P1口作为输出,接8个发光二极管D1~D8经限流电阻分别接至8个引脚。
本实验仿真电路图、流程图如下:三、实验代码:#include<reg51.h>#include<intrins.h> //移位库函数包含于此头文件中void delay(unsigned int d) //定义延时子函数{ while(--d>0);}void main(){ unsigned char i,sel;while(1){ sel=0xfe;for(i=0;i<=8;i++){ P1=sel; //显示变量赋给P1口delay(50000); //延时sel=_crol_(sel,1); //改变显示变量}}}四、实验结论:用while语句实现发光二极管循环流水点亮,从上到下一次点亮。
实验二C51分支程序设计一、实验目的:学习多分支选择结构和switch语句,了解循环的嵌套。
二、实验原理:do while 循环先执行后判断是否循环,switch括号中的表达式的值与某case后的常量表达式的值相同时,就执行它后面的语句,遇到break语句则退出switch语句。
本实验仿真电路图、流程图如下:(仿真电路图)(流程图)三、实验代码:#include <reg51.h>void main(){ char a;do{ P1=0xff;a=P1;a=a&0x03;switch(a){ case 0:P2=0x0e;break;case 1:P2=0x0d;break;case 2:P2=0x0b;break;case 3:P2=0x07;break;}}while(1);}四、实验结论:多分支选择的switch/case语句,可直接处理并行多分支选择问题,从匹配表达式的括号开始执行,不再进行判断。
c51实验报告
c51实验报告C51实验报告引言:C51是一种经典的单片机,广泛应用于嵌入式系统和物联网领域。
本文将对C51实验进行详细的报告,包括实验目的、实验步骤、实验结果以及实验心得等方面的内容。
一、实验目的C51实验的目的是让学生通过实际操作,深入了解C51单片机的工作原理和应用。
具体而言,本次实验的目的包括以下几个方面:1. 熟悉C51单片机的基本结构和指令集;2. 掌握C语言在C51单片机上的编程方法;3. 理解并实践C51单片机的输入输出控制;4. 学习使用C51单片机进行简单的数据处理和算法实现。
二、实验步骤1. 硬件准备:连接C51单片机、示波器、电源等设备,确保电路连接正确;2. 软件准备:安装Keil C51集成开发环境,创建工程并配置编译选项;3. 编写程序:根据实验要求,使用C语言编写相应的程序代码;4. 编译和下载:使用Keil C51进行编译和下载,将程序烧录到C51单片机中;5. 实验调试:通过示波器等工具,对C51单片机进行调试和观察实验现象;6. 实验记录:记录实验过程中的关键信息、实验结果以及遇到的问题。
三、实验结果根据实验步骤的要求,我们完成了一系列C51实验,并得到了一些有意义的结果。
以下是其中几个实验的结果总结:1. LED闪烁实验:通过编写简单的程序,我们成功地控制了C51单片机上的LED灯进行闪烁。
实验过程中,我们发现通过调整延时时间可以改变LED闪烁的频率,这使我们更深入地理解了C51单片机的时钟和计时功能。
2. 数码管显示实验:在这个实验中,我们使用C51单片机控制了一个四位数码管的显示。
通过编写相应的程序,我们可以在数码管上显示不同的数字和字符。
这个实验让我们更好地理解了C51单片机的输入输出控制和数码管的工作原理。
3. ADC采样实验:ADC(模拟数字转换器)是C51单片机中常用的模块之一,可以将模拟信号转换为数字信号。
通过这个实验,我们学会了如何使用C51单片机进行模拟信号的采样和处理。
c51单片机实验报告
c51单片机实验报告
《C51单片机实验报告》
C51单片机是一种广泛应用于嵌入式系统中的微控制器,具有高性能、低功耗和丰富的外设接口,因此在各种电子设备中得到了广泛的应用。
本次实验将以C51单片机为研究对象,通过实验验证其性能和功能。
实验一:LED灯控制实验
首先,我们将C51单片机与LED灯连接起来,通过程序控制LED灯的亮灭。
实验结果表明,C51单片机可以准确地控制LED灯的亮度和闪烁频率,具有良好的稳定性和可靠性。
实验二:蜂鸣器控制实验
接着,我们将C51单片机与蜂鸣器连接起来,通过程序控制蜂鸣器的发声。
实验结果显示,C51单片机可以精准地控制蜂鸣器的音调和音量,具有较高的音频输出质量。
实验三:温湿度传感器实验
最后,我们将C51单片机与温湿度传感器连接起来,通过程序读取并显示温湿度数值。
实验结果表明,C51单片机可以准确地读取传感器的数据,并通过显示屏输出,具有良好的数据处理能力。
通过以上实验,我们验证了C51单片机在LED灯控制、蜂鸣器控制和温湿度传感器应用方面的性能和功能。
C51单片机具有较高的稳定性、可靠性和可编程性,适用于各种嵌入式系统的设计与开发。
希望本次实验报告能够对C51单片机的应用和研究提供一定的参考价值。
c51单片机实训报告
C51单片机实训报告引言本次实训主要是针对C51单片机进行的,C51单片机是一种常用的微控制器,广泛应用于各种嵌入式系统中。
在本次实训中,我们学习了C51单片机的基本知识,并进行了一系列的实践操作。
实训目标本次实训的目标是让学员掌握C51单片机的基本原理和应用。
通过实践操作,学员可以更加深入地理解单片机的工作原理,并能够使用C语言进行编程。
实训内容1. 环境搭建首先,我们需要搭建C51单片机的开发环境。
这包括安装Keil C51集成开发环境和编译器。
Keil C51是一款专门为C51单片机设计的集成开发环境,可以方便地进行代码编写、调试和下载。
2. 单片机基础知识在实训的第二部分,我们学习了C51单片机的基础知识。
包括单片机的硬件结构、寄存器的使用、输入输出口的控制等。
这些知识是理解单片机工作原理的基础,也是后续实践操作的前提。
3. 实践操作在学习了基础知识之后,我们进行了一系列的实践操作。
这些实践操作包括LED灯控制、数码管显示、按键输入等。
通过这些实践操作,学员可以更加深入地了解单片机的应用场景和编程方法。
4. 小组项目实训的最后一部分是小组项目。
每个小组需要设计并实现一个基于C51单片机的小型系统。
小组成员可以根据自己的兴趣和能力选择合适的项目,例如温度监测系统、智能家居控制系统等。
通过这个项目,学员可以综合运用之前学到的知识,提高自己的实际操作能力。
实训心得通过这次实训,我对C51单片机有了更深入的了解。
之前我只是听说过单片机,但从未真正接触过。
通过实践操作,我不仅学会了如何搭建开发环境,还学会了如何编写简单的C语言程序并下载到单片机中运行。
在实践操作中,我遇到了不少问题。
有时候程序无法正常运行,有时候单片机没有反应。
但通过不断的调试和排查,我最终找到了问题的解决方法。
这个过程虽然有些繁琐,但对我来说是一次宝贵的学习经验。
通过小组项目,我还体会到了团队合作的重要性。
在项目中,每个人都有自己的分工,但我们需要相互配合,共同完成项目的目标。
基于C51单片机计算器实训报告
目录一、设计的意义二、设计的流程三、设计的原理四、设计的模块五、元器件清单六、成品的制作七、设计的总结一、设计的意义计算器是日常工作和学习生活中的常用工具,人们利用它代替了许多复杂计算,包括加减乘除和其他运算。
尤其是小型计算器,它携带方便,在生活中用起来方便快捷,成为了财政、学习、生意上都青睐的必需品。
它的需求广泛,在计算器的发展上存在很大的空间和市场意义。
单片机在我国的各行各业得到了广泛使用,单片机的出现是计算机制造技术高速发展的产物。
如今,它已经广泛应用到我们生活中的各个领域,如:电子、科技、通信、汽车、工业等。
一般只需几块钱,有着经济廉价的优势,用单片机可以很方便的实现计算器的设计。
本设计是以单片机为基础设计出简单的一次式计算器。
二、设计的流程本设计的计算器硬件电路采用三部分电路模块构成,第一部分是键盘模块,采用4*4矩阵键盘作为输入电路;第二部分是LCD1602液晶显示模块;第三部分是以89C52单片机作为控制核心。
软件程序主要由三部分组成:主程序、按键扫描程序和LCD1602显示程序。
下图为硬件模块框图:下图为设计流程图:三、设计的原理硬件电路原理图:四、设计的模块1、电源模块:电源的设计采用了自锁开关控制电源正极的接通与断开,当P1接上+5V直流电源时;若S1没有按下,此时S1的1与5端口接通,+5V电流不流通到电路,电路不工作;当S1按下后,3与5端口接通,此时+5V电流流通到电路是电路工作。
2、89C52单片机模块:此模块式是本设计的控制核心模块,常称为单片机最小系统;单片机最小系统由三部分组成:STC89C52芯片部分、复位部分(由按键开关、极性电容、10K电阻组成)、晶振部分(由12M石英晶振、两个30PF的瓷片电容组成)。
主要起程序的输入与控制、程序的复位、时间频率控制的作用。
3、4*4矩阵键盘模块:键盘可分为两类:编码键盘和非编码键盘。
编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。
单片机(C51)实验报告
实验一熟悉ADEK单片机教学实验系统一、实验目的1.熟悉 ADEK 单片机教学实验系统和仿真器的结构和功能。
2.了解如何安装 51MINI 仿真器驱动程序。
二、ADEK 单片机教学实验系统组成图 1-1 AEDK 单片机教学实验系统外观图如图 1-1 所示, ADEK-EAT598 单片机教学实验系统遵循了模块化的设计思路,有丰硕的接口,而且具有良好的扩展性,以下为组成模块和利用的要紧芯片。
1.步进电机2.直流电机3.温度操纵( DS18B20、热敏电阻 B3470)4.模数转换( ADC0809)5.串行实验区( EEPROM X25045、 AT24C08、时钟芯片 HT1380、数模转换 TLC5615、模数转换 TLC1543)6. RAM( HM62256)7. ROM( M27C512)8.地址译码( 74LS138)9.数模转换( DAC0832)10.仿真机通信口:原厂仿真器的串口通信口,这部份功能已不用。
11.串并转换( 74LS164)12.频率源( CD4020)213.扩展输出( 74LS273)14.扩展输入(74LS244)15.电源开关16.液晶显示(MSC-G12232DYEW-7N)17.语音录放(ISD1730)18.扩展通信口(D8251、HIN232)19.八位开关20.交通灯21.单脉冲(HD74LS240)22.继电器(946H-1C-5D)23.电辅音调(9012)24.蜂鸣器25.光耦(TLC521)26.电位器27.点阵显示28.PS2 接口29.并行接口(8255)30.键盘显示(8279)31.扩展实验区32.打印机接口33.单片机核心板(EAT598_31)34.带USB 接口的51MINI 仿真器三、实验内容1.熟悉整个实验箱的硬件资源。
2.利用51MINI仿真器连接电脑,在电脑的设备治理器中可找到以下图所示的COM口。
实验二Keil集成开发环境练习一、实验目的1.把握开发环境Keil的安装方式。
C51单片机P1口输出实验报告
C51单片机P1口输出实验报告引言C51单片机是一种经典的8位微控制器,广泛应用于嵌入式系统和电子设备中。
在这个实验中,我们将学习如何使用C51单片机的P1口(端口1)作为输出口,控制外部设备。
本实验旨在帮助我们理解C51单片机的IO口控制和程序设计。
实验目的本实验旨在通过实际操作了解以下内容: - 了解C51单片机P1口(端口1)的基本知识; - 学习如何通过P1口输出高低电平信号; - 熟悉使用C语言编写单片机程序来控制P1口的操作; - 实践中了解C51单片机的驱动程序编写和调试技巧。
实验材料•C51单片机开发板;•电脑;•USB数据线。
实验步骤步骤1: 准备工作1.将C51单片机开发板插入电脑USB接口,确保驱动程序正确安装;2.打开Keil µVision软件,创建新的C语言项目;3.配置项目设置,选择C51单片机作为目标设备,并设置相应的时钟频率;4.在项目根目录下创建一个新的源文件,命名为main.c。
步骤2: 程序编写在main.c源文件中编写以下代码:#include <reg51.h>void delay(unsigned int count) {while(count--);}void main() {P1 = 0x00; // 将P1口置为低电平delay(10000); // 延迟一段时间P1 = 0xFF; // 将P1口置为高电平delay(10000); // 延迟一段时间}步骤3: 烧写程序1.点击Keil µVision软件的烧写按钮,将程序烧写到C51单片机开发板;2.确认烧写成功后,断开开发板与电脑的连接。
步骤4: 连接外部设备1.准备一个LED灯和一个220欧姆的限流电阻;2.将LED的长脚连接到C51单片机的P1口,将LED的短脚通过限流电阻连接到单片机的GND端。
步骤5: 实验现象1.连接好外部设备后,重新将开发板与电脑连接;2.单片机上的LED灯将会开始闪烁,每隔一段时间从亮变暗、从暗变亮;3.若实验现象与预期相符,说明实验成功。
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告册课程名称:单片机原理与应用B指导老师:xxx班级:xxx姓名:xxx学号:xxx学期:20 —20 学年第学期南京农业大学工学院教务处印实验目录实验一:指示灯/开关控制器实验二:指示灯循环控制实验三:指示灯/数码管的中断控制实验四:电子秒表显示器实验五:双机通信姓名:学号:班级:成绩:实验名称:指示灯/开关控制器一、实验目的:学习51单片机I/O口基本输入/输出功能,掌握C语言的编程与调试方法。
二、实验原理:实验电路原理图如图所示,图中输入电路由外接在P1口的8只拨动开关组成;输入电路由外接在P2口的8只低电平驱动的发光二极管组成。
此外,还包括时钟电路、复位电路和片选电路。
在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。
三、软件编程原理为;(1)8只发光二极管整体闪烁3次亮灯:向P2口送入数值0;灭灯:向P2口送入数值0FFH;闪烁3次:循环3次;闪烁快慢:由软件延时时间决定。
(2)根据开关状态控制灯亮或灯灭开关控制灯:将P1口(即开关状态)内容送入P2口;无限持续:无条件循环。
四、实验结果图:灯泡闪烁:按下按键1、3、5、7:经检验,其余按键按下时亦符合题目要求。
五、实验程序:#include"reg51.h"void delay(unsigned char time){unsigned int j=15000;for(;time>0;time--)for(;j>0;j--);}void main(){key,char i;for(i=0;i<3;i++){ P2=0x00;delay(500);P2=0xff;delay(500)}while(1){ P2=P3;}姓名:学号:班级:成绩:实验名称:指示灯循环控制一、实验目的:熟悉μVision4编译软件,掌握C51编程与调试方法。
二、实验原理:实验电路图如图所示,图中8只LED指示灯接于P0口,且都接有上拉电阻。
时钟电路、复位电路、片选电路与前面的实验电路相同。
在编程软件的配合下,要求实现如下功能:8只发光二极管做循环点亮控制,且亮灯顺序为D1→D2→D3→···→D8→D7→···→D1,无限循环,两次亮灯的时间间隔约为0.5s。
软件编程原理为:首先使P0.0←1,其余端口←0,这样可使D1灯亮,其余灯灭;软件延时0.5s后,使P0口整体左移1位,得到P0.1←1,其余端口←0,这样可使D2灯亮其余灯灭;照此思路P0整体左移7次,再右移7次,如此无限往复即刻实现上述功能。
三、实验结果图:····················经检验,其余指示灯循环正常四、实验程序:#include"reg51.h"unsigned char led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delay(unsigned char time){unsigned int j=15000;for(;time>0;time--)for(;j>0;j--);}void main(){char i;while(1){for(i=0;i<=7;i++){ P0=led[i];delay(50);}for(i=6;i>=1;i--){P0=led[i];delay(500);}}}姓名:学号:班级:成绩:实验名称:指示灯/数码管的中断控制一、实验目的:掌握外部中断原理,学习中断编程与程序调试方法。
二、实验原理:实验原理图如图所示,图中按键K1和K2分别接于P3.2和P3.3,发光二极管D1接于P0.4,共阴极数码管LED1接于P2口。
时钟电路、复位电路、片选电路忽略。
在编程软件的配合下,要求实现如下功能:程序启动后,D1处于熄灯、LED1处于黑屏状态;单击K1,可使D1亮灯状态反转一次;单击K2,可使LED1显示值加1,并按十六进制数显示,达到F 后重新从1开始。
软件编程原理为:K1和K2的按键动作分别作为0INT 和1INT 的中断请求,在中断函数中进行指示灯和数码管的信息处理。
初始化后,主函数处于无限循环状态,等待中断请求。
三、实验结果图:四、实验程序:#include<reg51.h>sbit P0_4=P0^4;unsigned char count=0;unsigned charled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x 71};void main(){ P2=0x00;P0_4=0;EA=1;EX1=EX0=1;IT1=IT0=1;while(1);}void INT_OSVR()interrupt 0{ P0_4=!P0_4;}void INNT_1SVR()interrupt 2{ count++;if(count==16) count=1;P2=led_mod[count]; }姓名:学号:班级:成绩:实验名称:电子秒表显示器一、实验目的:掌握中断和定时/计数器工作原理,熟悉C51编程与调试方法。
二、实验原理:实验电路原理图如图所示,该电路图与实验1基本相同,不再赘述。
在编程软件配合下,要求实验如下功能:数码管的初始显示值为“00”;当1s产生时,秒计数器加1;秒计数到60时清0,并从“00”开始,如此周而复始进行。
软件编程原理为:采用T0定时方式1中断法编程,其中1s定时采用20次50ms定时中断的方案实现。
三、实验结果图:四、实验程序:#include<reg51.h>unsigned char count=0;unsigned char s=0;unsigned char led_mod[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; timer0() interrupt 1{ count++;if(count==20){ count=0;s++;}if(s==60)s=0;P0=led_mod[s/10];P2=led_mod[s%10];TH0=0x3c;TL0=0xb0;}main(){TMOD=0x01;TH0=0x3c;TL0=0xb0;P0=led_mod[s/10];P2=led_mod[s%10];ET0=1;EA=1;TR0=1;while(1);}姓名:学号:班级:成绩:实验名称:双机通信一、实验目的掌握串行口通信工作原理。
二、实验原理实验的电路原理图如图所示,图中1#机的发送线与2#机的接收线相连,1#机的接收线与2#机的发送线相连,共阴极BCD数码管BCD_LED1和BCD_LED2分别接各机的P2口,两机共地(默认),晶振为11.0592MHz,波特率为2400bps,串口方式1。
实现功能为:通信中增加奇偶校验功能,即甲机在循环发送数据(0~F)的同时发送相应奇偶校验码,乙机接收后先进行奇偶校验。
若结果无误,在向甲机返回的接收值中使可编程位置1;若结果有误,则使可编程位清0。
甲机根据返回值中的可编程位作出发送新数据或重发当前数据的抉择。
甲、乙两机都在各自BCD数码管上显示当前数据。
三、软件编程原理1#采用查寻法编程,根据RI和TI标志的软件查询结果完成收发过程;2#机采用中断法编程,根据RI和TI的中断请求,在中断函数中完成收发过程。
实验原理图:四、实验结果图:五、实验程序:U1:#include<reg51.h>#define uchar unsigned charCharcodemap[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x7 9,0x71};void delay(unsigned int time){unsigned int j=0;for(;time>0;time--)for(j=0;j<125;j++);}void main(void){unsigned char counter=0;P2=0x3f;TMOD=0x20;TH1=0xf4;TL1=0xf4;PCON=0x00;TR1=1;SCON=0x50;while(1){ACC=counter;TB8=P;SBUF=counter;while(TI==0);TI=0;while(RI==0);RI=0;if(RB8==1){P2=map[counter];if(++counter>15) counter=0;delay(500);}}}U2:#include<reg51.h>#define uchar unsigned charcharcodemap[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e ,0x79,0x71};void main(void){P2=0x3f;TMOD=0x20;TH1=0xf4;TL1=0xf4;PCON=0x00;TR1=1;SCON=0x50;ES=1;EA=1;while(1);}void receive(void) interrupt 4{unsigned char receiv;while(RI==1){RI=0;receiv=SBUF;ACC=receiv;if(P!=RB8)TB8=1;else TB8=0;SBUF=receiv;while(TI==0);TI=0;P2=map[receiv];}}。