单片机实训报告
- 格式:doc
- 大小:11.65 MB
- 文档页数:36
一、实训背景与目的随着科技的不断发展,单片机作为嵌入式系统中的核心部件,其在各个领域的应用日益广泛。
为了提高学生的实践能力,培养其动手操作和问题解决能力,本次实训以单片机为平台,通过综合应用实训,使学生深入了解单片机的工作原理,掌握单片机的编程技巧,并能将其应用于实际项目中。
二、实训内容与步骤本次实训内容主要包括以下几个方面:1. 单片机基础原理- 了解单片机的结构、工作原理及常用接口。
- 学习51单片机的指令系统、寄存器及中断系统。
2. 单片机编程- 掌握Keil uVision软件的使用,进行C51语言编程。
- 学习编写简单的单片机程序,如LED流水灯、按键控制等。
3. 单片机硬件电路- 学习绘制电路原理图,了解电路元器件的选用和焊接工艺。
- 实践搭建单片机最小系统,并进行调试。
4. 单片机综合应用- 设计并实现一个基于单片机的交通灯控制系统。
- 设计并实现一个基于单片机的数字时钟显示系统。
三、实训过程与结果1. 单片机基础原理学习- 通过阅读教材、查阅资料,了解单片机的基本知识。
- 在实验室进行实验,验证单片机的基本功能。
2. 单片机编程实践- 使用Keil uVision软件,编写LED流水灯程序,实现LED灯的闪烁效果。
- 编写按键控制程序,实现按键的读取和响应。
3. 单片机硬件电路搭建- 使用Protel软件绘制电路原理图,确定元器件型号和数量。
- 搭建单片机最小系统,包括电源电路、晶振电路、复位电路等。
- 使用焊接工具进行元器件焊接,并进行调试。
4. 单片机综合应用实现- 设计并实现交通灯控制系统,实现红黄绿灯的定时切换和倒计时功能。
- 设计并实现数字时钟显示系统,实现时分秒的显示和调整。
四、实训总结与收获通过本次实训,我收获颇丰:1. 加深了对单片机原理的理解- 通过理论学习、实验操作和项目实践,我对单片机的结构、工作原理和编程方法有了更深入的了解。
2. 提高了编程能力- 通过编写LED流水灯、按键控制等程序,我掌握了C51语言编程技巧,提高了编程能力。
关于单片机实训报告万能【六篇】【篇1】单片机实训报告万能通过今次单片机实训,使我对单片机的认识有了更深刻的理解。
系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。
由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。
例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。
踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。
当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。
我相信其中的酸甜苦辣最终都会化为甜美的甘泉。
但在这次实训中同时使我对汇编语言有了更深的认识。
当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。
这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。
这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。
希望这次的经历能让我在以后学习中激励我继续进步。
【篇2】单片机实训报告万能通过这一个学期的单片机学习,我收获了很多关于单片机的知识,并且这些知识和日常的生活息息相关。
了解了一些简单程序的录入,LED显示器、键盘、和显示器的应用和原理。
LED显示器:LED显示器是由发光二管组成显示字段的器件。
通常的8段LED显示器是由8个发光二极管组成,LED显示器分共阳极和共阴极两种。
有段选码和和位选码。
当LED显示器每段的平均电流位5MA时,就有较满意的亮度,一般选择断码5-10MA 电流;位线的电流应选择40-80MA。
LED显示器的显示方式有动态和静态两种。
7289A芯片是具有SPI串行接口功能的显示键盘控制芯片,它可同时取得8位共阴极数码管和64个键的键盘矩阵。
一、前言随着科技的飞速发展,单片机技术作为电子技术领域的重要分支,已经在众多领域得到了广泛应用。
为了更好地了解和掌握单片机技术,提高自身的实践能力,我在本学期参加了单片机实训课程。
以下是我在实训过程中的心得体会和总结。
二、实训目的1. 熟悉单片机的基本原理和结构;2. 掌握单片机的编程方法;3. 学会使用单片机进行简单的应用系统设计;4. 培养动手能力和团队协作精神。
三、实训过程1. 学习单片机基本原理和结构在实训初期,我们学习了单片机的基本原理和结构,包括中央处理器(CPU)、存储器、输入输出接口等。
通过学习,我对单片机的整体架构有了清晰的认识。
2. 学习单片机编程方法在掌握了单片机基本原理后,我们开始学习单片机编程方法。
主要学习了汇编语言和C语言两种编程方式。
通过编程实践,我逐渐掌握了单片机的编程技巧,能够编写简单的程序实现特定功能。
3. 单片机应用系统设计在实训过程中,我们进行了单片机应用系统设计,如LED流水灯、温度计等。
在设计过程中,我们学习了如何根据实际需求选择合适的单片机型号,如何设计电路图,如何编写程序实现功能。
4. 动手实践和团队协作在实训过程中,我们不仅学习了理论知识,更重要的是动手实践。
在完成每个项目时,我们都要亲自焊接电路、编程调试。
同时,我们还学会了如何与团队成员沟通、协作,共同完成项目。
四、实训收获1. 理论知识方面通过本次实训,我对单片机的基本原理、编程方法和应用系统设计有了更深入的了解。
掌握了汇编语言和C语言两种编程方式,为以后的学习和工作打下了坚实的基础。
2. 实践能力方面在实训过程中,我学会了如何使用焊接工具、编程软件等,提高了自己的动手能力。
同时,通过团队协作,学会了与他人沟通、交流,提高了自己的团队协作能力。
3. 思维方式方面在实训过程中,我学会了如何分析问题、解决问题。
在遇到困难时,我会主动查阅资料、请教老师,不断提高自己的思维能力。
五、实训总结本次单片机实训使我受益匪浅,不仅提高了自己的实践能力,还拓宽了知识面。
单片机实训报告一、实训目的本次单片机实训的目的在于通过实际操作和项目实践,深入理解单片机的工作原理和应用开发,提高自身的硬件设计能力、软件编程能力以及解决实际问题的能力。
同时,培养团队合作精神和创新思维,为今后从事相关领域的工作打下坚实的基础。
二、实训设备在本次实训中,我们使用了以下主要设备:1、单片机开发板:用于实验和项目的开发与调试。
2、计算机:安装相关的编程软件和开发工具。
3、示波器:用于观察电路中的信号波形。
4、万用表:用于测量电路中的电压、电流等参数。
三、实训内容1、单片机基础知识学习首先,我们对单片机的基本结构、工作原理、指令系统等进行了系统的学习。
了解了单片机的内部组成,包括中央处理器(CPU)、存储器、输入输出端口等。
通过学习指令系统,掌握了如何使用汇编语言或 C 语言对单片机进行编程控制。
2、硬件电路设计在硬件电路设计方面,我们学习了如何根据实际需求设计单片机的最小系统,包括电源电路、时钟电路、复位电路等。
同时,还掌握了如何扩展外部存储器、输入输出设备等。
通过实际绘制电路图和制作电路板,提高了我们的硬件设计能力和动手实践能力。
3、软件编程在软件编程方面,我们使用了汇编语言和 C 语言两种编程方式。
通过编写简单的程序,如点亮 LED 灯、控制数码管显示、实现按键输入等,逐渐熟悉了单片机的编程方法和技巧。
同时,还学习了如何使用中断、定时器、串口通信等功能,提高了程序的复杂程度和实用性。
4、项目实践在项目实践环节,我们分组完成了一个基于单片机的温度控制系统的设计与实现。
该系统通过温度传感器采集环境温度,经过单片机处理后,控制风扇的转速和加热装置的工作状态,从而实现对环境温度的自动控制。
在项目实践过程中,我们充分运用了所学的知识和技能,从系统方案设计、硬件电路搭建、软件编程调试到系统测试优化,每个环节都进行了精心的设计和认真的实施。
四、实训过程在实训开始阶段,我们首先进行了单片机基础知识的学习和实验。
单片机实训报告范文精选5篇实训报告是展示本身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。
单片机课程设计心得体会在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我理解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。
通过在单片机小组里的学习我简单总结了几点心得和体会:第一:万事开头难,要英勇的迈出第一步,不要总找借口说没有学习过就总推脱。
凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。
可以从建工程开始,然后可以找一个简单的小程序先把它敲进单片机内然他运转起来,感受一下单片机的运转,让本人理解单片机整个运转。
第二:关于知识点,学过的要掌握结实,关于没有学的和临时用不到的先不用学习。
比方:小灯得点亮就没有用到中断可以先不用看。
如此可以防止知识过多记不住的苦恼。
关于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进展学习如此才能掌握的特别牢靠,当用到哪里的知识点不记得了可以去看书,关于用不到的可以不去看。
第三:程序不要只是看别人得,一定要本人写过才是本人的。
开始不明白可以参考别人的,看看每一句代表着什么意思,可以实现什么现象。
明白之后本人再重新写一遍,你会觉观察别人的能明白到本人写的时候特别困难。
当你本人能写出来的时候说明你真明白了。
第四:一定要学会程序调试的方法。
有时候把程序写完了然后运转时不能实现理想的现象。
这时有人就晕了不知该如何办,然后就去征询别人。
当别人找出征询题出在哪里时就会恍然大悟。
事实受骗遇到征询题一定要本人尝试着处理,不能遇到征询题就去征询别人。
本人一定要掌握处理征询的方法和思路。
第五:在学习初期看别人的代码,学习别人的思路这个特别有用。
通过看别人的代码特别是有多年编程经历的人的程序,可以迅速提高本人的编程水平。
【导语】实训报告是展⽰⾃⾝实训收获成长的重要报告。
以下是⽆忧考整理的单⽚机实训报告,欢迎阅读!更多相关⽂章请关注⽆忧考报告频道!单⽚机实训报告篇⼀ 通过为期⼀周的单⽚机实训,是我们对这门课有了许多新的了解,弥补了在课堂上学习的不⾜。
相信这对我们以后的学习和⼯作都会有很⼤的帮助。
我们⼀定要在最短的时间⾥对这些不⾜加以改正! ⾸先,在这次试训中我被单⽚机强⼤的功能所震撼,以前在课堂上完全没有能理解可编程单⽚机的优越性。
这次通过实体仿真软件等辅助软件的共同效果,是这次试训有了鲜明的活⼒。
换是我们认识到这次试训不仅仅是⼀个软件的应⽤,更多的是使我们认识到学习到很多在课堂上⽆法得到的东西。
特别是protues软件的功能是我们了解了当今开发系统的新⽅向,简直太不可思议啦! 单⽚机作为⼀种最简单的软件,与我们的⽇常⽣活息息相关,了解⼀些单⽚机程序的简单录⼊是⾮常必要的。
如:LED显⽰器、键盘和显⽰器的应⽤和原理。
在被刺实训中我们每个⼈通过⼀个⼋位流⽔灯的制作,使我们深深地体会到了单⽚机在现实⽣活中的⼩⼩应⽤,既增强了我们的好奇⼼,⼜巩固了我们的理论知识。
更让我们体会到了单⽚机⼿动的开始平台的完善与成熟。
只要你有想法,单⽚机就有可能让他成为现实。
这⾥我学习完protues软件后的第⼀感觉是,虽然这软件⼯作不稳定,但是会有相当不错的效果出来。
这对我以后的⼯作⼀定会有帮助的。
在这次试训中不仅只对单⽚机编程有了新的认识,还对整个单⽚机的开发平台都有了⼀厅的了解,这是⼀笔不错的收获。
通过这⼏天的试训,使我的感触很深,真实“条条⼤路通罗马”,要达到⽬的,不同的⼈就有不同的⽅法。
只要你的⽅法不错!五花⼋门都可以,⽽且是各有特⾊。
⾛出来的结果都有各⾃的独到之处。
在编程中“简”字贯穿于整个程序设计中,越简单越好,毕竟单⽚机留给⽤户的资源是有限的,所以我们要充分利⽤这些资源,达到更好的效果,这些是我们在以后的学习⽣活中应值得注意的地⽅。
单片机实训报告优选范文5篇分享单片)是一种集成电路芯片,是具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
下面就是小编给大家带来的单片机实训报告优选范文5篇分享,希望大家喜欢!单片机实训报告范文(一)前言一周的单片机实训很快就结束咯,在这一周的时间里,我学到了很多关于单片机各方面的知识。
老师在实训课中也教会咯我们很多关于单片机软件编程与硬件设施的知识。
一周的实训中我们一共实训咯好几个项目,通过这几个项目的实训,我们掌握咯一些单片机的汇编语言和硬件调试,达到了很好的效果。
一周时间实训过后,我把之前在课堂上不懂的知识点,通过实际操作的练习,我都搞明白咯。
当然在实训过程中也遇到咯很多问题,就是有时在调试方面不能调试成功,有时程序是没有错误,但是就是调试不好,一直找原因也找不出是什么原因。
希望以后能够拥有更多的实训时间和机会学习单片机。
实训任务一一、实验目的熟悉Keil C51集成开发环境的使用方法二、实验设备及器件IBM PC机三、实验内容按照本书的第2章的2.1节到2.4节内容进行Keil C51集成开发环境的安装和使用练习。
然后按照以下内容建立文件并编译产生HEX文件。
ORG 8000HLJMP MainORG 80F0HMain:MOV R7,#0LOOP:MOV R6,#0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOP ;延时一台CPL P1.0CPL P1.1CPL P1.2CPL P1.3CPL P1.4CPL P1.5CPL P1.6CPL P1.7SJMP MainEND ;P1.0取反 ;P1.1取反 ;P1.2取反 ;P1.3取反 ;P1.4取反 ;P1.5取反 ;P1.6取反 ;P1.7取反通过该程序实现八盏灯的同时亮和同时灭的功能,更好的掌握汇编指令。
【导语】在单⽚机实训教学过程中采⽤教师引导,学⽣主导的教学⽅式,让学⽣掌握技巧,⿎励学⽣独⽴思考。
以下是⽆忧考整理的单⽚机实训⼯作报告,仅供参考! 篇⼀ 1.课程设计⽬的 1)巩固单⽚机基础知识,串联知识点。
2)学会绘制PCB板,学会⼿⼯制板的⼀般⽅法。
3)使⽤Protel等EDA⼯具进⾏单⽚机硬件系统设计的能⼒。
4)基于KeilIDE开发单⽚机应⽤程序的能⼒。
5)写技术报告和编制技术资料的能⼒。
6)独⽴⼯作能⼒和创造⼒。
7)综合运⽤专业及基础知识,解决实际⼯程技术问题的能⼒。
2.课程设计题⽬描述和要求 旋转电⼦时钟的设计与制作 实现的功能要求:(1)实现单⽚机最⼩系统;(2)四只LED数码管显⽰当前时分;(3)每隔⼀秒钟周边的60只LED发光管旋转⼀格,装饰⽤的LED每隔⼀秒旋转⼀次;(4)实现整点报时;(5)实现按键调整;(6)停(掉)电保护,年计时误差⼩于30秒;(7)其他功能。
3.课程设计报告内容 3.1⽅案论证 3.1.1单⽚机定时器做电⼦时钟 优点:考虑到单⽚机货源充⾜、价格低廉,可软硬件结合使⽤,能够⽅便的实现系统的多功能性,故采⽤单⽚机作为本设计的硬件基础。
故其优点是外围电路简单,只需要⼀个单⽚机最⼩系统,和⼀个显⽰模块。
缺点:定时不是很准确,计时误差较⼤,并且程序的编写较繁琐。
3.1.2数字电路做电⼦时钟 优点:具有⾛时准确、显⽰直观、⽆机械传动装置。
与传统的机械钟先⽐,电⼦钟具有更优异的优点。
由于电⼦钟采⽤数字集成电路的发展和采⽤了先进的⽯英技术,使电⼦钟具有⾛时准确、性能稳定、携带⽅便等优点,电⼦钟⽤于定时⾃动报警、按时⾃动打铃、时间程序⾃动控制、定时⼴播及⾃动控制等各个领域。
缺点:因为电⼦钟毕竟是电⼦产品,电⼦产品都有辐射,不过电⼦钟危害极低,对⼈体够不成任何危害,不象⼿机的辐射那么⼤。
应⽤:⽬前,在国内,电⼦钟因数码管数字显⽰效⽤直接有效,所以⼤多运⽤在城市的主要营业场所,以及车站、码头等公共场所。
单片机实训工作报告(精选3篇)单片机实训篇1实训任务:做单一灯的左移右移,八个发光二极管l1-l8分别接在单片机的p1.0→p1.2→p1.3┅→p1.7→p1.6→┅→p1.0亮,重复循环3次。
然后左移2次,右移2次,闪烁2次(延时的时间0.2秒)。
一、实训目的和要求:(1)熟练掌握keilc51集成开发环境的使用方法(2)熟悉keilc51集成开发环境调试功能的使用和单片机仿真器、编程器、实验仪三合一综合开发平台的使用。
(3)利用单片机的p1口作io口,学会利用p1口作为输入和输出口。
(4)了解掌握单片机芯片的烧写方法与步骤。
(5)学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用。
(6)掌握利用protel99se绘制电路原理图及pcb图。
(7)了解pcb板的制作腐蚀过程。
二、实训器材:pc机(一台)pcb板(一块)520ω电阻(八只)10k电阻(一只)led发光二极管(八只)25v10μf电容(一只)单片机ic座(一块)at89c51单片机芯片(一块)热转印机(一台)单片机仿真器、编程器、实验仪三合一综合开发平台(一台)三、实训步骤:(1)根据原理图(下图所示),用导线把单片机综合开发平台a2区的j61接口与d1区的j52接口相连。
(2)将流水灯程序编写完整并使用tkstudyice调试运行。
(3)使用导线把a2区j61接口的p1口7个口分别与j52接口的八个led相连。
(4)打开电源,将编写好的程序运用tkstudyice进行全速运行,看能否实现任务要求。
(5)观察运行结果,若能实现功能,则将正确编译过的hex文件通过easypro51编程器写入mcu片内存储器,然后将烧写的芯片a2区的圆孔ic座进行最终实验结果的演示。
(6)制板。
首先利用protel99se画好原理图,根据原理图绘制pcb 图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb板上布线图外的铜全部后,将其取出,清洗干净。
单片机实训报告单片机实训报告「篇一」为了锻炼学生的动手能力及激发学生的创新能力,我们班于第十五周在单片机实验室行了单片机实训。
在实训过程中首先我们要明确实训目的:1、熟悉单片机应用系统的开发、研制过程。
2、能运用MCS-51单片机行简单的单片机应用系统的硬件设计。
3、能采用MCS-51单片机汇编语言行简单的单片机应用系统的软件设计。
4、掌握单片机应用系统的硬件、软件调试方法。
5、熟悉单片机仿真开发系统的作用,基本掌握运用单片机仿真开发系统行在线仿真、调试和目标程序固化的方法。
6、为今后从事单片机应用系统的开发、生产和维护工作奠定基础。
在实训的第一天我们经过指导老师,XX老师和xx老师详细的为我们讲解了实训指导书,让我们了解实训当中所学的内容与一些元器件和我们要实验的课题。
在实验中主要有三个课题。
第一是十字路口交通信号灯的设计与制作。
课题2、比赛用秒表的设计与制作。
课题3、模拟霓虹灯控制系统的设计与制作。
为了能让我们更好的掌握知识我们把全班31人分成10组,我们在小组里也分工合作,也可以培养我们同学之间的合作能力。
在此有做硬件的,有做软件的,这样能够更好的加强自己的动手操作能力。
第一个课题是我们必须做的,在做完的第一个的基础下才能选择第二个或底三个,第一个课题在同学们的认真操作下很快就完成了,几乎在第二天大部分小组都可以完成。
这也证明同学们是很认真的投入到实训当中和知识的牢固性。
在第三天,正是实训的高潮,每个同学都投入到这种氛围当中,在实训操作中把不懂的记下,然后问指导老师,在老师的细心指导及时的解决问题。
看到我们的不足之处。
理论与实践相结合是最好的效果。
时光飞逝,一转眼,一个周又尾声了,实训就这样过去了,但真正的实训还未开始,我将要继续努力,继续奋斗。
俗话说“好的开始是成功的一半”。
说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。
其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。
单片机实习报告(精选12篇)大文斗范文网会员为你整理了“单片机实习报告”12篇范文,希望对你有参考作用。
篇1:单片机实习报告课程设计任务书学生姓名:专业班级:指导教师:工作单位:武汉理工大学题目: 单片机原理与应用初始条件:STC89C52 温度采集芯片DS18B20 数码管MAX232 开关74LS04 仿真软件要求完成的主要任务:1)利用PROTEL等软件进行硬件设计;2)利用Keil uV2软件完成应用系统软件设计;3)利用PROTEUS软件进行仿真设计;4)完成单片机最小系统和应用系统电路板的焊接;5)对电路进行调试;6)利用stc-isp软件完成在系统编程、下载,并完成系统软件调试;7)题目由指导教师提供;8)要求每个学生单独完成硬件软件设计、仿真、焊接、调试任务;9)写出实习报告,实习报告主要包括以下内容:目录、摘要、关键词、基本原理、方案论证、硬件设计、软件设计(带流程图、程序清单)、仿真结果、实物运行结果照片、结论、参考文献等;10)实习完成后通过答辩;11)答辩时交实习报告电子文档,通过答辩后根据修改意见修改并打印、装订成册。
时间安排:实习时间20xx年12月17日---20xx年12月30日。
指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (3)Abstract (4)1 基本原理 (5)1.1基本原理及原理框图 (5)1.2 STC89C52结构功能介绍 (5)2 方案论证 (7)2.1 数字温度计方案 (7)3 硬件设计 (8)3.1复位电路 (8)3.1.1上电复位 (8)3.1.2按键复位 (8)3.2振荡电路 (9)3.3 单片机最小系统单片机 (10)3.4 显示电路 (10)3.5矩阵键盘电路 (11)3.6 温度采集电路 (11)3.7串口通信电路 (12)3.8总设计电路 (13)4 软件设计 (14)4.1 软件介绍 (14)4.1.1设计软件Protel (14)4.1.2 程序编写软件Keil (14)4.1.3仿真软件Proteus (15)4.2 数码管显示 (15)4.3数字温度计的设计 (16)4.4串口通信的设计 (17)5仿真结果 (18)5.1数字温度计仿真 (18)5.2键盘扫描仿真 (18)6 实物调试结果 (19)7元件列表 (20)8参考文献 (22)9实习日记 (23)10附录 (40)摘要单片微型计算机简称单片机,又称为微型控制器,是微型计算机的一个重要分支。
一、前言单片机作为现代电子技术中的重要组成部分,具有广泛应用。
为了提高学生的实践能力和创新能力,本学期我们开设了单片机实训课程。
通过本次实训,使学生掌握了单片机的基本原理、硬件组成、编程方法和应用技术。
以下是本次单片机实训课程的总结报告。
二、实训目的1. 熟悉单片机的基本原理和硬件组成,了解其工作过程。
2. 掌握单片机编程方法和调试技巧。
3. 学会使用单片机进行实际应用系统的设计和开发。
4. 培养学生的实践能力和创新精神。
三、实训内容1. 单片机基本原理和硬件组成通过学习,使学生了解单片机的内部结构、工作原理、引脚功能以及常用外设。
2. 单片机编程方法和调试技巧学习C语言编程,掌握单片机程序设计的基本方法和调试技巧。
3. 单片机应用系统设计结合实际案例,学习单片机应用系统的设计方法,包括硬件设计、软件设计、调试与测试。
4. 单片机实验项目完成以下实验项目:(1)LED流水灯实验(2)按键控制LED实验(3)温度报警器实验(4)数码管显示实验(5)直流电机控制实验四、实训过程1. 讲解阶段:教师讲解单片机基本原理、硬件组成、编程方法和应用技术。
2. 实验阶段:学生按照实验指导书,完成实验项目。
3. 交流阶段:学生之间、学生与教师之间进行交流,讨论实验过程中遇到的问题和解决方法。
4. 总结阶段:学生撰写实验报告,总结实训过程中的收获和体会。
五、实训成果1. 学生掌握了单片机的基本原理和硬件组成,了解了单片机的工作过程。
2. 学生学会了C语言编程,掌握了单片机编程方法和调试技巧。
3. 学生能够独立完成单片机应用系统的设计和开发。
4. 学生的实践能力和创新精神得到提高。
六、实训体会1. 理论与实践相结合:本次实训课程充分体现了理论与实践相结合的教学模式,使学生更好地将所学知识应用于实际。
2. 团队合作:实训过程中,学生需要相互协作,共同完成实验项目,培养了学生的团队协作能力。
3. 问题解决能力:在实验过程中,学生遇到了各种问题,通过查阅资料、讨论等方式,提高了问题解决能力。
一、前言随着科技的飞速发展,单片机作为现代电子技术的基础,已经在各个领域得到了广泛应用。
为了更好地掌握单片机的原理与应用,提高自身的实践能力,我参加了本次单片机技能实训。
在实训过程中,我不仅深入学习了单片机的理论知识,还通过实际操作,锻炼了自己的动手能力和解决问题的能力。
以下是我对本次实训的总结与报告。
二、实训目的与内容本次实训的主要目的是:1. 熟悉单片机的组成与工作原理;2. 掌握单片机的编程与调试方法;3. 学会使用单片机进行实际项目的设计与实现;4. 提高动手实践能力和团队协作能力。
实训内容主要包括以下几个方面:1. 单片机硬件系统介绍;2. 单片机编程语言(如C语言)基础;3. 单片机软件调试方法;4. 单片机应用系统设计实例;5. 团队协作与项目管理。
三、实训过程1. 理论学习在实训开始前,我首先系统地学习了单片机的理论知识,包括单片机的组成、工作原理、指令系统、编程方法等。
通过查阅相关资料和教材,我对单片机有了初步的认识。
2. 硬件系统搭建在掌握了单片机的基本原理后,我开始动手搭建单片机硬件系统。
在实训老师的指导下,我学习了如何选择合适的元器件、如何焊接电路板、如何连接各个模块等。
通过实际操作,我熟悉了单片机硬件系统的搭建过程。
3. 软件编程与调试在硬件系统搭建完成后,我开始学习单片机的编程与调试。
首先,我学习了C语言的语法和编程规范,然后根据实训要求,编写了单片机的控制程序。
在编程过程中,我遇到了很多问题,但在老师和同学的指导下,我逐一解决了这些问题。
最后,我对程序进行了调试,确保其正常运行。
4. 项目设计与实现在掌握了单片机的编程与调试方法后,我开始参与实际项目的设计与实现。
在项目中,我负责单片机的控制程序编写和调试。
在团队协作中,我与其他成员分工合作,共同完成了项目任务。
5. 团队协作与项目管理在实训过程中,我深刻体会到了团队协作的重要性。
在项目中,我们分工明确,相互配合,共同完成了任务。
一、实验目的通过本次单片机实训,掌握单片机的基本原理、组成结构以及编程方法,熟悉Keil C51集成开发环境的使用,能够进行简单的单片机程序设计,实现基本的硬件控制功能。
二、实验环境1. 硬件环境:STC89C52单片机实验板、数字万用表、示波器、面包板、导线等。
2. 软件环境:Keil uVision5集成开发环境、Proteus仿真软件。
三、实验原理单片机是一种集成在单一芯片上的微型计算机,具有运算、存储、输入/输出控制等功能。
STC89C52是一款常用的51系列单片机,具有8K字节片内存储器和32个可编程I/O口。
本实验主要涉及单片机的以下几个部分:1. 中央处理单元(CPU):负责指令的执行和数据的处理。
2. 存储器:分为片内存储器和片外存储器,用于存储程序和数据。
3. 输入/输出接口:用于与外部设备进行数据交换。
4. 定时器/计数器:用于产生定时/计数信号。
四、实验内容1. 单片机系统初始化2. 单片机I/O口编程3. 定时器/计数器编程4. 中断系统编程5. 简单的硬件控制实验五、实验步骤1. 单片机系统初始化(1)将STC89C52单片机插入实验板,连接电源和地。
(2)使用Proteus软件创建仿真电路,添加STC89C52单片机和其他外围电路。
(3)编写初始化程序,设置单片机的工作模式、时钟频率等。
2. 单片机I/O口编程(1)编写程序,使P1口输出高电平,P2口输出低电平。
(2)编写程序,使P3口输入数据,通过P1口输出。
3. 定时器/计数器编程(1)编写程序,使定时器0产生1秒的定时信号。
(2)编写程序,使计数器0对P3.2口输入的脉冲进行计数。
4. 中断系统编程(1)编写程序,使外部中断0在P3.2口输入低电平时触发。
(2)编写程序,使定时器0中断在定时1秒后触发。
5. 简单的硬件控制实验(1)编写程序,使LED灯闪烁。
(2)编写程序,使蜂鸣器发出特定频率的音频信号。
六、实验结果与分析1. 单片机系统初始化成功,CPU正常工作。
Most people are not satisfied with what we have, just as every horse thinks that it bears the heaviest burden.勤学乐施积极进取(页眉可删)单片机实习报告3篇单片机实习报告篇1一实习目的1. 通过对单片机小系统的设计、焊接、装配,掌握电路原理图及电子线路的基本焊接装配工艺、规范及注意事项;2. 通过对系统板的测试,了解系统板的工作原理及性能,掌握元器件及系统故障的排除方法;3. 掌握程序编制及调试方法,完成系统初始化、存储器操作、端口操作、键盘显示等程序的编制及调试(汇编语言、C语言均可);4. 通过单片机系统的组装,调试以及程序编制、调试及运行,与理论及实验的有机结合和指导教师的补充介绍,使学生掌握控制系统的工作原理、开发方法和操作方法。
5. 培养学生解决实际问题的能力,提高对理论知识的感性认识。
二实习意义通过本实习不但可以掌握单片机软、硬件的综合调试方法,而且可以熟练掌握电路原理图,激发对单片机智能性的探索精神,提高学生的综合素质,培养学生应用单片机实现对工业控制系统的设计、开发与调试的能力。
在制作学习过程中,不但可以掌握软、硬件的综合调试方法,而且可以使学生对单片机智能性产生强烈的欲望。
达到最大限度地掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目的。
三系统基本组成及工作原理1 系统基本组成系统以单片机STC89C52作为控制核心,各部分基本组成框图如图1所示。
流水灯部分由单片机、键盘模块等组成;四位数码显示,编程实现30秒倒计时部分由单片机、键盘模块、液晶显示模块等组成;按键功能部分通过按键控制流水灯部分、四位数码显示部分;电子钟部分由单片机、键盘模块、液晶显示模块等组成;使用功能键实现相应的功能组合部分通过流水灯部分、30秒倒计时部分实现;模数转换部分由单片机、ADC0809转换模块、键盘模块、液晶显示模块等组成。
一、实验目的1. 熟悉单片机的基本结构和工作原理。
2. 掌握单片机的编程方法,包括C语言和汇编语言。
3. 学习单片机的接口技术和应用系统设计。
4. 培养动手能力和解决实际问题的能力。
二、实验环境1. 单片机开发系统:STC89C52单片机开发板2. 编译器:Keil uVision3. 调试器:Proteus4. 实验指导书:《单片机实训教程》三、实验内容1. 单片机基本原理实验(1)实验目的:了解单片机的结构、工作原理和引脚功能。
(2)实验步骤:1)搭建实验电路,连接单片机开发板与Proteus仿真软件;2)编写程序,设置单片机的工作模式;3)通过Proteus仿真软件观察单片机的运行状态。
(3)实验结果:通过仿真软件,观察到单片机能够按照程序的要求进行运行,实现了实验目的。
2. 单片机C语言编程实验(1)实验目的:掌握单片机的C语言编程方法。
(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写C语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。
(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。
3. 单片机汇编语言编程实验(1)实验目的:掌握单片机的汇编语言编程方法。
(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写汇编语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。
(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。
4. 单片机接口技术实验(1)实验目的:了解单片机的接口技术,掌握常用接口的编程方法。
(2)实验步骤:1)搭建实验电路,连接单片机开发板与外部设备;2)编写程序,实现单片机与外部设备的通信;3)通过Proteus仿真软件观察通信过程。
(3)实验结果:通过仿真软件,观察到单片机与外部设备能够成功通信,实现了实验目的。
最新单片机实习报告范文最新4篇单片机实训报告篇一实训报告班级:学号:姓名:一、实训目的成本会计是一门实践性很强的学科,不通过实际训练、操作,很难提高实际分析与解决问题的能力。
因此,我们不仅需要掌握成本会计核算的理论与方法,更需要在实践中学会针对特定的企业环境进行准确的成本核算与客观理性的成本分析,为企业管理者提供更加有效的成本信息。
为了让我们能够更好的了解会计在实际工作中的工作内容,以便于实际与理论相结合,也更能够适应社会的要求,了解成本核算在实际工作的重要性,学校开展了为期两周的成本会计实训课程。
学校希望通过这次成本会计实训课程的训练,我们都能够对会计有一个更新更深层次的认识,以便于我们能懂得会计作账的基本流程,从而在今后的工作中具有较强的实际动手操作能力。
这次成本会计实训采用了两个实际案例模拟企业的经营环境,分别涉及了分批和分类两种法,我们需要将分批法、分类法所用的各种费用分配表和明细账结合起来,这不仅能够使我们掌握成本核算基本方法的特点,还进一步理解了产品成本计算的基本原理。
同时还能使我们熟练掌握分批法和分类法核算的会计处理,提高并加快了我们的动手能力,做到理论联系实际,增强感性认识,全面地理解制造企业中成本核算的整个流程。
在实训的过程中还培养了我们认真细致、严谨客观的工作作风和理论联系实践的学习态度。
二、实训过程1、熟悉资料,设置各种帐簿,登记起初余额。
由于我们这次实训课程不用编制总账和财务报表,因此任务量在一定程度上有所减轻。
2、根据经济业务,填制记帐凭证。
并附上原始凭证。
要想登记记账凭证,首先需要做的就是编制会计分录,而在编制会计分录的过程中不得不重视以下几点:(1)各种成本费用的归集与分配。
生产成本的归集与分配是本次实训的重头戏,是中心环节。
成本归集与分配过程实际上就是成本计算过程。
在本次实训中,我们按照成本核算的基本程序,先后对材料费用、职工薪酬、基本生产成本、辅助生产成本、制造费用、完工产品等进行了练习。
摘要:单片机实训是计算机科学与技术、自动化控制等相关专业的重要实践环节。
通过对单片机系统的设计与实现,使学生对单片机的原理、编程和应用有更深入的了解。
本文总结了单片机实训过程中所涉及的知识点,包括单片机硬件结构、指令系统、编程方法、应用领域等,旨在为学生提供一份全面、实用的单片机实训知识总结。
一、单片机硬件结构1. 中央处理单元(CPU):单片机的核心部件,负责执行指令、控制程序运行。
2. 存储器:包括程序存储器(ROM)和数据存储器(RAM),用于存储程序和数据。
3. 输入/输出接口:实现单片机与外部设备之间的数据交换。
4. 定时器/计数器:用于产生定时信号、实现定时功能。
5. 外部设备:如键盘、显示器、传感器等,为单片机提供输入和输出。
二、单片机指令系统1. 数据传送指令:用于实现数据在寄存器、存储器之间的传送。
2. 算术运算指令:用于实现加、减、乘、除等算术运算。
3. 逻辑运算指令:用于实现逻辑与、或、非等运算。
4. 控制指令:用于实现程序分支、循环等控制功能。
5. 输入/输出指令:用于实现单片机与外部设备之间的数据交换。
三、单片机编程方法1. 汇编语言编程:直接对单片机的指令集进行编程,具有执行效率高、占用资源少等优点。
2. C语言编程:使用C语言进行编程,易于理解、便于维护,适用于复杂程序设计。
3. 面向对象编程:使用面向对象的方法进行编程,提高程序的可读性和可维护性。
四、单片机应用领域1. 工业控制:如电机控制、生产线自动化等。
2. 消费电子:如手机、家用电器等。
3. 医疗设备:如血压计、血糖仪等。
4. 交通工具:如汽车、火车等。
5. 家居安防:如门禁系统、监控设备等。
五、实训内容与总结1. 实训内容:(1)单片机基本硬件认识:了解单片机的结构、引脚功能等。
(2)单片机编程:使用汇编语言或C语言编写程序,实现特定功能。
(3)单片机应用系统设计:设计并实现一个完整的单片机应用系统。
(4)调试与优化:对程序进行调试,提高程序运行效率。
单片机实习报告单片机实习报告(精选5篇)单片机实习报告篇1一、生产实习的目的和意义:生产实习是培养本科学生理论联系实际,提高实际动手操作潜力的重要教学环节。
本专业的生产实习旨在使学生广泛了解实际电子产品生产的全过程,熟悉电子产品的主要技术管理模式,并在实习的操作过程中学习掌握电子产品的焊接安装调试的实际操作技能。
巩固和加深理解所学的理论,开阔眼界,提高潜力,为培养高素质大学本科人才打下必要的基础。
透过学习,是理论与实际相结合,能够使学生加深对所学知识的理解,并为后续专业课的学习带给必要的感性知识,同时使学生直接了解本业的生产过程和生产资料,为将来走上工作岗位带给必要的实际生产知识。
二、实习的基本资料:集中授课,进行相关知识的学习。
学习掌握电子产品的独立性设计与安装调试的潜力;进一步掌握电子测量仪器的正确使用方法,电元器件的测量与筛选技术。
初步了解电子整机产品的工艺过程。
为能使学生得到充分的锻炼,较大的提高学生的实际动手潜力,本次生产实习安排每一位学生独立完成全部系统的设计与安装工作。
本实习环节,学生要独立使用电焊铁及各种电子测试设备电路安装与调试,要学生严格遵守电器设备的使用安全,遵守实验室的各项规章制度。
三、基本要求:在教师的指导下练习在测试电路德核心板上焊接元件,掌握焊接要领。
熟悉元器件的性能及管脚分配。
在给定的PCB板上焊接跳线,IC插座,电阻,电容,LED器件等。
检查焊接是否正确。
插上元器件,运行系统,并观测系统工作是否正常。
四、总体设计电路思想和原理:本次生产实习用到的开发板和模块共7块,分别为:单片机核心板,电子钟模块,MP3模块,RFID模块,无线传输模块,脉搏传感模块,GPS模块。
各模块相互组合,其所能实现的基本功能如下:单片机核心板+电子钟模块:实现时光的显示,温度的测量,且可透过遥控器调时定闹等。
单片机核心板+无线传输模块:实现数据的近距离无线传输。
单片机核心板+MP3模块(含SD卡):实现MP3播放功能。
信息工程学院实训报告实训题目:音乐倒数计数器学生姓名:***学号:**********专业:自动化班级:三班指导教师:***实训任务书一、实训目的⑴掌握MCS-51定时器的使用和编程方法。
⑵掌握LCD显示模块的软件设计方法。
(3)掌握单片机控制蜂鸣器发声原理及音乐播放方法。
二、实训内容⑴利用51单片机结合字符型LCD显示器(1602)(或者四位LED显示器)设计一个简易的倒数计数器。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,提醒倒计数时间到了。
⑵定时闹钟的基本功能如下:字符型LCD(1602)显示器(或者四位LED显示器),显示格式为“TIME:分:秒”。
用4个按键操作来设置当前想要倒计数的时间。
一旦按下键则开始倒计数,计数单位为1秒,当计数为0时,发出一阵音乐声。
程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下: K1—可调整倒计数的时间1~60分钟。
K2—设置倒计数的时间为5分钟,显示“0500”。
K3—设置倒计数的时间为10分钟,显示“1000”。
K4—设置倒计数的时间为20分钟,显示“2000”。
复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD上显示出设置画面。
此时,若:a. 按操作键K2—增加倒计数的时间1分钟。
b. 按操作键K3—减少倒计数的时间1分钟。
c. 按操作键K4—设置完成。
三、实训原理本题目最大难点是实现音乐的播放。
利用定时计数器,通过载入不同的计数初值,产生频率不同的方波,输入到蜂鸣器中,使其发出频率不同的声音。
在此基础上,可将乐曲的简谱转化为单片机可以“识别”的“数组谱”,进一步加入对音长、休止符等的控制量后,可以实现音乐的播放。
四、实训电路参考《微型计算机技术及应用实验指导书》实验三、实验十九电路图。
五、实训步骤1、实训连线参考《微型计算机技术及应用实验指导书》实验三、实验十九电路图进行联线。
2、实验步骤(1)编写单片机定时器控制程序,实现倒计数功能。
(2) 编写LCD液晶显示模块控制程序,实现倒计数显示、按键时长设定显示。
(3)编写程序实现音乐播放功能。
(4)完成整个程序编写实现整个题目要求的功能。
3、观察运行结果下载程序到实验箱,以连续方式运行程序,观察实验现象是否实现预期功能单片机自20世纪70年代问世以来,以其极高的性能价格比,收到人们的重视和关注,应用很广、发展很快。
而51单片机是各单片机最为典型和最有代表性的一种。
本实验是DP-51PROC单片机综合仿真实验箱所设计的,可以实现键盘按键与数字动态显示并可以用音乐倒数的计数器。
本设计基于单片机技术原理,以单片机芯片STC89C51作为核心控制器,通过硬件电路的制作以及软件程序的编程,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在四位LED数码管上。
当倒数计数为0时,蜂鸣器就发出音乐声响等等。
该计数系统主要由计数器模块、四位LED数码管、蜂鸣器模块、键盘模块、复位模块等部分组成。
关键词:STC89C51;键盘;四位LED数码管;蜂鸣器实训任务书 (II)摘要 (IV)一、实训内容 (1)二、系统实现方案 (1)三、硬件电路设计 (2)1.主控制器——AT89S51单片机 (2)2.复位电路 (3)3.音乐倒数计时器原理图 (4)四、系统软件程序设计与分析 (5)1.主程序流程图 (5)2.显示流程图 (6)3.按键流程图 (7)五、实训过程以及实训结果 (8)1.实训连线 (8)2.实训步骤 (9)3.实现功能 (9)4.观察运行结果 (9)六、实训总结 (11)附录1: (12)附录2: (19)附录3: (22)七、参考文献 (30)正文一、实训内容随着科技的发展和社会的进步,人们对数字钟的要求越来越高,多功能数字钟不管在性能还是在样式上都发生了质的变化。
数字钟实际上是一个对标准频率进行计数的计数电路,走时精度高,稳定性好,使用方便,不需要经常调校。
单片计算机即单片微型计算机,是集CPU,RAM,ROM,定时/计数和多种接口于一体的微控质器。
它体积小成本低,功能强,广泛应用于智能产品和工业自动化上。
由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大地方便,而且大大的扩展了钟表原先报时功能,诸如定时自动报警、0按时自动打铃、定时广播、自动启闭路灯、定时开机烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以数字化为基础的,因此研究数字钟及扩大其应用有着非常现实的意义。
本系统采用单片机作为数字钟的核心控制器,读取时钟的值,并通过LED数码管显示出来,而且可以通过按键电路控制执行信号,给时钟赋初值。
还可以设置闹钟,当计数为0时,发出一阵音乐声。
二、系统实现方案音乐倒数计数器所倒数的时间由数字显示,控制器使用单片机AT89C51。
本设计基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在四位LED数码管上。
当倒计数为0时,蜂鸣器就发出音乐声响等等。
该计数器系统主要由计数器模块、四位LED数码管模块、蜂鸣器模块、键盘模块、复位模块等部分组成。
总体设计方框图如图1-1所示。
三、硬件电路设计1.主控制器——AT89S51单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
●与MCS-51 兼容● 4K字节可编程闪烁存储器●全静态工作:0Hz-24Hz●三级程序存储器锁定● 128*8位内部RAM● 32可编程I/O线●两个16位定时器/计数器● 5个中断源●可编程串行通道●低功耗的闲置和掉电模式●片内振荡器和时钟电路3-1.AT89C51电路原理图2.复位电路给单片机一个复位信号(一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,这时如果手按着一直不放,系统将一直复位,不能正常工作。
3-2单片机晶振电路与复位电路3.音乐倒数计时器原理图音乐倒数计时器原理图,由复位电路,晶振电路,显示电路,输入电路组成,K1,K2,K3为设置时间开关,上电LED灯亮,进行设置,确认后倒计时开始,LED灯灭,时间到后发出音乐提醒。
图3-3为音乐倒数计时器原理图四、系统软件程序设计与分析1.主程序流程图主程序开始初始化,然后扫描键盘、复位电路和计数器。
当键盘按键有按下时,调整计数器值,LED显示新值。
当复位键有按下时,计数器复位为初值,重新倒计数。
当计数器值倒计为0时,蜂鸣器发出声音,计数器停止倒计,程序结束。
图4-1 主程序流程图2.显示流程图图4-2 LED显示流程图3.按键流程图图4-3 按键流程五、实训过程以及实训结果1.实训连线1.用导线把A2区的P1.0,P1.1,P1.2,P1.3分别连接到A6区的P1_IO1-P1_IO4相连,再用八芯排线把A2区的J57(P3)接口与TinyView电路板的JP1接口相连。
2.将A2区P1.4,P1.5,P1.6用导线分别接到key1,key2,key3上,再把P1.5,P1.6,P1.7分别于SW2,SW3,SW1相接。
3.把蜂鸣器模块B5的beep接口接到 A2区的P1.7上。
2.实训步骤(1)编写LED数码管模块控制程序,实现倒计数显示、按键时长设定显示。
详细程序见附录1(2)编写程序实现音乐播放功能。
详细程序见附录2(3)完成整个程序编写实现整个题目要求的功能。
详细程序见附录33.实现功能K1按下一次—设置倒计数的时间为5分钟,显示“0500”。
K1按下两次—设置倒计数的时间为10分钟,显示“1000”。
K1按下三次—设置倒计数的时间为20分钟,显示“2000”。
K2每按下一次增加一分钟,K3每按下一次减少一分钟,确定初值后保存。
再次按K2开始倒计时,按K3暂停倒计时;若不暂停,倒计时为0时,蜂鸣器开始播放音乐。
4.观察运行结果5.按照仿真实验结果,能够实现上述功能。
实物图如下所示:六、实训总结经过这次的实训,简单带有LED显示的音乐倒数计数器基本完成,系统基本功能基本实现,测试运行也基本正常。
该系统基本上完成了时间的显示与计数的功能。
当然这个系统还存在许多有待完善的地方:(1)功能相对较少,有待于添加,比方按下K3暂停后不能够继续倒计时,需要按下复位键重新设置初值再次倒计时;(2)界面设计得不够精致完美;这次课程设计的时间虽然不算很长,但使我对很多东西有了更深刻的认识。
总结如下:(1)查阅资料和阅读相关文献的重要性。
(2)向同学请教的重要性,团结协作的重要性。
(3)勤动手的重要性,自己动手,丰衣足食!在一次次调试代码的过程中,我才明白“代码不是写出来的,是调出来的”的道理。
(4)对待任何事情都要有耐心和恒心,遇到问题要冷静地思考,积极找出症结所在,逐个解决。
通过本次实训,我更深刻的认识到了教学实践在大学课程中的重要性,同时也发觉到了自己在学习方面存在的许多不足之处,比如在硬件方面有很多欠缺,在以后的学习中我会努力改进这些不足,不但要学习软件编程,而且也要努力提高自己的硬件设计方面的能力,不断提高自己的动手实践能力。
附录1:#include <reg51.h>#define uchar unsigned char#define uint unsigned int#define T0_H (65536-50000)/256#define T0_L (65536-50000)%256sbit Moda1key = P1^4; //she chu zhisbit Moda2key = P1^5; //dao ji shisbit Moda3key = P1^6; // zan tingsbit beep = P1^7;sbit COM1 = P1^0;sbit COM2 = P1^1;sbit COM3 = P1^2;sbit COM4 = P1^3;uint i=5,num=0,num1=0,num2=0;bit bflag=0;bit bflag1=0;bit bflag2=0;uint dis1,dis2,dis3,dis4;static uint dis = 30;uint count=0,count1=0,count2=0;uchar display[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};void Modal2();void Modal3();void jishi();void xianshi();void initSys();void Delay(uint x);void main(){i nitSys();w hile(1){xianshi();i = 5;if(Moda1key == 0){while(i--);if(Moda1key == 0){TR0 = 0; //guan ding shi qinum++;Delay(1000);if(num == 1){dis=5*60;initSys();}if(num == 2){dis=10*60;initSys();}if(num == 3){dis=20*60;initSys();}}}if(Moda2key == 0){i = 5;while(i--);if(Moda2key == 0){dis=dis+60;initSys();Delay(1000);}}if(Moda3key == 0){i = 5;while(i--);if(Moda3key== 0){dis=dis-60;initSys();Delay(1000);}}if(beep == 0){Delay(1000);break;}}while(1){xianshi();Modal2();Modal3();}}void initSys(){P3 = 0xff;T MOD = 0x01;T H0 = T0_H;T L0 = T0_L;E A = 1;E T0 = 1;d is1=dis/60/10;d is2=dis/60%10;d is3=dis%60/10;d is4=dis%60%10;}void Modal2(){i f(Moda2key==0){i=5;while(i--);if(Moda2key==0){TR0 = 0;bflag=1;while(Moda2key==0){xianshi();}}elseModa2key=1;}e lseM oda2key=1;}void Modal3(){i f(Moda3key==0){i=5;while(i--);if(Moda3key==0){TR0 = 1;bflag1=1;while(Moda3key==0){xianshi();}}elseModa3key=1;// bflag1=0;}e lseM oda3key=1 ;// bflag1=0;}void jishi(){i f(count++>5){count=0;if((dis4==0)&&(dis3==0)&&(dis2==0)&&(dis1==0)) {while(1) //yinyue{beep=0;Delay(10);beep=1;Delay(10);}}if(dis4--<1){dis4=9;if(dis3--<1){dis3=5;if(dis2--<1){dis2=9;dis1--;if(dis1<1){dis1=0;}}}}}}void xianshi(){C OM1=0;P3=display[dis1];D elay(5);C OM1=1;COM2=0;P3=display[dis2];D elay(5);C OM2=1;C OM3=0;P3=display[dis3];D elay(5);C OM3=1;C OM4=0;P3=display[dis4];D elay(5);C OM4=1;}void Delay(uint x){u int p,q;f or(p=x;p>0;p--)for(q=110;q>0;q--); }void time0() interrupt 1 {i f(count2++ >= 2) {count2 = 0;TH0 = T0_H;TL0 = T0_L;count1++;jishi();}}附录2:#include<reg51.h>unsigned char Count;sbit _Speak =P1^7 ;unsigned char code SONG[]={0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C, 0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20, 0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20, 0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30, 0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30, 0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26, 0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20, 0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F, 0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20, 0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B, 0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20, 0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00};void Time0_Init(){T MOD = 0x01;I E = 0x82;T H0 = 0xD8;T L0 = 0xEF; //12MZ晶振,10ms}void Time0_Int() interrupt 1{T H0 = 0xD8;T L0 = 0xEF;C ount++; //长度加1}void Delay_xMs(unsigned int x){unsigned int i,j;for( i =0;i < x;i++ ){for( j =0;j<3;j++ );}}void Play_Song(unsigned char i){u nsigned char Temp1,Temp2;u nsigned int Addr;C ount = 0; //中断计数器清0A ddr = i * 217;w hile(1){Temp1 = SONG[Addr++];if ( Temp1 == 0xFF ) //休止符{TR0 = 0;Delay_xMs(100);}else if ( Temp1 == 0x00 ) //歌曲结束符 {return;}else{Temp2 = SONG[Addr++];TR0 = 1;while(1){_Speak = ~_Speak;Delay_xMs(Temp1);if ( Temp2 == Count ){Count = 0;break;}}}}}void main(){Time0_Init(); //定时器0中断初始化 while(1){Play_Song(0); //播放}}附录3:#include <reg51.h>#define uchar unsigned char#define uint unsigned int#define T0_H (65536-50000)/256#define T0_L (65536-50000)%256unsigned char Count4;unsigned char code SONG[]={0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C, 0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20, 0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20, 0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30, 0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30, 0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26, 0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20, 0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F, 0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20, 0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B, 0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20, 0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00};sbit Moda1key = P1^4; //she chu zhisbit Moda2key = P1^5; //dao ji shisbit Moda3key = P1^6; // zan tingsbit beep = P1^7;sbit COM1 = P1^0;sbit COM2 = P1^1;sbit COM3 = P1^2;sbit COM4 = P1^3;uint i=5,num=0,num1=0,num2=0;bit bflag=0;bit bflag1=0;bit bflag2=0;uint dis1,dis2,dis3,dis4;static uint dis = 30;uint count=0,count1=0,count2=0;uchar display[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};void Modal2();void Modal3();void jishi();void xianshi();void initSys();void Delay(uint x);void Delay_xMs(unsigned int x);void Play_Song(unsigned char i);void YINYUE();void Time0_Int() interrupt 3{T H1 = 0xD8;T L1 = 0xEF;C ount4++; //长度加1}void Delay_xMs(unsigned int x){unsigned int i,j;for( i =0;i < x;i++ ){for( j =0;j<3;j++ );}}void Play_Song(unsigned char i){u nsigned char Temp1,Temp2;u nsigned int Addr;C ount4 = 0; //中断计数器清0A ddr = i * 217;w hile(1){Temp1 = SONG[Addr++];if ( Temp1 == 0xFF ) //休止符{TR1 = 0;Delay_xMs(100);}else if ( Temp1 == 0x00 ) //歌曲结束符 {return;}else{Temp2 = SONG[Addr++];TR1 = 1;while(1){beep = ~beep;Delay_xMs(Temp1);if ( Temp2 == Count4 ){Count4 = 0;break;}}}}}//void YINYUE()//{// //initSys(); //定时器0中断初始化// while(1)// {// Play_Song(0); //播放// }//}void main(){i nitSys();w hile(1){xianshi();i = 5;if(Moda1key == 0){while(i--);if(Moda1key == 0){TR0 = 0; //guan ding shi qinum++;Delay(1000);if(num == 1){dis=5*60;initSys();}if(num == 2){dis=10*60;initSys();}if(num == 3){dis=20*60;initSys();}}}if(Moda2key == 0){i = 5;while(i--);if(Moda2key == 0){dis=dis+60;initSys();Delay(1000);}}if(Moda3key == 0){i = 5;while(i--);if(Moda3key== 0){dis=dis-60;initSys();Delay(1000);}}if(beep == 0){Delay(1000);break;}}while(1){xianshi();Modal2();Modal3();}void initSys(){P3 = 0xff;T MOD= 0x11;T H0 = T0_H;T L0 = T0_L;TH1 = 0xD8;T L1 = 0xEF;E A = 1;E T0 = 1;d is1=dis/60/10;d is2=dis/60%10;d is3=dis%60/10;d is4=dis%60%10;}void Modal2(){i f(Moda2key==0){i=5;while(i--);if(Moda2key==0){TR0 = 0;bflag=1;while(Moda2key==0){xianshi();}}elseModa2key=1;e lseM oda2key=1;}void Modal3(){i f(Moda3key==0){i=5;while(i--);if(Moda3key==0){TR0 = 1;bflag1=1;while(Moda3key==0){xianshi();}}elseModa3key=1;// bflag1=0;}e lseM oda3key=1 ;// bflag1=0;}void jishi(){i f(count++>5){count=0;if((dis4==0)&&(dis3==0)&&(dis2==0)&&(dis1==0)){while(1) //yinyue{Play_Song(0);//YINYUE();}}}if(dis4--<1){dis4=9;if(dis3--<1){dis3=5;if(dis2--<1){dis2=9;dis1--;if(dis1<1){dis1=0;}}}}}void xianshi(){C OM1=0;P3=display[dis1];D elay(5);C OM1=1;C OM2=0;P3=display[dis2];D elay(5);C OM2=1;C OM3=0;P3=display[dis3];D elay(5);C OM3=1;C OM4=0;P3=display[dis4];D elay(5);C OM4=1;void Delay(uint x){u int p,q;f or(p=x;p>0;p--)for(q=110;q>0;q--);}void time0() interrupt 1{i f(count2++ >= 2){count2 = 0;TH0 = T0_H;TL0 = T0_L;count1++;jishi();}七、参考文献【1】徐爱筠.增强型8051单片机C语言编程与应用 .北京:电子工业出版社,2014 【2】谭浩强.C程序设计(第三版).北京:清华大学出版社,2005【3】王东锋,陈圆圆.单片机C语言应用100例.北京:电子工业出版社,2014 【4】冯博,王丽娜.项目式51单片机技术.北京:电子工业出版社,2014。