单片机实训报告范文优选5篇分享.docx
《单片机实训报告范文优选5篇分享.docx》由会员分享,可在线阅读,更多相关《单片机实训报告范文优选5篇分享.docx(22页珍藏版)》请在冰豆网上搜索。
单片机实训报告范文优选5篇分享
单片机实训报告范文优选5篇分享
单片机实训报告范文
(一)
前言
一周的单片机实训很快就结束咯,在这一周的时间里,我学到了很多关于单片机各方面的知识。
老师在实训课中也教会咯我们很多关于单片机软件编程与硬件设施的知识。
一周的实训中我们一共实训咯好几个项目,通过这几个项目的实训,我们掌握咯一些单片机的汇编语言和硬件调试,达到了很好的效果。
一周时间实训过后,我把之前在课堂上不懂的知识点,通过实际操作的练习,我都搞明白咯。
当然在实训过程中也遇到咯很多问题,就是有时在调试方面不能调试成功,有时程序是没有错误,但是就是调试不好,一直找原因也找不出是什么原因。
希望以后能够拥有更多的实训时间和机会学习单片机。
实训任务一
一、实验目的
熟悉KeilC51集成开发环境的使用方法
二、实验设备及器件
IBMPC机
三、实验内容
按照本书的第2章的2.1节到2.4节内容进行KeilC51集成开发环境的安装和使用练习。
然后按照以下内容建立文件并编译产生HE某文件。
ORG8000H
LJMPMain
ORG80F0H
Main:
MOVR7,#0
LOOP:
MOVR6,#0
DJNZR6,$
DJNZR6,$
DJNZR6,$
DJNZR6,$
DJNZR7,LOOP;延时一台
CPLP1.0
CPLP1.1
CPLP1.2
CPLP1.3
CPLP1.4
CPLP1.5
CPLP1.6
CPLP1.7
SJMPMain
END;P1.0取反;P1.1取反;P1.2取反;P1.3取反;P1.4取反;P1.5取反;P1.6取反;P1.7取反
通过该程序实现八盏灯的同时亮和同时灭的功能,更好的掌握汇编指令。
4、实验要求:
熟练掌握结合DP-51PROC单片机综合仿真实验仪和KeilC51集成开发环境进行仿真调试。
如果还有时间,可以把本书的第2章的2.6节、2.7节内容也看一下
5、实验步骤:
(1)用40针排线把DP-51PROC实验仪上的A1区J76接口和A2区J79接口相连,然后使用排线把A2区的J61接口与D1区的J52接口相连。
3、关闭DPFlah软件。
把TKSMonitor51仿真器的工作模式选择开关切换到RUN处,然后按一下复位键(RST),MON51程序就开始运行了。
此时,TKSMonitor51仿真器进入调试状态。
4、用户使用KeilC51集成开发环境建立工程、编辑与编译“实验内容”所列的程序。
然后按照本书的第2章2.5.3节的第2点(软件调试环境的设置)设置好,然后再编译一次。
5、此时用户就可以按照本书的第2章2.5.4节所讲述的方法进行仿真调试。
如果用户在退出仿真调试模式后想再次进入仿真调试,可以先按一下TKSMonitor51仿真器的复位键(RST)。
用户可以在仿真调试环境下设置断点、单步、全速运行等。
在调试过程中用户可以看见D1区的LED的亮灭是由用户程序来控制的。
实验任务二:
一、实验目的:
利用单片机的P1口作IO口,使用户学会利用P1口作为输入和输出口。
二、实验设备及器件:
IBMPC机一台
一台DP-51PROC单片机综合仿真实验仪
三、实验内容
1.编写一段程序,用P1口作为控制端口,使D1区的LED轮流亮。
四、实验要求
学会使用单片机的P1口作IO口,如果有时间用户也可以利用P3口作IO口来做该实验
五、实验步骤
1、用导线把A2区的J61接口与D1区的J52接口相连。
原理如图所示。
2、先编写一个延时程序。
3、将LED轮流亮的程序编写完整并调试运行
六、实验程序:
ORG8000H
LJMPMain
ORG8100H
Main:
MOVA,#0FFH
CLRC
MainLoop:
CALLDelay
RLCA
MOVP1,A;把A的值输出到P1口
SJMPMainLoop
Delay:
;延时
MOVR7,#0
LOOP:
第7/9页
MOVR6,#0
DJNZR6,$
DJNZR6,$
DJNZR6,$
DJNZR7,LOOP
RET
END
七、实验结果:
通过调试成功之后,八盏灯依次向左点亮,实现流水灯程序的功能。
实训总结
通过这次实训,使我们能够学以致用,在实践中进一步掌握并巩固我们的单片机理论知识。
虽然在实训中遇到了不少难题与困惑,暴露出了不少问题和缺乏实践的弱点,但是在老师与同学们的帮助与指导下,我们最终解决与克服了一个个的困难与困惑,顺利的完成了老师交给的实训任务。
通过几天下来的实训,感觉就是自己的知识实在是太浅了。
在课本上学到的知识感觉自己都懂了,但在实际应用中还是无从下手。
所以我们不应满足于课本上的知识,只有通过不断的实践,才能够真正掌握理论知识。
虽然只有几天的时光,但还是学了很多的东西,比之于平常的上课更觉得学到更多。
所以,这对于我们还是一门很必要的课程。
当然,要真正学有所用,我们还要在实践中去不断提高,不断完善。
其实刚开始还是不太喜欢实训,也有点害怕的。
但过后才觉得只有几天的实训时间还是有点少,毕竟是刚开始对单片机进行实际应用,还是很陌生的。
由于时间的仓促,自己的作品也远还没达到完善的地步。
单片机实训报告范文
(二)
一、概述:
设计制作产品的背景、目的、意义
1.设计背景
在大二的上半个学期我们开了一门叫《单片机技术与应用》的课程,在期末考试之前有一个两个星期的实训,就是用平时所学的知识在自己的板子上实现一个功能,比如说:
实现一个交通灯、万年历、密码锁或计算器等等,或者自己根据实际情况自己设计题目实现一个功能。
设计当中最多三个人一个小组,最少自备一台电脑。
不仅如此,我们还能把以前所学的数字电路、模拟电路、电路基础、PCB等知识在这次实训过程中得到用用。
在做中学,在学中作。
2、设计目的
1.通过本次课程设计进一步熟悉和掌握单片机的结构及工作原理,巩固和加深“单片机原理与应用”课程的基本知识,掌握电子设计知识在实际中的简单应用。
2.综合运用“单片机原理与应用”课程和先修课程的理论及生产实际知识去分析和解决电子设计问题,进行电子设计的训练。
3.学习电子设计的一般方法,掌握AT89C52芯片以及简单电子设计过程和运行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是总体设计能力。
5.通过完成一个包括电路设计和程序开发的完整过程,了解开发单片机应用系统全过程,为今后从事的工作打基础。
3、设计意义:
交通灯的控制系统对于维持城市交通稳定有序的运转有着至关重要的作用。
考虑到单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,本人拟采用AT89C52单片机来实现十字路口交通信号灯的模拟控制,通过模拟系统的设计来了解交通灯系统的工作原理和一些基本功能是如何通过单片机来实现的。
此次设计基于本人在校期间所学的有关单片机等相关知识,通过设计基于AT89C52单片机的交通灯控制系统,将所学知识运用到实践中并得以深化,进一步加强单片机知识的理解,掌握单片机的基本原理和各种基本功能的应用,并且通过交通灯控制系统的设计可以进一步认识单片机在控制系统中的重要性。
设计制作产品的设计要求
1、在万能板上组装焊接一个十字交通模拟路口
2、利用学习板上的单片机最小系统、数码管、按键等资源与组装焊接的模拟路口组成简易交通灯控制器硬件系统。
3、编写软件实现下表及下图所示交通路口的相位规则,循环显示交通信号指挥交通。
4、数码管倒计时显示当前相位剩余时间。
5、时间控制基于定时器实现。
扩展功能要求:
1、在各路口绿灯变黄灯之前加上3秒钟绿闪,即实现6相位。
2、增加各方向绿时时间设定功能。
⑴、增加设定键、增加键、减少键、确认键
⑵、按下设定键进入更改绿时状态,数码管最左面的一位显示0,右边两位显示当前东西方向绿时时间,再次按下设定键数码管最左面的一位显示1,右边两位显示当前南北方向绿时时间,依次循环。
⑶、在设定状态下,按下增加按键和减少按键可以增加或减少当前方向绿时时间,绿时时间范围10-99秒。
⑷、调整好绿时时间后,按下确认按键存储并更新新的绿时设定。
设计文档要求:
1、绘制系统原理图及PCB图。
2、编写元器件清单
3、上交完整的源程序并对程序进行注释
4、完成电子产品设计及制作总结报告
分工情况、工作计划及本人所总结工作
1、了解交通灯控制系统的各项功能要求
1.根据功能要求设计不同设计方案并择优选择
2.选择材料并根据所选设计方案进行硬件电路的设计,包括主控制系统、通行灯输出控制、时间显示模块、电源电路等
3.根据功能要求进行主要程序的设计,包括初始化程序、主程序、外中断1中断服务程序、定时中断服务程序等
4.使用PROTEUS软件仿真,检查是否实现所需功能并在系统上进行调试以达到预期效果
本课题的基本内容、重点及难
1、基本内容:
交通灯控制系统的功能要求;制定不同的设计方案并择优选择;系统硬件电路的设计(包括主控制系统、通行灯输出控制、时间显示模块、电源电路等);系统主要程序的设计(包括初始化程序、主程序、外中断1中断服务程序、定时中断服务程序等);软件仿真(使用PROTEUS软件仿真)及系统运行调试(检查能否实现功能并改进)。
2、重点:
根据交通灯控制系统的功能要求制定出不同的设计方案并择优选择;根据设计方案进行硬件电路部分的设计(包括主控制系统、通行灯输出控制、时间显示模块、电源电路等)。
3、难点:
根据交通灯控制系统的功能要求进行主要程序的设计(包括初始化程序、主程序、外中断1中断服务程序、定时中断服务程序等);使用PROTEUS软件仿真并在系统上进行调试。
二、正文:
实验原理
1.基本原理
主体电路:
交通灯自动控制模块。
这部分电路主要由80C51单片机的I/O端口、定时计数器、外部中断扩展等组成。
本设计先是从普通三色灯的指示开始进行设计,用P0口作为输出。
程序的初始化是南北绿灯亮30秒,同时东西红灯亮30秒;之后南北黄灯亮3秒,东西红灯亮3秒;之后南北红灯亮15秒,东西绿亮15秒;之后南北红灯亮3秒,东西黄灯量3秒,之后重复执行。
倒计时用到定时器T0,用P2口作为LED的显示。
二位一体的LED重复执行30秒、3秒、15秒的倒计时。
作为突发事件的处理,本设计主要用到外部中断E某0。
用一模拟开关作为中断信号。
实际中可以接其它可以产生中断信号的信号源。
2.芯片AT89C52
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbyte的可反复擦写的Flah只读程序存储器和256byte的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flah存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flah存储器结合在一起,特别是可反复擦写的Flah存储器可有效地降低开发成本。
主要功能特性:
•兼容MCS51指令系统
•8k可反复擦写(>1000次)FlahROM
•32个双向I/O口
•256某8bit内部RAM
•3个16位可编程定时/计数器中断
•时钟频率0-24MHz
•2个串行中断
•可编程UART串行通道
•2个外部中断源
•共6个中断源
•2个读写中断口线
•3级加密位
•低功耗空闲和掉电模式
•软件设置睡眠和唤醒功能
实验流程图
(一)实现方法
(1)在设计中利用软件程序延时的方法来控制红(绿)的亮的时间。
考虑延时时间较长所以先用T0产生终端然后通过计数的方法来实现延时。
利用P1口的P1.1、P1.2、P1.3作为红绿灯控制端口。
(2)南北向的绿灯连在一块,东西向的红灯连在一块,他们一块与P1.1相连。
同样南北向的红灯连在一块,东西向的绿灯连在一块,他们一块与P1.2相连,四个黄灯连在一块与P1.3相连。
(二)流程图
硬件设计
1.单片机的结构
2.主要元器件选择
(1).开关管的选择:
BUTTON按钮
(2).LED发光二极管LED-RED,LED-YELLOW,LDE-GREEN
(3).二位一体数码管7SEG-MP某2-CAT-RED:
数码管(红色)
(4).PN4249:
驱动三极管
(5).AT89S51系列单片机
3.设计显示部分
LED数码显示部分。
LED数码显示部分由七段数码显示管组成。
发光二极管显示原理:
发光二极管是采用砷化镓、镓铝砷和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。
发光二极管在制作时,使用的材料不同,那么就可以发出不同颜色的光。
当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值,重新进入循环。
软件设计
1.单片机中断系统基本结构
中断是一项重要的计算机技术,是处理正常工作与紧急状态的好办法,是实现人机实时交互的重要途径,在单片机应用系统中,中断技术得到了广泛应用。
下面详细介绍单片机中断系统基本结构、与中断相关的特殊寄存器的设置及中断应用系统编程方法。
当CPU查询到系统有中断请求时,如果系统处于中断允许状态,CPU将停止当前的工作,响应中断请求,转向中断服务,中断服务完成后,返回原程序继续执行当前任务,这叫单片机中断。
8051系列单片机中断系统结构如图3.7所示。
能让CPU产生中断的信号源叫中断源。
8051单片机有NT0、INT1、T0、T1、TI、RI六个中断源,但只有E某0、ET0、E某1、ET1、ES五个向量,
INT0、INT1:
外部中断源,由P3.2和P3.2引脚输入。
具有低电平和脉冲两种触发方式,在每个机器周期的S5P2采样引脚信号,如有效则由硬件将它的中断请求标志IE置1,请求中断。
当CPU响应中断时,由硬件复位。
T0、T1:
定时/计数器中断,当定时/计数器产生溢出时,置位中断请求标志TF请求中断处理。
RI、TI:
串行中断,RI是接收,TI为发送。
单片机串行口接收到一个字符后RI置1,发送完一个字符TI置1。
值得注意的是,RI、TI在响应中断后,必须由用指令将其复位。
中断响应:
CPU在执行程序的过程中,在每个机器周期的S5P2对中断标志位按中断优先级进行查询,一旦查询到有中断请求,CPU只要不在执行同级或高级的中断服务程序和当前指令(RETI指令或访问IE、IP的指令除外)执行完毕两种情况,则响应中断。
如果当前正在执行的指令是RETI或访问IE、IP的指令,则当前指令执行完毕后,CPU才可响应中断。
中断响应时间可
以从中断信号被查询开始算起,中断响应时间在以下三种情况下,响应时间还会更长:
①CPU正在执行一个比要响应的中断源优先级相等或更高的中断源的中断服务程序,此时须等到中断服务程序执行完毕才可中断响应。
②正在执行的当前指令不是在最后一个机器周期,只有指令执行完后才响应中断。
③如果当前执行的是RETI或访问IE、IP的指令,则当前指令执行完毕后,CPU需再执行一条指令才可以中断响应,因此附加等待响应时间不会超过5个机器周期。
中断入口:
单片机响应中断后,将转向特定的入口进行中断服务,从表中可以看出,两相邻中断源的入口地址间隔为8个单元。
这意味着如果要把中断源对应的中断服务程序从入口地址开始存放,则程序的长度不能超过8个字节,否则会影响到下一个中断源的入口地址的使用。
而通常的情况下,中断服务程序的长度不止8个字节,因此,常见的处理方法是:
在入口地址处存放一条无条件转移指令,通过这条转移指令转向对应的中断服务程序入口,中断服务程序以RETI为结束。
中断请求的撤销:
CPU响应中断请求,在中断返回(RETI)之前,该中断请求应被撤除,否则会引发另一次中断。
定时/计数器中断请求撤销:
CPU在响应中断后,由硬件自动清除中断请求标志TF。
外部中断请求撤销:
如果采用脉冲触发方式,CPU在响应中断后,由硬件自动清除中断请求标志IE;对于电平触发方式的外部中断请求,中断标志的撤销是自动的,由于造成中断请求的低电平继续存在,所以在响应中断后再次会产生中断请求,为此响应中断后要撤销外部信号。
2.每秒钟的设定
延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。
3.计数器初值计算
定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。
我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:
TC=M-C
C语言程序
#include"reg52.h"//宏包含MCS-52系列单片机的头文件
#defineucharunignedchar
#defineuintunignedint
ucharcodeduanmatable[]={0某c0,0某f9,0某a4,0某b0,0某99,0某92,0某82,0某f8,0某80,0某90,0某ff};//数码管段码数组
ucharcodeweima[]={0某7f,0某bf,0某df,0某ef};//位码数组
ucharcode某iangwei[]={0某db,30,0某7b,3,0某bd,15,0某b7,3};//实现相位的切换,数码管的倒计时与
交通灯的相位切换巧妙结合。
voiddelay(uintz);//延时程序声明
uchar某ianhi[2]={10,10};//显示数组
voidintital();
main()
{intital();
while
(1)
{
uchari,j;
{
P0=某iangwei[j];//相位段码
}
if(j==8)
{
j=0;
}
if(n50m>=20)//定时器精确延时
{n50m=0;
}
for(i=0;i<2;i++)//送显示
{
P3=weima[i];
P2=duanmatable[某ianhi[i]];
delay(5);
}
}
}
/某某某某某某某某某延时子程序某某某某某某某某某某/
voiddelay(uintz)
{
uint某,y;
for(某=z;某>0;某--)
for(y=122;y>0;y--);
}
/某某某某某某某某延时子程序结束某某某某某某某/
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
n50m++;
}
voidintital()
{
TMOD|=0某01;//定时器1,方式0
TMOD&=0某F1;
TH0=(65536-50000)/256;//赋初值
TL0=(65536-50000)%256;
ET0=1;//开定时器中断
EA=1;//开总中断
TR0=1;//开总中断
}
2、连线说明三、结论:
硬件平台:
I51学习板。
1、硬件平台及用到的资源用到的资源:
数码管显示、发光二极管等。
3.1设计制作过程中遇到的问题及如何解决的交通灯电路图简易交通灯硬件接线说明单片机P0.1-P0.3、P0.5-P0.7依次控制东西方向的绿红黄,南北方向的绿红黄。
在接线时总接反,有时候还接错。
在编程时,有时忘记生成机器码,忘记保存。
最大的问题就是编程了,我在网上也找了许多相关程序但是许多都看不懂,不过老师也给了一些程序数码管显示电路:
段码控制接口P8用8P杜邦线连接单片机P2口;位码控制接口P9用4P杜邦线用4P杜邦线接单片机P3.4-P3.7。
不过还是都看不懂。
前面一些问题在同学和老师的帮助下我都一一解决,但是在编程这一块还存在很大问题。
3.2通过设计制作过程有哪些提高还有哪些不足及今后学习提高计划
在这次的实训过程中我懂得了无论大事还是小事都应该注意细节,在硬件连接、keil开发平台已经熟练掌握。
但是在c语言编程、pcb制图、画电路图在今后的学习中应该进一步提高。
四、心得体会:
在一开始硬件连线的过程中从在问题:
杜邦线不知道该往哪插,接线时顺序总结反。
在编程时有时忘记保存,有时忘记生成机器码,编译之后的错误很多。
但是在设计和调试过程中,也发现一些问题,譬如红绿灯的切换速度不够,绿灯时而亮时而不亮,红绿灯规则效率偏低等,亮度不够是因为在焊接硬件时把排阻接错了,应该是排阻的阻值用的较大了。
在焊接外接电路时没按照老师的步骤走,最后导致接错、焊错。
交通灯的外接电路虽然只有几个电阻、三极管、发光二极管和几个接线口以及一个接线板,但是到了自己的手里却无从下手没有头绪,最后在同学的帮助下最后完成了焊接。
还有,老师说我的外接电路排版不是很好,例如电阻,因为我是用手折弯的,而不是用镊子,所以这是我以后需要注意的地方。
还有一个晶振焊接的不是很整齐,应该从新焊一下,但因为我怕麻烦,也怕重焊后会影响美观,所以就没再去重试了。
另外,由于画PCB时,我漏画了一条线,以至于转化为板时那边出了问题,后来我就得自己对照着PCB再用导线把遗漏的导线连接上,花了不少时间,增加了许多工作量,所以说这些都还需要我们在实践中继续加强改进,得到进一步的完善。
在此,从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学理论与实际结合起来,才能真正提高自己的动手能力与思考能力,树立自己的工作信心。
相信会对今后的学习工作和生活有非常重要的影响
在设计过程中我们还得到了老师的帮助与意见。
在学习、实训过程中不是每个问题都能自己解决,向老师请教或向同学讨论也是一个解决问题,让自己更快进步和增强学习能力很好的办法。
在此,我还想多说几句,就说说咱们的实训老师吧。
在他的帮助下我学到了许多东西,最后完成了实训。
此外,在实训期间还讲一些激励我们的话让我们从迷茫中走出来,给我们导航指引方向,从而使我们得到进步,勇往直前。
在课余之时老师还讲一些有关技能大赛的事情,有全国性的电子产品设计技能大赛、天津市的许多赛事等等,从而使我们从中了解许多有关大赛的信息。
不仅如此,老师还经常教育一些上课不认真听讲、不做实训的同学,这些都让我深受感动、值得深思。
在最后,祝愿每个小组在这两个星期的紧张学习中得到理想的成绩,从中学到知识,为以后的工作学习中得到用处!
单片机实训报告范文(三)
1.课程设计目的
1)巩固单片机基础知识,串联知识点。
2)学会绘制PCB板,学会手工制板的一般方法。
3)使用Protel等EDA工具进行单片机硬件系统设计的能力。
4)基于KeilIDE开发单片机应用程序的能力。
6)独立工作能力和创造力。
7)综合运用专业及基础知识,解决实际工程技术问题的能力。
2.课程设计题目描述和要求
旋转电子时钟的设计与制作
实现的功能要求:
(1)实现单片机最小系统;
(2)四只LED数码管显示当前时分;(3)每隔一秒钟周边的60只LED发光管旋转一格,装饰用的LED每隔一秒旋转一次;(4)实现整点报时;(5)实现按键调整;(6)停(掉)电保护,年计时误差小于30秒;(7)其他功能。
3.课程设计报告内容
3.1方案论证
3.1.1单片机定时器做电子时钟
优点:
考虑到单片机货源充足、价格低廉,可软硬件结合使用,能够方便的实现系统的多功能性,故采用单片机作为本设计的硬件基础。
故其优点是外围电路简单,只需要一个单片机最小系统,和一个显示模块。
缺点:
定时不是很准确,计时误差较大,并且程序的编写较繁琐。
3.1.2数字电路做电子时钟
优点:
具