倒计时器课程设计(带程序版)

合集下载

led倒计时plc课程设计

led倒计时plc课程设计

led倒计时plc课程设计一、课程目标知识目标:1. 学生能理解PLC(可编程逻辑控制器)的基本原理和功能;2. 学生能掌握LED倒计时电路的设计方法及其与PLC的连接方式;3. 学生能了解并运用相关的编程语言,实现对LED倒计时的控制。

技能目标:1. 学生能够运用PLC进行基本的逻辑编程,实现LED灯的倒计时功能;2. 学生通过实际操作,提高电路连接和故障排查的能力;3. 学生能够通过小组合作,提高团队协作和沟通能力。

情感态度价值观目标:1. 学生培养对自动化技术及PLC控制技术的兴趣,激发学习的热情;2. 学生在实践过程中,培养创新意识和动手能力,增强自信心;3. 学生能够意识到科技在生活中的重要性,认识到学习知识对社会发展的贡献。

课程性质:本课程为实践性较强的课程,结合理论知识和动手操作,提高学生的实践能力。

学生特点:学生处于初中或高中年级,具有一定的电子基础知识和逻辑思维能力。

教学要求:教师应引导学生主动参与实践,注重培养学生的动手能力和团队协作精神,将理论知识与实际操作相结合,提高学生的综合素质。

通过本课程的学习,使学生在掌握知识技能的同时,培养正确的情感态度价值观。

二、教学内容1. PLC基础知识:介绍PLC的定义、结构、工作原理及其在工业控制中的应用;教材章节:第一章 可编程逻辑控制器概述内容:PLC的组成、功能、分类及其优势。

2. PLC编程语言:讲解PLC编程的基础知识,包括指令系统、编程规则等;教材章节:第二章 PLC编程语言内容:逻辑指令、定时器指令、计数器指令等。

3. LED倒计时电路设计:介绍LED倒计时电路的原理、设计方法及所需元器件;教材章节:第三章 电气控制电路设计内容:LED灯的连接方式、电路图绘制、元器件选型。

4. PLC与LED倒计时电路连接:讲解如何将PLC与LED倒计时电路连接,实现控制功能;教材章节:第四章 PLC与外部设备连接内容:PLC输入/输出接口、连接方式、接线图。

倒时计时器课程设计

倒时计时器课程设计

倒时计时器课程设计一、课程目标知识目标:1. 学生能理解倒计时器的概念,掌握其基本原理;2. 学生能够运用所学知识,设计并制作一个简单的倒计时器;3. 学生了解倒计时器在实际生活中的应用,理解其与时间管理的重要性。

技能目标:1. 学生通过小组合作,提高团队协作能力和沟通能力;2. 学生能够运用电子元件和编程软件,完成倒计时器的制作,培养动手实践能力;3. 学生能够运用逻辑思维和问题解决能力,解决倒计时器制作过程中遇到的问题。

情感态度价值观目标:1. 学生培养对科学技术的兴趣和好奇心,激发创新意识;2. 学生在小组合作中,学会尊重他人意见,培养合作精神;3. 学生通过倒计时器的制作,认识到时间管理的重要性,培养珍惜时间的价值观。

课程性质:本课程属于科学实践活动,结合电子技术、编程和团队合作,培养学生动手实践能力和创新思维。

学生特点:六年级学生具备一定的电子元件知识和编程基础,对新鲜事物充满好奇,喜欢动手操作。

教学要求:教师需引导学生运用所学知识,鼓励创新思维,关注学生个体差异,提高团队合作能力。

在教学过程中,注重理论与实践相结合,关注学生动手实践能力的培养。

通过课程目标的实现,提高学生对时间管理的认识和重视。

二、教学内容本课程依据课程目标,结合教材内容,组织以下教学安排:1. 理论知识学习:- 引导学生回顾已学的电子元件知识,如电路原理、基础编程等;- 讲解倒计时器的原理、功能和应用场景;- 分析倒计时器的电路图,了解各部分电子元件的作用。

2. 实践操作环节:- 分组进行倒计时器的制作,培养学生的团队协作能力;- 引导学生运用编程软件,编写倒计时器的程序;- 学生动手搭建倒计时器电路,调试并解决问题。

3. 教学内容安排与进度:- 第一课时:回顾电子元件知识,讲解倒计时器原理,分析电路图;- 第二课时:分组制作倒计时器,编写程序;- 第三课时:动手搭建倒计时器电路,调试与优化。

