单片机原理及应用实验二报告
单片机综合应用实训报告

一、实训背景与目的随着科技的不断发展,单片机作为嵌入式系统中的核心部件,其在各个领域的应用日益广泛。
为了提高学生的实践能力,培养其动手操作和问题解决能力,本次实训以单片机为平台,通过综合应用实训,使学生深入了解单片机的工作原理,掌握单片机的编程技巧,并能将其应用于实际项目中。
二、实训内容与步骤本次实训内容主要包括以下几个方面:1. 单片机基础原理- 了解单片机的结构、工作原理及常用接口。
- 学习51单片机的指令系统、寄存器及中断系统。
2. 单片机编程- 掌握Keil uVision软件的使用,进行C51语言编程。
- 学习编写简单的单片机程序,如LED流水灯、按键控制等。
3. 单片机硬件电路- 学习绘制电路原理图,了解电路元器件的选用和焊接工艺。
- 实践搭建单片机最小系统,并进行调试。
4. 单片机综合应用- 设计并实现一个基于单片机的交通灯控制系统。
- 设计并实现一个基于单片机的数字时钟显示系统。
三、实训过程与结果1. 单片机基础原理学习- 通过阅读教材、查阅资料,了解单片机的基本知识。
- 在实验室进行实验,验证单片机的基本功能。
2. 单片机编程实践- 使用Keil uVision软件,编写LED流水灯程序,实现LED灯的闪烁效果。
- 编写按键控制程序,实现按键的读取和响应。
3. 单片机硬件电路搭建- 使用Protel软件绘制电路原理图,确定元器件型号和数量。
- 搭建单片机最小系统,包括电源电路、晶振电路、复位电路等。
- 使用焊接工具进行元器件焊接,并进行调试。
4. 单片机综合应用实现- 设计并实现交通灯控制系统,实现红黄绿灯的定时切换和倒计时功能。
- 设计并实现数字时钟显示系统,实现时分秒的显示和调整。
四、实训总结与收获通过本次实训,我收获颇丰:1. 加深了对单片机原理的理解- 通过理论学习、实验操作和项目实践,我对单片机的结构、工作原理和编程方法有了更深入的了解。
2. 提高了编程能力- 通过编写LED流水灯、按键控制等程序,我掌握了C51语言编程技巧,提高了编程能力。
单片机原理及其应用实验报告

单片机原理及其应用实验指导书南通大学电气工程学院自动化教研室2011 年 3 月前言单片机目前已广泛应用在智能仪表、工业控制、家用电器等各个领域,成为现代电子系统的一个极其重要的组成部分,对于电类专业学生来说,掌握单片机知识,具备基本应用技能,才能符合当前社会对专业人才的要求。
单片机是一门应用性极强的课程,学生在掌握基本理论知识的基础上,更要通过实验训练,提高其调试动手能力,学会解决具体问题的思路和手段,具备初步的系统设计和调试能力。
因此,为了更好地做好单片机课程的软硬件实验,特编写本实验指导书,书中叙述了各实验的目的、要求,对于设计性实验,给出了列出了接线图、程序结构框图和清单。
学生按要求完成本实验指导书中的实验,可基本掌握MCS-51单片机的结构原理、接口技术以及程序设计技巧。
另外:一、所有实验都是相互独立的,次序上也没有固定的先后关系,在使用本书进行教学时,教师可根据教学要求,选择相应实验。
二、对同一问题的解决方法往往不是唯一的,欢迎各位指导教师在使用本实验指导书的过程中提出更完善的实验方案,指出书中的错误和不足,并希望大家反馈给我们,以便及时修改。
目录第一章集成开发环境简介 (1)第二章演示程序 (9)第三章实验项目 (15)实验一仿真环境熟悉,清零、拆字程序设计 (15)实验二内部、外部RAM数据传送程序设计 (17)实验三单片机I/O口实验 (18)实验四A/D、D/A转换实验 (20)实验五并行接口扩展实验 (24)第一章 集成开发环境简介Super ICES-51 80C51单片机实验仪使用当前流行的Keil C51开发软件,采用uVision2集成开发环境。
1.1 Keil C51简介Keil C51软件是德国Keil 公司开发的功能完善的C51开发软件,近年来在国内得到了迅速普及。
Keil 包括以下几个部分:uVision2 IDE 、C51编译器、A51汇编器、LIB 库管理器、BL51连接器/定位器、uVision 硬件调试器、RTX51实时多任务操作系统。
单片机实训报告【三篇】

