第一篇:单片机交通灯设计与制作实训报告
第一天:我们来到实训器材放置好的实验室里,老师安排好各个组员,发下实训报告、元件还有简易交通灯电路图来,然后告诉我们利用单片机设计一个基本交通灯控制系统,能够控制东西南北两个方向的交通,红绿灯用红、黄、绿三种颜色的12个发光二极管代替。我们根据原理图在板上布局好,12个发光二极管需要分散点,这样焊点较容易焊好
第二天:在布局好的8.7*6.2万能板上我们要把各个元件都焊好,将焊接好的万能板与下载线一端连接,另一端口连接到计算机的并口,接通电源,检测已焊接好的电路是否接通。纯硬件测试调试。焊接时是在覆铜一面进行焊接,没有覆铜一面用来放置元件。了解了焊接的原理,焊锡借助于助焊剂的作用,经过加热熔化成液态,进入被焊金属的缝隙,在焊接物的表面,形成金属合金使两种金属体牢固地连接在一起
第三天:主控芯片是采用AT89S52单片机,电路完成后检查,确定电路无虚焊、无短路、集成元件是否安装正确,开始调试。我们来到机房,老师讲解采用AT89S52单片机来设计一个基本交通灯控制,编译源程序,运用AEDK51软件编辑,生成HEX文件,烧写成实验板,接着我们跟着老师步骤学会自己编译源程序,汇编语言程序设计,要做好四个状态
第四天:运用AEDK51软件根据程序流程图编辑,编译源程序,汇编语言程序设计,做好四个状态之后,生成HEX文件,烧写成实验板,利用progisp软件调试,慢慢的改正错误,一次次的调试之后加上在同学帮助下终于完成了控制两个方向的单片机交通灯
第五天:成功完成单片机交通灯后,回顾这一周来的实训过程,总结实训中所学到的,认识了单片机的硬件结构,工作原理,汇编语言程序设计以及接口应用
实训结果:根据设计要求,将焊接好的万能板与下载线一端连接,另一端口连接到计算机的并口,运用AEDK51软件编辑,生成HEX文件,烧写成实验板,完成了利用单片机控制12个发光二极管的交替点亮和熄灭
实训心得体会:短短的一周经过老师的精心指导下,花费的时间与精力终于效果渐渐地出现了,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机课程设计没有浪费,我们从中学到了很多知识.,也让我们对单片机有了更深一步的了解。我们注意到,应该在万能板上把12个发光二极管分散点布局,焊接时是在覆铜一面进行焊接,没有覆铜一面用来放置元件,细心的放好芯片再调试,打开AEDK51软件要细心编辑,根据程序流程一步一步认真的完成汇编语言程序设计,保存的文件名称只能是英文,充分利用了AT89S52芯片实现了能根据实际车流量通过单片机芯片的P1口控制红、黄、绿灯的燃亮与熄灭
实训步骤:1.焊接,了解了焊接的原理,无虚焊、无短路2.硬件调试3.软件调试4软件编程,汇编语言程序设计5利用单片机控制12个发光二极管的交替点亮和熄灭
第二篇:单片机制作实训总结
单片机制作实训总结
执笔人:周平
项目名称:单片机制作
参加班级:06级机电一体化专业1、2班
人数:112人
时间:2007-2008学年第4学期第12周06级机电一体化专业1、2班112位学生参与的《单片机制作实训》历时6天,整个实训过程分为培训、电路板制作、单片机程序编写及程序输入、考核、小结五个阶段,实训工作达到了预定的要求及目标。
一、这次实训工作成功开展的基本经验及一些心得总结如下:
1.培训工作任务烦重。单片机相对比较复杂,学生不易掌握,而且单片机电路板焊接要求比较高,而单片机程序写入软件学生没有接触,老师们克服种种困难,加班加点,保证了实训的顺利进行。
2、教师组织严谨。分院领导、教研组、实训教师对这次实训工作高度重视,是这次实训的首要因素。
3.学生自觉认真。实训过程中,绝大多数同学热情越来越高,自觉性越来越强,态度越来越认真,不仅仅限于掌握软件流程,特别是对软件硬件之间关联的关系等全局化的问题有进一步了解,能将理论知识与软件特别是其中的流程对应理解。这是这次实训成功的根本因素。
4.教师尽职尽责。这次配备的三名指导教师,拿出了全身心投入的敬业精神,从而使实训工作顺利进行,循序渐进,有始有终。
二、实训的主要情况总结如下:
实训划分为单片机控制电路制作实训和程序编写两大部分。其中单片机控制电路制作实训部分主要是根据控制要求制作焊接电路板线路的训练。在实训中,主要是通过使同学们在设计的电路图基础上自己焊接电子元件,掌握电子作业技术以及相关设备实际操作的技能。
程序编写主要是利用学到编程方法编写单片机程序,同时写入单片机内存。实训中强调同学间的互助合作,发挥学生骨干的作用,让各班班长起到上
下联、穿针引线的作用,对少数基础较差、学习态度欠端正、功夫下得不深的学生采取同学间互相帮忙,互相督促的方法。
在制作之后,我们对每位同学的制作的产品进行了打分。并要求学生进行总结,从建议与不足等方面进行理论上的提升,每位同学提交了一份实训报告,进一步提高了实训的效果。
三、同学们畅谈了实训给自己带来的种种变化,归纳起来有以下四个方面:
1.在知识上,由朦朦胧胧变得比较明白;
2.在能力上,由完全不会动手,到基本能动手;
3.在作风上,由以前普遍性的马虎、拖沓,变为大多数人能谨慎、主动;
4.在相互关系上,由彼此很少交流,到能实现真正的互帮互助;
四、指导教师的收获与体会:
1.对软件结合课程实际有了更进一步的认识;
2.在实训中也看到了不接触实际理论教学的缺陷,坚定了职业教育必须贯彻理论与实践科学结合,着重培养学生动手动脑能力的信念;
3.看到了这次实训给学生普遍带来的收益,也听到了学生发自内心的呼声,同时也总结了本次实训中存在的缺陷,增强了教师今后更好指导学生开展实训的信心。
第三篇:单片机实训报告范文
四川电子机械职业技术学院
单片机原理及应用
实 训报告1
班级:应电14.2班 姓名:刘华利 学号:140302058 指导教师:向兵
四川电子机械职业技术学院
摘要:
《单片机应用系统设计项目化教程》这本书根据教育部新的教学改革要求和企业岗位技能需求,以高技能应用型人才专业能力培养为目标,结合作者多年的教学经验与课程改革成果进行编写。全书通过6个典型项目任务,着重介绍单片机基本原理及应用系统的设计方法与技巧,包括流水灯控制系统设计、简易数字时钟设计、数字电压表设计、低频信号发生器设计、数据存储及回放系统设计和窗帘智能控制系统设计等。本书采用“理实一体、项目化教学”模式进行内容编排,将单片机原理及应用系统设计的相关知识点融入项目中进行讲解,易教易学,效果良好。
目录
摘要········································ 2 目录········································ 2 实训名称···································· 3 实训地点···································· 3 实训时间···································· 3 实训目的···································· 3 实训项目···································· 3 项目1·······································3 项目2·······································4 项目3·······································5 项目4·······································6 实训总结····································· 7
四川电子机械职业技术学院
实训名称:单片机原理及应用 实训地点:行政楼523 实训时间:2016.6.27—6.30 实训目的:1、2、3、4、5、6、7、掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。
掌握C的基本概念和基础知识。
通过训练能够读懂较为复杂的C语言源程序并具备基本C语言程序设计的能力。
熟练掌握各种常用类的定义继承文件的应用,为更好的理解面向对象打下更好的基础。
掌握面向对象的基本原理,提高学生综合程序设计的能力。
培养自己独立解决问题,找资料的能力。同学之间相互帮助、相互交流、相互合作的团队精神。
通过实训检查自己学习上的不足,达到熟练掌握C语言的基本知识和技能。
实训项目: 项目1 点亮一个LED,每隔一定时间循环熄灭、点亮…
设计思路:端口送高电平,led熄灭,延时1s,端口送低电平,led点亮,延时1s,就这样一直循环。
程序
#include
L2 = 1;
while(Ms--)
DelayMs(1000);
{
L2 = 0;
for(i = 0;i < 114;i+
DelayMs(1000);+);} } }
四川电子机械职业技术学院
原理图
项目2 点亮一个LED,让它每隔一定时间循环左移(课使用delay函数进行延时)
设计思路:在项目1的的基础上,用dalay函数进行延时,用<<来表示左移,添加一个左移的函数。通俗一点的讲的话,就如天天天同一些人排队领东西,领完了返回队位继续排(当然一只是这几个人排)。
程序
#include } while(1){ for(i=0;i<7;i++){ delay(100); LED=(LED<<1)|0x01;P3=LED;} } 四川电子机械职业技术学院 原理图 项目3 将任务二中delay延时改用定时器延时,且延时一秒 设计思路:在项目2的的基础上,用定时器来进行延时,首先设置定时器工作方式 也就是TMOD,在设置TH0/1,TL0/1的初值,也就是定时时间的设置,然后设置中断允许,并开中断。用中断来控制。 程序 #include { TH0=(65536-50000)/256;TL0=(65536-50000)%256;j++;if(j==5){ j=0; P1=~(0x01< if(++i==8)i=0; } } 四川电子机械职业技术学院 原理图 项目4 四位数码管并排显示,从左到右依次为分、秒十位、秒各位、0.1秒,相当于移动可计时9分59.9秒,使用一个按键,当按键第一次按下,启动秒表,第二次按下,停止,第三次按下,清零。(数码管可选共阴极、共阳极,至于对应数字的段选可参考教材) 设计思路:用delay函数来进行延时,用内部中断来控制T1,用外部中断来实现计数、暂停、清零这三个功能。 程序 #include uintx,y; for(x=100;x>0;x--) for(y=z;y>0;y--);} void dihplay(){ P1=0xfd; 四川电子机械职业技术学院 P0=Tab[xiao%10]; delay(1); } void display(){ P1=0xfb;P0=Tab[miao/10];delay(1); P1=0xfe;P0=Tab[miao%10];dp=0;delay(1);} void dimplay(){ P1=0xf7;P0=Tab[fen%10];dp=0;delay(1);} void main(){ EA = 1;EX0 = 1;IT0 = 1; ET0=1;TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=0;xiao=0;miao=0;fen=0; while(1) { display();delay(1);dimplay();delay(1);dihplay();delay(1); } } void timer0()interrupt 1 { xiao++; if(xiao==10) { xiao=0;miao++; if(miao==59) { miao=0; fen++; if(fen==10) { fen=0; } } } } void ex0_int0()interrupt 0 { swnum++;if(swnum == 1){ TR0= 1;} if(swnum == 2){ TR0 = 0;} if(swnum == 3){ xiao = 0; miao = 0; fen = 0; swnum=0;} } 四川电子机械职业技术学院 原理图 实训总结: 通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用C语言编程,通过对led灯控制到用数码管实现秒表功能、中断控制功能,能实现本设计题目的基本要求和发挥部分。由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。 踉踉跄跄地忙碌了一周,我的程序终于编译成功。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。 但在这次实训中同时使我对C语言有了更深的认识。当我第一次接触C语言就感觉很难,特别是今次实训要用到C语言,尽管困难重重,可我们还是克服了。这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。 这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。 单片机原理及应用 实训报告 班级: 学号: 姓名: 指导教师: 实训总成绩: 一、节日彩灯设计 题目:8位逻辑电平模块上的LED小灯从左向右呈现“鞭甩”的实验现象,状态间隔为0.25秒;按键1开始,按键2结束。 原理图 程序代码: #include 单片机原理及应用实训报告 管及驱动电路的连接,从而构成一个完整的硬件电路。然后通过对单片机的ROM进行编程,实现对彩灯闪烁的控制。 二、定时器实现流水灯 题目:利用定时器/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯点亮,依次循环点亮。 原理图 程序代码 #include 50000)% 256;TH0 =(65536 单片机原理及应用实训报告 程序代码 #include 单片机原理及应用实训报告 实训总结 通过本次单片机实训使得我更深层次的学习单片机原理与应用技术这门专业课程,同时对KEIL软件进行复习。这次实训是我看到了我最薄弱的一点那就是编程,对于编程有很大的困难。对以往学习过的编程知识没有好好掌握,特别是编程这方便的知识很薄弱。学习过的知识在实际应用中仿佛是冰山一角,完全不够用,需要通过查阅很多资料才能解决到碰到的相关问题。而且实训中出现的问题都是实际应用出比较典型的问题。这次实训还让我深刻的体会了结构化程序设计的优势,让我懂得当我们要进行一个复杂的程序设计时应该先将其分解为多个不同的功能模块再分别编程实现,这样做不仅降低了编程的难度,也容易让编程者思路更加清晰,避免出现不必要的错误。在做仿真时,仿真图正确也不一定就是说明一定正确。 目录 一 方案设计说明:............................................................................................2 二 硬件设计说明:............................................................................................4 (一)电路图:..........................................................................................4(二)单片机AT89S51的I/O口分配使用情况........................................4 (三)元器件的参数及规格:....................................................................5 三 软件设计说明:............................................................................................6 (一)软件设计思路及流程图:................................................................6 (二)程序的总体框架结构说明:............................................................8 (三)重要程序段的功能,作用及思路简介:........................................8 四 制作调试说明:..........................................................................................13 (一)程序调试过程:..............................................................................13 (二)硬件调试:......................................................................................13 五 电路实拍:.....................................................................................................14 六 总结心得体会:..........................................................................................15 七 参考文献:.....................................................................................................16 一 方案设计说明: 设计方案之前,得先分解设计任务。本次的设计任务是篮球记分牌,据常识,篮球记分牌应有分别给两队加分,减分,能交换显示分数。在进行设计之前,应自己提出几个问题,待问题回答之后。基本功、的设计方案就出来了。在设计之前我提出了一下几个问题: a:硬件部分如何控制给A对B对加分,场地交换的时候又是如何实现分数显示交换的?应该如何连接硬件,在硬件上设置控制端,控制端与单片机各引脚之间的连。 b:单片机只有一个CPU,如何实现即要扫描按键,又要显示比分。数码管工作的本质是将要显示的数据的字型码送给他,如何采集到变化的分数送给数码管。用查表吗? c:加分与倒计时在程序中最本质的东西是什么,如何用程序来说明这样的事件,各事件之间又是如何联系的。 虽然这些问题看似很普通,似乎在设计过程中都要面对这样的问题,何不事先就解决这些问题呢,在逐一回答这些问题的同时,该任务的设计方案已见雏形。以下就是该方案的详细内容以及我问题的答案。 系统原理图如下图一所示: LED数码显示管外部按键AT89S51驱动电路 3 二 硬件设计说明: (一)电路图: (二)单片机AT89S51的I/O口分配使用情况 图中P3.0,P3.1,P3.2,P3.3分别是加一分、加两分、加三分、减一分。P3.4与P3.5口是外部中断,其中断服务程序的功能是实现比分交换的切换显示和加分减分切换。电路中选择共阳极的数码管,可以省去输入端的驱动电路,使电路更简洁。P0口作为字形码的输出口,与数码管的八只管教相连。 (三)元器件的参数及规格: 主要元器件有单片机芯片AT89S51,共阳极数码管,9012PNP三极管。其中单片机承载程序,实现电路功能,三极管起开关及驱动数码管显示作用。数码管显示比分。 三 软件设计说明: 程序的总体思路是主程序一直在扫描按键,比分显示,比分交换,加减分队伍切换都在中断服务程序中完成。其具体内容如下所示。 (一)软件设计思路及流程图: 中断程序流程图(如:图一) 程序初始化,给存储器赋初值按键扫描程序,扫描到由按键控制的中断就执行其对应程序外部中断1,加减外部中断0,A、B分队伍切换中断程序两队比分切换图一 按键扫描程序流程图(如:图二)按键扫描入口,检测软件标志位F0,为1调用分数显示程序程序,为0调用加减分切换程序,同时扫描按键是扫描P3.0,并去抖,是否有键按下加一分否是扫描P3.1,并去抖,是否有键按下加两分否是扫描P3.2,并去抖,是否有键按下加三分否是扫描P3.3,并去抖,是否有按键按下减一分否按键扫描程序结束图二 分数显示程序流程图(如:图三) 将A对B对的分数首先进行BCD码转换,再保存到相对应的寄存器中把各分数分别赋给寄存器A,查表送往要显示的数码管由P2口的位状态控制子程序调用结束,返回主程序,RET 图三 其中时间显示的子程序流程图与分数的大同小异,此处就不再一一列出。 (二)程序的总体框架结构说明: 程序包含按键扫描程序,不断地扫描按键,一旦有控制中断的按键按下,就执行中断程序,交换比分。中断服务程序,INT_0交换A对与B对的总分,INT_1改变软件标志位就可以切换加减分队伍,同时扫描按键。 (三)重要程序段的功能,作用及思路简介: 按键扫描程序是本程序中最重要的程序段,其连接了所有的子程序,子程序的调用都是在其中完成。下面就对该程序段的功能,作用及编写思路做详细说明。各部分关键程序 按键控制程序 org 0060h ajcx: jnb p3.0,s0 jnb p3.1,s1 jnb p3.2,s2 jnb p3.3,s3 jnb p3.4,s4 jnb p3.5,sz5 ljmp ajcx sz5: ljmp s5 s0: lcall del jb p3.0,s01 ljmp ajcx s01: jnb p1.0,s02 mov a,30h inc a mov 30h,a ljmp tzcx s02: mov a,31h inc a mov 31h,a ljmp tzcx s1: lcall del jb p3.1,s11 ljmp ajcx s11: jnb p1.0,s12 mov a,30h add a,#02h mov 30h,a ljmp tzcx s12: mov a,31h add a,#02h mov 31h,a ljmp tzcx s2: lcall del jb p3.2,s21 ljmp ajcx s21: jnb p1.0,s22 mov a,30h add a,#03h mov 30h,a ljmp tzcx s22: mov a,31h add a,#03h mov 31h,a ljmp tzcx s3: lcall del jb p3.3,s31 ljmp ajcx s31: jnb p1.0,s32 mov a,30h dec a mov 30h,a ljmp tzcx s32: mov a,31h dec a mov 31h,a ljmp tzcx s4: lcall del jb p3.4,s41 ljmp ajcx s41: push 30h push 31h pop 30h pop 31h lcall jscx ljmp ajcx s5: lcall del jb p3.5,s51 ljmp ajcx s51: cpl p1.0 cpl p1.1 ljmp ajcx 加分程序: org 0120h tzcx: lcall jscx ljmp ajcx org 0130h del: mov tl1,#00h mov th1,#0bh setb tr1 jnb tf1,$ mov tl1,#00h mov th1,#0bh clr tf1 ret 加减分队伍切换程序: org 0150h dscx: mov th0,#0fch mov tl0,#18h mov a,r2 rl a mov r2,a cjne r2,#11h,d1 mov r1,#32h lcall jscx reti d1: cjne r2,#22h,d2 mov r1,#33h lcall jscx reti d2: cjne r2,#44h,d3 mov r1,#34h lcall jscx reti d3: mov r1,#35h lcall jscx reti 比分切换程序: org 0190h jscx: mov a,30h mov b,#0ah div ab mov 33h,b mov 32h,a mov a,31h mov b,#0ah div ab mov 35h,b mov 34h,a mov p2,r2 mov dptr,#tab mov a,@r1 movc a,@a+dptr mov p0,a ret org 0220h tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h db 80h,90h end 12 四 制作调试说明: (一)程序调试过程: 程序调试我花了两天的时间,此程序虽然不复杂,由于我平时学习的不够深入,也没用心学。对于我这样的基础来说调试过程真的很痛苦。刚开始调试时程序有两处让我感觉很乱,按键扫描程序中的中断程序如何调用。当寄存A对或B对的分数累加到99的时候,就清零,但还没有累加到99的时候,程序应该跳往何处执行,我最初的是跳了继续累加。在仿真中的现象就是分数一直显示99,加不了。我真的是太大意了,调试的时候不踏实。 (二)硬件调试: 此次的硬件焊接很成功,电路布局很清晰,虽然在调试时也发现错误,但用万用表很容易就检测出来了,其中有几根线的皮包线熔了,肉眼看不到。重新整理电路后,功能明显成功。至此,本次的单片机课程设计圆满结束。 五 电路实拍: 电路板正面: 电路板背面: 六 总结心得体会: 通过这一次的单片机实训,让我对单片机这一门知识有了更深的认识,更锻炼了我独立解决问题独立思考的能力,在电路设计和程序设计的过程中我们遇到了很多问题和困难,但通过大家的讨论和老师的指点之后,一切的问题都一一被解决,但单片机的学习并不是那么的简单,在最后也是最关键的程序调试的过程中,我们又遇到了很多更难的更棘手的问题,电路焊接完好也会出现诸多类似于不实现功能或是出现混乱显示的情况,真的很让人头疼,但,大家都还是咬牙坚持了下来,最后很多电路虽然依旧还是没能实现功能,但我们努力顽强克服重重困难的精神,是大家有目共睹的,就算是失败了,也依旧是很值得的一次经历.,与此同时,也有很多同学试验成功,看着大家脸上洋溢的笑容,大家无论失败成功都从这次的实训中学到了很多很多的东西 七 参考文献: 胡健 主编 《单片机原理及接口技术》 张大明 主编 《单片机控制实训指导及综合应用实例》李勋、林广艳《单片机微型计算机大学读本》 机械工程出版社 机械工业出版社 北京航空航天大学出版社16第四篇:单片机实训报告
第五篇:单片机实训报告