4. 教材章节及内容:- 教材第四章:电子元件及其应用;- 教材第五章:编程基础及实践;- 教材第六章:综合实践活动。

倒计时电子秒表课程设计

倒计时电子秒表课程设计

倒计时电子秒表课程设计一、课程目标知识目标:1. 学生能理解倒计时电子秒表的基本原理,掌握其计时功能的工作机制。

2. 学生能运用已学的电子技术知识,分析倒计时电子秒表的电路图,并识别其中的电子元件。

3. 学生能解释倒计时电子秒表中涉及的数字电路知识,包括计数器、时钟信号等。

技能目标:1. 学生能通过小组合作,完成倒计时电子秒表的组装和调试。

2. 学生能运用所学编程知识,为倒计时电子秒表设计简单的控制程序。

3. 学生能运用倒计时电子秒表进行实验操作,并解决实际计时问题。

情感态度价值观目标:1. 学生培养对电子技术的兴趣,激发探索精神和创新意识。

2. 学生在小组合作中,学会沟通、协作,培养团队精神和责任感。

3. 学生通过实际操作,体验科技的魅力,增强实践能力,提高自信心。

课程性质:本课程为电子技术实践课程,旨在让学生通过动手实践,掌握倒计时电子秒表的相关知识。

学生特点:本课程面向初中年级学生,他们对电子技术有一定的好奇心,但需加强对电子元件和电路知识的理解。

教学要求:注重理论与实践相结合,强调学生的动手操作能力和问题解决能力,培养学生对电子技术的兴趣和情感。

通过分解课程目标为具体学习成果,为后续教学设计和评估提供依据。

二、教学内容1. 电子秒表基础知识:- 电子秒表的组成与功能- 计数器的工作原理- 数字电路基础:时钟信号、触发器、计数器2. 电子元件与电路:- 识别常见的电子元件:电阻、电容、二极管、晶体管等- 分析倒计时电子秒表的电路图- 电路的组装与焊接技巧3. 编程与控制:- 学习简单的编程知识,如C语言基础- 设计倒计时电子秒表的程序控制逻辑- 编程软件的使用和调试方法4. 实践操作:- 分组进行倒计时电子秒表的组装与调试- 设计并实现简单的计时功能应用- 解决实际操作过程中遇到的问题教学内容依据课程目标,结合教材相关章节,制定以下教学大纲:第1课时:电子秒表基础知识学习第2课时:分析倒计时电子秒表电路图,识别电子元件第3课时:电路组装与焊接技巧培训第4课时:编程知识学习与程序控制逻辑设计第5课时:实践操作,分组完成倒计时电子秒表的组装与调试第6课时:成果展示,交流与评价教学内容注重科学性和系统性,结合学生实际,循序渐进地安排教学进度,确保学生能够扎实掌握倒计时电子秒表的相关知识。

倒数计时器数电课程设计

倒数计时器数电课程设计

倒数计时器数电课程设计
一、实验目的
(1)理解倒数计时器数电原理;
(2)熟悉倒数计时器数电结构及功能;
(3)实验按照对应的推荐电路,熟悉倒数计时器的操作;
(4)综合电路原理和工作模式的理论,并将其应用到实际工程中。

二、实验内容
(1)倒数计时器的介绍;
(2)倒数计时器的电路原理;
(3)实验编程;
(4)实验实践及电路调试;
(5)实验结果分析。

三、实验参数
(1)程序设计语言:C、C++;
(2)硬件要求:倒计时器数电实验台;
(3)软件要求:KEIL C编译器
四、实验步骤
(1)基础知识的复习:复习倒计时器数电原理及其结构;
(2)实验编程:编写实验程序;
(3)实验实践:进行实验实践;
(4)电路调试:完成实验,进行电路调试;
(5)结果分析:分析实验结果,得出结论。

五、实验结果
实验结果表明,倒数计时器数电的原理和接口可以完全正确地实现倒计时功能,可以实现定时计时的功能,为实际工程提供了一种解决方案。

99-0倒计时器程设计

99-0倒计时器程设计

目录一、设计的任务与要求 (3)二、方案的选择 (3)三、系统工作原理 (3)四、实现中出现的问题 (7)五、实验数据及处理 (8)六、收获体会 (8)七、参考文献 (9)数电课程设计(倒计时)一、设计的任务与要求显示两位的天数倒计时,如99到1a)当到9时喇叭自动响0时结束b)用LED数码管显示结果c)可以实现预置数功能二、方案的选择方案:通过减法器实现两位是十进制数减法运算,实现倒数功能,并通过通过译码器和LED数码管驱动电路。