【导语】实训报告是展⽰⾃⾝实训收获成长的重要报告。
以下是⽆忧考整理的单⽚机实训报告,欢迎阅读!更多相关⽂章请关注⽆忧考报告频道!单⽚机实训报告篇⼀ 通过为期⼀周的单⽚机实训,是我们对这门课有了许多新的了解,弥补了在课堂上学习的不⾜。
相信这对我们以后的学习和⼯作都会有很⼤的帮助。
我们⼀定要在最短的时间⾥对这些不⾜加以改正! ⾸先,在这次试训中我被单⽚机强⼤的功能所震撼,以前在课堂上完全没有能理解可编程单⽚机的优越性。
这次通过实体仿真软件等辅助软件的共同效果,是这次试训有了鲜明的活⼒。
换是我们认识到这次试训不仅仅是⼀个软件的应⽤,更多的是使我们认识到学习到很多在课堂上⽆法得到的东西。
特别是protues软件的功能是我们了解了当今开发系统的新⽅向,简直太不可思议啦! 单⽚机作为⼀种最简单的软件,与我们的⽇常⽣活息息相关,了解⼀些单⽚机程序的简单录⼊是⾮常必要的。
如:LED显⽰器、键盘和显⽰器的应⽤和原理。
在被刺实训中我们每个⼈通过⼀个⼋位流⽔灯的制作,使我们深深地体会到了单⽚机在现实⽣活中的⼩⼩应⽤,既增强了我们的好奇⼼,⼜巩固了我们的理论知识。
更让我们体会到了单⽚机⼿动的开始平台的完善与成熟。
只要你有想法,单⽚机就有可能让他成为现实。
这⾥我学习完protues软件后的第⼀感觉是,虽然这软件⼯作不稳定,但是会有相当不错的效果出来。
这对我以后的⼯作⼀定会有帮助的。
在这次试训中不仅只对单⽚机编程有了新的认识,还对整个单⽚机的开发平台都有了⼀厅的了解,这是⼀笔不错的收获。
通过这⼏天的试训,使我的感触很深,真实“条条⼤路通罗马”,要达到⽬的,不同的⼈就有不同的⽅法。
只要你的⽅法不错!五花⼋门都可以,⽽且是各有特⾊。
⾛出来的结果都有各⾃的独到之处。
在编程中“简”字贯穿于整个程序设计中,越简单越好,毕竟单⽚机留给⽤户的资源是有限的,所以我们要充分利⽤这些资源,达到更好的效果,这些是我们在以后的学习⽣活中应值得注意的地⽅。
单片机实验报告范文

单片机实验报告范文一、实验目的本实验的目的是通过学习单片机的基本原理和使用方法,掌握单片机在各个实际应用中的基本技能。
二、实验器材及原理1.实验器材:STC89C52单片机、电源、晶振、按键、LED灯、蜂鸣器等。
2.实验原理:单片机是一种微处理器,能够完成各种复杂的功能。
通过学习单片机的工作原理和编程方法,可以控制各种外围设备,实现不同的功能。
三、实验内容及步骤1.实验一:点亮LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。
(2)编写程序,点亮LED灯。
2.实验二:按键控制LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。
(2)将按键和LED灯与单片机相连。
(3)编写程序,实现按下按键控制LED灯亮灭。
3.实验三:数码管显示步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。
(2)将数码管与单片机相连。
(3)编写程序,将数字输出到数码管上显示。
4.实验四:定时器应用步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。
(2)编写程序,实现定时器功能。
四、实验结果及分析1.实验一:点亮LED灯LED灯成功点亮,证明单片机与外部设备的连接正常。
2.实验二:按键控制LED灯按下按键后,LED灯亮起,松开按键后,LED灯熄灭。
按键控制LED 灯的效果良好,说明单片机的输入输出功能正常。
3.实验三:数码管显示数码管成功显示数字,说明单片机能够实现数字输出功能。
通过程序设计,可以实现数码管显示不同的数字。
4.实验四:定时器应用定时器正常运行,能够实现精确的定时功能。
通过调节定时器的参数,可以实现不同的定时功能。
五、实验总结通过本次实验,我们学习了单片机的基本原理和使用方法。
通过掌握单片机的编程技巧,我们能够实现各种复杂的功能,如控制LED灯、按键控制、数码管显示等。
这些技能对于日常生活和工程设计都具有很大的实用性。
在实验过程中,我们遇到了各种问题,如电路连接错误、程序编写错误等。
单片机原理及应用实验二报告

