单片机课程设计说明书多功能秒表
- 格式:doc
- 大小:148.50 KB
- 文档页数:20
单片机课程设计说明书───秒表系统设计时间:2007.12.23—2008。
1.1 院系:电气与信息工程系姓名:***班级:0000000学号:999999999999目录一概述┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄2二设计要求┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 2三设计思路及描述┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 3四原理图┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 4五设计流程图┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 5六设计程序┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 8七硬件调试┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 12八课程设计心得体会┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 13九参考文献┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 14一概述近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的秒表,随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中秒表就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计所介绍的秒表系统设计——用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一.另设计一个“开始”按键和一个“复位”按键。
增加一个“暂停”按键和一个“快加”按键(每10ms快速加一)二设计要求用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一.另设计一个“开始"按键和一个“复位”按键。
《单片机原理及接口技术》课程设计说明书设计课题:秒表的设计专业班级:10级自动化(3)班姓名学号:高扬(080310186)秦松亭(080310183)宋龙文(080310152)产江华(080310138)指导教师:郭玉设计时间: 2012年12月物理与电气工程学院二〇一二年十二月摘要二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
但是,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用P4吗?应用的关键是看是否够用,是否有很好的性能价格比。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
自从1976年问世以来,单片机获得了巨大的发展。
现在比较流行的单片机是美国Intel的MCS51/96以及Motorola的MC系列,Zilog 的Z8系列,同时还有更多新型的、功能更强的单片机不断出现。
Abstract:Twentieth century across the three “power” of the era, that the age of electricity, the electronic age and has now entered the computer age. However, the actual work where the computer is not any need to require a high performance computer, a control fridge temperature P4 computer do you use? The key is to see whether the application of adequate, whether there is a very good cost performance. Single chip, also known as single-chip microcontroller, it is not the completion of a logic function of the chip, but a computer system integrated into a chip. Speaking in general terms: a single chip into a computer. Its small size, light weight, cheap, for learning, application and development of facilities provided. Since its inception in 1976, SCM was a great development. SCM is now more popular in the United States, and Motorola, Intel’s MCS51/96 MC series, Zilog’s Z8 series, as well as more new, more powerful microcontrollers continue to emerge.关键字:单片机,秒表,系统设计。
单位代码 02学号1201050021分类号密级课程设计说明书基于单片机的多功能秒表院(系)名称专业名称学生姓名指导教师2015年10 月27 日目录1 设计总体方案 ..................................................................................... 错误!未定义书签。
1.1 设计要求与目的 ................................................................ 错误!未定义书签。
1.2 设计思路 ............................................................................ 错误!未定义书签。
1.3工作原理 (2)1.4 功能简介 ............................................................................ 错误!未定义书签。
2 系统硬件设计 (3)2.1 电源电路 (3)2.2 晶体振荡电路 (3)2.3 复位电路 (4)2.4 显示电路 (5)2.5 键盘电路 (6)3 软件设计 (8)3.1 软件设计概述 (8)3.2程序流程图 (8)3.3子程序模块设计 (10)4 系统调试及结果分析 (13)4.1 基于RS触发器的调试 (13)4.2电子秒表的整体调试 (13)4.3系统的功能 (14)结论 (15)参考文献 (16)附录A 系统电路图 (17)附录B 源程序 (18)黄河科技学院课程设计第 1 页1 设计总体方案1.1 设计要求与目的设计一个单片机控制的多功能秒表系统,利用单片机的定时器/计时器定时和计数的原理,结合显示电路、用两位共阴极LED数码管以及按键来设计秒表计时器,实现暂停与清零功能,并多次计数。
1 引言设计一个单片机控制的秒表系统。
利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行加、减(倒)计时,数码管能够正确地显示时间。
设计要求如下:1、能同时记录四个相对独立的时间并分别显示。
2、两位LED动态显示,显示时间为00~99秒。
3、每秒自动加1。
4、一个开始按键、一个复位按键、一个暂停按钮和一个计录按钮(附加功能)。
5、翻页按钮查看四个不同的计时值。
2 设计方案及原理本系统采用AT80C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,将软、硬件有机地结合起来。
其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,,中断,延时程序,按键消抖程序等,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。
系统电路原理图如图1所示。
图1 系统电路原理3 硬件设计3.1 单片机MCS-51单片机在一块芯片上集成了CPU,存储器RAM,ROM以及输入与输出接口电路,这种芯片习惯上被称为单片微型计算机,简称单片机。
3.2 复位电路单片机的复位操作有上电自动复位和按键自动复位两种方式。
上电复位是通过外部复位电路的电容充电来实现的。
这个系统中的复位电路是采用上电加按钮来实现的。
因为MCS-51单片机的复位是靠外部电路实现的。
MCS-51单片机工作之后,只要在他的RST引线上加载10ms以上的高点平,单片机就能有效地进行复位。
如图2所示。
图2 复位电路3.3 晶体振荡电路时钟电路用于产生单片机工作所需的时钟信号。
在MCS-51系列单片机芯片外部,通过XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路。
如图3所示。
图3 晶体振荡电路3.4 键盘电路我们采用按键电路,用部分P1口做开关,P1.0停止,P1.1复位,P1.3暂停记录,P1.4上翻,P1.5下翻。
单片机秒表课程设计1. 引言秒表是一种常用的计时工具,可以用来测量时间的精确度。
在本课程设计中,我们将使用单片机来设计一个简单的秒表。
本文档将详细介绍该秒表的设计思路、硬件和软件实现以及测试结果。
2. 设计思路我们的设计目标是实现一个简单的秒表,包括计时、暂停和复位功能。
我们将采用基于单片机的设计,使用定时器和中断来实现计时。
具体的设计思路如下:•使用微控制器作为核心控制单元,我们选择XXXX型号的单片机。
•使用定时器模块来计时,通过设置定时器的计数频率来控制计时的精确度。
•使用外部中断按钮来控制计时的开始、暂停和复位操作。
•使用LED显示屏来显示计时结果。
3. 硬件设计3.1 硬件连接在硬件设计方面,我们需要将单片机与其他外部设备进行连接。
具体的连接方式如下:•将定时器模块的输出引脚连接到单片机的计时输入引脚。
•将外部中断按钮连接到单片机的中断输入引脚。
•将LED显示屏的控制引脚连接到单片机的输出引脚。
3.2 硬件组成本设计所需要的硬件组成如下:•单片机:XXXX型号微控制器•定时器模块•外部中断按钮•LED显示屏4. 软件设计4.1 主程序框架主程序的框架如下:#include <reg51.h>// 定义全局变量和标志位// 定时器中断函数// 外部中断中断函数// 主程序入口void main() {// 初始化定时器和中断// 循环检测按钮状态,并执行相应操作}4.2 定时器中断函数定时器中断函数用于实现计时功能,其主要逻辑如下:1.获取当前的计数值,并进行相关处理。
2.更新LED显示屏上的计时数据。
4.3 外部中断函数外部中断函数用于响应按钮的按压操作,其主要逻辑如下:1.判断按钮的按下类型,根据不同的按压类型执行相应的操作(开始、暂停或复位)。
2.根据操作类型更新相应的标志位。
4.4 功能函数除了定时器中断函数和外部中断函数之外,还可以编写一些功能函数来实现计时、暂停和复位等功能。
新疆工业高等专科学校电气系课程设计说明书十秒的秒表专业班级:电力10—10(2)班学生姓名:赵学奋指导教师:陈晓芸完成日期: 2012年6月 8日电气系系课程设计任务书教研室主任(签名)系(部)主任(签名)年月日新疆工业高等专科学校电气系课程设计评定意见设计题目:十秒的秒表学生姓名:赵学奋专业电力系统自动化班级 10—10(2)班评定意见:评定成绩:指导教师(签名):年月日评定意见参考提纲:1.学生完成的工作量与内容是否符合任务书的要求。
2.学生的勤勉态度。
3.设计或说明书的优缺点,包括:学生对理论知识的掌握程度、实践工作能力、表现出的创造性和综合应用能力等。
目录1单片机介绍 (1)1.1单片机概述 (1)1.2单片机芯片 (1)1.3单片机的应用分类 (2)1.3.1通用型/专用型 (2)1.3.2总线型/非总线型 (2)1.3.3控制型/家电型 (2)1.4单片机的发展历史 (3)1.4.1基本结构 (3)1.4.2主要阶段 (3)1.5早期发展史 (4)1.6单片机的硬件特性 (5)1.7单片机的应用范围 (5)1.7.1智能仪器 (5)1.7.2工业控制 (6)1.7.3家用电器 (6)1.7.4网络和通信 (6)1.7.5医用设备领域 (6)1.7.6模块化系统 (6)1.7.7汽车电子 (6)1.8Proteus介绍 (7)1.9 Keil C51 介绍 (7)2.硬件设计 (8)2.1电源电路 (8)2.2晶体振荡电路 (8)2.3复位电路 (8)2.4显示电路 (9)2.5键盘电路 (9)2.6硬件主电路图设计 (10)2.7 元器件清单 (10)3.主要原器件介绍 (12)3.1 A T89C51单片机 (12)3.2发光二极管 (14)3.3石英晶振 (15)3.4数码管 (15)4.课程设计 (17)4.1设计题目 (17)4.2电路原理图 (17)4.3工作原理 (17)4.4程序设计 (18)4.4.1如图3.2是我们组利用Keil进行编程的环境 (18)4.4.2以下就是使是秒秒表实现功能的C语言程序 (18)4.5仿真效果 (20)4.5.1按第一次按开关按键计时器开始计时 (21)4.5.2按第二次开关按键计时器暂停计时 (21)4.5.3按第三次开关按键定时器清零 (22)结论 (23)致谢 (24)参考文献 (25)摘要本实验利用单片机的定时器/计数器和计数的原理,结合按键开关以及LED数码管来设计计时器。
基于单片机的多功能秒表系统课程设计单片机课程设计报告多功能秒表系统设计姓名:学号:专业班级:指导老师:所在学院:2009年6月10日单片机已经无处不在,与我们生活更是息息相关并已渗透到了生活的方方面面。
单片机的特点是体积小,重量轻,功能强,通用性好,也就是说集成度高,其内部的结构是普通的计算机系统的简化。
在增加一些外围电路之后,就能成为一个完整的系统。
在众多单片机中,MCS-51系列单片机具有系统结构完整,特殊功能寄存器规范化以及指令系统的控制功能强等特色,使起成为单片机中的主流机型。
本设计是一个由AT89C51单片机控制,利用单片机的定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路按键计时来实现的多功能秒表系统。
在本次设计中我们以AT89C51单片机为主要器件,利用它的定时器/计数器定时和记数的原理,结合7809电源提供的+5V稳压电压,上电加按钮复位电路,晶体振荡电路,由P0口驱动的LED动态显示电路,键盘电路等来完成多功能秒表的设计。
这个多功能秒表系统能够实现两位LED显示,显示的时间为00~99秒,每秒自动加1,能正确地进行加、减(倒)计时,能同时记录4个相对独立的时间,通过上翻键和下翻键来查看这4个不同的计时值,还具有快加和复位功能,基本上实现了老师的要求。
我们使用汇编语言来编写程序,采用模块化程序设计方法,主程序有多个子程序构成,这些子程序可以单独的设计,调试和管理,其中包括加1子程序、减1子程序、延时子程序、快加子程序,复位子程序和显示子程序等。
将源程序代码在WAVE中进行编译和调试,硬件系统利用Proteus软件来实现,可以方便的看到运行结果。
关键词:多功能秒表、单片机、子程序模块、Proteus仿真1 概述 (3)1.1单片机简介 . (3)1.2设计任务 (3)1.3设计要求 (3)2 系统总体方案及硬件设计 ......................................................错误!未定义书签。
单片机课程设计报告电子秒表摘要:本设计的成品是在单片机最小系统的基础上增加显示电路和控制电路来完成电子秒表的硬件电路的。
电子秒表电路主要由AT89S52单片机最小系统电路、七段数码管动态显示电路和控制电路组成,它能实现八位数码显示和多次计时,能通过控制电路能控制时间的暂停、开始和清零,能够多次存储时间,并查询显示计时时间的顺序。
关键字:AT89S52 数码管最小系统1 方案设计1.1系统分析设计的电路主要是能多次记时和查询时间,记时的多少通过显示电路显示出来,每一次计时可以通过控制电路查询出来。
设计框图如图一所示;1.2系统方案方案一:利用AT89S52单片机设计数显定时器和定时器。
单片机软件编程灵活、自由度大,可用软件编程实现各种控制算法和逻辑控制。
利用74HC573锁存器和按键作为控制电路,通过位选和段选来实现数码管的显示。
2 硬件设计2.1 控制芯片的介绍AT89S52(与AT89S51相同)单片机的外型如图四所示。
单片机可分为通用型和专用型,种类繁多。
这里我们主要介绍AT89S52单片机是属于典型代表的MCS-51系列单片机,它是一种能处理8位数据的通用型单片机。
以Atmel公司生产的具有CMOS工艺、低功耗、高性能的AT89S52为例,介绍单片机的工作原理、控制程序的编写及开发应用。
AT89S52是一个高性能CMOS 8位单片机,芯片内集成了通用8位中央处理器,片内含8k Bytes的可反复擦写1000次的Flash只读程序存储器(ROM), 支持ISP(In-system programmable)功能。
AT89S52内部有128 bytes的随机存取数据存储器(RAM),图五 AT89S52引脚图5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT )电路,片内时钟振荡器。
兼容标准MCS-51指令系统及80C51引脚结构。
图四AT89S52有40个引脚,32个外部双向输入/输出(I/O )口。
单片机综合实验报告题目: 多功能数字时钟班级:姓名:学号:一、实验内容:设计一个单片机控制的秒表系统.利用单片机的定时器的原理,结合显示电路、LED数码管以及按键来设计计时器,使系统能够正确地进行加、减<倒)计时,数码管能够正确地显示时间.6tCXaz8fPRb5E2RGbCAP目的要求1)两位LED显示,显示时间为00~99秒.2)每秒自动加1.3)一个开始按键、一个复位按键和一个暂停按钮.4)翻页按钮查看四个不同的计时值 .5)添加倒计时初始值设置功能6)不同功能通过功能键Setup实现切换.二、实验电路及功能说明本实验以51单片机为核心,应用其中断来定时,通过按键来控制时间和日期的调整,通过1602LCD来数字显示时钟,做成一个简易的数字时钟.本实验要求能定时,还要能设置闹铃,由于对C51程序代码的写法不是很熟,没能实现闹铃功能.所以,最后该实验能实现的功能为时间和日期的调整.6tCXaz8fPRp1EanqFDPw其原理图如下图所示:三、实验程序流程图:主程序:主程序流程图子流程图<按键功能设置)四、实验结果分析经过proteus仿真可知:该方案可行,能够对时间进行精确的调整,也能对日期进行更正,基本上能实现上述功能.6tCXaz8fPRDXDiTa9E3d五、心得体会通过该实验我对51的了解更加深入了一层,特别是对C51的写法更加了解,还对1602的基本操作有了一定的了解.同时,也发现C语言的重要性,以后要多加强对C语言的学习.6tCXaz8fPRRTCrpUDGiT六、程序清单#include <REG52.H>#include <INTRINS.H> //库函数头文件,代码中引用了_nop_(>函数// 定义控制信号端口sbit RS=P2^4。
//P2.4sbit RW=P2^5。
//P2.5sbit E=P2^6。
//P2.6sbit set=P1^4。
单片机课程设计报告秒表设计电子科学系班级:姓名:学号:指导老师:实用文档2013.12.01实用文档课程设计任务书实用文档实用文档摘要:在生活中我们常常用到秒表作为计时器,为了更深刻理解它的工作原理。
本次课程设计以STC89S51单片机为控制核心,以2位共阴数码管作为显示器。
并用外部中断0控制秒表的清零和用外部中断1控制秒表的开始/暂停。
利用Altium.Designer 10.0设计原理图和PCB。
设计完成后在面包板上搭建电路进行验证和调试。
实验成功后,利用化学方法进行腐蚀刻板。
通过一个个多次实验修改,最后设计出了一个能从00~99秒计时的秒表。
此外后文还对对本次课程设计进行了归纳与总结。
关键词:单片机、数码管、中断、Altium.Designer、腐蚀刻板实用文档目录一、设计要求: (8)二、方案论证: (9)2.1总方案设计方框图: (9)2.2方案选择: (9)2.2.1显示电路: (9)2.2.2按键控制: (10)三、硬件设计: (10)3.1系统主芯片STC89C51单片机介绍: (10)3.2电源电路: (12)3.3时钟电路: (13)3.4复位电路: (13)3.5显示电路: (14)3.6键盘电路: (14)实用文档3.7扩展电路: (15)3.8硬件总电路图设计: (15)四、软件设计 (17)4.1系统主程序设计 (17)4.2定时器T1中断: (17)4.3 外部中断0流程图: (18)4.4 外部中断1流程图: (18)4.5数码管显示程序: (19)五、设计中遇到的问题及解决方法: (20)5.1设计原理图和画PCB遇到问题及解决方法: (20)5.1.1设计原理图: (20)5.1.2 绘制PCB: (20)5.2 在面包板调试时遇到问题及解决方法: (21)5.3在腐蚀刻板时遇到问题及解决方法: (21)5.3.1打印PCB印菲林纸: (21)5.3.2在涂蓝油过程中: (21)5.3.3在显影过程中: (22)实用文档5.4焊接完成后遇到问题及解决方法: (22)结束语 (22)谢辞 (23)参考文献: (24)附录A:秒表设计的源程序 (24)附录B:元件清单: (30)附录C: 秒表的原理图和PCB图: (32)附录D:成绩评定表: (34)附录E:实物图(已通过验证) (36)秒表设计一、设计要求:1.1用89C51设计一个2位的LED数码作为“秒表”。
《单片机原理》课程设计说明书专业名称:电气工程及其自动化班级:103班学号:20100姓名:指导教师:日期:2012.12.21《单片机原理》评阅书摘要本设计是设计一个单片机控制的多功能秒表系统。
近年来随着科技的飞速发展 单片机的应用正在不断地走向深入 同时带动着传统控制检测日新月异的更新。
在实时检测和自动控制的单片机应用系统中 单片机往往是作为一个核心部件来使用 仅单片机方面的知识是不够的 还要根据具体的硬件结构 以及针对具体的应用对象的软件结合 加以完善。
秒表的出现 解决了传统的由于人为因素造成的误差和不公平性。
本设计的多功能秒表系统采用AT89C52单片机为中心器件 利用其定时器/计数器定时和记数的原理 结合显示电路、电源电路、LED数码管以及按键电路来设计计时器。
将软、硬件有机地结合起来 使得系统能够正确地进行计数 并且结合相应的显示驱动程序 使数码管能够正确地显示时间 暂停和中断。
我们设计的秒表可以同时记录八个相对独立的时间 通过上翻下翻来查看这八个不同的计时值 可谓功能强大。
其中软件系统采用汇编语言编写程序 包括显示程序 计数程序 中断 延时程序 按键消抖程序等 硬件系统利用PROTEUS强大的功能来实现 简单且易于观察 在仿真中就可以观察到实际的工作状态。
关键词: 单片机 多功能秒表目录1.概述 ........................................................................................................................ 错误!未定义书签。
2.系统总体方案及硬件设计..................................................................................... 错误!未定义书签。
2.1系统总体方案................................................................................................ 错误!未定义书签。
2.2硬件设计 ....................................................................................................... 错误!未定义书签。
3 软件部分设计 (7)3.1设计特点 (7)3.2设计思路 (7)4 调试 (15)5 总结 (116)6 参考文献 (117)1.概述1.1设计目的设计一个单片机控制的秒表系统。
利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计秒表。
将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时具有开始/暂停、清零、改变频率等功能。
1.2设计要求1、共四位LED显示 显示时间为00:00~99.99 。
2、共四个按键 分别是开始、暂停、清零、变频键。
3、变频按键,可以更改一下秒表的计时频率。
1.3设计意义1、通过本次课程设计可以使我们进一步熟悉和掌握单片机内部结构和工作原理,了解单片机应用系统设计的基本步骤和方法。
2、通过利用AT89C52单片机 理解单片机在自动化仪表中的作用以及掌握单片机的编程方法。
3、通过设计一个简单的实际应用输入及显示模拟系统,掌握单片机仿真软件PROTEUS 的使用方法。
4、该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、功能,并能够改变,该种秒表的计时频率。
在现实生活中应用广泛,具有现实意义。
2 系统总体方案及硬件设计2.1系统总体方案本系统采用AT89C52单片机为中心器件 利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路、晶振电路、复位电路、显示电路以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。
其中软件系统采用汇编语言编写程序,包括显示 计数、中断、延时、按键消抖程序等。
并在编程软件中调试运行,硬件系统利用PROTEUS 强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。
图1 系统电路原理2.2硬件设计2.2.1 89C52单片机MCS-51系列单片机是8位单片机产品,89C52是其中的典型代表,基本模块包括以下几个部分:1、CPU:89C52的CPU是8位的,另外89C52内部有1个位处理器。
2、R0M:4KB的片内程序存储器,存放开发调试完成的应用程序。
3、RAM:256B的片内数据存储器,容量小,但作用大。
4、I/O口:P0-P3共4个口32条双向且可位寻址的I/O口线。
5、中断系统:共5个中断源,3个内部中断,2个外部中断。
6、定时器/计数器:2个16位的可编程定时器/计数器。
7、通用串行口:全双工通用异步接收器/发送器。
8、振荡器:89C52的外接晶振与内部时钟振荡器为CPU提供时钟信号。
9、总线控制:89C52对外提供若干控制总线 ,便于系统扩展。
89C52的引脚图如下:2.2.2 晶体振荡电路89C52芯片内部有一个高增益反相放大器,用于构成振荡器。
引线 XTAL1和XTAL2分别为反向放大器的输入和输出,两端跨接石英晶体及两个电容就可构成稳定的自激振荡器。
这里我们选用52单片机12MHZ的内部振荡方式,电容器C7、C8起稳定振荡频率,并对振荡频率有微调作用,C7和C8可在20-100PF之间取值,这里取33P。
2.2.3 复位电路采用上电加按键复位电路,上电后由于电容充电,使RST持续一段高电平时间。
当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电加按键复位的操作。
2.2.4按键电路在按键电路中,我们可以在I/O口上直接接按键或者通过I/O口设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。
键盘扫描电路节省I/O口,但编程有些复杂在这里由于我们所用的按键较少且系统是一个小系统有足够的I/O口可以使用为了使程序简化,我们采用按键电路,用部分P1口做开关,P1.0开始、P1.1暂停、P1.2复位、P1.3改变频率、。
对于按键的设计,采用了防抖动的程序设计,使系统的性能得到进一步的提升。
当按键被按下时,相应的引脚被拉低,经扫描后获得键值,并执行键功能程序,因此按下不同的按键,将执行不同的功能程序。
2.2.5显示电路显示电路既可以选用液晶显示器,也可以选用数码管显示。
我们采用的是数码管显示电路。
用四个共阳极LED显示,LED是八段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。
在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定但是占用端口比较多,动态显示所使用的端口比较少,可以节省单片机的I/O口。
在设计中,我们采用LED动态显示,用P0口驱动显示。
由于P0口的输出级是开漏电路,用它驱动时需要外接上上拉电阻才能输出高电平。
2.2.6 系统电路图3软件部分3.1设计特点在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。
把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。
应用系统的程序由包含多个模块的主程序和各种子程序组成。
各程序模块都要完成一个明确的的任务,实现某个具体的功能如计数、延时、和显示等。
在具体需要时调用相应的模块即可。
功能描述,用四位LED数码管显示时间。
一个“开始”键一个“暂停”键,一个"复位"键,一个“变频”键,四个按键分别通过四个端口控制秒表的四个功能。
3.2设计思路(程序流程图及程序)程序如下#include<reg52.h> // 包含52单片机寄存器定义的头文件sbit K1=P1^0;sbit K2=P1^1;sbit K3=P1^2;sbit K4=P1^3;unsigned char code Tab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; unsigned char code Tab1[11]={0x40,0x79,0x24,0x30,0x19,0x12,0x2,0x78,0x0,0x10,0xff}; //数码管显示0~9的段码表unsigned char int_time; //记录中断次数unsigned int second; //储存秒unsigned char a=0;/*********************************************************************** 函数功能:快速动态扫描延时,延时约0.6毫秒************************************************************************/ void delay(void){unsigned char i;for(i=0;i<200;i++);}/*********************************************************************** 函数功能:显示秒入口参数:k出口参数:无************************************************************************/ void DisplaySecond(unsigned int k)P2=0x7f; //P2.6引脚输出低电平,DS6点亮P0=Tab[k/100]; //显示1位delay();delay();delay();delay();delay();;P2=0xbf; //P2.7引脚输出低电平,DS7点亮P0=Tab1[k%100/10]; //显示2位delay();delay();delay();delay();delay();P2=0xdf;P0=Tab[k%100%10];delay();delay();delay();delay();delay();P2=0xff; //关闭所有数码管P0=0xff; //显示个位delay();delay();delay();delay();delay();}void main(void){while(1){while(K1)DisplaySecond(0);TMOD=0x01; //使用定时器T0TH0=(65536-46083)/256; //将定时器计时时间设定为46083×1.085微秒//=50000微秒=50毫秒TL0=(65536-46083)%256;EA=1; //开启总中断ET0=1; //定时器T0中断允许TR0=1; //启动定时器T0开始运行int_time=0; //中断次数初始化second=0; //秒初始化while(1){DisplaySecond(second); //调用秒的显示子程序if(K3==0) break;}}}//******************************************************** //函数功能:定时器T0的中断服务程序//******************************************************* void interserve(void ) interrupt 1 using 1{TR0=0; //关闭定时器T0int_time ++; //每来一次中断,中断次数int_time自加1 if(!K4){delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay(); delay();delay();delay();delay();delay(); delay();delay();delay(); delay();delay();delay(); delay();delay();delay();delay();delay();delay(); delay();delay();delay();delay();delay();delay(); delay();delay();delay();delay();delay(); delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();if(!K4){a=!a;}}if(a==0){if(int_time==2||int_time>2) //够20次中断,即1秒钟进行一次检测结果采样{int_time=0; //中断次数清0second++; //秒加1if(second==1000)second =0; //秒等于60就返回0}}else{if(int_time==8) //够80次中断,即4秒钟进行一次检测结果采样{int_time=0; //中断次数清0second++; //秒加1if(second==1000)second =0; //秒等于60就返回0}}TH0=(65536-46083)/256; //重新给计数器T0赋初值TL0=(65536-46083)%256;TR0=1; //启动定时器T0if(K2==0)TR0=0;}4 调试在我们小组成员的一直努力下,终于把多功能秒表的程序给写了出来。