同时要求实现预置数功能。

选用芯片参考:减法器、74160A、74LS48、LED数码管电路图如附件:三、系统工作原理通过编码器将递减转换成数字信号,通过减法器实现计数功能。

通过译码器和LED数码管驱动电路。

74LS190 说明74LS04 说明引出端符号:1A-6A 输入端1Y-6Y 输出端74LS32 说明简要说明32 为四组2 输入端或门(正逻辑),共有54/7432、54/74S32、54/74LS32 三种线路结构型式,其主要电特性的典型值如下:型号tPLH tphl PD54/7432 10ns 14ns 96mW54/74S32 4ns 4ns 140mW54/74LS32 14ns 14ns 20mW引出端符号1A-4A 输入端1B-4B 输入端1Y-4Y 输出端74LS48 说明二进制代码在数字电路中,往往用1和0组成二进制数码表示数值的大小或一些特定的信息,这种具有特定意义的二进制数码称为二进制代码。

要用二进制代码来表示十进制的0~9十个数,至少要用4位二进制数。

4位二进制数有16种组合,可从这16种组合中选择10种组合分别来表示十进制的0~9十个数。

选哪10种组合,有多种方案,这就形成了不同的BCD码。

具有一定规律的常用的BCD码见表2-1-1。

表2-1-1常见BCD码从表2-1-1中可以看出,8421BCD码是选取0000~1001这十种状态来表示十进制0~9的。

倒数计时器设计课程设计

倒数计时器设计课程设计

倒数计时器设计课程设计一、课程目标知识目标:1. 让学生掌握倒数计时器的基本原理和功能。

2. 使学生了解数字电路基础知识,如逻辑门、触发器等。

3. 帮助学生理解计时器设计的步骤和注意事项。

技能目标:1. 培养学生运用所学知识设计倒数计时器的能力。

2. 提高学生动手操作和调试数字电路的技能。

3. 培养学生运用问题解决策略和团队协作的能力。

情感态度价值观目标:1. 培养学生对电子制作的兴趣和热情。

2. 增强学生面对挑战时的自信心和毅力。

3. 培养学生的创新意识和探索精神。

分析课程性质、学生特点和教学要求:1. 课程性质:本课程为实践性较强的电子制作课程,结合理论知识,培养学生的动手能力和创新能力。

2. 学生特点:学生具备一定的数字电路基础知识,对实际操作和电子制作有较高的兴趣。

3. 教学要求:注重理论与实践相结合,鼓励学生动手实践,提高学生的综合应用能力。

二、教学内容1. 数字电路基础知识回顾:逻辑门、触发器、计数器原理。

2. 倒数计时器原理讲解:触发器级联、时钟信号、清零和预置功能。

3. 倒数计时器设计步骤:需求分析、电路设计、器件选型、电路仿真、实物制作。

4. 教学大纲安排:- 第一阶段:回顾数字电路基础知识,分析倒数计时器原理(1课时)。

- 第二阶段:讲解设计步骤,指导学生进行电路设计和仿真(2课时)。

- 第三阶段:学生分组进行器件选型和实物制作,教师巡回指导(3课时)。

5. 教材关联内容:- 章节:数字电路基础、触发器与计数器、电子制作实践。

- 内容列举:基本逻辑门、触发器种类、计数器工作原理;倒数计时器设计实例、电路仿真软件应用、常见电子元器件识别与使用。

三、教学方法1. 讲授法:教师通过生动的语言和形象的表达,讲解数字电路基础知识、倒数计时器原理及设计步骤。

结合多媒体演示,使抽象的知识具体化,便于学生理解和掌握。

2. 讨论法:针对电路设计和仿真过程中遇到的问题,组织学生进行小组讨论,鼓励学生发表自己的观点,培养学生的思辨能力和团队协作精神。

电子倒计时课程设计

电子倒计时课程设计

电子倒计时课程设计一、教学目标本课程旨在让学生了解电子倒计时器的工作原理和基本制作方法,通过实践活动,培养学生的动手能力、创新能力及团队协作精神。

知识目标:使学生掌握电子倒计时器的基本电路原理、元器件功能及使用方法;了解电子倒计时器在实际应用中的优势和局限。