单片机原理及应用实验二报告实验二:单片机IO口的输入输出实验一、实验目的:1.理解并掌握单片机IO口的输入输出原理;2.掌握基础的输入输出编程技巧;3.熟悉单片机实验的基本流程和实验报告格式。
二、实验器材:1.STM32F103C8T6开发板2.LED灯3.电阻(220Ω)4.面包板、杜邦线等。
三、实验原理:单片机的IO口是实现与外部器件进行通信的重要接口,通过编程,我们可以控制IO口的状态(低电平或高电平)来实现对外部器件的控制或检测。
IO口的输入输出原理主要有两种:1.三态输出方式:通过设置IO口的DDR寄存器来将IO口设置为输出模式(推挽输出),并通过设置IO口的ODR寄存器来控制IO口的输出状态为低电平或高电平;2.上拉输入方式:通过设置IO口的DDR寄存器来将IO口设置为输入模式,同时设置IO口的CR寄存器的PUPD位为上拉使能,通过读取IO口的IDR寄存器可以获取IO口的输入状态。
四、实验步骤:1.连接电路:将STM32F103C8T6开发板的VDD和VSS(即5V和GND)分别连接到面包板的3V3和GND,将LED的阳极(长脚)连接到STM32F103C8T6开发板的PA0引脚,将LED的阴极(短脚)通过一个220Ω的电阻连接到GND。
2. 打开Keil uVision5软件,创建一个新的工程,并选择适合的芯片型号(STM32F103C8T6)。
3.编写代码实现将PA0引脚设置为输出模式,并控制LED的亮灭。
五、实验代码:```c#include "stm32f10x.h"void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);int main(void)GPIO_Configuration(;while (1)GPIO_SetBits(GPIOA, GPIO_Pin_0); // 点亮LEDGPIO_ResetBits(GPIOA, GPIO_Pin_0); // 关闭LED}```六、实验结果与分析:七、实验心得:本次实验主要学习了单片机IO口的输入输出原理,了解了三态输出方式和上拉输入方式,并通过实际编写代码的方式,在STM32F103C8T6开发板上实现了控制LED的亮灭。
北京理工大学单片机实验报告

北京理工大学实验选修课程《单片机原理与应用》课程实验报告姓名:学号:**********专业:信息工程班级:05111003实验一 P1口基本实验一、实验目的1.掌握如何建立项目,并用Keil C51软件调试程序。
二、实验内容1. P1口基本实验P1口做输出口,接八只发光二极管(如图1-1),编写程序,使发光二极管从左到右依次单个点亮,再从右至左依次单个点亮,以此循环。
各发光二极管的阳极通过保护电阻接到+5V 的电源上,阴极接到接线端口上,因此使其点亮应使相应接线端口为低电平。
三、实验原理1. P1口实验原理P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”。
2. 延时原理及计算方法常用的延时程序有两种方法,一种是用定时器中断来实现,另一种是用指令循环来实现。
用C 语言编写的延时子程序,计算延时时间时需转化为汇编语言。
针对不同的编译环境,C51编译后生成的代码不同。
针对本实验系统,若延时时间大于255ms,用C51实现可大致写出如下:unsigned int i;unsigned char j;while(i--){ for(j=0;j<60;j++){;}}若延时时间不大于255ms ,可将循环变量(i,j )定义为unsigned char ,并将内循环体中参数改为75。
四、实验代码#include<reg51.h>unsigned char L; /*L 传递亮灭的数值*/或 unsigned int i, ms; unsigned char j; for(i=0;i<ms;i++) { for(j=0;j<60;j++) {;} }delay(unsigned int ms) /*延时子程序*/{unsigned char j;unsigned int i;for(i=0;i<ms;i++){for(j=0;j<60;j++) /*内循环空操作*/{;}}}void display() /*显示输出子程序*/{P1=~L; /*LED共阳极,L取反输出*/delay(1000); /*延时1秒*/}main(){unsigned char i;L=0xFF; /*全亮*/display();L=0x00; /*全灭*/display();while(1) /*进入死循环,重复执行程序*/{L=0x01; /*LED1亮*/display();for(i=0;i<8;i++) /*LED右移8次点亮*/{L=L<<1; /*L左移1位*/display();}L=0x80; /*LED8亮*/display();for(i=0;i<8;i++) /*LED左移8次点亮*/{L=L>>1; /*L右移1位*/display();}}}五、实验心得通过这次实验我们熟悉了专用的调试环境,并练习了编写代码、编译链接、烧写程序、调试运行等一系列的实验步骤,对C51单片机有了一个初步的直观认识。
单片机原理与应用实验报告

