计算机控制课程设计
计算机控制技术综合课程设计方案

计算机控制技术综合课程设计方案清晨的阳光透过窗帘,洒在键盘上,伴随着一杯热咖啡的香气,我开始构思这个“计算机控制技术综合课程设计方案”。
这个方案不仅要体现计算机控制的精髓,还要让学生在实践中掌握核心技能,下面是我的思路。
一、课程目标我们要明确课程目标。
这不仅仅是教会学生一些编程语言和算法,更重要的是让他们理解计算机控制系统的设计理念、工作原理和应用场景。
简单来说,我们要培养的是未来的计算机控制系统设计师。
二、课程内容1.基础理论课程的前半部分,我们会重点讲解计算机控制的基础理论,包括控制系统的基本概念、数学模型、控制器设计等。
这部分内容虽然枯燥,但却是后续实践的基础。
我会用生动的例子和实际应用场景来引导学生,让他们对这些理论产生兴趣。
2.编程实践是编程实践环节。
我们会教授学生如何使用C/C++、Python等编程语言来设计计算机控制系统。
在这个过程中,学生将学会如何将理论应用到实际项目中,如何处理各种复杂问题。
3.硬件接口除了编程,我们还会教授学生如何使用各种硬件接口,如串口、网络接口等。
这部分内容会让学生了解到计算机控制系统与外部设备之间的通信方式,为后续的实践项目打下基础。
4.项目实践在课程的我们会安排一系列项目实践。
这些项目将涵盖不同的应用领域,如智能家居、工业自动化等。
学生将分组进行项目设计,从需求分析、系统设计到编程实现,全方位锻炼自己的能力。
三、教学方法1.案例教学我会采用案例教学的方法,通过分析经典的计算机控制系统案例,让学生理解理论知识在实际中的应用。
同时,案例教学也能激发学生的兴趣,让他们主动参与到课程中来。
2.实践教学实践教学是本课程的核心。
我会安排大量的实验和项目实践,让学生在实践中掌握计算机控制技术的应用。
还会鼓励学生参加各种比赛和项目,提升他们的实际操作能力。
3.互动教学在教学过程中,我会鼓励学生提问和发表自己的观点。
通过互动,我可以及时了解学生的掌握情况,调整教学进度和难度。
计算机控制技术课程设计整理版.doc

计算机控制技术课程设计目录1 引言 (1)2 课程设计任务和要求 (2)3 直流伺服电机控制系统概述 (2)3.1 直流伺服系统的构成 (2)3.1.1 伺服系统的定义 (2)3.1.2 伺服系统的组成 (2)3.1.3 伺服系统的控制器的分类 (3)3.1.4 直流伺服系统的工作过程 (4)4 直流伺服电机控制系统的设计 (5)4.1方案设计步骤 (5)4.2 总体方案的设计 (5)4.3控制系统的建模和数字控制器设计 (7)4.4数字PID工作原理 (8)4.5数字PID算法的simulink仿真 (8)5 硬件的设计和实现 (9)5.1 选择计算机机型(采用51内核的单片机) (9)5.1.1 80C51电源 (10)5.1.2 80C51时钟 (10)5.1.3 80C51 控制线 (10)5.1.4 80C51 I/O接口 (11)5.2 设计支持计算机工作的外围电路(键盘、显示接口电路等) (11)5.2.1数据锁存器 (11)5.2.2键盘 (11)5.2.3显示器 (12)5.2.4数模转换器ADC0808 (12)5.3 其它相关电路的设计或方案 (13)5.3.1 供电电源设计 (13)5.3.2 检测电路设计 (13)5.3.3 功率驱动电路 (14)5.4 仿真原理图 (14)6软件设计 (14)6.1 程序设计思想 (14)6.2 主程序模块框图 (15)6.3编写主程序 (15)7 总结 (16)附录1 ADC0808程序 (17)附录2 数字控制算法程序 (18)参考文献 (19)1 引言半个世纪来,直流伺服控制系统己经得到了广泛的应用。
随着伺服电动机技术、电力电子技术、计算机控制技术的发展,使得伺服控制系统朝着控制电路数字化和功率器件的模块化的方向发展。
本文介绍直流伺服电机实验台的硬件、软件设计方案。
通过传感器对电机位移进行测量,控制器将实际位移量与给定位移量进行比较,控制信号驱动伺服电机控制电源工作,实现伺服电机的位置控制。
计算机控制课程设计