技能目标:培养学生运用电子元件制作电子倒计时器的能力,提高学生的动手实践能力;培养学生运用电子技术解决实际问题的能力。

情感态度价值观目标:培养学生对电子科技的兴趣,增强学生对科技创新的认识;培养学生团队协作、积极探究的科学精神。

二、教学内容本课程的教学内容主要包括电子倒计时器的工作原理、基本电路、元器件功能、制作方法及应用。

1.电子倒计时器工作原理:介绍电子倒计时器的工作原理,使学生了解其内部电路及工作过程。

2.基本电路:讲解电子倒计时器的基本电路,包括电源电路、计数电路、显示电路等,使学生掌握电子电路的基本组成。

3.元器件功能:介绍电子倒计时器中所用到的主要元器件的功能及特点,使学生了解元器件在电路中的作用。

4.制作方法:讲解电子倒计时器的制作方法,包括电路设计、焊接、调试等步骤,培养学生动手实践能力。

5.应用:介绍电子倒计时器在实际生活中的应用,使学生了解电子倒计时器的实际价值。

三、教学方法本课程采用讲授法、实践操作法、小组讨论法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:讲解电子倒计时器的工作原理、基本电路及元器件功能,使学生掌握相关理论知识。

2.实践操作法:安排学生动手制作电子倒计时器,培养学生的动手实践能力。

3.小组讨论法:引导学生分组讨论制作过程中的问题,培养学生的团队协作精神和问题解决能力。

四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料、实验设备等。

1.教材:选用符合课程要求的教材,为学生提供系统的理论知识。

2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。

3.多媒体资料:制作课件、视频等多媒体资料,帮助学生形象地理解课程内容。

eda倒计时课程设计

eda倒计时课程设计

eda倒计时课程设计一、课程目标知识目标:1. 理解EDA(电子设计自动化)的基本概念,掌握倒计时器的设计原理。

2. 学会使用EDA软件进行倒计时器电路的设计、仿真与验证。

3. 了解数字电路中计数器、触发器等基本组件的工作原理及其在倒计时器中的应用。

技能目标:1. 培养学生运用EDA软件进行电路设计的能力,掌握设计流程和操作方法。

2. 提高学生分析问题、解决问题的能力,培养他们在实际操作中发现问题、解决问题的技巧。

3. 培养学生的团队合作意识,提升他们在项目实践中的沟通与协作能力。

情感态度价值观目标:1. 激发学生对电子设计的兴趣,培养他们主动探索、勇于创新的科学精神。

2. 引导学生关注科技发展,认识到电子设计在现代社会中的重要作用,增强社会责任感。

3. 培养学生严谨、细致的学习态度,提高他们在面对困难时的自信心和毅力。

本课程针对高中年级学生,结合学科特点,注重理论知识与实践操作相结合,旨在提高学生的电子设计能力。

通过本课程的学习,使学生能够掌握EDA倒计时器设计的基本原理和方法,培养他们在实际项目中运用所学知识解决问题的能力,并激发他们对电子科技的热爱和探索精神。

二、教学内容1. 电子设计自动化(EDA)基本概念介绍:包括EDA的定义、发展历程、应用领域。

2. 倒计时器原理学习:重点讲解数字电路中计数器、触发器等基本组件的工作原理及其在倒计时器中的应用。

3. EDA软件操作与使用:学习如何使用EDA软件进行电路设计,包括原理图绘制、电路仿真、PCB布线等。

- 软件安装与界面熟悉- 原理图绘制方法与技巧- 电路仿真与调试- PCB布线设计4. 倒计时器电路设计实例:结合教材,分析一个具体的倒计时器电路设计案例,引导学生了解设计流程及注意事项。

- 设计需求分析- 电路组件选择- 原理图绘制- 仿真与调试- PCB设计5. 团队合作实践:分组进行倒计时器电路设计,培养学生团队合作意识,提高实际操作能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖南科技大学课程设计报告课程名称:单片机原理及应用课程设计设计题目:电阻测量院系:通信与控制工程系专业:通信工程班级:学生姓名:学号: ******** ********起止日期:2010年12月20日~ 2010年12月31日指导教师:教研室主任:基于STC89C52的倒计时器设计1 设计任务与要求本项目是由单片机执行设定的程序,在数码管显示倒计时的时间,且能由单片机接受矩阵键盘设定的时间。

