电子技术综合实践
- 格式:doc
- 大小:2.50 MB
- 文档页数:32
电⼯电⼦技术实训总结范⽂3篇电⽓技术实训教学分析【摘要】随着电⽓使⽤范围的不断扩⼤,应运⽽⽣了很多学科,电⽓技术就是其中的⼀科。
电⽓技术这门学科包括了电⼯、电⼦技术、电⽓⼯程等⽅⾯的内容,⽽电⽓技术的实训教学是电⽓技术这门学科重要的内容,这其中最重要实训教学中的实践性环节包括了电⼯的实训、电⼦技术的实训、电⽓⼯程的设计等内容。
是学⽣把在课堂中学到的知识和技能从理论转化为实践的重要环节。
在当今激烈的环境和就业竞争当中,电⽓实训在提⾼电⼯技能⽅⾯发挥着重要的作⽤。
本⽂从实训教学⽅⾯提⾼⾼职技校电⽓专业学⽣在电⽓技术⽅⾯的实践和运⽤能⼒,提⾼就业率。
【关键词】技术院校电⽓技术实训教学【中图分类号】G64 【⽂献标识码】A 【⽂章编号】2095-3089(2013)08-0248-01电⽓设备包括了以⽣产、传输、分配和使⽤为主的电能的应⽤和电⼯装备等,是电能和电⼯装备制造学科及⼯程领域内的总称。
电⽓技术是⼀门通过电能、电⽓设备和电⽓技术等⼿段实现创造、维持与改善限定空间和环境的⼀门学科,电⽓技术涉及的范围及其⼴泛,涵盖了电能的转换与利⽤、研究,电⽓技术的教学包括了基础理论的教学、设施设备的教学、技术的应⽤和实训的教学等。
本⽂主要以电⼯的实训教学作为主要内容进⾏分析,从电⽓实训教学的重要性出发,分别从电⼯的实训、电⼦技术的实训、电⽓⼯程的设计等⽅⾯进⾏实训教学的分析、阐述和探究,从⽽提⾼电⽓技术在实训教学⽅⾯的质量和效率。
作为以电⼦电⽓类专业为主的⾼职技术院校⽽⾔,提⾼学⽣的电⽓技术在实训⽅⾯是保证学⽣就业的重要途径之⼀,因此,对于电⼦技术专业的学⽣来说,电⼦技术的实训教学具有重要意义[1]。
电⽓技术是以电⽓为主的⼀门新兴学科,在电⼯装备和⼯程领域之内具有重要作⽤,电⽓技术所应⽤到的范围⼗分⼴泛。
随着电⽓技术的不断发展,电⽓技术的应⽤范围越来越⼴,伴随着数字化、模块化、智能化及软件化的各种电⼯和电⼦仪器及设备的发展,使得业内对电⽓技术⼈才的专业技术提出了更⾼的要求。
电子技术课程群“三段式”实践教学模式研究在电子技术课程群中,包含着模拟电子技术、数字电子技术、数字电路技术、EDA仿真设计、单片机接口技术、数字系统设计以及其他相关的电子技术课程。
目前,很多课程在具体的实验内容安排以及实践能力培养方面还存在一些问题,很多课程只是考虑自身的课程内容,各个课程之间缺乏联系,这样使得本来是联系的课程变成了相对孤立的教学模式,实践能力不能满足阶段式培养的要求,课程之间缺乏衔接,这样的课程培养出来的学生无法建立电子系统的整体意识,不利于培养学生的综合实践能力,所以也就无法培养创新能力。
一、明确目标,完善实践教学体系要坚持“获取知识、掌握技能和培养能力”为教学主线,注重体重学生的综合能力和创新能力,妥善使用模拟电子技术、数字电子技术、EDA仿真技术、单片机接口技术和数字系统设计等电子技术类课程,将这些课程整合成一个课程群,集体进行建设,从专业教育到认识学习,再到理论实践,再到大学生科技创新项目,再到电子设计竞赛,然后进行生产实习最终完成毕业设计,由局部发展到整体,将教学实践课程贯穿到整个大学的不同学期,并且要注意在各个课程之间多加沟通,不断对教学实践体系进行完善。
(一)应用现代教育技术一定要在实践教学中多多应用先进的教学手段,根据实际需要编制各种仿真实现模拟系统以及课件,合理运用网络,建设实践教学系统,通过网络来拓宽学生获取知识的途径和渠道。
(二)增设前沿实验项目目前国家正处在高速发展的过程中,对人才的需求不斷提高,相关的人才知识结构也在发生着变化,逐步增设了电子技术、光机电一体化以及各种各样的先进的机械设备,大力发展自动化,这些都要求我们培养更广泛的人才来适应社会发展的需要。
(三)发挥科研优势的促进作用依托各个学科,在实践教学中引进科研成果,不断对实践教学内容进行更新和丰富,可以有效开阔学生的视野,提高学生的学习热性,进一步激发学生的创造能力。
(四)课内实验和课外实验相结合在实行实践教学的改革之后,课内实践是根据大纲要求设置的必修实验课,是面向所有的学生的;课外时间主要是依据学生的个人爱好以及能力,针对一些个人能力较强的学生设置的,一般课程内容已经超出了大纲的要求。
电子技能与训练教案一、教学目标1. 知识与技能:(1)了解电子技术的基本概念和原理;(2)掌握电子元件的识别和使用方法;(3)学会简单的电子电路搭建和调试方法。
2. 过程与方法:(1)通过观察、实验和操作,培养学生的动手能力和实践能力;(2)通过分析、讨论和探究,培养学生的思维能力和问题解决能力。
3. 情感态度与价值观:(1)培养学生对电子技术的兴趣和好奇心;(2)培养学生勇于探索、积极向上的科学精神。
二、教学内容1. 电子技术的基本概念和原理(1)电子、电子器件和电子电路的概念;(2)电子技术的基本定律和原理。
2. 电子元件的识别和使用方法(1)常见电子元件的名称、符号和功能;(2)电子元件的测量和使用方法。
3. 简单的电子电路搭建和调试方法(1)基本电路连接方法;(2)电路调试与故障排除。
三、教学重点与难点1. 教学重点:(1)电子技术的基本概念和原理;(2)电子元件的识别和使用方法;(3)简单的电子电路搭建和调试方法。
2. 教学难点:(1)电子元件的测量和使用方法;(2)电路调试与故障排除。
四、教学方法与手段1. 教学方法:(1)讲授法:讲解电子技术的基本概念和原理;(2)演示法:展示电子元件和电路的实物或图片;(3)实践操作法:学生动手搭建和调试电路;(4)小组讨论法:学生分组讨论和解决问题。
2. 教学手段:(1)多媒体课件:展示电子元件和电路的图片、动画和视频;(2)实物或模型:展示电子元件和电路的实物或模型;(3)实验器材:进行电路搭建和调试实验。
五、教学评价1. 过程性评价:观察学生在课堂上的参与程度、动手能力和问题解决能力;2. 结果性评价:评估学生在课后作业、实验报告和考试中的表现;3. 综合性评价:结合学生的课堂表现、作业和实验结果,综合评价学生的电子技术水平和实践能力。
六、教学资源1. 教材:《电子技术基础》2. 教辅资料:电子元件图册、电路原理图、实验指导书3. 实验器材:电子元件、实验板、万用表、电路调试器等4. 多媒体课件:电子技术基本概念、原理讲解、电路示例等5. 网络资源:电子技术相关网站、论坛、视频教程等七、教学进度安排1. 第一课时:电子技术的基本概念和原理2. 第二课时:电子元件的识别和使用方法3. 第三课时:简单的电子电路搭建和调试方法4. 第四课时:电路故障排除与调试5. 第五课时:综合实践活动:设计并搭建一个简单的电子电路八、教学反馈与调整1. 课堂反馈:观察学生的课堂表现,及时了解学生在学习过程中的困惑和问题;2. 作业反馈:通过作业批改,了解学生对课堂所学知识的理解和掌握程度;3. 实验反馈:通过实验报告,评估学生在实践操作中的表现和问题;4. 教学调整:根据学生反馈和评估结果,及时调整教学内容、方法和手段,以提高教学效果。
第1篇日期:2023年3月15日地点:XX大学综合实践基地一、实践背景随着我国高等教育的不断发展,实践教学在培养学生综合素质、提高学生实际操作能力方面发挥着越来越重要的作用。
为了使同学们更好地将理论知识与实际操作相结合,提高实践能力,我校组织了一次为期一周的综合实践教学活动。
本次实践活动旨在让学生在实践中了解专业知识,培养创新精神和实践能力。
二、实践内容1. 实践课程安排本次实践活动共安排了5门课程,分别是:机械设计基础、电子技术、计算机应用、化学实验和市场营销。
每门课程都有相应的实践项目和指导教师。
2. 实践项目介绍(1)机械设计基础:通过对机械设备的基本结构、工作原理及设计方法的学习,培养学生运用所学知识解决实际问题的能力。
(2)电子技术:通过组装和调试电子电路,使学生掌握电子技术的基本原理和操作技能。
(3)计算机应用:学习计算机操作系统、办公软件、编程语言等,提高学生的计算机应用能力。
(4)化学实验:通过实验操作,使学生掌握化学实验的基本技能,提高学生的实验操作能力和科学素养。
(5)市场营销:学习市场营销的基本理论,了解市场调查、产品策划、营销策略等,提高学生的市场意识和营销能力。
三、实践过程1. 第一天:实践课程开班仪式上午,召开了实践课程开班仪式。
校领导、指导教师及全体学生参加了仪式。
仪式上,校领导对本次实践活动提出了要求,强调了实践的重要性,并对学生提出了希望。
2. 第二天至第五天:实践课程学习(1)机械设计基础:学生分组进行机械设备拆装,学习基本结构和工作原理。
随后,学生运用所学知识进行机械设计,完成设计图纸。
(2)电子技术:学生分组进行电子电路组装,学习电子元件的识别和焊接技术。
随后,学生调试电路,使电路正常工作。
(3)计算机应用:学生分组进行计算机操作练习,学习操作系统、办公软件和编程语言。
随后,学生完成编程任务,实现功能。
(4)化学实验:学生分组进行化学实验,学习实验操作技能。
电子科学与技术专业实验实践体系改革的探索与实践陈鹤鸣,范 红,钱 晨,施伟华,徐 宁,孙晓芸(南京邮电大学光电工程学院,江苏南京210003)基金项目南京邮电大学教学改革研究项目第一作者陈鹤鸣(582),男,江苏吴江人,8年毕业于南京邮电大学,理学士,教授,目前主要从事光通信与光电子技术的研究。
摘 要:实验实践教学是工科院校教学活动的重要组成部分,实验实践能力培养是素质教育的重要内容。
本文结合我校电子科学与技术品牌专业建设的实际,介绍了该专业实验实践体系改革的探索,总结了初步的实践效果。
关键词:电子科学与技术;实验实践体系;探索与实践Ref or m and Practice of the Exper imental TeachingSystem for Electr on ic Science and TechnologyCHEN H e 2ming;FAN H ong;QIAN Chen ;SHI Wei 2hua ;XU Ning;SUN Xiao 2yun(Col lege of Opt oelect ronc Engi neerin g ,Nanj i n g Uni versi t y of Post s and Telecommunicati ons ,Nan j in g 210003,China )Abstract :The experi ment al t eachi ng i s a n i mport ant part of t he elect ronic science and t echnology subject.The co nst r uct ing of experimental teachi ng System for elect ronic science a nd technology wa s int roduced ,and t he mai n content s of experi ment al t eachi ng syst em were de scri bed.K eyw or ds :experi me nt al t eachi ng ;laboratory const r uct ;experi ment set up0 引言实验实践教学是高等教育结构中的重要组成部分,它对于学生思想政治素质、工程素质、科学素质、文化素质、身心素质等综合素质的培养具有不可替代的作用,尤其是对于学生创新能力的培养,具有其独特的地位和作用,它是高等学校培养人才这一系统工程中的一个重要环节。
2022年12月第49期Dec. 2022No.49教育教学论坛EDUCATION AND TEACHING FORUM“电子系统综合设计”的实践教学设计研究郜东瑞,汪曼青(成都信息工程大学 计算机学院,四川 成都 610225)[摘 要] 围绕以成果为导向的教育理念,在计算机学院配合电子系统综合设计课程,开展实践教学设计。
实践教学设计通过设计开发综合类的电子系统,聚焦学以致用,培养学生理论知识和专业技能,提高学生解决工程问题的能力,培养学生统筹工程开发的综合素养。
结合成都信息工程大学的实际,开展面向注意力在线监测系统的电子系统综合设计,带领学生完成任务规划、电路设计、嵌入式开发、软件开发、系统集成,并进行注意力监测的实验验证。
总结了教学体会并拓展改革思路,对引导计算机专业学生实现OBE的课程目标具有参考意义。
[关键词] OBE;注意力监测系统;综合设计实践[作者简介] 郜东瑞(1987—),男,河南南阳人,博士,成都信息工程大学计算机学院副教授,主要从事人工智能、脑机接口研究;汪曼青(1989—),女,重庆人,博士,成都信息工程大学计算机学院讲师(通信作者),主要从事人工智能、脑机接口研究。
[中图分类号] G642 [文献标识码] A [文章编号] 1674-9324(2022)49-0119-04 [收稿日期] 2022-04-12引言成果导向教育(OBE)是一种以学习成果为导向的工程教育理念,通过目标—措施—评价的闭环结构,以学生为主体,以学到了什么为目的,重点培养学生进入工作岗位后所具备分析问题和解决问题的能力[1-2]。
相比于传统教育模式,OBE教学理念将以教师为中心转变为以学生为中心,面向学生的专业设置、毕业要求和职业目标,设计教学方法、教学内容和课程体系,有利于教学相长和学习效果的持续改进,已成为工科课程教学改革的新方向[3-4]。
因此,笔者结合所在院校的培养目标,以“电子系统综合设计”课程为例,构建综合系统设计课程的教学内容、教学技巧和教学考核,达到串联学生已有知识、培养学生的动手能力、提升综合素质的目的。
电子科大综合课程设计一、课程目标知识目标:1. 让学生掌握电子科大综合课程的基本理论知识,如电路原理、电子器件、信号与系统等;2. 帮助学生了解电子科技领域的发展动态和前沿技术;3. 使学生能够运用所学知识分析和解决实际问题。
技能目标:1. 培养学生动手实践能力,能够正确使用电子仪器、设备和软件工具;2. 提高学生的团队协作能力和沟通表达能力,能在项目中进行有效分工与协作;3. 培养学生独立思考和创新能力,能够针对实际问题提出解决方案。
情感态度价值观目标:1. 培养学生热爱电子科技事业,树立为我国电子科技发展贡献力量的信念;2. 培养学生具有严谨的科学态度和良好的职业道德,遵循学术规范;3. 增强学生的环保意识和社会责任感,关注电子科技对环境和社会的影响。
课程性质:本课程为综合实践课程,结合理论知识与实践操作,旨在培养学生的综合素质。
学生特点:学生具备一定的电子科技基础知识,具有较强的求知欲和动手能力。
教学要求:教师需注重理论与实践相结合,关注学生的个体差异,提高课程的趣味性和实用性。
通过课程教学,使学生在知识、技能和情感态度价值观方面取得具体的学习成果,为将来的学术研究和职业发展打下坚实基础。
二、教学内容本课程教学内容主要包括以下几部分:1. 电路原理:讲解基本电路元件、电路分析方法以及电路设计原理,结合教材相关章节,让学生掌握电路的基本知识。
2. 电子器件:介绍常用电子元器件的原理、特性及应用,如晶体管、运算放大器等,结合教材内容,使学生能够正确选用电子元器件。
3. 信号与系统:讲解信号的分类、特性,系统分析方法和数字信号处理技术,依据教材章节,让学生了解信号与系统的基本理论。
4. 电子制作实践:开展综合性实践项目,培养学生动手能力,包括电路焊接、调试、故障排查等,结合教材实践环节,提高学生实际操作技能。
5. 前沿技术讲座:邀请行业专家进行专题讲座,让学生了解电子科技领域的前沿动态和发展趋势。
第1篇一、课程背景随着我国教育改革的不断深入,实践教学在培养学生综合素质、提高学生实践能力方面发挥着越来越重要的作用。
综合实践教学课程旨在通过理论与实践相结合的方式,培养学生的创新意识、实践能力和团队合作精神,使其具备适应社会发展需求的专业素质。
本课程标准依据《国家中长期教育改革和发展规划纲要》和《普通高等学校本科专业目录》的相关要求,结合我校实际情况制定。
二、课程目标1. 知识目标:(1)使学生掌握综合实践教学的内涵、原则和方法;(2)使学生了解我国实践教学的发展现状及趋势;(3)使学生掌握所学专业的基本理论和基本技能。
2. 能力目标:(1)培养学生发现问题、分析问题和解决问题的能力;(2)培养学生动手操作、创新实验的能力;(3)培养学生团队协作、沟通与表达能力;(4)培养学生自主学习、终身学习的能力。
3. 素质目标:(1)培养学生的社会责任感、使命感;(2)培养学生的创新精神、创业意识;(3)培养学生的道德品质、人文素养;(4)培养学生的身心健康、心理素质。
三、课程内容1. 综合实践教学概述(1)综合实践教学的定义、特点及意义;(2)综合实践教学的内涵、原则和方法;(3)我国实践教学的发展现状及趋势。
2. 实践教学项目设计(1)实践教学项目的选题与立项;(2)实践教学项目的设计与实施;(3)实践教学项目的成果评价。
3. 实践教学环节(1)实践教学的组织与管理;(2)实践教学的过程监控与反馈;(3)实践教学的成绩评定。
4. 实践教学案例分析(1)国内外实践教学的成功案例;(2)实践教学中的常见问题及解决方法;(3)实践教学对人才培养的影响。
5. 实践教学与课程思政(1)实践教学与课程思政的融合;(2)实践教学中的思想政治教育;(3)实践教学与社会主义核心价值观的培育。
四、教学安排1. 学时分配本课程共计48学时,其中理论教学24学时,实践教学24学时。
2. 教学方式(1)讲授法:教师系统讲解实践教学的理论知识,引导学生掌握实践教学的内涵、原则和方法;(2)案例分析法:通过分析国内外实践教学的成功案例,培养学生的实践能力;(3)实践操作法:组织学生参与实践教学项目,让学生在实践中掌握所学知识;(4)讨论法:鼓励学生积极参与课堂讨论,提高学生的团队协作和沟通能力。
电子行业电子信息工程综合实验1. 实验目的本实验旨在通过综合实践,加深学生对电子行业电子信息工程领域的理解,提升其实际操作能力。
2. 实验背景电子行业的快速发展使得电子信息工程成为当今一个重要的领域。
电子信息工程是以电子技术为基础,涉及电磁场、数字电路设计、通信原理、嵌入式系统等多个学科的综合性学科。
为了加深学生对电子信息工程的理解,我们设计了该综合实验,让学生能够在实践中运用所学知识,加深对电子信息工程的了解。
3. 实验内容本实验的主要内容包括电子电路设计、数字信号处理、通信原理和嵌入式系统等方面的综合实践。
3.1 电子电路设计通过使用常用的电子元器件,进行电子电路设计和仿真。
学生将学会使用软件工具进行电路设计和分析,理解电子元器件的特性和工作原理,实现功能性电路的设计和模拟。
3.2 数字信号处理学生将学习数字信号处理的基本概念和方法,并通过实验掌握数字滤波器设计、信号采样和量化等基本技术。
本实验将引导学生使用MATLAB等软件进行数字信号处理算法的设计和仿真,加深对数字信号处理的理解。
3.3 通信原理学生将学习基本的通信理论和技术,并通过实验掌握调制解调技术、信道编码等基本通信原理。
本实验将引导学生使用软件工具进行通信系统的建模和仿真,加深对通信原理的理解。
3.4 嵌入式系统学生将学习嵌入式系统的基本概念和设计方法,并通过实验掌握嵌入式软件开发、硬件和软件的协同设计等基本技术。
本实验将引导学生使用开发工具进行嵌入式系统设计和调试,加深对嵌入式系统的理解。
4. 实验要求学生参与该实验需要具备一定的电子学和计算机基础知识。
实验过程中,学生需要注重实践操作能力的培养,同时要注重思考和分析能力的提升。
具体要求如下: - 按照实验指导书完成实验的设计、搭建、测试和分析;- 遵循安全操作规范,注意实验设备的保护和使用; - 实验报告需详细记录实验过程和结果,对实验数据进行分析和总结。
5. 实验步骤5.1 电子电路设计实验步骤1.熟悉实验所需的电子元器件,并进行组装;2.使用电路设计软件进行电路拓扑设计,包括电源、信号源以及各个元器件的连接;3.进行电路仿真,分析电压、电流、功率等电路参数;4.调整电路参数,优化电路性能;5.记录实验过程和结果,撰写实验报告。
Xx 大学电子技术综合实践报告设计题目:多功能数字电子表专业:电子信息科学与技术班级学号:学生姓名:指导教师:设计时间:小组成员:多功能数字电子表一、设计任务与要求1.实践任务:运用单片机89c52实现多功能电子表的设计与运行2.基本要求:显示时分秒,时间调节与设置功能,秒表功能,计数功能,闹钟功能。
3.提高要求:运用18b20芯片实时监测周围温度。
二、方案设计与论证1.整体方案论证本数字电子表系统以stc89c52单片机为核心控制器,对系统进行初始化,完成对按键,led数码管显示的控制等功能,以及完成各模块通信协调的功能,时钟芯片da1302不断将时间信号送往单片机,然后单片机通过Led数码管将时间显示出来,按键将信号传递给单片机处理,借以实现对时间的设置,可以对年,月,日,时,分,秒进行设定,还可以通过对闹钟时间进行设置实现定时闹钟的功能,通过温度传感器将温度信号传递给单片机,然后单片机通过led数码管将温度显示出来,达到温度显示的功能。
另外,秒表功能有开始,中止,复位来控制,以led数码管显示,计数器则由按键控制计数。
最终由6v电源供电。
最终实现以下6个功能:1)实现电子表的时,分,秒的显示2)实现电子表对时间等的设定3)实现秒表功能4)实现计数器功能5)实现闹钟报警功能6)实现温度实时监测显示功能2.模块的分类1)stc89c52单片机主控模块设计初期,我们有如下两种以单片机为核心的主控方式可选:1.采用stc89c52单片机作为数字电子表主控核心,运用flash rom,搭载有4Kb rom 内部存储空间,能够在3v的低压电源下工作,与mcs-52系列单片机具有完全兼容性,缺点是没有isp在线编程技术,运用于电路设计时,如果对程序进行增添新功能或修改程序不方便控制。
2.采用stc89c52单片机作为数字电子表主控核心,搭载flash rom为片内rom,在6v电源工作,对于编程技术可以有效的修改的方式。
综上考虑选择第二种。
2)DS1302时钟电路模块在时钟电路模块的设计中,我也想了两种方案:1.利用单片机本身自带功能实现定时计数功能,通过程序编写来实现对年,月,日,时,分,秒的计时。
通过外部晶振提供准确时钟,采用11.0592的晶振。
但是不宜断电保护。
2.采用时钟芯片ds1302进行计时,然后时间信号交给单片机处理通过led数码管显示出来。
此方案中ds1302性价比高,性能优越,耗电量少,具有计时功能,还有闰年补偿功能,节省了单片机资源且便宜,但控制难度增加。
综合考虑选择第二种方案。
3)led数码管显示模块开始有led数码管和lcd液晶显示屏两种方案,由于对led数码管更为熟悉好用,选择方案一。
4)温度测试模块闹钟模块采用了方便易用且价格低廉的数字温度传感器ds18b20实现。
优点是使用方便,报警选择蜂鸣器。
5)键盘扫描电路模块该电路通过编写相应的程序即能实现功能,在此不再赘述。
三、电路设计原理1)元器件Stc89c52单片机一个Ds1302时钟芯片一个Ds18b20温度芯片一个led数码管六个蜂鸣器一个按键三个2)电路图原理图四、软件编程1.软件流程图2.实物图3.主程序/*=================================================================== =调试要求:1.MCU:AT89S52芯片或AT89C522.晶振:12MHz功能:多功能时钟+温度计====================================================================* /#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit dis_bit1=P2^7;//定义数码管控制口sbit dis_bit2=P2^6;//定义数码管控制口sbit dis_bit3=P2^4;//定义数码管控制口sbit dis_bit4=P2^3;//定义数码管控制口sbit dis_bit5=P2^1;//定义数码管控制口sbit dis_bit6=P2^0;//定义数码管控制口sbit led1_bit=P2^2;//定时LED的控制口sbit led2_bit=P2^5;//定时LED的控制口sbit s1_bit=P1^0; //定义S1控制口sbit s2_bit=P1^1; //定义S2控制口sbit s3_bit=P1^2; //定义S3控制口sbit dq_ds18b20=P3^3;//定义控制DS18B20sbit speak=P3^7; //定义蜂鸣器控制口sbit clk_ds1302=P3^6;//定义控制DS1302的时钟线sbit io_ds1302=P3^5;//定义控制DS1302的串行数据sbit rest_ds1302=P3^4;#define smg_data P0//定义数码管数据口void delay_3us();//3US的延时程序void delay_8us(uint t);//8US延时基准程序void delay_50us(uint t);//延时50*T微妙函数的声明void display1(uchar dis_data);//数码管1显示子程序void display2(uchar dis_data);//数码管2显示子程序void display3(uchar dis_data);//数码管3显示子程序void display4(uchar dis_data);//数码管4显示子程序void display5(uchar dis_data);//数码管5显示子程序void display6(uchar dis_data);//数码管6显示子程序void init_t0();//定时器0初始化函数void dis_led();//LED处理函数void judge_s1();//S1按键处理函数void judge_s2();//S2按键处理函数void judge_s3();//S3按键处理函数void dis(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1);//显示子程序void dis_san(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1,uchar san);//闪烁显示子程序void judge_dis();//显示处理函数void judge_clock();//显示处理函数void set_ds1302();//设置时间void get_ds1302();//读取当前时间void w_1byte_ds1302(uchar t);//向DS1302写一个字节的数据uchar r_1byte_ds1302();//从DS1302读一个字节的数据//******************************************************************* ****//DS18B20测温函数定义void w_1byte_ds18b20(uchar value);//向DS18B20写一个字节uchar r_1byte_ds18b20(void);//从DS18B20读取一个字节的数据void rest_ds18b20(void);//DS18B20复位程序void readtemp_ds18b20(void);//读取温度void dis_temp();//温度显示函数//共阳数码管断码表const uchar tabl1[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,// 0 1 2 3 4 50x82,0xf8,0x80,0x90,0x86,0x87,0xFF,//6 7 8 9 E T B0xc6,0xbf,0xff};// C -const uchar tabl3[]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};//温度内部计算用uchar t0_crycle;uchar hour_count,minute_count,second_count,msecond_count;uchar clock_hour,clock_minute;uchar countdown_second;uchar countdown_hour,countdown_minute;uchar clock_en;//闹钟关闭和开启的标志,1开启,0关闭uchar flag1,second_flag,zancun1,zancun2,zancun3;uchar zancun4,zancun5,zancun6,zancun7;uchar clock_flag,countdown_flag;uchar msecond_minute,msecond_second,msecond_msecond,msecond_flag;//秒表相关参数uint speak_count;uchar templ,temph,temp_flag;uchar t_b,t_s,t_g,t_x,temp_flag2;//从左到右分别存储温度百位,十位,个位,小数位uchar tab23[3];//={0x40,0x59,0x23,0x28,0x11,0x06,0x09};//上电时默认的时间//主程序void main(){P3=0x00;flag1=0;zancun3=0;msecond_minute=0;//置秒表相关参数为0msecond_second=0;msecond_msecond=0;speak=1;//关闭蜂鸣器speak_count=0;clock_hour=0;clock_minute=0;clock_flag=0;countdown_flag=0;//倒计时标志位为0clock_en=0;//开机时默认关闭闹钟init_t0();TR0=1;//// set_ds1302();//设置DS1302的初始时间//接下来开始编写让数码管显示的程序while(1){get_ds1302();judge_dis();//显示处理judge_s1();judge_s2();judge_s3();judge_clock();//闹钟处理程序}}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;t0_crycle++;if(t0_crycle==2)// 0.1秒{t0_crycle=0;msecond_flag=1;msecond_count++;if(msecond_count==10)//1秒{msecond_count=0;second_flag=1;}}}//************************************************** //显示处理函数void judge_dis(){if(flag1==0){if(second_flag==1){zancun7++;second_flag=0;}if(zancun7<1){if(temp_flag2==1){readtemp_ds18b20();//读取温度temp_flag2=0;}dis_temp();//温度显示函数}if(zancun7>=1){temp_flag2=1;zancun4=hour_count&0xf0;zancun4>>=4;zancun5=minute_count&0xf0;zancun5>>=4;zancun6=second_count&0xf0;zancun6>>=4;dis(zancun4,hour_count&0x0f,zancun5,minute_count&0x0f,zancun6,second_ count&0x0f);dis_led();if(zancun7==5)zancun7=0;}}if(flag1!=0){switch(flag1){case 1:dis(5,10,11,1,12,12);//显示SET1led1_bit=1;led2_bit=1;break;case 2:dis(5,10,11,2,12,12);//显示SET2break;case 3:dis(5,10,11,3,12,12);//显示SET3break;case 4:dis(5,10,11,4,12,12);//显示SET4break;case 5:dis(5,10,11,5,12,12);//显示SET5break;case 6:dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,12,1);break;case 7:dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,12,2);break;case 8:dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,12,3);break;case 9://进入修改时间,时间分位个位闪烁dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,12,4);break;case 10://进入修改闹钟,闹钟小时十位闪烁dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,1); break;case 11://进入修改闹钟,闹钟小时个位闪烁dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,2); break;case 12://进入修改闹钟,闹钟小时十位闪烁dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,3); break;case 13://进入修改闹钟,闹钟小时个位闪烁dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,4); break;case 14://进入修改闹钟的开关dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,6); break;case 15:dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,zancun3/10,zancun 3%10,1);break;case 16:dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,zancun3/10,zancun 3%10,2);break;case 17:dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,zancun3/10,zancun 3%10,3);break;case 18:dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,zancun3/10,zancun 3%10,4);break;case 19:dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,zancun3/10,zancun 3%10,5);break;case 20:dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,zancun3/10,zancun 3%10,6);break;case 21:if(second_flag==1){second_flag=0;countdown_second--;if(countdown_second==255){countdown_second=59;countdown_minute--;if(countdown_minute==255){countdown_minute=59;countdown_hour--;if(countdown_hour==255){flag1=22;countdown_minute=0;countdown_hour=0;countdown_second=0;countdown_flag=1;}}}}dis(countdown_hour/10,countdown_hour%10,countdown_minute/10,countdown _minute%10,countdown_second/10,countdown_second%10);//break;case 22:if(countdown_flag>0 && countdown_flag<7){speak=0;if(second_flag==1){second_flag=0;countdown_flag++;}}else{speak=1;}dis(countdown_hour/10,countdown_hour%10,countdown_minute/10,countdown _minute%10,countdown_second/10,countdown_second%10);//break;case 23:dis(msecond_minute/10,msecond_minute%10,msecond_second/10,msecond_sec ond%10,msecond_msecond%10,12);break;case 24:if(msecond_flag==1){msecond_flag=0;msecond_msecond++;if(msecond_msecond==10){msecond_msecond=0;msecond_second++;if(msecond_second==60){msecond_second=0;msecond_minute++;if(msecond_minute==100){msecond_minute=99;flag1=23;}}}}dis(msecond_minute/10,msecond_minute%10,msecond_second/10,msecond_sec ond%10,msecond_msecond%10,12);break;case 25:dis(zancun3/10,zancun3%10,zancun2/10,zancun2%10,zancun1/10,zancun1%10 );break;default:break;}}}//**************************************************//S1按键处理函数void judge_s1(){s1_bit=1;//置IO为1,准备读入收据if(s1_bit==0)//判断是否有按键按下{delay_50us(1);// 延时,去除机械抖动if(s1_bit==0){switch(flag1){case 0:case 1:case 2:case 3:case 4:case 6:case 7:case 8:case 10:case 11:case 12:case 13:case 15:case 16:case 17:case 18:case 19:flag1++;break;case 9:flag1=6;break;case 14:flag1=10;break;case 20:flag1=15;break;case 5:case 21:case 22:case 23://系统从秒表状态复位 case 24://系统从秒表状态复位 case 25://系统从计数器复位 flag1=0;break;default:break;}while(s1_bit==0){judge_dis();}//等待按键释放}}}//**************************************************//S2按键处理函数void judge_s2(){s2_bit=1;//置IO为1,准备读入收据if(s2_bit==0)//判断是否有按键按下{delay_50us(1);// 延时,去除机械抖动if(s2_bit==0){switch (flag1){case 1: //在显示SET1状态下按S2件,进入修改时间 flag1=6;zancun4=hour_count&0xf0;zancun4>>=4;zancun6=hour_count&0x0f;zancun1=zancun4*10+zancun6;//zancun1=hour_count;zancun5=minute_count&0xf0;zancun5>>=4;zancun6=minute_count&0x0f;zancun2=zancun5*10+zancun6;// zancun2=minute_count;break;case 2://在显示SET2状态下按S2,进入设置闹钟zancun1=clock_hour;zancun2=clock_minute;flag1=10;break;case 6://修改时钟小时十位状态下按S2件case 7://修改时钟小时个位状态下按S2件case 8://修改时钟分钟十位状态下按S2件case 9://修改时钟分钟个位状态下按S2件//zancun4=zancun1/10;tab23[2]=zancun1/10*16+zancun1%10;//zancun5=zancun2&0xf0;//zancun5>>=4;tab23[1]=zancun2/10*16+zancun2%10;hour_count=tab23[2];minute_count=tab23[1];second_count=0;tab23[0]=0;set_ds1302();//设置DS1302的初始时间 flag1=0;break;case 10://修改闹钟小时十位状态下按S2 case 11://修改闹钟小时个位状态下按S2 case 12://修改闹钟分钟十位状态下按S2 case 13://修改闹钟分钟个位状态下按S2 case 14://修改闹钟使能状态下按S2clock_hour=zancun1;clock_minute=zancun2;clock_en=zancun3;flag1=0;break;case 3:flag1=15;zancun1=countdown_hour;zancun2=countdown_minute;zancun3=countdown_second;break;case 15:case 16:case 17:case 18:case 19:case 20:countdown_hour=zancun1;countdown_minute=zancun2;countdown_second=zancun3;flag1=21;countdown_flag=0;break;case 22:flag1=21;break;case 21:flag1=22;break;case 4:flag1=23;//秒表暂停msecond_minute=0;msecond_second=0;msecond_msecond=0;case 23:flag1=24;break;case 24:flag1=23;break;case 5:flag1=25;//进入计数器模式zancun1=0;zancun2=0;zancun3=0;break;default:break;}while(s2_bit==0){judge_dis();}//等待按键释放}}}//**************************************************//S3按键处理函数void judge_s3(){s3_bit=1;//置IO为1,准备读入收据if(s3_bit==0)//判断是否有按键按下{delay_50us(1);// 延时,去除机械抖动if(s3_bit==0){switch (flag1){case 6://修改时间小时的十位数zancun1+=10;if(zancun1>=24)zancun1=zancun1%10;break;case 7://修改时间小时的个位数zancun1=zancun1/10*10+(zancun1%10+1)%10; if(zancun1>=24)zancun1=20;case 8://修改时间分钟的十位数zancun2+=10;if(zancun2>=60)zancun2-=60;break;case 9://修改时间分钟的个位数zancun2=zancun2/10*10+(zancun2%10+1)%10; break;case 10://修改闹钟小时的十位数zancun1+=10;if(zancun1>=24)zancun1=zancun1%10;break;case 11://修改闹钟小时的个位数zancun1=zancun1/10*10+(zancun1%10+1)%10; if(zancun1>=24)zancun1=20;break;case 12://修改闹钟分钟的十位数zancun2+=10;if(zancun2>=60)zancun2-=60;break;case 13://修改闹钟分钟的个位数zancun2=zancun2/10*10+(zancun2%10+1)%10; break;case 14:zancun3^=1;break;case 15://修改倒计时小时的十位数zancun1+=10;if(zancun1>=100)zancun1-=100;break;case 16: //修改倒计时小时的个位数zancun1=zancun1/10*10+(zancun1%10+1)%10; break;case 17://修改倒计时分钟的十位数zancun2+=10;if(zancun2>=60)zancun2-=60;break;case 18: //修改倒计时分钟的个位数zancun2=zancun2/10*10+(zancun2%10+1)%10; break;case 19://修改倒计时秒的十位数zancun3+=10;if(zancun3>=60)zancun3-=60;break;case 20: //修改倒计时秒的个位数zancun3=zancun3/10*10+(zancun3%10+1)%10; break;case 21:case 22://countdown_hour=zancun1;countdown_minute=zancun2;countdown_second=zancun3;flag1=21;break;case 23:case 24://秒表复位flag1=24;msecond_minute=0;msecond_second=0;msecond_msecond=0;break;case 25:zancun1++;if(zancun1==100){zancun1=0;zancun2++;if(zancun2==100){zancun2=0;zancun3++;}}break;default:break;}while(s3_bit==0){judge_dis();}//等待按键释放}}}//****************************************//显示处理函数void judge_clock(){zancun4=hour_count&0xf0;zancun4>>=4;zancun6=hour_count&0x0f;zancun4*=10;zancun4+=zancun6;zancun5=minute_count&0xf0;zancun5>>=4;zancun6=minute_count&0x0f;zancun5*=10;zancun5+=zancun6;if(clock_hour==zancun4 && clock_minute==zancun5) {if(clock_en==1 && clock_flag==0){speak_count=0;//开启蜂鸣器clock_flag=1;speak_count=0;}}else{clock_flag=0;}if(clock_flag==1 && speak_count<400){if(msecond_count<=5){speak=0;speak_count++;}else{speak=1;}}else{speak=1;}}//****************************************////闪烁显示子程序void dis_san(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1,uchar san){if(san==1){if(msecond_count<5){display1(s6);}}else{display1(s6);}if(san==2){if(msecond_count<5){display2(s5);}}else{display2(s5);}if(san==3){if(msecond_count<5){display3(s4);}}else{display3(s4);}if(san==4){if(msecond_count<5){display4(s3);}}else{display4(s3);}if(san==5){if(msecond_count<5){display5(s2);}}else{display5(s2);}if(san==6){if(msecond_count<5){display6(s1);}}else{display6(s1);}}//****************************************//时钟显示程序void dis(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1) {display1(s6);display2(s5);display3(s4);display4(s3);display5(s2);display6(s1);}//******************************************************************* *************************void init_t0(){TMOD=0x01;//设定定时器工作方式1,定时器定时50毫秒TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;//开总中断ET0=1;//允许定时器0中断t0_crycle=0;//定时器中断次数计数单元}//**************************************************//LED处理函数void dis_led(){if(msecond_count<5){led1_bit=1;led2_bit=1;}else{led1_bit=0;led2_bit=0;}}//*************************************************************** //功能:把数据1显示在数码管1上void display6(uchar dis_data){smg_data=tabl1[dis_data];//送显示断码dis_bit6=0;//锁存数据delay_50us(40);dis_bit6=1;}//*************************************************************** //功能:把数据1显示在数码管1上void display5(uchar dis_data){smg_data=tabl1[dis_data];//送显示断码dis_bit5=0;//锁存数据delay_50us(40);dis_bit5=1;}//*************************************************************** //功能:把数据1显示在数码管1上void display4(uchar dis_data){smg_data=tabl1[dis_data];//送显示断码dis_bit4=0;//锁存数据delay_50us(40);dis_bit4=1;}//*************************************************************** //功能:把数据1显示在数码管1上void display3(uchar dis_data){smg_data=tabl1[dis_data];//送显示断码dis_bit3=0;//锁存数据delay_50us(40);dis_bit3=1;}//***************************************************************//功能:把数据1显示在数码管1上void display1(uchar dis_data){smg_data=tabl1[dis_data];//送显示断码dis_bit1=0;//锁存数据delay_50us(40);dis_bit1=1;}//***************************************************************//功能:把数据1显示在数码管1上void display2(uchar dis_data){smg_data=tabl1[dis_data];//送显示断码dis_bit2=0;//锁存数据delay_50us(40);dis_bit2=1;}//******************************************************************* *******************************//函数名称:void delay_50US(unsigned int t)//功能:延时50*t(us)void delay_50us(uint t){unsigned char j;for(;t>0;t--){for(j=19;j>0;j--);}}//******************************************************************* ************//8微秒延时基准程序void delay_8us(uint t){while(--t);}//******************************************************************* ************//3微秒延时程序void delay_3us(){;;}//******************************************************************* ************//子程序功能:向DS18B20写一字节的数据void w_1byte_ds18b20(uchar value){uchar i=0;for(i=0;i<8;i++){dq_ds18b20=0;delay_3us();if (value & 0x01) dq_ds18b20=1; //DQ = 1delay_50us(1); //延时50us 以上value>>=1;dq_ds18b20=1; //DQ = 1}delay_50us(1);}//读一个字节uchar r_1byte_ds18b20(void){uchar i=0;uchar value = 0;for (i=0;i<8;i++){value>>=1;dq_ds18b20=0;// DQ_L;delay_3us();dq_ds18b20=1;delay_3us();delay_3us();if(dq_ds18b20==1) value|=0x80;delay_50us(1); //延时40us}return value;}//;**************************************************//ds18b20复位子程序void rest_ds18b20(void){rest:delay_3us(); //稍做延时delay_3us();dq_ds18b20=1;delay_3us();dq_ds18b20=0;// DQ_L;delay_8us(75);//480us<T<960usdq_ds18b20=1;//拉高总线delay_8us(8);if(dq_ds18b20==1){return;}delay_8us(11); //延时90usif(dq_ds18b20==1){return;}else{goto rest;}}//****************************************************//读取温度void readtemp_ds18b20(void){uchar temp32;rest_ds18b20();w_1byte_ds18b20(0xcc); //跳过读序列号的操作w_1byte_ds18b20(0x44); //启动温度转换delay_8us(2);rest_ds18b20();w_1byte_ds18b20(0xcc); //跳过读序列号的操作w_1byte_ds18b20(0xbe); //读取温度寄存器等(共可读9个寄存器)前两个就是温度templ=r_1byte_ds18b20();temph=r_1byte_ds18b20();if((temph&0xf0))//判断温度的正负性{temp_flag=0;//温度为负数标志temph=-temph;templ=-templ;t_x=tabl3[templ & 0x0f];//计算温度的小数 temp32=temph & 0x0f;temp32<<=4;templ>>=4;temp32=temp32 | templ;t_b=temp32/100%10;//计算温度的百位数据 t_s=temp32/10%10;//计算温度的十位数据t_g=temp32%10;//计算温度的个位数据}else//为正数{t_x=tabl3[templ & 0x0f];//计算温度的小数 temp32=temph & 0x0f;temp32<<=4;templ>>=4;temp32=temp32 | templ;t_b=temp32/100%10;//计算温度的百位数据 t_s=temp32/10%10;//计算温度的十位数据t_g=temp32%10;//计算温度的个位数据temp_flag=1;}}void dis_temp()//温度显示函数{if(temp_flag=1){if(t_b==0){dis(12,12,t_s,t_g,13,12);}else{dis(12,t_b,t_s,t_g,13,12);}}else{dis(14,t_b,t_s,t_g,13,12);}}//;################################################################## ############//;子程序名:w_1byte_ds1302//;功能:向DS1302写一个字节的数据void w_1byte_ds1302(uchar t){uchar i;for(i=0;i<8;i++){if(t & 0x01){io_ds1302=1;}else{io_ds1302=0;}clk_ds1302=1;delay_3us();delay_3us();clk_ds1302=0;delay_3us();delay_3us();t>>=1;}}//;################################################################## ######//;子程序名:r_1byte_ds1302()//;功能:从DS1302读一个字节的数据uchar r_1byte_ds1302(){uchar i,temp11=0;io_ds1302=1;//置IO为1,准备读入数据for(i=0;i<8;i++){temp11>>=1;if(io_ds1302) temp11 |= 0x80;clk_ds1302=1;delay_3us();delay_3us();clk_ds1302=0;delay_3us();}return(temp11);}//;################################################################## ###############//;子程序名:setbds1302//;功能:设置DS1302初始时间,并启动计时void set_ds1302(){uchar i,j;rest_ds1302=0;delay_3us();clk_ds1302=0;delay_3us();rest_ds1302=1;delay_3us();w_1byte_ds1302(0x8e);//写控制命令字delay_3us();w_1byte_ds1302(0x00);//写保护关闭clk_ds1302=1;delay_3us();rest_ds1302=0;for(i=0,j=0x80;i<7;i++,j+=2){rest_ds1302=0;delay_3us();clk_ds1302=0;delay_3us();rest_ds1302=1;delay_3us();w_1byte_ds1302(j);delay_3us();w_1byte_ds1302(tab23[i]);delay_3us();delay_3us();clk_ds1302=1;delay_3us();rest_ds1302=0;delay_3us();delay_3us();}rest_ds1302=0;delay_3us();clk_ds1302=0;delay_3us();rest_ds1302=1;delay_3us();w_1byte_ds1302(0x8e);delay_3us();w_1byte_ds1302(0x80);clk_ds1302=1;delay_3us();rest_ds1302=0;delay_3us();}//;#################################################################-------//;子程序名:get1302void get_ds1302(){uchar temp11[7],i,j;for(i=0;i<7;i++){temp11[i]=0;}for(i=0,j=0x81;i<7;i++,j+=2){rest_ds1302=0;delay_3us();clk_ds1302=0;delay_3us();rest_ds1302=1;delay_3us();w_1byte_ds1302(j);temp11[i]=r_1byte_ds1302();delay_3us();clk_ds1302=1;delay_3us();rest_ds1302=0;delay_3us();}if(temp11[0]!=0xff){second_count=temp11[0];}if(temp11[1]!=0xff)// 数据验证{minute_count=temp11[1];}if(temp11[2]!=0xff)//数据验证{hour_count=temp11[2];}// date=temp[3];//month=temp[4];// week=temp[5];//year=temp[6];}五、安装与调试1)首先是电路板及各元器件的焊制,经过一天的时间将其焊制成功。