长沙理工大学《单片机课程设计》电子钟单片机实习报告
长沙理工大学《单片机课程设计》电子钟单片机实习报告
长沙理工大学《单片机课程设计》电子钟单片机实习报告第一篇:长沙理工大学《单片机课程设计》电子钟单片机实习报告目录一引言........................................................................................................................... . (5)二硬件设计 (5)三软件设计 (5)四调试过程及问题分析 (6)五结论........................................................................................................................... ..7六参考文献 (7)附件........................................................................................................................... . (8)一引言单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,单片机都起到了举足轻重的作用。
所以单片机技术也日趋成熟。
单片机是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强。
而52系列单片机是各单片机中最为典型和最有代表性的一种。
此次单片机原理及应用实习通过利用52单片机对电子钟的设计,从而达到学习、了解单片机相关指令在各方面的应用,以及初步了解开发软、硬件的知识。
二硬件设计本次单片机原理及应用实习我们组用到的硬件为MCS51开发板和一个LCD12864液晶显示器。
单片机课程设计实习报告
单片机课程设计实习报告实习报告1. 实习项目概述本次实习项目是单片机课程设计,旨在通过实际项目的设计与实现,加强对单片机原理和应用的理解与掌握。
本次课程设计以红外遥控器为主题,旨在实现通过红外遥控器对设备进行控制。
2. 实习项目目标2.1 理解并掌握单片机的基本原理及其应用;2.2 学习并运用红外遥控技术;2.3 设计并实现一个简单的红外遥控器。
3. 实习内容及步骤3.1 学习单片机原理及其应用通过课堂学习和自学,全面了解单片机的基本原理、内部结构、工作方式以及常用的应用场景。
3.2 学习红外遥控技术了解红外遥控技术的基本原理和工作方式,包括红外遥控信号的编码与解码、红外遥控器的工作原理等。
3.3 设计红外遥控器设计一个简单的红外遥控器,可以通过按键发送特定的红外遥控信号,实现对特定设备的控制。
3.4 实现红外遥控功能根据设计稿,使用所学的单片机知识,编写与实现相应的程序代码,实现红外遥控功能。
3.5 调试与测试将单片机与红外遥控器进行连接,并通过按键测试红外遥控功能是否正常工作。
如有异常,及时调试和解决问题。
4. 实习总结与反思通过本次单片机课程设计实习,我对单片机的原理和应用有了更深入的理解与掌握。
同时,通过设计并实现红外遥控器,我进一步学习了红外遥控技术的应用,并提升了自己的实际操作能力。
然而,在实习过程中,我也遇到了不少难题和挑战。
特别是在调试与测试阶段,由于光线、信号等环境因素的影响,红外遥控功能的稳定性不如预期。
在解决这些问题时,我积极寻求帮助和指导,通过不断的尝试和调试,最终解决了很多困难。
通过本次实习,我不仅对单片机和红外遥控技术有了更深入的了解,更重要的是锻炼了自己的动手实践能力和解决问题的能力。
我相信这些经验和能力将对我的未来学习和工作有很大的帮助。
单片机实习报告
单片机实习报告实习报告:在本次单片机实习中,我主要学习了单片机的程序设计和应用。
通过实践和指导,我对单片机的原理和操作方法有了更深入的了解。
在实习的第一周,我首先学习了单片机的基本知识。
了解了单片机的基本结构和工作原理,并学习了常用的单片机开发板和配套软件的使用方法。
通过对单片机的了解,我明白了单片机在电子设备中起到的重要作用。
第二周,我开始进行单片机的程序设计。
首先学习了单片机的汇编语言和C语言编程,了解了不同编程语言的优缺点和适用范围。
通过实践编写一些简单的程序,我掌握了基本的程序设计方法和技巧。
同时,我还学习了如何使用单片机的IO口、串口和定时器等功能模块,实现了一些简单的实验。
第三周,我开始进行单片机的应用开发。
首先,我学习了如何利用单片机控制LED灯的亮灭。
通过编写程序,我实现了LED灯的闪烁和呼吸效果。
然后,我学习了如何利用单片机控制蜂鸣器的发声。
通过调节蜂鸣器的频率和占空比,我实现了不同音调的发声效果。
最后,我还学习了如何利用单片机控制电机的转动。
通过编写程序,我实现了电机的正转、反转和停止等控制。
在实习的最后一周,我开始进行一个综合性的项目实践。
我选择了制作一个简单的温度测量和显示系统。
通过连接温度传感器和数码管,我利用单片机采集温度传感器的数据,并将数据转换为温度值,然后通过数码管显示出来。
在实践过程中,我遇到了一些困难,但通过查找资料和请教老师,最终成功解决了问题。
这个实践项目不仅巩固了我所学的知识,也培养了我解决问题的能力。
通过这次单片机实习,我不仅学到了丰富的单片机知识,还培养了实践能力和解决问题的能力。
同时,我也深刻地意识到了单片机在现代电子设备中的重要性和广泛应用的前景。
我对单片机有了更深入的了解,并对未来从事相关工作充满了信心。
总结来说,这次单片机实习是我大学生涯中的一次重要经历。
通过实践和学习,我不仅积累了宝贵的知识,还培养了实践能力和解决问题的能力。
我将努力将所学知识应用到实际工作中,并不断提升自己的专业水平。
单片机实习报告
千里之行,始于足下。
单片机实习报告单片机实习报告》一、引言在大学期间,我有幸参加了一次单片机实习。
单片机作为一种嵌入式系统的重要组成部分,具有广泛的应用前景和重要的理论和实践意义。
通过此次实习,我更深入地了解了单片机的原理和应用,并培养了解决实际问题的能力。
本报告将详细介绍我的实习经历和所学到的知识。
二、实习背景单片机实习是我大学电子信息工程专业中的一门实践课程,旨在将课堂学习到的理论知识与实际应用相结合。
实习内容主要包括单片机基本原理的学习、单片机编程技术的掌握以及实际项目的设计与实现。
三、实习内容1. 单片机基本原理的学习在实习开始前,我们首先学习了单片机的基本原理。
通过理论课的学习,我们对单片机的工作原理、片内资源和寄存器等有了基本的了解。
同时,我们也学习了单片机的编程语言、开发环境和常用的编程技巧。
2. 单片机编程技术的学习第1页/共3页锲而不舍,金石可镂。
为了熟悉单片机的编程技术,我们学习了汇编语言和C语言两种单片机编程语言。
通过编写一些简单的程序,我们逐渐掌握了程序的编写和调试方法,提高了自己的编程能力。
3. 实际项目的设计与实现在实习的最后阶段,我们需要根据老师的要求设计并实现一个实际项目。
在项目的设计过程中,我们需要考虑项目的功能、硬件的选择和电路的设计。
在实际实施中,我们需要根据设计的要求,编写相应的程序,并将其烧录到单片机中进行测试和验证。
四、实习反思通过此次实习,我收获了许多。
首先,我对单片机的原理有了更深入的理解。
以前,我只是了解到单片机具有微型计算机的功能,但具体的实现方式和原理并不清楚。
而通过实习,我学习到了单片机内部的结构和工作原理,明白了单片机是如何通过执行指令来实现功能的。
这对于我今后的学习和工作具有重要的指导意义。
其次,我学会了如何编写单片机程序。
在实习过程中,我们需要不断地编写程序来验证我们的设计。
通过这个过程,我逐渐掌握了单片机编程的技巧和方法,提高了自己的编程水平。
单片机数字钟实习报告
一、实习目的随着电子技术的飞速发展,单片机作为一种重要的电子元件,在工业、医疗、通讯等领域得到了广泛的应用。
为了更好地掌握单片机的原理和应用,提高动手能力,我们选择了单片机数字钟作为实习项目。
通过本次实习,我们旨在掌握单片机的编程、调试、硬件连接等方面的知识,实现数字时钟的显示与控制。
二、实习内容1. 单片机数字钟硬件设计(1)选用AT89C51单片机作为核心控制单元,具有丰富的片上资源,方便编程和调试。
(2)采用LCD1602液晶显示屏,显示时间、日期等信息。
(3)使用DS1302实时时钟芯片,实现时间的存储和更新。
(4)选用按键作为输入设备,实现时间的调整和设置。
(5)选用蜂鸣器作为报警设备,实现定时报警功能。
2. 单片机数字钟软件设计(1)编写主程序,实现系统初始化、时间显示、按键扫描、时间调整等功能。
(2)编写中断服务程序,实现DS1302时钟芯片的读写、按键消抖等功能。
(3)编写子程序,实现时间的计算、格式化、显示等功能。
3. 单片机数字钟调试与测试(1)连接电路,检查各个模块的连接是否正确。
(2)编写程序,将程序烧录到单片机中。
(3)调试程序,确保程序运行正常。
(4)测试各个功能模块,如时间显示、按键调整、定时报警等。
三、实习过程1. 硬件设计(1)根据设计要求,绘制电路原理图。
(2)购买所需元器件,进行焊接。
(3)组装电路板,连接各个模块。
2. 软件设计(1)编写程序,采用C语言进行编程。
(2)使用Keil软件进行编译、烧录。
(3)在仿真软件Proteus中进行仿真,验证程序的正确性。
3. 调试与测试(1)连接电路,检查各个模块的连接是否正确。
(2)编写程序,将程序烧录到单片机中。
(3)调试程序,确保程序运行正常。
(4)测试各个功能模块,如时间显示、按键调整、定时报警等。
四、实习总结1. 通过本次实习,我们掌握了单片机的编程、调试、硬件连接等方面的知识。
2. 学会了使用LCD1602液晶显示屏、DS1302实时时钟芯片、按键等元器件。
单片机课程设计实习报告(共6篇)
单片机课程设计实习报告(共6篇)ok3w_ads(“s004”);ok3w_ads(“s005”);精选范文:单片机课程设计实习报告(共6篇)实训任务:一、实训目的和要求:(1)熟练掌握keil c51集成开发环境的使用方法(2)熟悉keil c51集成开发环境调试功能的使用和dp?单片机仿真器、编程器、实验仪三合一综合开发平台的使用。
(3)利用单片机的p1口作io口,学会利用p1口作为输入和输出口。
(4)了解掌握单片机芯片的烧写方法与步骤。
(5)学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用。
(6)掌握利用protel 99 se绘制电路原理图及pcb图。
(7)了解pcb板的制作腐蚀过程。
二、实训器材:pc机(一台)pcb板(一块)520ω电阻(八只)10k电阻(一只)led发光二极管(八只)25v 10μf电容(一只)单片机ic座(一块)at89c51单片机芯片(一块)热转印机(一台)dp?单片机仿真器、编程器、实验仪三合一综合开发平台(一台)三、实训步骤:(2)将流水灯程序编写完整并使用tkstudy ice调试运行。
(4)打开电源,将编写好的程序运用tkstudy ice进行全速运行,看能否实现任务要求。
(6)制板。
首先利用protel 99 se画好原理图,根据原理图绘制pcb图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb 板上布线图外的铜全部后,将其取出,清洗干净。
(7)焊接。
将所给元器件根据原理图一一焊至pcb板相应位置。
(8)调试。
先把at89c51芯片插入ic座,再将+5v电源加到制作好的功能板电源接口上,观察功能演示的整个过程(看能否实现任务功能)。
(流水灯控制器原理图)四、流水灯控制器程序的主程序:org 0000hsjmp startorg 0030hstart: mov a,#0ffhmov r0,#1chmov r2,#12hclr cloop1: acall delaydjnz r0,loop2sjmp loop4loop2: mov p1,arlc ajnc loop3sjmp loop1loop3: acall delaymov p1,arrc ajnc loop1sjmp loop3loop4: acall delaydjnz r1,loop5sjmp loop6loop5: mov p1,arrc a[单片机课程设计实习报告(共6篇)]篇一:单片机实习报告课程设计专业综合实习总结专业班级:学生学号:学生姓名:指导教师:实习时间:机电工程学院目录1.实习目的和意义 21.1实习目的 (2)1.2实习意义 (2)2.实习内容 2 3. 硬件介绍 23.1 总原理图 (3)3.2 LED显示模块............................................................... 6 3.3 数码管显示模块............................................................ 7 3.4 键盘模块 (9)3.5 A/D转换模块............................................................... 10 3.6 D/A转换模块 (13)3.7 中断嵌套模块 (14)3.8 时钟日历芯片模块 (15)4. 程序流程图 174.1 LED显示模块……………………………………………………… 17 4.2 数码管显示模块…………………………………………………… 19 4.3 键盘模块……………………………………………………………21 4.4 A/D转换模块.................................................................. 23 4.5 D/A转换模块 (23)4.6 中断嵌套模块 (24)4.7 时钟日历芯片模块 (24)5. 实习心得体会………………………………………………… 26 附录:程序清单……………………………………………………271、实习目的和意义1.1 实习目的1、熟悉本专业自己设计的“单片机课程实习”电路板,领会、掌握该电路板的设计原理及硬件布局。
单片机电子时钟课程设计实验报告(1)
单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告一、实验内容本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。
二、实验步骤1.硬件设计根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。
2.软件设计通过C语言编写单片机程序,用于实现时钟功能。
3.程序实现(1)时钟显示功能通过读取时钟模块的时间信息,在显示模块上显示当前时间。
(2)报时功能设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。
(3)闹钟功能设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
(4)时间设置功能通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。
(5)年月日设置功能通过按键模块实现年月日的设置,包括设置年份、月份、日期等。
三、实验结果经过调试,电子时钟的各项功能都能够正常实现。
在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。
在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。
四、实验感悟通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。
通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。
在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。
单片机设计时钟实训报告
一、引言随着科技的不断发展,单片机技术在电子领域得到了广泛的应用。
为了提高学生的实践能力,培养实际工程应用能力,我们进行了单片机设计时钟实训。
本实训以AT89C51单片机为核心,通过学习时钟电路的设计、编程和调试,使学生掌握单片机在时钟设计中的应用,提高学生的动手能力和创新思维。
二、实训目的1. 掌握单片机的基本原理和编程方法;2. 熟悉时钟电路的设计和调试;3. 培养学生的实际工程应用能力和创新思维;4. 提高学生的团队协作能力和沟通能力。
三、实训内容1. 硬件设计(1)单片机选型:选用AT89C51单片机作为核心控制单元;(2)时钟电路:采用晶振电路作为时钟源,实现1Hz的基准时钟;(3)显示电路:采用LCD1602液晶显示屏,实现时间、日期和星期等信息显示;(4)按键电路:设计4个按键,分别用于设置时间、日期、星期和闹钟功能;(5)复位电路:采用上电复位和按键复位两种方式,保证系统稳定运行。
2. 软件设计(1)系统初始化:初始化单片机,设置波特率、定时器等;(2)时间显示:通过读取实时时钟芯片(如DS1302)的数据,显示时间、日期和星期;(3)按键处理:根据按键输入,实现时间、日期、星期和闹钟的设置与修改;(4)闹钟功能:当设定的时间到达时,通过蜂鸣器发出提示音。
3. 调试与优化(1)调试方法:使用Proteus软件进行仿真调试,观察程序运行状态,分析故障原因;(2)优化方法:针对仿真过程中出现的问题,优化程序代码,提高程序运行效率。
四、实训过程1. 硬件制作(1)按照设计图纸,焊接电路板;(2)连接晶振、LCD显示屏、按键和蜂鸣器等元器件;(3)调试电路,确保各元器件正常工作。
2. 软件编写(1)使用Keil C51软件编写程序,实现时钟显示、按键处理和闹钟功能;(2)编译程序,生成HEX文件。
3. 调试与优化(1)使用Proteus软件进行仿真调试,观察程序运行状态;(2)针对仿真过程中出现的问题,优化程序代码,提高程序运行效率;(3)将优化后的程序烧录到单片机中,进行实际运行测试。
单片机实习报告通用
一、实习目的本次单片机实习旨在通过实际操作,加深对单片机原理和应用的理解,提高实际动手能力,培养独立解决问题的能力。
通过本次实习,我希望能够熟练掌握单片机的编程、调试和应用,为今后从事相关工作打下坚实基础。
二、实习内容1. 单片机原理学习在实习初期,我们学习了单片机的结构、工作原理以及常见外设的功能。
通过学习,我们对单片机的内部结构有了全面的认识,了解了其工作流程,为后续编程和调试奠定了基础。
2. 编程实践在掌握了单片机原理后,我们开始进行编程实践。
首先,我们学习了C语言编程基础,包括变量、数据类型、运算符、控制语句等。
随后,我们结合所学知识,编写了简单的单片机程序,实现了基本的功能。
3. 系统设计在编程实践的基础上,我们进行了单片机系统设计。
我们选择了STC89C52单片机作为开发平台,设计了基于单片机的电子钟项目。
项目包括硬件设计和软件编程两部分。
在硬件设计方面,我们选择了LCD显示屏、按键、时钟电路等元件,并进行了电路布线。
在软件编程方面,我们编写了程序,实现了时钟显示、按键控制等功能。
4. 调试与优化在系统设计完成后,我们对项目进行了调试和优化。
在调试过程中,我们遇到了许多问题,如程序运行不稳定、显示错误等。
通过查阅资料、请教老师和同学,我们逐步解决了这些问题。
在优化过程中,我们提高了程序的运行效率,减少了资源占用。
三、实习收获1. 理论与实践相结合通过本次实习,我深刻体会到理论与实践相结合的重要性。
只有将所学知识应用于实际,才能真正掌握单片机技术。
2. 提高动手能力在实习过程中,我学会了使用电子测试设备、焊接电路板等技能,提高了自己的动手能力。
3. 培养团队协作精神在项目设计过程中,我们团队成员分工合作,共同解决问题。
这使我明白了团队协作的重要性,也提高了自己的沟通能力。
四、实习总结本次单片机实习让我受益匪浅。
通过实习,我对单片机技术有了更深入的了解,提高了自己的动手能力和团队协作精神。
单片机电子钟实训报告
一、引言随着电子技术的不断发展,单片机在各个领域得到了广泛的应用。
电子钟作为单片机应用的一个重要实例,具有很高的实用价值。
本实训报告主要介绍了单片机电子钟的设计与实现过程,包括硬件电路设计、软件编程以及调试过程。
二、硬件电路设计1. 单片机选择本实训选用AT89C51单片机作为核心控制器,该单片机具有丰富的I/O端口、较强的计算能力和较大的存储空间,能够满足电子钟的设计需求。
2. 时钟芯片本实训采用DS1302时钟芯片作为时间源,该芯片具有年、月、日、周、时、分、秒的精确计时功能,并具备闰年补偿等功能。
3. 液晶显示屏本实训选用1602液晶显示屏用于显示时间、日期等信息。
1602液晶显示屏具有清晰显示多个字符和符号的特点,方便用户查看时间和其他信息。
4. 按键模块本实训设计按键模块用于用户输入和设置。
按键包括时间设置键、日期设置键、闹钟设置键等,方便用户进行各项操作。
5. 电源模块本实训采用DC5V电源模块,为整个电子钟提供稳定的电源供应。
三、软件编程1. 主程序主程序负责初始化单片机、时钟芯片、液晶显示屏等硬件设备,并进入主循环。
主循环中,程序会不断检测按键状态,根据按键输入调整时间、日期和闹钟设置。
2. 时钟控制程序时钟控制程序负责实现时钟的基本功能,包括计时、闰年补偿等。
程序通过定时器中断,每秒更新一次时间。
3. 显示程序显示程序负责将时间、日期等信息显示在液晶显示屏上。
程序使用1602液晶显示屏的指令集,动态显示时、分、秒和日期。
4. 按键扫描程序按键扫描程序负责检测按键状态,并根据按键输入调整时间、日期和闹钟设置。
程序采用轮询方式检测按键状态,以提高按键响应速度。
5. 闹钟程序闹钟程序负责实现闹钟功能,当时间达到设定的闹钟时间时,电子钟会发出蜂鸣声提示用户。
四、调试过程1. 硬件调试首先,对硬件电路进行调试,检查各元器件是否安装正确,连接是否牢固。
然后,使用万用表检测电源电压、单片机各引脚电压是否正常。
单片机的实习报告
单片机的实习报告在大学的学习生涯中,实习是一个重要的环节,它让我们将理论知识与实际应用相结合,提升自己的实践能力和解决问题的能力。
本次实习,我选择了单片机作为研究对象,通过一系列的实践操作和项目开发,对单片机有了更深入的了解和认识。
一、实习目的单片机技术在现代电子领域中有着广泛的应用,从智能家居到工业自动化,从医疗设备到航空航天,几乎无处不在。
通过本次实习,我希望能够掌握单片机的基本原理和编程方法,能够独立完成简单的单片机系统设计和开发,提高自己的动手能力和创新思维,为今后的学习和工作打下坚实的基础。
二、实习单位及岗位介绍我实习的单位是一家专注于电子产品研发的公司,公司拥有一支经验丰富的技术团队和先进的研发设备。
在实习期间,我主要在研发部门,跟随一位资深的工程师学习单片机的相关知识和技能。
三、实习内容及过程1、基础知识学习在实习的初期,我主要学习了单片机的基本概念和原理,包括单片机的结构、工作原理、指令系统等。
通过阅读相关的教材和资料,以及观看在线教学视频,我对单片机有了初步的了解。
2、开发环境搭建为了能够进行单片机的编程和开发,我需要搭建相应的开发环境。
在工程师的指导下,我安装了 Keil 软件,并学习了如何使用该软件进行项目创建、代码编写、编译和下载。
3、编程实践在掌握了基本的开发环境后,我开始进行编程实践。
从简单的点亮一个 LED 灯开始,逐渐到实现多个 LED 灯的闪烁、流水灯效果等。
在这个过程中,我深入理解了单片机的引脚控制、定时器/计数器的使用以及中断处理等知识。
4、项目开发在具备了一定的编程基础后,我参与了一个简单的温度监测系统的开发项目。
该项目要求使用单片机采集温度传感器的数据,并在液晶显示屏上实时显示温度值。
在项目开发过程中,我遇到了很多问题,比如传感器的驱动程序编写、数据的处理和转换、液晶显示屏的控制等。
但是通过查阅资料、请教工程师以及不断地调试和修改代码,最终成功地完成了项目开发。
单片机实习报告(优秀5篇)
单片机实习报告(优秀5篇)电子实习报告篇一因为报告的版本有很多,所以我没有抄下来,但是有一个东西是属于我自己的,那就是自己的感想,不需要抄袭,不需要太多华丽的语言,只是需要内心深处最原始的感触,那就够了。
本周我们班上进行了电子工艺实习,在这一周中,我们学到了很多,包括最后我们都自己看到亲手打造的纯手工的收音机时,内心的深处充满了不可言语的喜悦。
回想一周的时间过的很快,我们没有停下对做出一个收音机的兴趣和热情。
从此至终,我都是一个人在认认真真的学习,遇到不懂的,自己先放下来思考,实在不行看看周围的同学是怎样做的,再实在弄不懂的时候才向师兄或者是老师请教。
因为我知道,一个小小的收音机,里面也是有很多的元器件,有不懂的地方是非常的正常,但是,如果实习完之后,我还是没有弄懂,那就有点对不起老师,甚至是自己啦。
我们实习的第一天是在实验室里练习好焊锡,看起来多么简单易懂,可是当你真正拿起电烙铁的时候,并非像你想象的那样轻松和简单。
你要控制好温度,放电烙铁的地方,以及焊锡的多少,这些都是要思考和练习。
俗话说,熟能生巧,一天过去之后,我们都学的差不多了,对于电阻的焊角已经有一定的熟悉程度了。
实习的第二天是焊接一些元器件,当然在这之前,老师给我们讲了一些收音机的原理,以及元器件是如何进行分布的,还有一些注意事项,这些我们都非常认真的听取,因为在接下来我们将会按照工位的次序进行焊接和排布电子元器件,这其中必需要知道一些实验的原理和工作的一些小细节,因为这些都是非常容易出错的。
第三天我们在老师的指导下,观看了芯片的焊接方式,有点难学,但是熟能生巧,我在尝试了几次之后,也学会了焊接,虽然不是很完美,但是还是可以用的。
焊好之后的时间里,老师让我们大家做电路的检测以及调试,很幸运的是,我的没有出现问题,这可能和我一直以来都很小心的焊接每一个电路点有关,呵呵,当时的内心非常激动,看来做足了准备功夫,后面时就会减少很多的不必要的检查。
单片机实习报告过程总结
单片机实习报告过程总结在过去的一个月里,我参加了单片机实习课程,通过这次实习,我对单片机的基本原理、编程和应用有了更深入的了解。
在这个过程中,我经历了学习、实践和反思的过程,收获颇丰。
一、实习目标与任务本次实习的目标是掌握单片机的基本原理、编程方法和应用技巧。
实习任务包括学习单片机的内部结构、工作原理、编程语言以及使用单片机进行实际项目的开发。
二、实习过程1. 理论学习在实习的第一周,我们学习了单片机的基本概念、内部结构和工作原理。
通过学习,我了解到单片机是一种具有高度集成、低成本、低功耗的微处理器,它广泛应用于嵌入式系统领域。
我们还学习了单片机的编程语言,包括汇编语言和C语言,以及常用的开发工具和调试方法。
2. 实践操作在实习的第二周,我们开始进行实际操作。
首先,我们学习了如何使用单片机开发板进行编程和调试。
通过编写简单的程序,我掌握了如何控制单片机进行输入输出操作,例如点亮LED灯、读取按键状态等。
随后,我们小组合作完成了一个项目,设计了一个简单的温度控制系统。
在这个过程中,我学会了如何使用温度传感器采集数据,并通过单片机对数据进行处理和控制。
3. 项目开发在实习的第三周,我们开始了项目开发。
我们小组选择了一个智能家居系统作为课题,通过研究市场需求和技术可行性,设计了系统的总体架构。
我负责编写单片机程序,实现对家居设备的控制。
在这个过程中,我遇到了很多困难,例如程序调试、硬件故障等。
但在老师和同学的帮助下,我不断解决问题,最终完成了项目。
4. 总结与反思在实习的最后一周,我们对整个实习过程进行了总结和反思。
我意识到,单片机实习不仅仅是学习单片机知识,更是一种锻炼自己解决问题、团队合作的能力。
同时,我也认识到自己在实习中的不足之处,如编程水平、硬件调试能力等,需要在今后的学习中不断提高。
三、实习收获通过这次实习,我掌握了单片机的基本原理、编程方法和应用技巧。
我学会了如何使用单片机开发板进行编程和调试,掌握了单片机在嵌入式系统中的应用。
单片机课程设计实习报告2篇
单片机课程设计实习报告 (2)单片机课程设计实习报告 (2)精选2篇(一)实习报告1. 实习概述在本次实习中,我参与了单片机课程设计项目的开发工作。
该项目的目标是设计并实现一个功能完善的单片机系统,能完成一些常见的任务,如控制LED灯的闪烁、采集温湿度数据等。
2. 实习过程在实习的第一天,我与项目组的其他成员一起讨论了系统的设计方案。
我们决定采用STM32单片机作为硬件平台,并选择了Keil作为开发环境。
然后,我们开始了系统的搭建工作。
在搭建系统的过程中,我主要负责编写程序代码。
我首先学习了STM32单片机的相关知识,并了解了它的编程方式。
然后,我根据系统的需求,编写了一些基本的程序代码,如控制LED灯的闪烁、读取温湿度传感器的数据等。
在编写代码的过程中,我遇到了一些问题。
例如,我发现LED灯无法正常闪烁,经过调试后发现是我在代码中写错了引脚的定义。
我还遇到了一些编译错误和逻辑错误,通过查阅资料和与同事的讨论,我逐渐解决了这些问题。
在实习的最后几天,我与项目组的其他成员一起测试了系统的功能,并进行了修复和优化。
我们使用示波器和逻辑分析仪对系统进行了验证,确保系统的稳定性和可靠性。
3. 实习总结通过参与单片机课程设计实习项目,我对单片机的硬件和软件实现有了更深入的了解。
我学会了如何使用Keil编写程序代码,并通过实践掌握了调试和排除故障的技巧。
同时,我也学会了如何与团队成员合作,共同完成一个项目。
通过实习,我不仅提高了自己的技术能力,还培养了解决问题的能力和团队合作能力。
我相信这些经验和技能对我的未来发展将非常有帮助。
4. 改进建议在实习过程中,我发现有些文档和资料的描述不够清晰和详细,对我理解项目的要求和实现方式造成了一些困扰。
因此,我建议在今后的实习项目中,关注文档和资料的编写,确保其准确性和完整性。
另外,我还建议在项目开始之前进行一些充分的准备工作,包括学习相关知识和技术,以及对项目的需求和实现方式进行详细的讨论和规划。
单片机实习个人总结报告
一、前言随着科技的飞速发展,单片机技术作为一种重要的嵌入式系统技术,在工业控制、智能家电、通信等领域得到了广泛应用。
为了更好地了解单片机技术,提升自己的实践能力,我参加了为期一个月的单片机实习。
在这段时间里,我通过实际操作和学习,对单片机有了更加深入的认识,以下是我对本次实习的总结。
二、实习目的1. 了解单片机的基本原理和组成;2. 掌握单片机编程和调试方法;3. 熟悉常用单片机开发工具和平台;4. 培养动手实践能力和团队协作精神。
三、实习过程1. 学习单片机基本原理和组成在实习初期,我学习了单片机的基本原理和组成,了解了CPU、存储器、I/O接口等核心部件的功能和作用。
通过学习,我对单片机的整体架构有了初步的认识。
2. 掌握单片机编程和调试方法在掌握了单片机基本原理后,我开始学习单片机编程和调试。
通过阅读相关书籍和资料,我了解了C语言在单片机编程中的应用,学会了使用Keil软件进行编程和调试。
同时,我还学习了使用仿真器进行程序调试的方法。
3. 熟悉常用单片机开发工具和平台为了更好地进行单片机开发,我学习了常用的开发工具和平台,如Proteus、Altium Designer等。
通过实际操作,我掌握了这些工具的使用方法,提高了开发效率。
4. 动手实践和团队协作在实习过程中,我参与了多个单片机项目的开发,包括温度控制系统、智能家居系统等。
在项目中,我与其他同学密切合作,共同解决技术难题。
通过这些实践,我提高了自己的动手能力和团队协作精神。
四、实习收获1. 理论知识与实践相结合通过本次实习,我将所学的理论知识与实际操作相结合,加深了对单片机技术的理解。
在项目开发过程中,我学会了如何将理论知识应用到实际问题中。
2. 提高编程和调试能力在实习过程中,我熟练掌握了单片机编程和调试方法,提高了自己的编程水平。
同时,我还学会了使用仿真器进行程序调试,提高了调试效率。
3. 培养团队协作精神在项目开发过程中,我与同学们密切合作,共同解决技术难题。
单片机实习报告3篇
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. 学习电子钟的设计原理,掌握电子钟的显示方式、时间计算方法和校时功能实现方法。
3. 设计并制作电子钟的硬件电路,包括单片机、显示模块、按键模块等。
4. 编写电子钟的程序代码,实现小时、分钟和秒的显示,以及校时功能。
5. 进行电路仿真和实际制作,调试并优化电路性能。
三、实习实训过程1. 理论学习和准备:在实习实训开始前,我们学习了单片机的基本原理、编程环境和编程语言,了解了电子钟的设计原理和实现方法。
2. 硬件设计:根据设计要求,我们设计了一个简单的电子钟硬件电路,包括单片机、LCD显示模块、按键模块等。
其中,单片机作为核心控制器,负责时间计算和显示控制;LCD显示模块用于显示时间;按键模块用于实现校时功能。
3. 程序编写:根据硬件设计,我们编写了一个简单的电子钟程序,实现了小时、分钟和秒的显示,以及校时功能。
程序采用C语言编写,利用单片机的定时器进行时间计算,通过I/O口控制LCD显示模块和按键模块。
4. 电路仿真和实际制作:在完成程序编写后,我们使用Proteus软件对电路进行了仿真,验证了电路设计的正确性和可靠性。
随后,我们根据仿真结果实际制作了电子钟电路,并进行了调试和优化。
四、实习实训成果通过本次实习实训,我们成功地设计并制作了一个基于单片机的电子钟,实现了小时、分钟和秒的显示,以及校时功能。
在实习过程中,我们不仅学习了单片机原理和电子钟设计方法,还提高了动手实践能力,为以后的学习和工作打下了坚实的基础。
五、总结本次单片机电子钟实习实训让我们深刻体会到了理论与实践相结合的重要性。
单片机实习报告
单片机实习报告一、实习目的单片机作为一种微型控制器,在现代电子技术领域中有着广泛的应用。
通过本次实习,我旨在深入了解单片机的工作原理和应用开发,提高自己的实践动手能力和解决问题的能力,为今后从事相关工作打下坚实的基础。
二、实习单位及岗位介绍我实习的单位是_____,这是一家专注于电子产品研发和生产的企业。
在实习期间,我被分配到了研发部门,主要参与单片机项目的开发和测试工作。
三、实习内容1、学习单片机基础知识在实习的初期,我系统地学习了单片机的基本概念、结构和工作原理。
了解了单片机的中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入输出接口(I/O 口)等主要组成部分,以及它们之间的协同工作方式。
同时,还学习了单片机的编程语言,如 C 语言和汇编语言,并通过实际编程练习,熟悉了单片机的开发环境和调试工具。
2、参与项目开发在掌握了一定的基础知识后,我有幸参与到了一个基于单片机的温度控制系统的开发项目中。
在这个项目中,我的主要任务是负责编写单片机的控制程序,实现对温度传感器数据的采集、处理和控制输出。
通过查阅相关资料和与团队成员的讨论,我逐步完成了程序的编写和调试,并成功实现了对温度的精确控制。
3、硬件电路设计与制作除了软件编程,我还参与了硬件电路的设计和制作。
在这个过程中,我学会了如何根据项目需求选择合适的电子元器件,绘制电路原理图和 PCB 版图,并进行电路板的制作和焊接。
通过实际操作,我对电子电路的设计和制作有了更深入的理解和认识,也提高了自己的动手能力。
4、系统测试与优化在完成了软硬件的开发后,需要对整个系统进行全面的测试和优化。
在测试过程中,我发现了一些程序中的漏洞和硬件电路中的不稳定因素,并通过不断地修改和完善,最终使系统达到了预期的性能指标。
同时,我还对系统的功耗、稳定性和抗干扰能力等方面进行了优化,提高了系统的可靠性和实用性。
四、实习收获与体会1、专业知识和技能的提升通过本次实习,我对单片机的理论知识有了更深入的理解,掌握了单片机的编程、硬件设计和系统调试等方面的技能。
单片机实习报告(精选5篇)
单片机实习报告单片机实习报告(精选5篇)单片机实习报告篇1一、生产实习的目的和意义:生产实习是培养本科学生理论联系实际,提高实际动手操作潜力的重要教学环节。
本专业的生产实习旨在使学生广泛了解实际电子产品生产的全过程,熟悉电子产品的主要技术管理模式,并在实习的操作过程中学习掌握电子产品的焊接安装调试的实际操作技能。
巩固和加深理解所学的理论,开阔眼界,提高潜力,为培养高素质大学本科人才打下必要的基础。
透过学习,是理论与实际相结合,能够使学生加深对所学知识的理解,并为后续专业课的学习带给必要的感性知识,同时使学生直接了解本业的生产过程和生产资料,为将来走上工作岗位带给必要的实际生产知识。
二、实习的基本资料:集中授课,进行相关知识的学习。
学习掌握电子产品的独立性设计与安装调试的潜力;进一步掌握电子测量仪器的正确使用方法,电元器件的测量与筛选技术。
初步了解电子整机产品的工艺过程。
为能使学生得到充分的锻炼,较大的提高学生的实际动手潜力,本次生产实习安排每一位学生独立完成全部系统的设计与安装工作。
本实习环节,学生要独立使用电焊铁及各种电子测试设备电路安装与调试,要学生严格遵守电器设备的使用安全,遵守实验室的各项规章制度。
三、基本要求:在教师的指导下练习在测试电路德核心板上焊接元件,掌握焊接要领。
熟悉元器件的性能及管脚分配。
在给定的PCB板上焊接跳线,IC插座,电阻,电容,LED器件等。
检查焊接是否正确。
插上元器件,运行系统,并观测系统工作是否正常。
四、总体设计电路思想和原理:本次生产实习用到的开发板和模块共7块,分别为:单片机核心板,电子钟模块,MP3模块,RFID模块,无线传输模块,脉搏传感模块,GPS模块。
各模块相互组合,其所能实现的基本功能如下:单片机核心板+电子钟模块:实现时光的显示,温度的测量,且可透过遥控器调时定闹等。
单片机核心板+无线传输模块:实现数据的近距离无线传输。
单片机核心板+MP3模块(含SD卡):实现MP3播放功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一引言 (5)二硬件设计 (5)三软件设计 (5)四调试过程及问题分析 (6)五结论 (7)六参考文献 (7)附件 (8)一引言单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,单片机都起到了举足轻重的作用。
所以单片机技术也日趋成熟。
单片机是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强。
而52系列单片机是各单片机中最为典型和最有代表性的一种。
此次单片机原理及应用实习通过利用52单片机对电子钟的设计,从而达到学习、了解单片机相关指令在各方面的应用,以及初步了解开发软、硬件的知识。
二硬件设计本次单片机原理及应用实习我们组用到的硬件为MCS51开发板和一个LCD12864液晶显示器。
在MCS51开发板中,对于我们组做数字电子钟而言应用到ds1302芯片,蜂鸣器,LED点阵显示屏,STC89S52单片机,锁存器等等硬件设备。
通过对这些硬件的使用实现我们组规定的以及我们拓展的要求。
三软件设计此次基于单片机的电子钟的实习基本要求为:基本要求(1)能通过键盘设定年月日时分秒;(2)在LCD12864上显示年月日时分秒及星期;(3)整点蜂鸣器响6次,每秒响一次,最后一响是整点;(4)按学校的作息时间表定时打铃(可用一个LED灯模拟打铃)扩展要求自动计算和显示阴历基于这些功能,我们用到了如下程序(1) 时钟程序ds1302(2) 按键控制程序keyscan(3) 整点报时程序fengming(4) 作息时间表程序schooltime fengming(5) 显示程序LCD12864(6) 自动计算阴历程序 Chinesecalender(7) 自动计算星期程序conver_week我们最初的整体思路是将我们的实习课题分成几个模块,每个人负责一个部分,争取第一周弄完个人部分.第二周主要进行不同模块的整合,以及整个程序的调试和改进.此外准备答辩的PPT,由组长答辩。
程序设计流程图如下:在这一次单片机原理及应用的实习中,我学到了很多。
虽然整个过程并不是一帆风顺的,但是通过我们的共同努力,最终完成了任务。
充分发挥了团队精神,我们互帮互助,共同提高。
我觉得在拿到一个课题的时候,我们首先应该思考的是干什么?然后才是怎么干?最后是如何优化。
于是我开始上网搜有关电子钟设计的相关资料,我了解到:我们本次是利用MCS51开发板和LCD12864液晶显示器制作的,可以完成计时、计分、几秒和校时、校分的功能。
微处理器是单片机的核心,完成运算和控制的操作串行口数据存储器与复位电路、时钟电路、校时电路由微处理器控制完成各自的任务。
最后通过液晶显示器显示时分秒。
在这次实习中我负责的是显示程序LCD12864,刚开始我对于LCD显示程序并不是太了解。
在校园网上找到了些相关的初步显示程序。
通过LCD12864中的一些程序的调用,才能进行显示,但那是以图片的形式显示的,与我们所期望的显示还是有一定的差别,所以我又做进一步的修改,通过和组员的讨论,我才知道有一个显示汉字的程序是通过字模软件实现的,之后我们的显示这一块就可以依据我们自己的想法进行设计了。
而在整个的程序综合中,也遇到了一些问题。
比如在阴历显示在屏幕上的时候,最初只显示阴历两个字,不显示具体的阴历,后来经过检查发现程序调用出现问题,改正后继续进行优化。
就这样,我们反复的修改调试,最终完成了我们的整个课程设计。
五结论在本次的课程设计中,我们虽然走了些小弯路,但是通过我们的共同努力,最终完成了任务。
我从中我学到了很多,比如团队协作精神,众人拾材火焰高。
任何大问题,在一步一步细化之后,解决起来就轻松得多了!我相信只要付出了就会有收获。
无论什么事情,只有当你用心去做了之后你才会发现它的真实意义所在。
我觉得这一次实习是非常有意义的,不仅提高了专业素养,还培养了我们的合作精神。
我要把握每一次学习的机会,认真对待,为以后的就业及更深层次的发展添砖加瓦。
六参考文献一、谭浩强 C语言课程设计(第三版)清华大学出版社 2005.7二、杨恢先黄辉先单片机原理及应用[M] 北京人民邮电出版社 2006.10三、C编写组编常用C语言速查手册龙门书局 1995附件*********************************初始化LCD*******************************/ void Lcminit (void){ cbyte=DISPOFF;WrL(cbyte);WrR(cbyte);cbyte=DISPON;WrL(cbyte);WrR(cbyte);cbyte=DISPFIRST;WrL(cbyte);WrR(cbyte);Lcmcls();Locatexy(0,0);}/***********************************LCD清屏********************************/ void Lcmcls(void){ uchar i,j;for(i=0;i<8;i++){delay(6);for(j=0;j<LIMIT;j++){delay(6);Wrdata(0x0,i,j);}}}/************************************写左区*********************************/ void WrL(uchar x){P0=0xFF;//P0口送FF,准备读lck = 0;P1 = 0x2a;//ELCD=1 /W=1(读),CSB=1,CSA=0lck = 1;while(P0 & LCDBUZY);//最高位为1,表示忙,则循环lck = 0;P1 = 0x00;//ELCD=0,R/W=0(读),CSB=0,CSA=0lck = 1;P0 = x; //数据送到P0口lck = 0;P1 = 0x22;//ELCD=1,RW = 0(写),CSB=1,CSA=0lck = 1;lck = 0;P1 = 0x00;//ELCD=0,RW = 0(写),CSB=0,CSA=0lck = 1;}void WrR(uchar data x){P0=0xFF;//P0口送FF,准备读lck = 0;P1 = 0x29;//ELCD=1,R/W=1(读),CSB=0,CSA=1lck = 1;while(P0 & LCDBUZY);//最高位为1,表示忙,则循环lck = 0;P1 = 0x00;//ELCD=0,R/W=0(读),CSB=0,CSA=1lck = 1;P0=x; //数据送到P0口lck = 0;P1 = 0x21;//ELCD=1,RW = 0(写),CSB=0,CSA=1lck = 1;lck = 0;P1 = 0x00;//ELCD=0,RW = 0(写),CSB=0,CSA=0lck = 1;}/**********************************显示定位***********************************/ void Locatexy(uchar row,uchar col){ uchar x, y, right;switch(col&0xc0){ case 0:{P0=0xFF;//P0口送FF,准备读lck = 0;P1 = 0x29;//ELCD=1,R/W=1(读),CSB=0,CSA=1lck = 1;while(P0 & LCDBUZY);//最高位为1,表示忙,则循环lck = 0;P1 = 0x00;lck = 1;right = 1;break;}//置右半屏标志case 0x40:{P0=0xFF;//P0口送FF,准备读lck = 0;P1 = 0x2a;//ELCD=1,R/W=1(读),CSB=1,CSA=0lck = 1;while(P0 & LCDBUZY);//最高位为1,表示忙,则循环lck = 0;P1 = 0x00;//ELCD=0,R/W=0(读) CSB=0,CSA=0lck = 1;right = 0;break;}//置左半屏标志}x=col&0x3f|SETX;//把列数据变成行命令y=row&0x07|SETY;//把行数据变成行命令if(right)P1 = 0x29;elseP1 = 0x2a;lck = 1;while(P0 & LCDBUZY);//最高位为1,表示忙,则循环lck = 0;P1 = 0x00;lck = 1;/***********************************以上为判断忙标志**************************/ P0 = y;lck = 0;if(right)P1 = 0x21;elseP1 = 0x22;lck = 1;lck = 0;P1 = 0x00;lck = 1;/************************************以上为送行命令*****************************/ P0=0xFF;lck = 0;if(right)P1 = 0x29;elseP1 = 0x2a;lck = 1;while(P0 & LCDBUZY);//最高位为1,表示忙,则循环lck = 0;P1 = 0x00;lck = 1;/*************************************以上为判断忙标志***************************/ P0 = x;lck = 0;if(right)P1 = 0x21;elseP1 = 0x22;lck = 1;lck = 0;P1 = 0x00;lck = 1;/*************************************以上为送列命令***************************/elsestatu = 0;//置左又半区标志}/*************************************数据写输出*******************************/ void Wrdata(uchar x,uchar row,uchar col){Locatexy(row,col);//定位显示位置lck = 0;if(statu)P1 = 0x05;//ELCD=0 R/W=0(写),D/I= 1 ,CSB=0,CSA=1elseP1 = 0x06;//ELCD=0,R/W=0(写),D/I= 1 ,CSB=1,CSA=0lck = 1;P0 = x;lck = 0;if(statu)P1 = 0x25;//ELCD=1,R/W=0(写),D/I= 1 ,CSB=0,CSA=1elseP1 = 0x26;//ELCD=1,R/W=0(写),D/I= 1 ,CSB=1,CSA=0lck = 1;lck = 0;P1 = 0x00;lck = 1;}/**********************************半角数据点阵输出******************************/ void Puthalf(uchar *strch,uchar row,uchar col){uchar i,bakerx;bakerx = row;for(i=0;i<16;i++)//上半字输出{ cbyte=strch[i];Wrdata(cbyte,bakerx,col);cbyte=strch[i+1];Wrdata(cbyte,bakerx+1,col);col++;i++; }}void Puthz(uchar *str,uchar row,uchar col){uchar i,bakerx;bakerx=row;for(i=0;i<32;i++)cbyte=str[i];Wrdata(cbyte,row,col); //上半字节输出i++;row=bakerx+1;cbyte=str[i];Wrdata(cbyte,row,col); //下半字节输出row=bakerx;col=col+1;}}/****************************字符型点阵行--》列转换************************/void VtoH8x16change(uchar *hzbuf){ uchar i,j,k, cash[16];uchar newbyte, savebit[8];for(k=0;k<16;k++){newbyte = 0;for(i=0;i<8;i++){savebit[i]=hzbuf[i] & 0x80;}for(j=0;j<8;j++){savebit[j] = savebit[j] >> (7-j);newbyte = newbyte | savebit[j]; }cash[k] = newbyte;newbyte = 0;for(i=8;i<16;i++){savebit[i-8]=hzbuf[i] & 0x80; }for(j=0;j<8;j++){savebit[j] = savebit[j] >> (7-j);newbyte = newbyte |savebit[j]; }cash[k+1] = newbyte;for(j=0;j<16;j++){hzbuf[j] = hzbuf[j] <<1; }k++; }for(i=0;i<16;i++)hzbuf[i] = cash[i]; }/*******************************显示英文和符号字符*******************************/ void vWrite8x16Character(uchar *ch,uchar row,uchar col,bit flag){uchar ucXArray[16],i;if(flag){ // 反白显示英文for(i = 0; i < 16; i++)ucXArray[i] = ~ch[i];}else{for(i = 0; i < 16; i++)ucXArray[i] = ch[i]; }VtoH8x16change(ucXArray);Puthalf(ucXArray,row,col);}void vWrite8x16String(uchar *str,uchar row, uchar col, bit flag){unsigned char i, j,thiscol;j = strlen(str);for(i = 0; i < j; i++){ thiscol = (i % 16) * 8 + col;//计算列地址if(str[i] < 0xa1)//当前显示内容为英文字符vWrite8x16Character(&char_Table[str[i]-0x20][0],row,thiscol,flag); }}/************************v_RTInputByte*************************/void v_RTInputByte(uchar ucDa){uchar i;ACC = ucDa;for(i=8; i>0; i--){T_IO = ACC0; /*相当于汇编中的RRC */T_CLK = 1;T_CLK = 0;ACC = ACC >> 1;}}/********************** uchar uc_RTOutputByte*************************/uchar uc_RTOutputByte(void){uchar i;for(i=8; i>0; i--){ACC = ACC >>1; /*相当于汇编中的RRC */ACC7 = T_IO;T_CLK = 1;T_CLK = 0;}return(ACC);}/************************v_W1302 *************************************/void v_W1302(uchar ucAddr, uchar ucDa){lck = 0;P1 = 0x00;lck = 1;T_CLK = 0;lck = 0;P1 = 0x10;lck = 1;v_RTInputByte(ucAddr); /* 地址,命令*/v_RTInputByte(ucDa); /* 写1Byte数据*/T_CLK = 1;lck = 0;P1 = 0x00;lck = 1;}/**************************uc_R1302***********************************/uchar uc_R1302(uchar ucAddr){uchar ucDa;lck = 0;P1 = 0x00;lck = 1;T_CLK = 0;lck = 0;P1 = 0x10;lck = 1;v_RTInputByte(ucAddr); /* 地址,命令*/ucDa = uc_R TOutputByte(); /* 读1Byte数据*/T_CLK = 1;lck = 0;P1 = 0x00;lck = 1;return(ucDa);}/************************* v_Set1302 *********************************/void v_Set1302(uchar *pSecDa){uchar i;uchar ucAddr = 0x80;v_W1302(0x8e,0x00); /* 控制命令,WP=0,写操作?*/for(i =7;i>0;i--){v_W1302(ucAddr,*pSecDa); /* 秒分时日月星期年*/pSecDa++;ucAddr +=2;}v_W1302(0x8e,0x80); /* 控制命令,WP=1,写保护?*/}/*******************************v_Get1302**************************************/void v_Get1302(uchar ucCurtime[]){uchar i;uchar ucAddr = 0x81;for (i=0;i<7;i++){ucCurtime[i] = uc_R1302(ucAddr);/*格式为: 秒分时日月星期年*/ucAddr += 2;delay(100);}}/**********************************屏幕显示*********************************/ void pingmu(){uchar disp,copymt;uchar temp;copymt = 0xff;P0=0xff;v_Get1302(&buffer); //读取DS1302Conver_week(0,buffer[6],buffer[4],buffer[3]);Chinesecalender(0,buffer[6],buffer[4],buffer[3]) ;disp = buffer[0] % 0x10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],2,100,0);//秒个位temp =buffer[0] & 0x7f;temp = temp/16;disp = temp%10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],2,92,0);//秒十位copymt = buffer[1];disp = buffer[1] % 0x10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],2,68,0);//分个位temp =buffer[1] & 0x7f;temp = temp/16;disp = temp%10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],2,60,0);//分十位disp = buffer[2] % 0x10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],2,30,0);//时个位temp =buffer[2] & 0x7f;temp = temp/16;disp = temp%10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],2,22,0);//时十位disp = buffer[3] % 0x10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],0,100,0);//日个位temp =buffer[3] & 0x7f;temp = temp/16;disp = temp%10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],0,92,0);//日十位disp = buffer[4] % 0x10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],0,68,0);//月个位temp =buffer[4] & 0x7f;temp = temp/16;disp = temp%10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],0,60,0);//月十位disp = buffer[6] % 0x10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],0,30,0);//年个位temp =buffer[6] & 0x7f;temp = temp/16;disp = temp%10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],0,22,0);//年十位disp = buffer[7] % 0x10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],0,14,0);//年百位temp =buffer[7] & 0x7f;temp = temp/16;disp = temp%10 + '0';vWrite8x16Character(&char_Table[disp-0x20][0],0,6,0);//年千位}。