由4位数码管做显示,能够实现5种倒计时模式,通过控制按键进行选择9999s-0s、999s-0s、99s-0s、9s-0s、开始值由人工输入-0s。

2 方案设计与论证近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

现在,在许多领域中,定时器得到了广泛的应用,比如在体育比赛中的计时器;安全措施中的定时报警器;游戏中的倒计时;维持秩序的交通信号灯;红路灯,交通控制器,闹钟等等。

可见倒计时器在社会中的重要性。

当然,设计倒计时器的方法很多,以下是两个设计方案。

方案一:基于AT89S52单片机的LCD液晶显示模块1602显示的倒计时器。

主要是以单片机来控制,用按键来设定倒计时初始时刻的值,用按键来进行倒计时初值的选择,LCD1602液晶作为显示模块来显示倒计时间。

方案二:基于AT89S52单片机的数码管显示模块显示的倒计时器。

主要是以单片机来控制,用按键来设定倒计时初始时刻的值,按键来进行倒计时初值的选择。

此电路对于倒计时器中的LED数码管示器来说,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。

方案比较:通过以上两个方案,我们发现,方案二总体比方案一好。

首先方案一虽然硬件电路简单,但造价较高,且在编写程序实现所要求的功能时较难,而方案二所用的显示模块是比较熟悉的数码管,编写程序是相对容易,且电路造价不高,因此,综合考虑之后决定采用方案二。

3 硬件单元电路设计与参数计算LED数码管倒计时器以AT89C52单片机为核心,起着控制作用,另外系统中使用8255A芯片作为扩展I/O作用。

系统包括四位数码管显示电路,按键电路,复位电路,时钟电路以矩阵键盘电路。

倒计时的总体框图如下图1所示:图1 倒计时的总体框图3.1 时钟电路单片机必须在时钟的驱动下才能工作。

在单片机内部有一个时钟振荡电路,只要外界一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。

本系统使用的是内部时钟方式。

时钟电路如下图3所示。

一般选用石英晶体振荡器。

此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。

电路中两个电容C1、C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。

本系统的C1、C2的值为30pf。

3.2 矩阵电路本系统用到的是4*4矩阵键盘,行线由8255A芯片PC端口的低四位控制,而列线是由PC端口的高四位来控制的,键盘的扫描是动态的低电平扫描,当有个键按下时,相应的行线为高电平,扫描的结果由PC口送回8255A.本系统的矩阵电路的作用是能够设定倒计时的初始值,还可以通过按软件中设定的几个键的功能,来实现倒计时最大初值的选择。

倒计时是按千位,百位,十位,个位的顺序排列显示的,用四个按键来现实显示切换的,所达到的效果是按一下对应的键时,所对应的倒计时最大初值开始倒计时,例如S3键,数码管上显示的是99S开始倒计时。

在程序中按S8键开始初值设定,在按相应的已经编码好的键,这些代表0-9的键来设定四位初值。

设定初值时,每按一个键,就在数码管上显示该键代表的编码。

四位值都设好了,等待按独立键跳出矩阵电路。

按键电路如下图4所示。

图4 按键电路原理图3.3数码管显示电路在这里我们使用的是8段数码管显示(包含小数点),通常在显示上我们采用的方法一般包括两种:一种是静态显示,另一种是动态显示。

其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多,所耗得电能较大;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。

在本设计中,为了减少端口资源,降低电能消耗,采用的是动态显示方法。

本系统的倒计时时间的最大范围是9999S,要显示出最大范围的值,从而可知数码管显示电路要用到4位数码管。

考虑到到数码管的段和位比较多,本系统用8255A作为扩展端口芯片。

数码管有段选和位选控制,在此电路中有4个位选,8个段选(每一个数码管的段选进行并联)。

分别用8255芯片的PA口和PB口进行四位数码管的控制,而用单片机的PB口来控制段。

电路中用了四个PNP来控制数码管的位选的开关,PNP在这起开关的作用。

电路如下图5所示。

图5 数码管显示电路原理图4 软件设计与流程图4.1 倒计时器主程序流程图程序的的开始时先设定定时器0,给定时器装初值,定时器0的定时时间是10ms,用作定时器时间的递减。

然后给初始化8255芯片设定PA和PB口为输出端口,PC的低四位为输入端口,而高四位为输出端口。

进入死循环函数,在循环函数中,进入方式9-0s的倒计时,再对矩阵进行扫描,如果有键按下返回按键值,执行判断语句。

