单片机(C51)实验报告
c51实训总结200字
C51单片机实训总结
在这次C51单片机实训中,我深入了解了单片机的内部结构和工作原理,掌握了单片机的基本编程方法和应用技巧。
通过实践操作,我不仅提高了自己的编程能力,还对单片机的实际应用有了更深刻的认识。
实训过程中,我首先学习了单片机的内部结构和工作原理,包括中央处理器、存储器、定时器/计数器、串行通信等模块。
通过老师的讲解和自己的阅读,我逐渐掌握了单片机的引脚功能、工作方式和指令系统等方面的知识。
在编程方面,我学习了Keil C51软件的使用方法,通过编写程序实现了LED 灯的闪烁、按键检测、数码管显示等功能。
在实践中,我遇到了很多问题,比如程序错误、硬件连接问题等。
通过不断地调试和修改,我逐渐找到了解决问题的方法,提高了自己的编程能力。
此外,我还了解了单片机的实际应用,比如在智能家居、工业控制等领域中的应用。
通过这些应用案例的学习,我深刻认识到单片机在现代科技领域中的重要地位和作用。
总的来说,这次C51单片机实训让我收获颇丰。
我不仅掌握了单片机的相关知识,还提高了自己的编程能力。
在未来的学习和工作中,我将继续深入学习单片机的应用和开发技巧,为未来的科技发展做出自己的贡献。
51单片机实验报告
实验一:开发环境的搭建一、(1)、keil的安装与破解点击Keil安装包,一键傻瓜式操作,安装完成后以管理员身份打开Keil,在File里选择license management 把CID复制到注册机里的CID栏,注册机里的Target选择C51,然后点击Generate,将生成的激活码复制到license management里的LIC栏,并点击Add LIC,即完成破解。
(2)、CH340驱动安装(3)、普中烧录软件的使用波特率选择9600,速度选择低速,文件路径选择HEX文件的路径(4)、keil的使用新建工程并保存,在CPU 里面选择STC90C52RC ,再新建C 文件,注意保存时手动加上.c 后缀,再在Source Group 1 右击选择 Add Files to Group'Source Group 1'找到刚才新建的C 文件,然后找到图标并点击,再Target 里将晶振频率改为12MHz,将Output 里生成HEX 文件的勾打上即可生成HEX 文件。
(5)、protues的安装与破解双击安装包开始安装,等进入到Labcenter Licence Manager1.6,也就是许可证管理页面,点击Browse For Key File,找到下载解压软件包中的LICENCE.lxk文件,并打开,再点击install,再点击“是”,继续傻瓜式操作。
破解时以管理员身份运行破解软件,目标文件里找到安装的路径,再点击升级,即可完成破解。
(6)、protues的使用双击蓝色ISIS图标即可打开Proteus,File里新建并保存,然后点击“P”即可选择自己所需元器件,输入AT89C52单片机,确定后在图纸中点击即可,双击单片机将对话框中的Program File 选择Keil生成的HEX文件,电路及程序都完成后,点击左下角即可开始仿真,点击停止仿真。
二、实验结论在实验一里学会了开发环境的搭建,学会并熟练了Keil u Vision4 和Proteus 7.8以及普中烧录软件的使用,基本实现了用Keil编写程序并且生成HEX文件,能够用Proteus 画基本仿真图并且成功实现仿真,在仿真过程中出现了win10电脑不能正常实现仿真的问题,在经过百度等多方面查找之后找到了如下解决办法:1、路径上不能有中文2、仿真时出现cannot open'C:User\?\AppData\Local\Temp\LISA5476.SDF'的错误时:右击我的电脑-属性-高级系统设置-环境变量,在“用户变量”栏里找到TEMP与TMP,分别双击,将变量值都改为%SystemRoot%\TEMP如果还不行将下面的“系统变量”栏里的TEMP与TMP同样修改方法,如果没有新建就行。
C51单片机课程设计报告
内容提要单片微型计算机简称单片机,是典型的嵌入式微控制器,常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机是靠程序运行的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。
所以说对于单片机课程的学习对于我们电子信息工程专业的学生来说至关重要,然而学习单片机课程设计是其一个极为重要的实践环节,无论是硬件扩展、接口应用还是编程方法、程序调试,都离不开该环节。
单片机课程设计过程中,学生通过查阅资料、接口设计、程序设计、安装调试等环节,完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用。
单片机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语句,可直接处理并行多分支选择问题,从匹配表达式的括号开始执行,不再进行判断。
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。
单片机实验报告总结
单片机实验报告总结单片机实验报告总结单片机实验心得体会单片机实验心得体会时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。
在学习单片机这门课程之前,就早早的听各种任课老师和学长学姐们说过这门课程的重要性和学好这门课程的关键~~多做单片机实验。
这个学期,我们除了在课堂上学习理论知识,还在实验室做了7次实验。
将所学知识运用到实践中,在实践中发现问题,强化理论知识。
现在,单片机课程已经结束,即将开始考试了,需要来好好的反思和回顾总结下了。
第一次是借点亮LED灯来熟悉keil软件的使用和试验箱上器材。
第一次实验体现了一个人对新事物的接受能力和敏感度。
虽然之前做过许多种实验。
但依旧发现自己存在一个很大的问题,对已懂的东西没耐心听下去,容易开小差;在听老师讲解软件使用时,思路容易停滞,然后就跟不上老师的步骤了,结果需要别人再次指导;对软件的功能没有太大的热情去研究探索,把一个个图标点开,进去看看。
所以第一次试验相对失败。
鉴于此,我自己在宿舍下载了软件,然后去熟悉它的各个功能,使自己熟练掌握。
在做实验中,第二个问题应该是准备不充分吧。
一开始,由于没有课前准备的意识,每每都是到了实验室才开始编程,完成作业,导致每次时间都有些仓促。
后来在老师的批评下,认识到这是个很大的问题:老师提前把任务告诉我们,就是希望我们私下把程序编好。
于是我便在上机之前把程序编好,拷到U盘,这样上机时只需调试,解决出现的问题。
这样就会节约出时间和同学讨论,换种思路,换种方法,把问题给吃透。
发现、提出、分析、解决问题和实践能力是作为我们这个专业的基本素质。
三是我的依赖性很大,刚开始编程序时喜欢套用书上的语句,却对语句的理解不够。
于是当程序出现问题时,不知道如何修改,眼前的程序都是一块一块的被拼凑整合起来的,没法知道哪里错了。
但是编程是一件很严肃的事情,容不得半点错误。
于是便只能狠下决心,坚持自己编写,即使套用时,也把每条语句弄懂。
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单片机的基本使用方法和功能。
实验器材: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单片机的实验研究,加深对该芯片的理解和应用。
二、实验一:LED灯闪烁控制本实验通过编写程序,控制51单片机上的LED灯以特定的频率闪烁。
为了实现这个目标,我们首先需要了解51单片机的引脚布局,确定LED灯的连接方式。
然后,通过编写相应的汇编程序,控制引脚的电平变化,从而实现LED灯的闪烁。
三、实验二:数码管显示数码管是一种常见的输出设备,通过控制引脚的输出来显示特定的数字。
本实验中,我们通过编写程序,实现通过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单片机的基础知识和使用方法。
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单片机实验报告
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实验报告
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)实验报告
实验一熟悉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)。
33.单片机核心板(EAT598_31)
34.带USB接口的51MINI仿真器
三、实验内容
1.熟悉整个实验箱的硬件资源。
2.使用51MINI仿真器连接电脑,在电脑的设备管理器中可找到下图所示的COM口。
实验
一、实验目的
1.掌握开发环境Keil的安装方法。
2.掌握开发环境Keil的使用和仿真环境参量配置方法。
4.对工程进行编译连接
选择“Build target”进行编译,根据产生的错误提示,纠正程序中的错误直至编译成功。
5.Keil仿真调试
通过选择“Start/Stop DebugSession”进入软件调试阶段或是使用USB线连接实验箱进行硬件调试;可在Registers页面查看寄存器状态,在memory窗口馋=查看系统内存中的值,字母C、D、I、X分别表示代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间、扩展的外部RAM空间。
实验
一、实验目的
1.学习外部中断技术的基本使用方法。
2.使用Keil建立工程
双击打开Keil软件;新建工程;选择目标单片机;选择不使用开始代码;建立并保存汇编文件;将文件加入工程中;输入并保存文件内容。
3.对工程进行设置
通过“Options for target ‘Target1’…”打开工程设置选项;在Target标签页选择晶振频率值,设置RAM和ROM的使用情况;在Output标签页设置是否需要生产HEX File(用于烧写单片机或硬件调试实验);在Debug标签页设置软件仿真和硬件调试。
经过设计,可以改变LED点亮的花样,例如每次2个一起点亮、3个一起点亮、相隔的LED点亮……我的实验代码如下:
2.延时子程序的延时计算问题
51单片机延时采用的方法是借助DJNZ指令循环执行一定的次数,每个DJNZ指令需要两个机器周期,时钟频率为12MHz时每个机器周期1us,使用两层循环时最多可延时256*256*1us = 65.6ms。不过这种计算方法不太精确,因为还有MOV指令占有的时间以及函数调用和返回的时间。我们可以借助一个小工具完成这个繁琐的计算过程,如下图所示:
2.学习控制模拟交通灯的方法。
3.学习双色灯的使用
二、实验内容
1.交通灯规则
因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东南西本走向。初始状态0为东西红灯,南北红灯。然后状态1南北绿灯通车,东西红灯。过一段时间转入状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转入状态3,东西绿灯通车,南北红灯。过一段时间后转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1.
2)如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正。
3)低位修正结果使高位大于9时,高位进行加6修正。
3.单字节无符号数BCD码的减法
在AT89C51指令系统中,只有加法有十进制调整指令,如果进行BCD码减法,可以通过求减数的“BCD码补码”,再作减数的“BCD码补码”和被减数的BCD加法,并将进位标志位C取反,得到BCD码减法结果。
(2)P2口作为高八位地址线
P2口作为高八位地址线(A8-A15),P2口输出经过地址锁存器74LS373锁存,与P0锁存器输出,形成了系统的16位地址总线。有些系统P2口不经过地址锁存器直接输出高八位地址线。
(3)控制信号线
RD和WR和作为外部数据存储器பைடு நூலகம்I/O接口寄存器的读/写选通控制信号。
ALE作为P0口发出的低8位地址的锁存控制信号。
BCD码中1~9可以用四位二进制数0000-1001表示,而1010-1111这6个数为无效数。两个4位二进制数相加所得的结果超过1001,则将所得数加0110,来跳过6个无效数,并产生一个进位。修正规则为:
1)如果任何两个对应位的BCD数相加的结果向高一位无进位,若得到的结果小于或等于9,则不需修正;若得到的结果大于9且小于16时,改位进行加6修正。
EA作为片内、片外程序存储器的选择控制信号。
PSEN作为外部程序存储器的读选通控制信号。
三、实验内容
1.编制简单程序,对实验板上提供的外部存贮器(62256),作为数据空间0000~7FFFH,,对其进行读写操作。
逐个对外部存贮器中32K地址单元进行读写操作,并比较读写结果是否一致。不一致则说明读写操作不可靠或该存储器单元不可靠,程序转入出错处理代码段(本示例程序通过熄灭一个发光二极管来表示出错)。实验代码如下:
“BCD码补码”可按如下方法计算:
X的“BCD码补码”=100D-X=#9AH-X
其中100D是十进制数100。
4.多字节无符号数BCD码加法
多字节加法运算一般是按从低字节到高字节的顺序进行的,但当最低字节相加后,必须使用“DA A”进行十进制调整。调整后产生进位,除最低字节外,其他字节相加必须考虑低字节的进位情况,要使用ADDC指令。
1.步进电机
2.直流电机
3.温度控制(DS18B20、热敏电阻B3470)
4.模数转换(ADC0809)
5.串行实验区(EEPROM X25045、AT24C08、时钟芯片HT1380、数模转换TLC5615、
模数转换TLC1543)
6.RAM(HM62256)
7.ROM(M27C512)
8.地址译码(74LS138)
Table1BCD码的编码表
十进制数
BCD码
十六进制表达式
十进制数
BCD码
十六进制表达式
0
0000
00H
5
0101
05H
1
0001
01H
6
0110
06H
2
0010
02H
7
0111
07H
3
0011
03H
8
1000
08H
4
0100
04H
9
1001
09H
2.单字节无符号数BCD码的加法
进行单字节BCD码加法的方法是,先用加法指令ADD或带进位加法ADDC计算,(避免用加1指令INC),必须经过十进制调整指令DA A,才能得到正确的结果。
实验一 熟悉ADEK单片机教学实验系统
一、实验目的
1.熟悉ADEK单片机教学实验系统和仿真器的结构和功能。
2.了解如何安装51MINI仿真器驱动程序。
二、ADEK单片机教学实验系统组成
图1-1AEDK单片机教学实验系统外观图
如图1-1所示,ADEK-EAT598单片机教学实验系统遵循了模块化的设计思路,有丰富的接口,并且具有良好的扩展性,以下为组成模块和使用的主要芯片。
2.单字节无符号数BCD码的减法
上述三图表示被减数为11,减数为12,最后结果为99,产生借位
3.多字节无符号数BCD码加法
上左图第一行为被加数,第二行为加数,
上右图为相加结果
右图为进位标志符Cy
即78563412+66552211=145115623(产生了进位)
4.多字节无符号数BCD码减法
左图:第一行数字为被减数
三、实验结果
上述两张图片中,软件已经安装完成,能够成功调试,上图方框内查看内存中的内容。
实验
一、实验目的
1.学习单字节无符号数BCD码加减编程
2.学习多字节无符号数BCD码加减编程
3.学习BCD码的拆分
4.进一步熟悉汇编指令和Keil软件调试过程
二、实验内容
1.BCD码的概念
BCD码(Binary-Code Decimal)是用4位二进制数来表示一个十进制的0~9的一种数值编码。BCD码有很多种,常见的有8421BCD码、2421BCD码、余三码、格雷码等,本实验使用的是8421BCD码。下表为BCD码的编码表
3.学习调试汇编程序
4.学习调试C程序
二、实验内容
1.Keil简介
Keil公司成立于1986年,主要开发、制造和销售嵌入式8051、C166和C251系列微控制器软件开发工具,2005年,Keil公司被ARM公司收购,产品线开始支持各类ARM的内核。
Keil集成开发环境是业界广泛使用的微控制器开发平台,目前支持Windows的各种操作系统,支持汇编语言、C和C++语言的开发,主要包括C/C++编译器、RTX实时操作系统内核库、μVision IDE开发环境及器件数据库、μVision调试器及分析工具和器件仿真调试器,提供针对不同MCU(Micro Controller Unit,微控制器或单片机)器件的开发例子和模板。汇编语言代码冗余小,执行效率高;C语言和C++语言具有工程的开发效率、文件的可读性高和系统的维护性强的优点。Keil集成开发环境的软件调试和硬件调试提供了各种调试技巧和功能,大大加速了嵌入式软件的开发进程。要求安装的计算机提供500M的硬盘空间、至少1GB的内存,屏幕分辨率至少为1024×768像素。
最高两字节相加后也应考虑是否有进位。若有进位,和数将比加数或被加数多出一个字节。应向好的最高位字节地址写入01H。
5.多字节无符号数BCD码减法
多字节无符号数BCD码的减法,在单字节无符号数BCD码的减法基础上进行。
三、实验结果
1.单字节无符号数BCD码的加法
上左图为参加运算的加数和被加数,右图为最终存放在R1寄存器中的结果
第二行数字为减数
从左向右依次进行多字节减法
左图为多字节减法结果
最右位的FF表示有借位
即178563412-84334411=94229001
三、实验总结
本次实验是我第一次通过汇编语言进行单片机编程,说实话,汇编很烦,一般C语言一句代码,在汇编中会被转化为多句代码,但是汇编的优点也在实验中体现出来,汇编对单片机的控制更加精准,编写汇编语言时,我能够非常清楚每一个数据在存储空间中的位置以及大小,这一优势是C语言等高级语言所无法比拟的。也正是这种精准的控制,要求代码的编写者自身能够非常清楚的知道单片机的原理及各个接口的用法,总之,我认为这是一种对单片机学习非常有帮助的语言。