单片机原理实验报告实验一计数显示[目的]熟悉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次。
单片机原理及其应用实验报告

用导线将实验箱中的P1.0~P1.7分别与LED发光二极管L1~L8相连。INT0
与负脉冲相连(硬件在实验箱的具体位置可以参照文档最后面的附图)。
程序:
C语言程序
# include<regx51.h>
unsigned char STATE;
unsigned char s0;
/*---延时子程序(有参函数),t=n*10ms---*/
/*---定时器0中断程序---*/
ET0P:DEC A ;A减1
MOV TH0,#4CH
MOV TL0,#00H
RETI
END
实验现象:
可以看到用P1口所接的8路LED表示的二进制数每隔0.5s加1。
P1=P1<<1;
if(P0_1!=0|P0_0!=0)
break;
}
}
if(P0_1==0&P0_0==1)
{
P1=0x80;
for(i=1;i<=8;i++)
{delay(100);
P1=P1>>1;
if(P0_1!=0|P0_0!=1)
break;
}
}
if(P0_1==1&P0_0==0)
{
P1=0x01;
END
实验现象:
可以看到LED1大致亮1s后灭1s,如此循环。
(2)实验内容:
I/O口做输入口,一个I/O口接一个拨动开关,另一个I/O口接一个LED发光二极管,单片机读取开关的状态并通过LED显示出来。
有关说明:P0口是一组漏极开路型双向I/O口,也即地址/数据总线复用口。
对端口写“1”可作为高阻抗输入端用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及应用实验二报告
实验二:单片机输入输出实验
一、实验目的
1.熟悉单片机输入输出的基本原理;
2.了解单片机输入输出端口的基本操作;
3.能够通过单片机实现简单的输入输出功能。
二、实验原理
单片机的输入输出是通过GPIO(General Purpose Input Output)端口实现的。
每个GPIO端口可以作为输入端口或输出端口使用。
在输入模式下,GPIO端口可以感知外部电平并将其反映到单片机内部,从而实现对外部信号的输入;在输出模式下,GPIO端口可以输出特定的电平,从而控制外部电路的行为。
三、实验器材
1.STC89C52开发板
2.电脑
B线
四、实验内容
本实验将通过STC89C52开发板的GPIO引脚实现一个LED灯的亮灭控制。
五、实验步骤
其正常供电。
2.将STC89C52开发板与电脑连接,通过USB线将其与电脑连接。
3. 打开Keil C51开发环境,新建一个工程,将其保存在适当的路径下。
4.在新建的工程中,编写如下程序:
#include <reg52.h>
void Delay(unsigned int t)
while(t--);
void main
P0=0x00;//将P0口设置为输出口
while(1)
P0 = 0xff; // 点亮LED灯
P0=0x00;//熄灭LED灯
}
5. 在Keil C51开发环境中编译程序,生成hex文件。
6. 将生成的hex文件烧录到STC89C52开发板中。
7.断开开发板与电脑的连接。
8.将STC89C52开发板上的P0口的引脚分别连接到LED的两个引脚上。
10.连接好后,为开发板供电。
11.观察LED是否会周期性地亮灭。
六、实验结果
在实验过程中,如果操作无误,LED应该会周期性地亮灭。
七、实验总结
本实验通过使用STC89C52开发板的GPIO引脚实现了对LED的亮灭控制。
实验中,我们学习到了单片机输入输出的基本原理,并通过编写简单的程序,实现了对LED灯的控制。
这个实验是单片机编程的入门级实验,为后续的实验奠定了基础。
通过本次实验,我熟悉了单片机输入输出的原理和应用,掌握了GPIO端口的基本操作。
在今后的单片机实验中,我将能够根据需要,通过单片机实现更加复杂的输入输出功能。