若为假则继续按该方式执行程序,若为假则跳出该倒计时方式,进入下一个倒计时方式。

流程图如下图6所示:图6 倒计时器主程序流程图4.2定时器0的中断程序流程图定时器0的定时时间是10ms,用作扫描数码管显示,在定时器0开启时,定时器0开始定时,此时主程序正常运行,当定时器0的定时时间到时,主程序不在执行,开始进入中断程序,在中断程序中,若计时了1s就对时间进行处理且计数标志清零,赋值给相应的变量且second减1,若没有则计数标志count 就进行加1,若倒计时的时间为零则重新赋值,中断程序执行完后返回主程序。

如图7所示。

图7定时器0的中断程序流程图5 总电路5.1 倒计时器总原理图倒计时原理图由一块AT89C52单片机器控制作用,还用一块8255A芯片来扩展I/O端口,单片机的P3^2到P3^3分别接的独立按键电路,即2个微动开关。

而8255A芯片的PC口接矩阵键盘,PB口与显示电路的数码管的段选相连,起到控制数码管的段选的的作用,PA口分别对应数码管的4个位选,起到对4个数码管的扫描作用,其中的4个三极管起着开关作用,对应数码管的选通。

图见附录一。

5.2 整体电路仿真以及仿真结果分析系统仿真用的是Proteus软件,可通过仿真显示出所设计系统的功能,对于程序的调试等有很大的帮助。

系统仿真时首先在使用Keil C 译码器,把所写的程序进行编译,同时在仿真器里设置生成HEX文件,编译无错误进行Proteus仿真。

等所有的原件都连接完成后可以把Keil C编译生成的无错误文件加载到AT89C52中,方法是,右键点中器件然后再用左键点击,出来一个对话框在program file后选择要添加的文件,文件要求必须是HEX文件。

然后可以点击运行观察现象,看与自己设置的是否符合,如果不相符再查找错误进行修改,一般的错误都是程序中的,所以要认真的读取程序的每一个部分。

启动Proteus软件的play按钮,出现如上图13所示,以上矩阵键盘设定倒计时初值和倒计时最大初值范围选择。

按下相应的键,数码管上显示相应的计数范围开始计时,当定时中断到时,数码管上的数值减1,也就是1S计时时间到了当全为0时,数码管上的数值自动加载为最大计数范围的值。

从仿真图可知,本系统的程序已达到要求。

5.3 软件调试用到了Keil C软件,集成调试环境,集成了编辑器、译码器、调试器,支持软件模拟,支持项目管理功能强大的观察窗口,支持所有的数据类型。

树状结构显示,一目了然,支持ASM(汇编)、C语言多模块源程序混合调试,在直接修改、编译、调试源程序,错误指令定位。

功能很强大,用于对程序的调试和编辑。

本系统的程序的编写就是在Keil C软件中完成的,在程序中用到了两个定时器,为了使倒计时的时间准确,必须计算对定时器的初值,当程序完成之后,生成HEX文件。

再利用Proteus软件进行仿真。

经过仿真,程序符合题目的要求。

6 性能测试与分析按照设计程序的分析,LED数码管的动态扫描的频率是1000HZ,在实际使用时完全没有闪烁。

在程序中,定时器10ms中断一次,变量 count100自增,中断100次时,秒的显示自减,用定时器来定时,准确。

电路中的五个按键可以分别用来设定倒计时的计数范围。

另外,设定外部中断来暂停和重新启动倒计时。

当数码管的显示全0时,系统自动重新载入初值开始倒计时。

系统由5V电源来驱动,经过测是试与分析,此系统稳定可用。

7 结论与心得在设计倒计时器课程设计的过程中,我深切体会到,实践是理论运用的最好检验。

本次设计是对我这一学期所学知识的一次综合性检测和考验,无论是动手能力还是理论知识运用能力都得到了提高,同时加深了我对网络资源认识,大大提高了查阅资料的能力和效率,使我有能有更多的时间去设计软件部分。

本系统要求我们要有丰富的编程经验,还要能会看单片机开发板原理图,能熟悉那些I/O口的作用,且能够准确的运用数电等多方面的知识。

在软件调试过程中,我学会不少的东西,掌握一些调试软件的方法。