计算机控制课程设计
计算机控制课程设计是一项重要的任务,它可以帮助我们更好地理解计算机控制的原理。
本文将详细介绍计算机控制课程设计的步骤。
首先,在准备阶段,必须完成一些准备工作,如建立课程目标,梳理实验内容及顺序,计算出实验总时间,收集教学资料,定制教学过程,准备考试和作业题目,以及定义评价标准。
其次,在教学设计阶段,需要确定实验内容、设计实验空间,提前准备设备,安排教室资源,建立实验报告模板,编写实验教学大纲,准备课件,编写实验操作文档,设计试验流程与步骤,以及安排教学时间。
最后,在实施阶段,教师应根据课程设计的要求,认真讲授,严格按照设计的课程大纲,以及实验步骤进行指导,全程检测学生的学习进度,并给予及时的反馈。
总之,计算机控制课程设计是一项重要的任务,有着各自明确的步骤,需要从准备阶段到实施实验,都有严格的操作,才能保证课程的顺利进行并取得良好的效果。
只有把上述的步骤都做到位,才能保证我们达到设计课程的最终目的。
计算机控制系统课程设计

计算机控制系统课程设计一、课程目标知识目标:1. 理解计算机控制系统的基本原理,掌握控制系统的数学模型和性能指标;2. 学会分析控制系统的稳定性、快速性和准确性,并运用相关理论知识对实际控制系统进行优化;3. 掌握计算机控制系统的设计方法和步骤,能结合实际案例进行控制系统设计。
技能目标:1. 能够运用所学知识,对简单的控制系统进行建模、分析和设计;2. 掌握使用计算机辅助设计软件(如MATLAB/Simulink)进行控制系统仿真的基本技能;3. 培养团队协作和沟通能力,通过小组合作完成课程设计任务。
情感态度价值观目标:1. 培养学生对计算机控制系统课程的兴趣,激发他们探索未知、解决问题的热情;2. 培养学生严谨的科学态度,注重理论与实践相结合,提高他们的工程素养;3. 增强学生的创新意识,鼓励他们在课程设计中勇于尝试新方法,培养创新精神和实践能力。
课程性质分析:本课程为专业核心课程,旨在使学生掌握计算机控制系统的基本理论、方法和技能,培养具备实际控制系统设计与分析能力的高级技术人才。
学生特点分析:学生处于本科高年级阶段,已具备一定的控制系统基础知识和实践能力,具有较强的求知欲和自主学习能力。
教学要求:结合课程性质和学生特点,注重理论与实践相结合,强调动手能力和创新意识的培养。
通过本课程的学习,使学生能够将所学知识应用于实际控制系统设计,提高解决实际问题的能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 计算机控制系统概述:介绍计算机控制系统的基本概念、发展历程、应用领域及发展趋势。
教材章节:第一章 计算机控制系统引论2. 控制系统数学模型:讲解控制系统的微分方程、传递函数、状态空间模型等数学描述方法。
教材章节:第二章 控制系统数学模型3. 控制系统性能分析:分析控制系统的稳定性、快速性、准确性等性能指标。
教材章节:第三章 控制系统性能分析4. 计算机控制系统设计方法:讲解控制系统设计的基本方法,包括PID控制、状态反馈控制、观测器设计等。
计算机控制课程设计

3.网络控制系统:探讨网络技术在控制系统中的应用,包括远程监控、数据通信等;
4.课程设计中的项目管理:教授学生如何进行项目规划、时间管理、团队协作等项目管理技能;
5.控制系统设计的伦理与法规:讨论在设计过程中应遵守的伦理规范和法律法规,培养学生的社会责任感;
2.控制系统的实时性分析:介绍实时控制系统的概念,讨论如何满足实时性要求,包括任务调度和中断处理;
3.控制算法的优化:研究如何通过调整PID参数、改变控制策略等方法优化控制效果;
4.控制系统安Байду номын сангаас性与可靠性:讨论控制系统在设计过程中如何考虑安全性和可靠性,包括冗余设计、故障安全策略等;
5.课程设计展示与评价:组织学生进行课程设计的口头报告和实物展示,开展同行评价和教师评价;
5.课程设计实例分析:以温度控制系统为例,分析其设计过程及注意事项;
6.课程设计实践:学生分组进行计算机控制系统设计,完成硬件搭建、软件编程及调试;
7.课程设计报告撰写:培养学生撰写技术文档的能力。
本节课旨在让学生掌握计算机控制系统的设计方法,提高学生的实践操作能力和团队协作能力,为今后从事相关领域工作打下坚实基础。
6.课程设计的成果转化:引导学生如何将课程设计的成果转化为实际应用,鼓励学生参与科研项目或创新竞赛;
7.综合能力提升:通过综合性的课程设计实践,提升学生的分析问题、解决问题、创新设计以及沟通表达等综合能力。
5、教学内容
本节课将深化以下教学内容:
1.控制系统设计的用户体验:探讨如何将用户需求融入控制系统设计,提高系统的操作便捷性和交互体验;
6.创新思维的培养:鼓励学生在课程设计过程中提出创新点,培养学生的创新意识和能力;
计算机控制课程设计

