单片机原理与应用及C51程序设计实验报告
单片机原理及应用实验报告
《单片机原理及应用》实验报告姓名:学号:班级:应用物理指导教师:日期:实验1 计数显示器一、实验目的熟悉51单片机的基本输入输出应用,掌握Proteus模块的原理图绘图方法及单片机系统仿真运行方法二、实验原理由共阴极数码管LED1和LED2、P0口、P2口,上拉电阻RP1及Vcc组成的输出电路;由按钮开关BUT、P3.7和接地点组成的输入电路,该电路在编程软件的配合下,可实现计数显示功能:可统计按钮BUT的按压次数,并将按压结果以十进制数形式显示出来;当显示值达到99后可自动从1开始,无限循环。
三、实验内容(1)观察Proteus模块的软件结构,熟悉菜单栏、工具栏、对话框等基本单元功能(2)学会选择元件、画导线、修改属性等基本操作(3)学会可执行文件加载及程序仿真运行方法(4)验证计数显示器的功能四、实验要求提交实验报告并包括如下内容:电路原理图、电路原理分析、仿真运行截图及实验小结1.实验原理图2.仿真运行截图3.实验小结通过这次实验让我认识了kell和proteus软件的基本功能,学会了用kell编写程序用proteus仿真运行。
在这次实验中同时也遇到了很多问题。
比如因为第一次使用这两个软件对界面还不太熟悉,浪费了很多的时间也产生了很多错误,但之后与同学们的交流过程中,慢慢的对这两个软件有了更深入的了解,在后期仿真的时候才能得心应手的处理问题。
这个计数显示器的实验让我进一步了解了单片机与数码管的魅力,看到了电子元件的神奇之处,只要按动按键就能让数码管的数字逐次加一,这大大激发了我的学习单片机兴趣,这次实验也会成为我以后学习单片机的奠基石,因为它打开了我认识单片机的大门,让我认识到了单片机的魅力,并让我沉浸其中。
实验2 指示灯开关控制器一、实验目的学习51单片机I/O口基本输入输出功能,掌握汇编语言的编程与调试方法。
二、实验原理输入电路由外接在P1口的8只拨动开关组成;输出电路由外接在P2口的8只低电平驱动的发光二极管组成。
单片机原理与应用及c51程序设计(第3版)
【单片机原理与应用及C51程序设计(第3版)】文章内容内容包括:一、引言二、单片机原理1. 什么是单片机2. 单片机的基本组成3. 单片机的工作原理4. 单片机的应用领域三、C51程序设计1. C51程序设计的基本概念2. C51程序设计的语法和规则3. C51程序设计的应用示例四、单片机原理与C51程序设计的结合应用1. 如何将单片机原理与C51程序设计结合起来2. 结合应用的案例分析五、总结与展望【单片机原理与应用及C51程序设计(第3版)】文章主要介绍了单片机的基本原理、应用以及C51程序设计的相关知识。
在引言部分,我们可以简要介绍单片机在现代电子设备中的重要性以及C51程序设计在单片机应用中的作用。
接下来进入主题内容,首先详细讲解单片机的基本组成和工作原理,包括单片机的核心部件、指令集和数据存储等方面的内容,重点强调单片机在各个领域中的广泛应用。
然后深入介绍C51程序设计的基本概念、语法和规则,通过实际案例对C51程序设计进行深入分析,以便读者能够更加深入地理解和掌握相关知识。
在单片机原理与C51程序设计结合应用的部分,我们可以通过具体的案例分析,展示单片机原理与C51程序设计在实际项目中的应用,包括控制系统、嵌入式系统等方面。
通过这些案例,读者可以更加直观地了解单片机原理与C51程序设计的实际应用场景,有助于加深对相关知识的理解和掌握。
我们对整个主题进行总结与展望,通过对文章内容的回顾和归纳,强调单片机原理与C51程序设计的重要性,并展望未来单片机技术的发展方向和趋势。
我们可以共享自己对这个主题的个人观点和理解,以及对读者的建议和思考,为读者提供更多的思路和参考。
通过以上内容的深入探讨和详细解读,《单片机原理与应用及C51程序设计(第3版)》将会为读者带来全面、深刻和灵活的理解,帮助读者更好地掌握相关知识,为实际应用提供有力支持。
一、引言单片机在现代电子设备中扮演着非常重要的角色,它集成了处理器、存储器和各种输入输出接口,可以用来控制各种电子设备。
单片机原理与应用及c51程序设计
单片机原理与应用及c51程序设计单片机是一种集成了中央处理器、存储器和输入输出功能的微型计算机系统,它广泛应用于各种电子设备中。
本文将介绍单片机的基本原理和应用,并重点讨论c51程序设计。
单片机的原理与应用。
单片机是一种集成了微处理器、存储器、定时器、串行通信接口等功能模块的微型计算机系统。
它具有体积小、功耗低、成本低廉等优点,因此在各种电子设备中得到了广泛的应用。
单片机的核心是微处理器,它负责执行指令、进行运算和控制外部设备。
存储器用于存储程序和数据,定时器用于产生精确的时序信号,串行通信接口用于与外部设备进行数据交换。
通过这些功能模块的协同工作,单片机可以实现各种复杂的控制和处理任务。
单片机的应用非常广泛,例如在家用电器中,单片机可以实现定时开关、温度控制等功能;在工业控制系统中,单片机可以实现自动化生产线的控制和监控;在通信设备中,单片机可以实现数据的编解码和调制解调等功能。
可以说,单片机已经成为现代电子设备中不可或缺的核心部件。
c51程序设计。
c51是一种常用的单片机编程语言,它基于C语言,并针对单片机的特殊硬件结构进行了优化和扩展。
c51程序设计是单片机应用开发的重要环节,它直接影响着单片机系统的性能和稳定性。
在c51程序设计中,需要考虑以下几个方面的内容:首先,需要充分理解单片机的硬件结构和特性,包括CPU、存储器、定时器、串行通信接口等模块的功能和工作原理。
只有深入理解了这些硬件特性,才能编写出高效、稳定的程序。
其次,需要合理设计程序的结构和算法,充分利用单片机的硬件资源,提高程序的执行效率和响应速度。
在设计程序时,需要考虑到单片机的计算能力和存储空间的限制,避免出现资源浪费和性能瓶颈。
最后,需要进行严格的测试和调试工作,确保程序的正确性和稳定性。
在测试和调试过程中,需要充分利用单片机的仿真工具和调试器,及时发现和解决程序中的错误和问题。
总结。
单片机是现代电子设备中不可或缺的核心部件,它的应用范围非常广泛。
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。
《单片机原理与应用》KeilC51软件使用实验
《单片机原理与应用》KeilC51软件使用实验
一、实验目的和要求
熟悉51单片机的基本输入输出应用,掌握Proteus ISIS模块原理图绘图方法及单片机系统仿真运行方法。
二、实验内容和原理
(1)观察Proteus模块的软件结构,熟悉菜单栏、工具栏、对话框等基本单元功能。
(2)学会选择元件、画导线、画总线、修改属性等操作。
(3)学会可执行文件加载及程序仿真运行。
(4)验证计数显示器的功能。
三、主要仪器设备
电脑、keil c51、Proteus
四、操作方法与实验步骤
(1)提前阅读与实验1相关的阅读材料;
(2)参考实验1电路原理图和元件清单,在ISIS中完成电路原理图的绘制;(3)加载可执行文件,观察仿真结果,检验电路图绘制的正确性。
五、实验数据记录和处理
代码:
电路图:
六、实验结果与分析运行结果:
实验分析:
由实验结果可知,这是通过开关控制计数器显示,按一次开关计数器计一次数,即加一。
七、讨论和心得
通过本次数码管进行51计数器显示实验,让我知道了对教材应该熟悉,因为教材是基础的,只有把基础的搞好了才能够进行其它层次的学习。
其次,此次实验我还懂得了有时候可以通过软件的仿真来验证书上的一些理论性的东西。
通过C语言的编程,对数码管及51的应用让我对单片机理解更加明了。
单片机原理与应用实验报告
单片机原理实验报告实验一计数显示[目的]熟悉Proteus仿真软件,掌握单片机原理图的绘制方法【实验内容】(1)熟悉Proteus仿真软件,了解软件的结构和功能(2)学习如何使用ISIS模块,学习设置图纸、选择元件、画线、修改属性等基本操作(3)了解如何加载可执行文件和运行程序仿真(4)了解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制[实验步骤](1)观察Proteus软件的基本结构,如菜单、工具栏、对话框等。
(2)Proteus中绘制电路原理图,并根据表A.1将组件添加到编辑环境中(3)在Proteus中,观察仿真结果,检查电路图绘制的正确性【实验示意图】【实验源程序】#include <reg51.h>位 P3_7=P3^7;无符号字符 x1=0;x2=0 ;无符号字符数=0;无符号字符 idata buf[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};无效延迟(int时间){整数 k,j;for(;time<0;time--)for(k=200;k>0;k--)for(j=500;j<0;j--);}无效初始化(){P0=buf[x1];延迟(10);P2=buf[x2];延迟(10);}无效的主要(){在里面();而(1){x1=计数/10;x2=计数%10;P0=buf[x1];延迟(10);P2=buf[x2];延迟(10);如果(P3_7==0)// {延迟(10);而(!P3_7);如果(计数==99)计数=0;别的计数=计数+1;}}}[实验结果]阐明计数器的作用是按下K1后,数码管LED1和LED2会显示按键的按下次数, LED1代表一位, LED2代表十位。
当计数器达到99时,再次按下K1键,显示值再次从0开始。
实验2指示灯开关控制器[目的]学习如何编程和调试汇编语言【实验内容】(1)熟悉Proteus仿真软件,了解软件的结构和功能(2)学习如何用汇编语言编程(3)ISIS 模块中输入、编译和调试汇编程序(4)了解MCU程序控制原理,实现指示灯/开关控制器的预期功能[实验步骤]( 1 ) 在ISIS中画出电路原理图, 并在编辑环境中添加相应的元器件 .( 2 )在ISIS中编写汇编语言程序( 3 ) 利用ISIS 的汇编调试功能检查程序的语法和逻辑错误( 4 )观察仿真结果,检查程序和电路的正确性【实验示意图】【实验源程序】#include <reg51.h> 无效延迟(int时间){整数 k,j;for(;time<0;time--) {for(k=100;k<0;j--) for(j=500;j<0;j--); }}无效初始化(){P1=0x00;延迟(20);P1=0xff;延迟(20);P1=0x00;延迟(20);P1=0xff;延迟(20);P1=0x00;延迟(20);P1=0xff;延迟(20);}无效的主要(){在里面();P1=0x00;延迟(20);P1=0xff;延迟(20);而(1){P1=P2 ;}}[实验结果]阐明点击运行,8个LED 一起闪烁3次。
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程序设计一、单片机原理与应用单片机(Microcontroller Unit,简称MCU)是一种集成电路芯片,拥有处理器核心、存储器、输入输出接口和外设等多种功能,可实现数据处理、控制和通信等任务。
单片机广泛应用于电子产品和自动化设备中,如家电、汽车、工控、通信等领域。
1.单片机原理单片机由五大部分组成:中央处理器(CPU)、存储器、输入输出(I/O)接口、定时/计数器和通信接口。
中央处理器是单片机的核心,负责执行指令和数据处理操作;存储器包括程序存储器和数据存储器,用于存储程序和数据;输入输出接口用于与外部设备进行数据交互;定时/计数器可以用于时间控制和频率测量等操作;通信接口可以实现与外部设备的数据通信和控制。
2.单片机应用单片机应用范围广泛,可以用于各种电子设备和自动化系统中。
以下是一些常见的单片机应用:(1)家电控制:单片机可以用于家电产品的控制和运行管理,如空调、洗衣机、电视等。
(2)汽车电子:单片机可用于汽车电子系统的控制,如发动机控制单元(ECU)、车身电子等。
(3)工控系统:单片机在工业自动化领域有广泛应用,如PLC(可编程逻辑控制器)等。
(4)通信设备:单片机可以用于通信设备的控制和数据处理,如手机、路由器、调制解调器等。
(5)医疗设备:单片机被应用于各种医疗设备,如血压计、体温计、电子血糖仪等。
C51是C语言在C51单片机上的移植,用于单片机的编程和开发。
C51程序设计可以通过Keil C51集成开发环境(IDE)进行。
以下是C51程序设计的主要内容和步骤:1.C语言编程:C语言是一种通用的高级编程语言,具有良好的可移植性和易学性。
在C51程序设计中,使用C语言编写程序代码,通过对变量、函数和数据结构的定义来实现单片机的功能和控制。
2. 程序开发环境:Keil C51是一套成熟的单片机开发软件,提供了丰富的编译、调试和仿真工具。
通过安装和配置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单片机可以用于控制机器人、自动化生产线和仪器设备等。
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语言与单片机编程教程。
单片机原理实验报告
实验一:系统认识实验一、设计目的:1. 学习 Keil C51 集成开发环境的操作;2. 熟悉 TD-51 系统板的结构及使用。
二、设计内容:编写程序,将 00H~0FH 共 16 个数写入单片机内部 RAM 的 30H~3FH 空间。
三、设计步骤:1. 创建 Keil C51 应用程序(1)运行 Keil C51 软件,进入 Keil C51 集成开发环境。
(2)选择工具栏的 Project 选项,弹出下拉菜单,选择 NewProject 命令,建立一个新的μVision2 工程。
这时会弹出文件保存对话框,选择工程目录并输入文件名 Asm1 后,单击保存。
(3)工程建立完毕后,μVision2 会马上弹出器件选择窗口。
器件选择的目的是告诉μVision2 使用的 80C51 芯片的型号是哪一个公司的哪一个型号,不同型号的 51 芯片内部资源是不同的。
此时选择 SST 公司的 SST89E554RC。
(4)到此建立好一个空白工程,现在需要人工为工程添加程序文件,如果还没有程序文件则必须建立它。
选择工具栏的 File 选项,在弹出的下拉菜单中选择 New 目录。
(5)输入程序,完毕后点击“保存”命令保存源程序,将 Text1 保存成Asm1.asm。
Keil C51 支持汇编和 C 语言,μVision2 会根据文件后缀判断文件的类型,进行自动处理,因此保存时需要输入文件名及扩展名.ASM 或.C。
保存后,文件中字体的颜色会发生一定变化,关键字会变为蓝色。
(6)程序文件建立后,并没有与 Asm1.Uv2 工程建立任何关系。
此时,需要将 Asm1.asm 源程序添加到 Asm1.Uv2 工程中,构成一个完整的工程项目。
在Project Window 窗口内,选中Source Group1 点击鼠标右键,选择 Add Files to Group‘Source Group1’命令,此时弹出添加源程序文件对话框,选择文件Asm1.asm,点击 Add 命令按钮即可将源程序文件添加到工程中。
单片机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程序设计单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、存储器、输入输出接口和定时器等功能的集成电路芯片。
它具有体积小、功耗低、成本低、可编程性强等特点,广泛应用于各个领域,如家电、汽车、通信、工业控制等。
单片机的原理是基于微处理器的基本原理,通过将微处理器核心与存储器、输入输出接口和定时器等外围电路集成在一块芯片上,形成一个完整的计算系统。
单片机通过外部输入信号,经过处理后,控制外部设备的工作状态。
它可以根据程序的要求,对输入信号进行处理、运算、判断等操作,然后通过输出接口控制外部设备的工作。
单片机的应用非常广泛。
在家电领域,单片机可以用于控制空调、洗衣机、电视等家电设备的运行和功能;在汽车领域,单片机可以用于控制发动机、车载娱乐系统、安全系统等;在通信领域,单片机可以用于控制手机、路由器、通信基站等设备的工作;在工业控制领域,单片机可以用于控制机器人、自动化生产线、仪器仪表等。
C51是一种常用的单片机程序设计语言,它是基于C语言的扩展,专门用于单片机的编程。
C51程序设计主要包括以下几个方面:1. 程序结构:C51程序的基本结构包括头文件引用、全局变量定义、函数定义和主函数等部分。
头文件引用用于引入需要使用的库函数和宏定义;全局变量定义用于定义程序中需要使用的全局变量;函数定义用于定义程序中需要使用的函数;主函数是程序的入口,用于控制程序的执行流程。
2. 输入输出:C51程序可以通过输入输出接口与外部设备进行数据交互。
输入可以通过读取外部引脚的电平状态来实现,输出可以通过设置外部引脚的电平状态来实现。
C51程序可以通过读取输入信号的状态,进行相应的处理和判断,然后通过输出信号控制外部设备的工作。
3. 中断处理:C51程序可以通过中断处理来响应外部事件。
中断是一种异步事件,当外部设备发生特定的事件时,会触发中断请求,程序会跳转到相应的中断处理函数进行处理。
《单片机原理及应用》实验报告
本科生实验报告实验课程XXXXX学院名称XXXXXXXXXXXXXXX专业名称XXXXXXXXX学生姓名XXXX学生学号XXXXXXXXXXXX指导教师XXXXXX实验地点XXXXXX实验成绩二〇一六年四月二〇一六年六月《单片机原理及应用》实验报告摘要《单片机原理及应用》是电子科学与技术、电子信息工程、计算机科学与技术、自动控制等专业工程应用能力和创新能力培养的一门重要专业基础课。
课程重点讲授:单片机存储器体系结构、指令系统与编程技术、中断系统及应用、定时器及应用、外围设备与单片机的接口技术,单片机应用系统设计。
因为单片机这门课是一门实践性很强的课程,单纯学习课本不能掌握这门知识,必须要经过试验课程才能更加具体和深入地学会这门课。
通过试验课的学习,使学生掌握单片机技术及其在工业控制、经济建设和日常生活中的应用,培养学生实践能力、创新能力和新产品设计开发能力,为将来从事电子电器新产品设计开发,电子产品的检测和维护等工作奠定坚实的基础。
本实验板可以实现的实验内容:(1)单片机开发软件及仿真器的使用和P1口实验(2)I/O口实验(交通灯实验,温度传感器,蜂鸣器、I2C)(3)定时器实验(流水灯、交通灯、数码管等)(4)总线实验(流水灯LED、外部RAM)(5)系统扩展(包括:LCD、ADC、DAC、RAM等)(6)通信实验(RS232与计算机之间的串口实验)(7)传感器实验(1-Wire温度实验)(8)键盘实验(扫描接口)(9)电机实验(四相六线式步进电机)(10)时钟实验(RTC—PCF8563)(11)软件实验(多个数求和、排序等)(12)中断实验(外部中断、定时器、UART)本实验设计主要完成了数码管、流水灯、键盘、蜂鸣器等实验,与实验指导书结果符合,了解了部分功能的使用。
关键词:单片机 LED数码显示键盘串口第一章单片机集成开发环境应用一实验目的1.熟悉单片机集成开发软件(Keil);2.掌握单片机实验板的使用;3.掌握单片机P1口使用;二实验内容1、集成开发环境Keil介绍及开发流程Keil μVision4集成开发环境(Integrated Development Environment,IDE)是一个基于Windows的开发平台,它包含高效的源代码编辑器、项目(Project)管理器和程序生成(MAKE)工具。
《单片机原理及应用》实验报告
《单片机原理及应用》实验报告一、实验目的本次实验旨在深入理解单片机的工作原理,掌握其基本的编程和应用方法,通过实际操作提高我们对单片机系统的设计和调试能力。
二、实验设备1、计算机一台2、单片机开发板一套3、下载线一根4、相关软件,如 Keil C51 等三、实验原理单片机是一种集成在一个芯片上的微型计算机,它包含了中央处理器(CPU)、存储器(ROM、RAM)、输入输出接口(I/O 口)等基本组件。
通过编写程序,可以控制单片机的各个引脚输出高低电平,实现对外部设备的控制和数据采集。
单片机的工作原理是基于时钟信号,按照程序指令的顺序依次执行操作。
程序通常使用 C 语言或汇编语言编写,经过编译后下载到单片机的存储器中,由单片机的 CPU 读取并执行。
四、实验内容1、点亮单个 LED 灯首先,我们将单片机的一个 I/O 口与一个 LED 灯相连。
通过编写程序,设置该 I/O 口输出高电平,使 LED 灯点亮;输出低电平,使 LED 灯熄灭。
程序代码如下:```cinclude <reg51h> //包含 51 单片机的头文件void main(){P1_0 = 1; //设置 P10 口为高电平,点亮 LED 灯while(1);//无限循环,保持 LED 灯常亮}```2、流水灯实验在这个实验中,我们使用多个 LED 灯,通过依次控制每个 LED 灯的点亮和熄灭,实现流水灯的效果。
程序代码如下:```cinclude <reg51h>void delay(unsigned int i) //延时函数{unsigned int j, k;for (j = 0; j < i; j++)for (k = 0; k < 125; k++);}void main(){unsigned char led ={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};//定义 LED 灯的控制码unsigned char i;while (1){for (i = 0; i < 8; i++){P1 = ledi; //依次输出控制码,点亮相应的 LED 灯delay(500);//延时一段时间}}}```3、按键控制 LED 灯我们将一个按键连接到单片机的一个I/O 口,通过检测按键的状态,控制 LED 灯的亮灭。
c51单片机实训报告
C51单片机实训报告引言本次实训主要是针对C51单片机进行的,C51单片机是一种常用的微控制器,广泛应用于各种嵌入式系统中。
在本次实训中,我们学习了C51单片机的基本知识,并进行了一系列的实践操作。
实训目标本次实训的目标是让学员掌握C51单片机的基本原理和应用。
通过实践操作,学员可以更加深入地理解单片机的工作原理,并能够使用C语言进行编程。
实训内容1. 环境搭建首先,我们需要搭建C51单片机的开发环境。
这包括安装Keil C51集成开发环境和编译器。
Keil C51是一款专门为C51单片机设计的集成开发环境,可以方便地进行代码编写、调试和下载。
2. 单片机基础知识在实训的第二部分,我们学习了C51单片机的基础知识。
包括单片机的硬件结构、寄存器的使用、输入输出口的控制等。
这些知识是理解单片机工作原理的基础,也是后续实践操作的前提。
3. 实践操作在学习了基础知识之后,我们进行了一系列的实践操作。
这些实践操作包括LED灯控制、数码管显示、按键输入等。
通过这些实践操作,学员可以更加深入地了解单片机的应用场景和编程方法。
4. 小组项目实训的最后一部分是小组项目。
每个小组需要设计并实现一个基于C51单片机的小型系统。
小组成员可以根据自己的兴趣和能力选择合适的项目,例如温度监测系统、智能家居控制系统等。
通过这个项目,学员可以综合运用之前学到的知识,提高自己的实际操作能力。
实训心得通过这次实训,我对C51单片机有了更深入的了解。
之前我只是听说过单片机,但从未真正接触过。
通过实践操作,我不仅学会了如何搭建开发环境,还学会了如何编写简单的C语言程序并下载到单片机中运行。
在实践操作中,我遇到了不少问题。
有时候程序无法正常运行,有时候单片机没有反应。
但通过不断的调试和排查,我最终找到了问题的解决方法。
这个过程虽然有些繁琐,但对我来说是一次宝贵的学习经验。
通过小组项目,我还体会到了团队合作的重要性。
在项目中,每个人都有自己的分工,但我们需要相互配合,共同完成项目的目标。
单片机原理与应用及C51程序设计实验报告
5.源程序:
#include <reg51.h>
#include <stdio.h>
typedef unsigned char BYTE;
BYTE i;//显示的十位数
BYTE j;//显示的个位数
BYTE dis_code[10]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09};
2.实验原理图:(附录1)
3.源程序:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit p0_0=P0^0;
sbit p0_1=P0^1;
uchar temp,count;
void maBiblioteka n(){temp=0xfe;
sbit p0_0=P0^0;
void Delay(unsigned int Delaytime);
void main(void)
{
SCON = 0x50; //串口方式1,允许接收
TMOD = 0x20; //定时器1定时方式2
TCON = 0x40; //设定时器1开始计数
TH1 = 0xE8; //11.0592MHz 1200波特率
P1=temp;
TMOD=0X01;
TH0=0X3C;
TL0=0XB0;
EA=1;
ET0=1;
while(1)
{
if(p0_0==0)
{
TR0=1;
if(count==20)
{
count=0;
单片机(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的安装方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.源程序:
#include <reg51.h>
#include <stdio.h>
typedef unsigned char BYTE;
BYTE i;//显示的十位数
BYTE j;//显示的个位数
BYTE dis_code[10]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09};
{
count=0;
temp=_cror_(temp,1);
P1=temp;
}
}
}
}
void timer0()interrupt 1
{
TH0=0X3C;
TL0=0XB0;
count++;
}
4.实验总结:通过本次实验,对定时器的中断有了更进一步的掌握,也能够熟练应用定时器,还有按键控制流水灯的流动方向。不过这次实验的难度要高于上一次,经过了多次调试之后才把实验完成,耐心决定一切啊。
sbit p0_0=P0^0;
void Delay(unsigned int Delaytime);
void main(void)
{
SCON = 0x50; //串口方式1,允许接收
TMOD = 0x20; //定时器1定时方式2
TCON = 0x40; //设定时器1开始计数
TH1 = 0xE8; //11.0592MHz 1200波特率
//01 2 3 4 5 6 7 8 9
voidmain()
{
char time=0xFFFF,count=0x00FF;//延时常数
SCON=0X00;
do
{
for (i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
SBUF=dis_code[j];//发送字符个位
while(TI==0);TI=0;
三.串并转换实验
1.实验目的:了解单片机串口方式0,及移位寄存器164应用。
实验说明:串口方式0为移位寄存方式,数据由P3_0端口输入,同步移位脉冲由P3_1端口输出,发送的8位数据低位在前。利用单片机的串行接口方式0扩展并行接口输入输出,在LED灯上循环显示00~99。
2.设计流程图:
3.实验连线:DIN连接P3_0;CLK连接P3_1
#define uint unsigned int
uchar count;
void main()
{
SCON = 0x50; //串口方式1,允许接收
TMOD = 0x21;
TCON = 0x40; //设定时器1开始计数
TH1 = 0xE8; //11.0592MHz 1200波特率
TL1 = 0xE8;
SBUF=dis_code[i];//发送字符十位
while(TI==0);TI=0;//是否发送完
do
{
while(time--);
}
while(count--);
}
}
}
while(1);
}
6.实验心得:最后一次实验,设计过程稍难,虽然硬件只需要连接两根线就可以了,但是内部结构较为复杂,需要掌握74HC164芯片的功能和拐角,同时也为时分秒的设计奠定了一定的基础。通过这几次实验,我觉得单片机实验还是很有意思的。虽然我们只是学了一些皮毛,但是让我感觉依然很受用,这门课的重点是实践,只有搞好了动手环节,才能真正学好这门课。
TH0=0X3C;
TL0=0XB0;
EA=1;
ET0=1;
TI = 1;
TR1 = 1; //启动定时器
while(1)
{
if(p0_0==0)
{
TR0=1;
if(count==200)
{
count=0;
printf("hello world!\n");
}
}
}
}
void timer0()interrupt 1
{
TH0=0X3C;
TL0=0XB0;
count++;
}
3.实验心得:
第一次实验不需要硬件实现,只需要用软件仿真,串口输出“hello word”语句就ok,所以此次实验比较简单,不需要费太多时间就能把实验完成。
二.键控流水灯
1.实验要求:
8051单片机的P1口的P1.0—P1.7分别接有LED(D1—D8),当某一端口输出,为“0”时,相应的LED点亮,P0.0、P0.1分别接有两个按钮K1和K2。现要求编写可键控的流水灯程序,K1=0时,灯向左循环流动;K2=0时,灯向右循环流动;K1,K2同时为0时,灯开始一左一右流动;K1,K2同时为1时,灯停止流动。
for(;Delaytime>0;Delaytime--)
for(j=0;j<100;j++);
}
(2).采用定时器定时,延迟输出语句。P0_0控制启动/停止。
#include<reg51.h>
#include<stdio.h>
sbit p0_0=P0^0;
#define uchar unsigned char
《单片机原理与应用及C51程序设计》
实验报告
一.软件仿真
1.实验要求
基本要求:用串口输出“hello word”语句。增加的要求:延时或定时输出语句,采用查询/中断的方式控制启动/停止。
2.源程序:
(1).采用延时函数,延迟输出语句,p0_0控制启动/停止。
#include <reg51.h>
#include <stdio.h>
2.实验原理图:(附录1)
3.源程序:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit p0_0=P0^0;
sbit p0_1=P0^1;
uchar temp,count;
void main()
{
temp=0xfe;
P1=temp;
TMOD=0X01;
TH0=0X3C;
TL0=0XB0;
EA=1;
ET0=1;
while(1)
{
if(p0_0==0)
{
TR0=1;
if(count==20)
{
count=0;
temp=_crol_(temp,1);
P1=temp;
}
}
if(p0_1==0)
{
TR0=1;
if(count==20)
TL1 = 0xE8;
TI = 1;
TR1 = 1; //启动定时器
while(1)
{
if(p0_0=f ("Hello World!\n"); //显示Hello World
}
}
}
void Delay(unsigned int Delaytime)
{unsigned int j=0;