在设计仿真图和设计电路图中,对Proteus、Keil和Protel等软件掌握的更加牢固,而且所设计的基于单片机的倒计时器,精确度高,达到了应用要求这次课程设计使我掌握了很多实践知识,在老师和同学的帮助下对单片机有了进一步的了解。

8 致谢这次课程设计对我来说有着深远的意义,让我对未来的路又看得清楚了些。

在此我要深深的感谢那些传授我知识的老师们,是你们无私的奉献,才会有如今掌握一定知识的我们;要感谢父母一直给我的支持,感谢他们的关怀;还要感谢同学对我的鼓励,感谢队友对我的认可,让我能尽情的发挥我的能力,激扬去验证自己的想法。

参考文献[1] 朱定华,戴汝平.单片微机原理与应用.(M) 北京:清华大学出版社,2003[2]楼然苗,李光飞.单片机课程设计指导.(B).北京航空航天大学出版社,2007[3] 李凤霞,刘桂山,薛庆.C语言程序设计(第二版).北京理工大学出版社,2008[4]张鑫,华臻,陈书谦.单片机原理及应用(A).北京电子工业出版社,2005[5]谭浩强著 C程序设计(第二版) 清华大学出版社 1999附录一:总原理图附录二:程序#include<reg52.h>#include <absacc.h>#define PA XBYTE[0xD1FF] /*PA口地址*/#define PB XBYTE[0xD2FF] /*PB口地址*/#define PC XBYTE[0xD5FF] /*PC口地址*/#define CON XBYTE[0xD7FF] /*控制字地址*/#define uint unsigned int#define uchar unsigned char//*******************数码管段******************//uchar code TAB_CODE[]={0XA0,0XBB,0X62,0X2A,0X39,0X2C,0X24,0XBA,0X20,0X28,0X30,0X25,0XE4,0X23,0X64,0X74};uchar t,mode=6,mode1=1,m=0,s=0; //mode1为0表示为设定初始值过程中uint max,co=9999;//**小延时函数**//void delay(uint a){while(a--);}void Time();void Start();void keyscan();void main(){//uchar A;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;//TR0=1;CON=0x81;while(1){keyscan();Time();Start();}}//**数码管显示函数***//void Start(){// RELAY=1;PB=0xff; //***消影***//delay(100);if(max>99999) //初始选择方式{PA=0xfe;PB=TAB_CODE[max/100000];delay(150);PB=0xff;delay(150);}if(max>9999){PA=0xfd;PB=TAB_CODE[(max/10000)%10];//*初始选择方式delay(150);PB=0xff;delay(150);}if(max>999){PA=0xfb; //***位选通***//PB=TAB_CODE[(max/1000)%10];//***分十位显示***// delay(150);PB=0xff;delay(150);}if(max>99){PA=0xf7;PB=TAB_CODE[(max/100)%10];//***分个位显示***// delay(150);PB=0xff;delay(150);}if(max>9){PA=0xef;PB=TAB_CODE[(max/10)%10];//***秒十位显示***// delay(150);PB=0xff;delay(150);}PA=0xdf;PB=TAB_CODE[max%10];//***秒个位显示***//delay(150);PB=0xff;delay(50);}//****键盘扫描函数******//void keyscan(){uchar k,j=0x10;CON=0x81;//***初始化8255控制器***//PC=0x10; //*****把PC.4口拉高*****//k=PC;k=k&0x0f;//***判断是否有键按下***//if(k!=0){delay(50);Start();if(k!=0){while(PC!=0x10) //******松手检测******//Start();}k=k+j;if(k==0x18){mode--;if(mode==0) mode=5;mode1=1;s=0;m=0;switch (mode){case 5:{mode1=0;TR0=0;co=0;};break;case 4:co=9999;break;case 3:co=999;break;case 2:co=99;break;case 1:co=9;break;default:co=9999; break;}max=co;}if(k==0x14){m++;if(m==10) m=0;max=m*10+s;}if(k==0x12){if(mode1==0) if(max>0) mode1=1;if(mode1==1)if(TR0==0){TR0=1;}else TR0=0; //mode1为1表示输入初始值完成}if(k==0x11){s++;if(s==10) s=0;max=m*10+s;}P1=PC;}}//***时间控制函数***//void Time(){if(t==20){t=0;if(max==0)max=co;max--;}}//***定时器中断***//void Ser0() interrupt 1{TH0=(65535-50000)/256;TL0=(65535-50000)%256;t++;}附录三:原件清单。

相关文档
最新文档