计算机控制课程设计一、课程目标知识目标:1. 让学生掌握计算机控制系统的基础理论知识,包括控制系统的组成、工作原理和性能指标;2. 使学生了解常见传感器的工作原理,并能运用所学知识分析传感器的选用原则;3. 让学生掌握计算机控制算法的基本原理,如PID控制、模糊控制等。
技能目标:1. 培养学生运用计算机编程软件(如MATLAB)进行控制系统仿真的能力;2. 培养学生设计简单的计算机控制系统硬件电路,并进行调试的能力;3. 提高学生运用所学知识解决实际计算机控制问题的能力。
情感态度价值观目标:1. 培养学生对计算机控制技术产生浓厚的兴趣,激发学生的学习热情;2. 培养学生具备团队协作精神,学会与他人共同探讨、分析和解决问题;3. 增强学生的创新意识,培养学生在面对实际问题时敢于尝试、勇于突破的精神。
分析课程性质、学生特点和教学要求:本课程为计算机控制技术的实践性课程,旨在培养学生的实际操作能力和创新能力。
学生处于高年级阶段,已具备一定的专业基础知识和实践能力。
教学要求注重理论与实践相结合,强调学生的动手实践能力和解决实际问题的能力。
二、教学内容1. 计算机控制系统概述- 控制系统基本概念- 控制系统发展历程- 计算机控制系统的优势与应用2. 控制系统硬件组成- 控制器硬件结构- 传感器及其接口技术- 执行器及其接口技术3. 计算机控制算法- PID控制算法原理- 模糊控制算法原理- 其他先进控制算法介绍4. 控制系统仿真与设计- MATLAB/Simulink软件介绍- 控制系统仿真模型搭建- 控制系统硬件设计及调试5. 实际案例分析与讨论- 典型计算机控制系统案例分析- 学生分组讨论实际控制问题- 创新性控制系统设计实践教学内容安排与进度:第一周:计算机控制系统概述第二周:控制系统硬件组成第三周:计算机控制算法第四周:控制系统仿真与设计第五周:实际案例分析与讨论教材章节及内容列举:第一章:计算机控制系统概述(涵盖教学内容1)第二章:控制系统的硬件与接口技术(涵盖教学内容2)第三章:计算机控制算法(涵盖教学内容3)第四章:控制系统的仿真与设计(涵盖教学内容4)第五章:计算机控制系统应用案例(涵盖教学内容5)三、教学方法本课程采用以下多样化的教学方法,以充分激发学生的学习兴趣和主动性:1. 讲授法:用于讲解计算机控制系统的基本概念、原理和算法等理论知识。
计算机控制技术课程设计

计算机控制技术课程设计一、教学目标本课程旨在让学生了解和掌握计算机控制技术的基本原理和应用方法。
通过本课程的学习,学生将能够:1.知识目标:理解计算机控制技术的基本概念、原理和特点;熟悉计算机控制系统的组成和分类;掌握常见的计算机控制算法和应用。
2.技能目标:能够运用计算机控制技术解决实际问题;具备分析和设计简单计算机控制系统的的能力。
3.情感态度价值观目标:培养学生对计算机控制技术的兴趣和好奇心,提高学生运用科学技术解决实际问题的意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.计算机控制技术概述:计算机控制技术的起源、发展及其在各个领域的应用。
2.计算机控制系统的基本原理:模拟计算机控制系统、数字计算机控制系统、混合计算机控制系统。
3.计算机控制系统的组成:控制器、执行器、传感器、反馈元件等。
4.计算机控制算法:PID控制算法、模糊控制算法、神经网络控制算法等。
5.计算机控制技术的应用:工业自动化、交通运输、楼宇自动化等。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:通过讲解计算机控制技术的基本概念、原理和特点,使学生掌握相关知识。
2.案例分析法:分析实际案例,使学生更好地理解计算机控制技术的应用。
3.实验法:让学生动手进行实验,培养学生的实际操作能力和解决问题的能力。
4.讨论法:学生进行课堂讨论,激发学生的思考,提高学生的表达能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用国内权威出版社出版的计算机控制技术教材。
2.参考书:提供相关的计算机控制技术参考书籍,供学生自主学习。
3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高教学效果。
4.实验设备:准备计算机控制系统实验装置,让学生能够实际操作,加深对知识的理解。
五、教学评估为了全面、客观地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:通过课堂参与、提问、讨论等方式,评估学生的学习态度和积极性。
计算机控制系统课程设计

4.案例分析:
-分析计算机控制系统在工业生产、交通运输、医疗设备等领域的应用案例;
-讨论不同场景下控制系统的设计要点和解决方案。
5.课程设计任务:
-分组进行课程设计,根据任务书要求设计计算机控制系统;
-结合实际案例,自主选择控制器类型,完成控制系统设计。
-指导学生根据仿真和实验结果,对控制系统设计进行优化;
-探讨不同控制策略的优缺点,鼓励学生创新思维,提出改进方案。
3.小组讨论:
-鼓励学生以小组形式进行讨论,分享设计过程中的心得体会;
-分析各自设计的控制系统性能,比较不同设计方案的效果。
4.知识拓展:
-引导学生了解当前计算机控制系统领域的前沿技术和研究动态;
-引导学生结合实际应用场景,探索计算机控制系统的创新设计和应用。
4.教学评估:
-收集学生对课程设计的意见和建议,进行教学评估;
-分析评估结果,为后续课程设计和教学改进提供参考。
5.跨学科融合:
-强调计算机控制系统与其他学科领域的融合,如自动化、电子工程、机械工程等;
-鼓励学生拓宽视野,掌握跨学科知识,提升综合应用能力。
6.报告撰写与评价:
-指导学生按照规范撰写课程设计报告,包括系统设计、仿真分析、实验结果等;
-制定评价标准,对学生的课程设计成果进行评价和反馈。
3、教学内容
1.实践操作:
-组织学生进行实验室实践,实际操作计算机控制系统硬件设备;
-引导学生结合理论知识,调试和优化控制器参数,观察控制效果。
2.设计优化:
6.未来规划:
-与学生探讨计算机控制系统在未来的发展趋势和职业规划;
-鼓励学生树立长远目标,为未来从事相关领域工作做好准备。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一、设计背景及意义当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。
单片机具有性价比高、集成度高、可靠性好、抗干扰性强等特点,广泛运用于各种智能仪器中。
基于新型规则的可编程交通控制系统,可以实现对车辆、行人的控制,使的交通便于管理。
所以,采用单片机自动控制交通灯有现实的社会意义。
二、设计任务1. 采用AT89C51芯片;2. 使用发光二极管(红,黄,绿)代表各个路口的交通灯;3. 用8段数码管对转换时间进行倒时;4、带紧急按钮功能,当紧急按钮按下时,所有方向均亮起红灯;5. 控制程序采用C语言编程。
三、控制系统设计原理3.1 设计思路利用单片机实现交通灯的控制,该任务分以下几个方面:a、实现红、绿、黄灯的循环控制。
要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。
b、用数码管显示倒计时。
可以利用动态显示或静态显示,串行并出或者并行并出实现。
c、紧急状况功能。
这需要人工实现,编程时利用到中断才能带到目的,只要有按钮按下,那么四个方向全部显示红灯,禁止车辆通行。
当情况解除(再次按下按钮),重新回到初始状态。
3.2 总体设计图图13.2.1 交通灯循环控制使用AT89C51单片机完成对十字路口交通灯的控制,十字路口的工作过程分为东西方向和南北方向两个干道的红绿黄灯工作状态(红灯亮表示禁止通行,绿灯亮表示允许通行,黄灯亮表示提醒红绿灯之间状态的切换)的控制,每个工作状态的时间设为40s,采用循环的控制方式,具体控制过程如下(如图2):1、系统工作开始后,首先进入初始设定阶段,东西方向亮红灯,南北方向亮绿灯;2、进入状态1的倒计时阶段,东西方向的红灯开始40s倒计时,南北方向绿灯开始35s倒计时;3、进入状态1过渡阶段,东西方向红灯开始最后5s倒计时,南北方向黄灯亮并开始5s倒计时;4、过渡阶段1完成后,东西方向亮绿灯,南北方向亮红灯;5、进入状态2的倒计时阶段,南北方向的红灯开始40s倒计时,东西方向绿灯开始35s倒计时;6、进入状态2过渡阶段,南北方向红灯开始最后5s倒计时,东西方向黄灯亮并开始5s倒计时;7、过渡阶段2完成后,进入状态1,开始循环。
图23.2.2 倒计时显示使用8段LED数码管进行倒计时的显示此处采用LED静态显示方式,当显示器显示某个字符时,相应的段恒定的导通或截止,直到显示另个字符为止。
89C51的串行口RXD和TXD为一个全双工串行通信口,但工作在方式0下可作同步移位寄存器,其数据由RXD端串行输出或输入;而同步移位时钟由TXD端串行输出,在同步时钟的作用下,实现由串行到并行的数据通信。
在不需要使用串行通信的场合,利用串行口加外围芯片74LS164就可构成一个或多个并行输入\输出口,用于串——并转换或显示器LED驱动。
此利用后者。
3.2.3 紧急状况当遇到紧急情况如救护车通过、交通事故等时,可按下紧急状况按钮,是东西方向和南北方向全部亮红灯,保证紧急情况得到及时解决。
待情况解决后,交通灯的工作情况回到初始设定阶段,从而保证交通流畅。
为了实现此功能,利用单片机中断达到目的。
利用一个手动按钮开关接至单片机外部中断0,同时在软件设计时将其设为最高优先级。
当有按键按下,四方全为红灯,当再按下按钮,回到初始位置继续执行。
3.3 AT89C51AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
3.3.1 AT89C51单片机的主要特性与MCS-51 兼容,4K字节可编程闪烁存储器,可以反复擦除1000次,数据保留时间可达10年,全静态工作,三级程序存储器锁定,128*8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源(两个外部中断源和3个内部中断源),可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路(时钟电路的作用是产生单片机工作所需要的时钟脉冲序列),中断系统(中断系统的作用主要是对外部或内部的终端请求进行管理与处理)。
AT89S51共有5个中断源,其中又2个外部中断源和3个内部中断源。
图3 AT89C51系列单片机的内部结构示意图3.3.2 AT89C51 引脚功能图4 AT89C51引脚图·VCC:电源电压·GND:接地·P0口:P0口是一组8位双向I/0口。
P0口即可作地址/数据总线使用,又可以作为通用的I/O口使用。
当CPU访问片外存储器时,P0口分时先作低8位地址总线,后作双向数据总线,此时,P0口就不能再作I/O口使用了。
在访问期间激活要使用上拉电阻。
·P1口:Pl 是一个带内部上拉电阻的8准位双向I/O口,P1作为通用的I/O 口使用。
·P2 口:P2 是一个带有内部上拉电阻的8 位准双向I/O 口,P2即可作为通用的I/O口使用,也可以作为片外存储器的高8位地址总线,与P0口配合,组成16位片外存储器单元地址。
·P3 口:P3 口是一组带有内部上拉电阻的8 位准双向I/0 口。
P3 口除了作为通用的I/O口使用之外,每个引脚还具有第二功能,具体分配如表1表1 具有第二功能的P3口引脚·RST:复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
WDT 溢出将使该引脚输出高电平,设置SFR AUXR的DISRT0 位(地址8EH)可打开或关闭该功能。
DISRT0位缺省为RESET输出高电平打开状态。
·ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE 仍以时钟振荡频率的1/6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
·PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
当访问外部数据存储器,没有两次有效的PSEN信号。
·EA/VPP:外部访问允许。
·XTAL1:振荡器反相放大器及内部时钟发生器的输入端。
3.3.3 AT89C51中断源AT89C51有5个中断源,它们是两个外中断INT0(P3.2)和INT1(P3.3)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制,其中5个中断源的程序入口地址如表2所示:表2 中断源的服务程序入口地址3.4 LED数码管LED显示器有两中工作方式:静态显示方式和动态显示方式。
静态显示的特点是每个数码管必须接一个8位锁存器用来锁存待显示的字型码。
送入一次字型码显示自行一直保持,直到送入新字型码为止。
这种方法的优点是占用CPU时间少,显示便于监测和控制。
缺点是硬件电路比较复杂,成本较高。
各数码管在显示过程中持续得到显示信号,与各数码管接口的I/O口是专用的。
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
各数码管在显示过程中轮流得到显示信号,与各数码管接口的I/O口是共用的。
该设计采用如下所示的数码管,分别显示南北和东西灯的剩余时间。
片选部分和数码段显示部分,分别接单片机管脚的P2口和P0口,具体的共阴数码管下见图。
其中,A到G为码段控制端口,1,2为片选端口。
四、硬件设计4.1时钟部分电路设计时钟电路用于产生MCS-51单片机工作时所必须的时钟控制信号。
其内部电路在时钟信号控制下,严格地按时序执行指令进行工作。
在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定操作。
本设计采用12MHz晶振和两个33Pf瓷片电容,他们构成一个稳定的自激振荡器。
该电容的大小影响振荡器频率的高低、振荡器的稳定性和起振的快速性。
为单片机提供标准时钟。
其中两个瓷片电容起微调作用。
如图所示:4.2复位部分电路设计复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
复位电路通常采用上电自动复位和按钮复位两种方式。
该设计采用加电直接复位,复位电容采用10uF,电阻10000欧,为了节省元件,没有采用上电加按键模式。
加电瞬间,RES管脚为高电平。
通过电阻回路放电,使电压逐渐降为零,从而实现了复位功能。
其连接图如下图所示:4.3 硬件设计总电路图五、软件设计5.1 设计流程图5.2 程序清单#include <reg52.h>sbit ADDR3 = P1^3;sbit ENLED = P1^4;unsigned char code LedChar[] = { //数码管显示字符转换表0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E};unsigned char LedBuff[7] = { //数码管+独立LED显示缓冲区0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};bit flag1s = 1;unsigned char T0RH = 0;unsigned char T0RL = 0;void ConfigTimer0(unsigned int ms);void TrafficLight();void main(){TMOD = 0x01;TH0 = (65536 - DELAY) / 256;TL0 = (65536 - DELAY) % 256;EA = 1; //开总中断ET0 = 1;TR0 = 1;P0=0xff;P1=0x00; //设置定时器为中断工作模式ENLED = 0; //使能数码管和LEDADDR3 = 1;ConfigTimer0(1); //配置T0定时1mswhile(NSEMERGENCY&&EWEMERGENCY) //紧急情况处理{timeDisplay_Blue();timeDisplay_Red();if(flag)stateChange();stateChange_Glint();}while (1){if (flag1s) //每秒执行一次交通灯刷新{flag1s = 0;TrafficLight();}}}void ConfigTimer0(unsigned int ms){unsigned long tmp; //临时变量tmp = 11059200 / 12; //定时器计数频率tmp = (tmp * ms) / 1000; //计算所需的计数值tmp = 65536 - tmp; //计算定时器重载值tmp = tmp + 18; //补偿中断响应延时造成的误差T0RH = (unsigned char)(tmp>>8); //定时器重载值拆分为高低字节T0RL = (unsigned char)tmp;TMOD &= 0xF0; //清零T0的控制位TMOD |= 0x01; //配置T0为模式1TH0 = T0RH; //加载T0重载值TL0 = T0RL;ET0 = 1; //使能T0中断TR0 = 1; //启动T0}void TrafficLight(){static unsigned char color = 2;static unsigned char timer = 0;if(timer == 0){switch(color){case 0:color = 1;timer = 2;LedBuff[6] = 0xE7;break;case 1:color = 2;timer = 29;LedBuff[6] = 0xFC;break;case 2:color = 0;timer = 39;LedBuff[6] = 0x3F;break;default:break;}}else{timer--;}LedBuff[0] = LedChar[timer%10];LedBuff[1] = LedChar[timer/10];}void LedScan(){static unsigned char i = 0; //动态扫描索引P0 = 0xFF; //关闭所有段选位,显示消隐P1 = (P1 & 0xF8) | i; //位选索引值赋值到P1口低3位P0 = LedBuff[i]; //缓冲区中索引位置的数据送到P0口if (i < 6) //索引递增循环,遍历整个缓冲区i++;elsei = 0;}void InterruptTimer0() interrupt 1{static unsigned int tmr1s = 0; //1秒定时器TH0 = T0RH; //重新加载重载值TL0 = T0RL;LedScan(); //LED扫描显示tmr1s++; //1秒定时的处理if (tmr1s >= 1000){tmr1s = 0;flag1s = 1; //设置秒定时标志}}六、总结经过三个星期的努力,终于完成了自己的计算机控制课程设计。