89C51单片机课程设计之秒表设计实验报告
- 格式:pdf
- 大小:511.83 KB
- 文档页数:14
《单片机技术》课程设计报告题目:基于MCU-51单片机的秒表设计班级:学号:姓名:同组人员:指导教师:王瑞瑛、汪淳2014年6月17日目录1课程设计的目的 (3)2 课程设计题目描述和要求 (3)2.1实验题目 (3)2.2设计指标 (3)2.3设计要求 (4)2.4增加功能 (4)2.5课程设计的难点 (4)2.6课程设计内容提要 (4)3 课程设计报告内容 (4)3.1设计思路 (4)3.2设计过程 (5)3.3 程序流程及实验效果 (6)3.4 实验效果 (13)4 心得体会 (14)基于 MCS-51单片机的秒表设计摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。
本次设计内容为以 8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。
设计内容以硬件电路设计,软件设计和 PCB 板制作三部分来设计。
利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。
将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。
关键词:秒表;8051;定时器;计数器1 课程设计的目的《单片机应用基础》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。
2 课程设计题目描述和要求2.1实验题目开始时,显示“00.0”,第一次按下按钮后开始从0-99.9s计时,显示精度为0.1s;对用有4个功能按键,第1个按键复位00.0,第2个按键正计时开始按钮,第3个按键复位99.9,第4个按钮倒计时开始。
学号:1108421065课程设计报告基于AT89C51单片机的秒表设计院系电子信息工程学院专业电子信息工程班级 1姓名张远远摘要本设计是设计一个单片机控制的多功能秒表系统。
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。
秒表的出现,解决了传统的由于人为因素造成的误差和不公平性。
本设计的秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及按键电路来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行计数,并且结合相应的显示驱动程序,使数码管能够正确地显示时间,暂停和中断。
可谓功能强大。
其中软件系统采用c语言编写程序,包括显示程序,计数程序,中断,延时程序,按键消抖程序等,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。
关键字:单片机秒表目录摘要 (I)目录 (II)引言 (III)1.课程设计目的 (1)2.课程设计题目描述和要求 (1)3.课程设计报告内容 (1)3.1设计思路(方案) (1)3.2系统总体方案及硬件设计(方案论证、设计、调试) (1)3.2.1系统总体方案 (1)3.2.2硬件电路设计 (2)3.3 软件设计 (5)3.3.1软件设计概述 (5)3.3.2程序流程图 (5)3.3.3子程序模块设计 (6)4.Protues软件仿真 (7)5.秒表c语言程序 (9)6.焊接实物图 (11)7.总结(设计后的体会和建议) (11)8.参考文献: (12)引言中国使用单片机的历史只有短短的30年,在初始的短短五年时间里发展极为迅速。
纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
单片机课程设计报告单片机秒表系统课程设计班级:课程名称:秒表设计成员:实训地点:北校机房实训时间:6月4日至6月15日目录1课程设计的目的和任务1.1 单片机秒表课程设计的概述1.2课程设计思路及描述1.3 课程设计任务和要求2硬件与软件的设计流程2.1系统硬件方案设计2.2所需元器件3 程序编写流程及课程设计效果3.1源程序及注释3.2原理图分析3.3课程设计效果4 心得体会1. 课程设计的目的和任务1.1单片机秒表课程设计的概述一、课程设计题目秒表系统设计——用STC89C51设计一个4位LED数码显示“秒表”,显示时间为000.0~9分59.9秒,每10毫秒自动加一,每1000毫秒自动加一秒。
二、增加功能增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。
三、课程设计的难点单片机电子秒表需要解决几个主要问题,一是有关单片机定时器的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程;四是如何进行安装调试。
四、课程设计内容提要本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。
其中本课程设计有三个开关按键:其中key1按键按下去时开始计时,即秒表开始键,key2按键按下去时数码管清零,复位为“00.00”. key3按键按下去时数码管暂停。
五、课程设计的意义1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2)掌握定时器、外部中断的设置和编程原理。
3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义1.2课程设计思路及描述该课程设计要求进行计时并在数码管上显示时间,则可利用MCS-51系列单片机的芯片AT89C51的P3.2,P3.3,RST作为按键的入口;定时器T1作为每0.1秒加一的定时器。
基于89C51单片机的秒表课程设计第一篇:基于89C51单片机的秒表课程设计摘要随着电子技术的发展,电子技术在各个领域的运用也越来越广泛,人对它的认识也逐步加深。
秒表计时器秒表计时器常常用于体育竞赛及各种其他要求有较精确时间的各领域中。
其中启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关计时终止。
而复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时应立即终止,并对计时器清零。
本设计就是利用所学到的电子元器件将脉冲源用数码管显示出来,以制承诺简易的秒表。
以单片机为核心,设计一个秒表,具有计时功能,按键有启动计时、数据清零、停止、时间显示。
采用3个LED数码管显示时间,计时范围设置为0~99.9秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。
目录一、设计任务 (3)二、设计题目 (3)三、功能分析 (3)四、总体设计 (3)4.1硬件设计 (4)4.1.1 89C51单片机 (4)4.1.2晶体振荡电路 (5)4.1.3复位电路 (6)4.1.4按键电路 (7)4.1.5显示电路 (8)4.2引脚控制 (9)五、电路原理图 (10)六、程序流程图及程序设计 (11)6.1程序流程图 (11)6.2程序设计 (12)七、程序仿真 (21)八、心得体会 (22)九、致谢 (2)3十、参考文献 (24)一、设计任务以单片机为核心,设计一个秒表,具有计时功能,按键有启动计时、数据清零、停止、时间显示。
二、设计题目秒表的设计三、功能分析采用3个LED数码管显示时间,计时范围设置为0~99.9秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。
单片机课程设计报告秒表设计电子科学系班级:姓名:学号:指导老师:2012.12.01课程设计任务书摘要:在生活中我们常常用到秒表作为计时器,为了更深刻理解它的工作原理。
本次课程设计以STC89S51单片机为控制核心,以2位共阴数码管作为显示器。
并用外部中断0控制秒表的清零和用外部中断1控制秒表的开始/暂停。
利用Altium.Designer 10.0设计原理图和PCB。
设计完成后在面包板上搭建电路进行验证和调试。
实验成功后,利用化学方法进行腐蚀刻板。
通过一个个多次实验修改,最后设计出了一个能从00~99秒计时的秒表。
此外后文还对对本次课程设计进行了归纳与总结。
关键词:单片机、数码管、中断、Altium.Designer、腐蚀刻板目录一、设计要求: (5)二、方案论证: (5)2.1总方案设计方框图: (5)2.2方案选择: (5)2.2.1显示电路: (5)2.2.2按键控制: (5)三、硬件设计: (6)3.1系统主芯片STC89C51单片机介绍: (6)3.2电源电路: (6)3.3时钟电路: (7)3.4复位电路: (7)3.5显示电路: (7)3.6键盘电路: (8)3.7扩展电路: (8)3.8硬件总电路图设计: (8)四、软件设计 (9)4.1系统主程序设计 (9)4.2定时器T1中断: (9)4.3 外部中断0流程图: (10)4.4 外部中断1流程图: (10)4.5数码管显示程序: (10)五、设计中遇到的问题及解决方法: (11)5.1设计原理图和画PCB遇到问题及解决方法: (11)5.1.1设计原理图: (11)5.1.2 绘制PCB: (11)5.2 在面包板调试时遇到问题及解决方法: (11)5.3在腐蚀刻板时遇到问题及解决方法: (11)5.3.1打印PCB印菲林纸: (11)5.3.2在涂蓝油过程中: (11)5.3.3在显影过程中: (11)5.4焊接完成后遇到问题及解决方法: (11)结束语 (12)谢辞 (12)参考文献: (12)附录A:秒表设计的源程序 (13)附录B:元件清单: (15)附录C: 秒表的原理图和PCB图: (16)附录D:成绩评定表: (17)附录E:实物图(已通过验证) (18)秒表设计一、设计要求:1.1用89C51设计一个2位的LED数码作为“秒表”。
单片机课程设计说明书题目:电子秒表学生姓名:专业:班级:指导教师:日期:目录第一章单片机课程设计任务书 (1)一、目的意义 (1)二、设计时间、地点和班级 (1)三、设计内容 (1)四、参考电路图形 (2)五、单片机的相关知识 (3)第二章硬件设计 (5)一、单片机简介 (5)二、电源电路 (5)三、晶振振荡电路 (5)四、复位电路 (5)五、显示电路 (6)六、键盘电路 (6)七、硬件主电路图设计 (7)八、元件清单 (7)第三章软件设计 (8)一、软件设计概述 (8)二、主程序流程图 (8)三、程序中各函数设计 (8)四、C语言主程序设计 (10)第四章课程设计体会 (13)..参考文献 (14)五、单片机相关知识本课题在选取单片机时,充分借鉴了许多成形产品使用单片机的经验,并根据自己的实际情况,选择了AT89C51。
AT89C51单片机采用40引脚的双列直插封装方式。
图1.2为引脚排列图,40条引脚说明如下:主电源引脚Vss和Vcc①Vss接地②Vcc正常操作时为+5伏电源外接晶振引脚XTAL1和XTAL2①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。
当采用外部振荡器时,此引脚接地。
②XTAL2内部振荡电路反相放大器的输出端。
是外接晶体的另一端。
当采用外部振荡器时,此引脚接外部振荡源。
图1.2 AT89C51单片机引脚图控制或与其它电源复用引脚RST/VPD,ALE/PROG,PSEN和EA/Vpp①RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。
②ALE/PROG正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的1/6)周期性地发出正脉冲信号。
因此,它可用作对外输出的时钟,或用于定时目的。
课程名称:微机原理课程设计题目:基于51单片机的秒表设计摘要随着社会的发展,单片机已经渗透到我们生活中的各个领域,广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等。
本设计就是由单片机STC89C52RC芯片和1602液晶为核心,辅以必要的电路,构成了一个单片机电子秒表。
秒表是一种常用的测试仪器,它可以用在百米赛跑等需要精确计时的地方,为人们的生活提供了很大的方便。
该单片机电子秒表布置合理,全部器件分布在7*10cm覆铜板上,看起来小巧精简。
采用的是单片机内部定时/计数器计时,走时非常精确而且不易出错。
1602液晶经蓝白滑动变阻器调节亮度,,可以直观地显示时间。
一个控制按键就可以控制秒表的计数与停止,按一下控制键,秒表工作状态就由计时变为计时变为停止或停止变为计时,按一下清零键就可以清零,操作非常简单。
液晶显示屏第一行显示2013.7.11字样的秒表制作完成时间,第二行显示计时时间。
它的计时周期为100秒,显示满刻度为99:99秒,从左往右数共四位,前两位显示整数部分,后两位显示小数部分。
关键词:秒表,51单片机,C语言,1602液晶目录一、设计任务、要求 (8)1.1 设计任务: (8)1.2 设计要求: (8)二、方案总体设计 (9)2.1 方案一: (9)2.2 方案二: (9)2.3系统采用方案 (9)三、硬件设计 (11)3.1 单片机最小系统 (11)3.2 液晶显示模块 (11)3.3 系统电源 (12)3.4 整体电路 (12)3.5 PCB整体电路 (13)四、软件设计 (14)4.1 keil软件介绍 (14)4.2程序流程图 (15)五、仿真 (17)5.1 proteus软件介绍 (17)5.2 仿真过程 (17)六、总结 (19)6.1设计总结: (19)6.2经验总结: 0七、参考文献 (1)一、设计任务、要求1.1 设计任务:1).对更多小器件的了解2).巩固51单片机和C语言的知识,熟悉单片机和C语言的实际操作运用3).掌握仿真软件的运用和原理图的绘制4).加深焊接的技巧,提高焊接的能力5).熟悉调试方法和技巧,提高解决实际问题的能力6).熟悉设计报告的编写过程7).熟悉PCB的制作1.2 设计要求:1).清零键进行清零2).一个独立按键进行停止与运行的操作3).蓝白滑动变阻器可以调节液晶亮度二、方案总体设计设计一个基于51单片机的秒表。
XXXXXX学院51单片机系统设计课程设计报告题目:秒表系统设计专业、班级:学生姓名:学号:指导教师:分数:[摘要]本设计是一个秒表计时器,采用51单片机实现。
电路包括以下几部分:单片机最小系统部分,数码管显示部分,摁键开关部分部分。
电路选用共阴型4位数码管组成时钟显示电路;时钟的增减控制以及清零部分主要由轻触开关构成的摁键系统组成;信号接收和处理部分主要由单片机来执行。
接通电源后,秒表计时器处于初始状态,4位数码管显示000.0。
当摁下“开始”开关时,秒表开始计时,数码管显示当前状态的时间。
当再次摁下开关时,数码管停止计时。
摁下“清零”键后,系统重新回到初始状态。
[关键词]单片机最小系统秒表计时摁键控制1、任务设计一个秒表计时器,在51单片机的控制作用下,采用4个LED数码管显示时间,计时范围设置为00.0~60.0秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。
2、设计要求(1)开始时显示00.0。
每按下S1键一次,数值加1s;(2)每按下S2键一次,数值减1s;(3)每按下S3键一次,数值清零;(4)每按下S4键一次,启动定时器使数值开始自动每秒加1,再次按下S4键,数值停止自动加1,保持显示原数。
3、发挥部分(1)开关按键3:“复位60.0”按键(用来60秒倒计时)。
按键按下去时数码管复位为“60.0”(用于倒计时)。
(2)开关按键4:倒计时“逐渐自减”按键。
按键按下去则是数码管开始“逐渐自减”倒计时。
(3)开关按键5:倒计时初始值“增加”按键。
(4)开关按键6:倒计时初始值“减小”按键。
4、课程设计的难点单片机电子秒表需要解决三个主要问题,一是有关单片机定时器(一个控制顺序计时,一个控制倒计时)的使用;二是如何实现LED 的动态扫描显示;三是如何对键盘输入进行编程。
《接口及控制技术》课程设计报告课程设计题目:秒表姓名:专业班级:指导教师:成绩:时间:2010-12-10一、设计要求用AT89C51设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。
二、实验原理题目难点在于通过对键盘的扫描对时钟的走时/停止进行控制,项目采用定时器T0作为计时器,每10ms发生一次中断,每100次中断加1s。
在此期间,如“开始”按键按下,程序方将TR0置为1,从而开启中断,时钟开始走时;如“复位”按键按下,程序将TR0置为0,同时将存储时间的变量清零,从而中断停止,并实现复位。
本题目采用专用数码管显示控制芯片MAX7219。
MAX7219是美国MAXIM公司生产的串行输入/输出共阴极显示驱动器,该芯片最多可驱动8位7段数字LED显示器或个LED 和条形图显示器。
其引脚图及引脚功能参见有关参考资料。
三、实验目的1、通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2、掌握定时器、外部中断的设置和编程原理。
3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
四、意义该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。
五、实验内容用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
另设计一个“开始”K1按键和一个“复位”K2按键。
按键K1同时具有“暂停”功能。
按键说明:按“开始”K1按键,开始计数,数码管显示从00开始每秒自动加一;再次按K1按键,系统暂停计数,数码管显示当时的计数;按“复位”按键,系统清零,数码管显示00。
六、电路原理仿真图将硬件连线按上图所示连接,该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片AT89C51中的P1.0管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能.;定时器T0作为每秒加1的定时器。
单片机课程设计报告院系:****班别:****课程名称:****姓名:****学号:****指导老师:****日期:****年**月**日一、设计任务与要求用89C51设计一个2位的LED数码作为“秒表”。
显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。
能存储三组计时。
按一次开始键,开始计数,第二次按开始键后,计时停止。
之后再按开始键,则轮流显示存储的三个计时值,直到按复位键后,再按开始键,则开始重新计时。
二、设计思想和设计说明本设计利用AT89C52单片机的定时器/计时器定时和计数的原理,使其能精确计时。
设计中包括硬件电路的设计和系统程序的设计,其硬件电路主要有主控制器、计时与显示电路和复位电路等。
主控制器用AT89C52,显示电路采用共阴极LED数码管显示计时时间。
利用中断系统使其能实现开始暂停的功能。
P3.2,P3.3开口接2个按钮,分别实现开始,暂停,复位的功能。
电路原理图设计最基本得要求是正确性,其次布局合理,最后在正确性和布局合理的前提下力求完美。
三、硬件原理框图四、硬件原理图与其软件配合1、程序存储器2、数据存储器六、程序流程图七、源程序清单====================================================== ORG 0000HAJMP MAINORG 0003HAJMP X0_INTORG 000BHAJMP T0_INTORG 0013HAJMP X1_INTMAIN:MOV TMOD,#01H ;T0定时方式1MOV TH0, #(65536-50000) / 256 ;50ms@12MHzMOV TL0, #(65536-50000) MOD 256;SETB TR0SETB ET0 ;开启定时中断SETB EX0SETB EX1SETB EA ;定时器初始化结束,下面循环显示即可MOV R1, #99H ;0~99计数.MOV R7, #1 ;50ms计数.MOV P0, #3FHMOV P2, #3FHLOOP:SJMP LOOP;-----------------------------------------------------------DELAY: ;延时子程序.AA4: MOV R4, #0DJNZ R4, $DJNZ R4, $RET;-----------------------------------------------------------X0_INT: ;启动/停止CPL F0RETI;-----------------------------------------------------------X1_INT: ;清零MOV R1, #0MOV P0, #3FHMOV P2, #3FHRETI;-----------------------------------------------------------T0_INT: ;50ms中断执行一次.MOV TL0, #(65536-50000) MOD 256;MOV TH0, #(65536-50000) / 256 ;50ms@12MHzDJNZ R7, T0_END ;中断不到20次.MOV R7, #20JNB F0, T0_ENDMOV A, R1ADD A, #1DA AMOV R1, AANL A, #0FHMOV DPTR, #TABMOVC A, @A+DPTR ;查出段码MOV P2, AMOV A, R1SWAP AANL A, #0FHMOVC A, @A+DPTR ;查出段码MOV P0, A ;显示十位数.T0_END:RETI;-----------------------------------------------------------TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, 6FHEND====================================================== =====八、芯片资料AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
单片机秒表实验报告(一)单片机秒表实验报告实验目的通过本次实验,掌握单片机外部中断的使用方法,并实现一个简单的秒表功能。
实验材料•STC89C52单片机开发板•12864液晶屏•面包板、杜邦线若干•USB转串口模块及数据线•电脑实验原理本次实验的主要原理是单片机外部中断。
当按下按键时,引脚的电平会发生变化,从而触发外部中断。
单片机在中断服务程序中可以对计数器进行增加或减少等操作,从而实现秒表的功能。
实验步骤1.将按键连接至单片机的外部中断引脚(如P3.2)。
2.在程序中配置外部中断,使单片机可以正确响应按键。
3.编写程序,在中断服务程序中对计数器进行增加或减少,并将计数值显示在LCD液晶屏上。
程序设计#include <reg52.h>sbit sw = P3 ^2;// 定义按键接口sbit rs = P0 ^0;sbit rw = P0 ^1;sbit en = P0 ^2;void delay(unsigned int i){while(i--);}void write_command(unsigned char tt){P2 = tt;rs =0;rw =0;en =1;delay(5);en =0;delay(100);}void write_data(unsigned char tt){P2 = tt;rs =1;rw =0;en =1;delay(5);en =0;delay(100);}void init(){write_command(0x38);// 8位数据口,双行显示,5x7字符 write_command(0x0c);// 关闭光标显示write_command(0x06);// 清屏后光标移动方向设为右write_command(0x01);// 显示开启}void display(unsigned int num){unsigned int i, j, k;i = num /100;j = num %100/10;k = num %10;write_command(0x80);write_data(i +'0');write_data(j +'0');write_data(k +'0');}void main(){unsigned int num =0;init();display(num);IE =0x88;// 打开中断允许while(1){}}void int0() interrupt 0{if(sw ==0){delay(100);if(sw ==0){num ++;display(num);}while(!sw);}}实验结果经过调试,成功实现了秒表实验功能。
单片机秒表实验报告单片机秒表实验报告引言在现代科技快速发展的时代背景下,单片机作为一种重要的电子元器件,被广泛应用于各个领域。
秒表作为测量时间的工具,在运动、实验、比赛等场景中起到了至关重要的作用。
本实验旨在通过使用单片机设计和制作一个简单的秒表,探索单片机在时间测量方面的应用。
实验原理秒表的原理基于计时器的工作原理。
计时器通过内部的计数器来记录时间,当计数器达到设定值时,会触发中断,从而实现时间的测量和显示。
在本实验中,我们使用8051系列单片机,通过编程设置计数器的初始值和中断触发条件,实现秒表的功能。
实验步骤1. 硬件设计首先,我们需要准备一个适当的电路板,用于连接单片机、显示器和按键等元件。
在电路板上,我们将单片机与显示器和按键进行连接,以实现数据的输入和输出。
同时,我们需要添加一个晶振电路,以提供单片机的时钟信号。
2. 软件设计在软件设计方面,我们需要使用汇编语言或C语言来编写单片机的程序。
程序的主要功能包括初始化、计时、显示和中断处理等。
在初始化阶段,我们需要设置计数器的初始值和中断触发条件。
在计时阶段,我们需要不断地读取计数器的值,并将其转换为秒、分、时等形式进行显示。
同时,我们还需要编写中断处理函数,以响应中断并更新计时器的值。
3. 实验验证在完成硬件和软件设计后,我们可以进行实验验证。
首先,我们将电路板连接到电源,并确保电路正常工作。
然后,我们可以通过按下按键来启动和停止秒表。
在启动状态下,秒表会不断地更新显示,并实时计算经过的时间。
在停止状态下,秒表会保持显示当前的时间。
实验结果经过实验验证,我们成功地设计和制作了一个简单的秒表。
秒表能够准确地测量时间,并将其以易于理解的形式进行显示。
同时,秒表还具备启动和停止功能,方便用户根据需要进行时间测量。
实验总结通过本次实验,我们深入了解了单片机在时间测量方面的应用。
通过合理的硬件设计和编程,我们成功地实现了一个简单而实用的秒表。
在实验过程中,我们不仅学习了单片机的工作原理和编程技巧,还培养了动手实践和解决问题的能力。
单片机秒表实验报告实验目的:本实验旨在通过使用单片机搭建一个简单的秒表,掌握单片机的基本输入输出方法和定时器的使用,提高对单片机的编程能力。
实验器材:1. STC89C52单片机开发板2. 4位共阳数码管3. 74HC595移位寄存器4. 按钮开关5. 连接线实验原理:秒表是一种测量时间的工具,通常用于计时。
在本实验中,我们将使用单片机来实现一个简单的秒表功能。
通过使用定时器中断,每隔一定的时间更新数码管上显示的时间,实现秒表的计时功能。
同时,通过按下按钮开关,可以控制秒表的启动、暂停和复位。
实验步骤:1. 将STC89C52单片机开发板与4位共阳数码管、74HC595移位寄存器和按钮开关连接。
2. 将开发板上的相应引脚与数码管和移位寄存器的引脚连接,确保连接正确。
3. 在单片机的主函数中初始化定时器和外部中断,并设置定时器的中断时间为1秒。
4. 在定时器中断函数中,每隔1秒更新数码管上的显示时间。
可以使用循环方式实现时间的累加和更新。
5. 在外部中断函数中,根据按钮开关的状态,实现秒表的启动、暂停和复位功能。
6. 编译、下载程序到单片机开发板,并将开发板上电。
7. 按下按钮开关开始计时,再次按下暂停计时,再次按下继续计时,再次按下复位计时。
8. 观察数码管上显示的时间是否正确,并测试秒表功能是否正常。
实验结果:经过测试,本实验搭建的单片机秒表功能正常,能够准确计时,并可以通过按钮开关实现启动、暂停和复位功能。
结论:通过本实验,我们成功地使用单片机搭建了一个简单的秒表,并实现了基本的计时功能。
同时,通过掌握单片机的定时器和外部中断的使用,我们提高了对单片机的编程能力。
这对于进一步深入学习和应用单片机具有重要的意义。
一:课程设计题目秒表/时钟计时器二:课程设计任务与要求:利用89C51单片机设计秒表/时钟计时器,通过LED显示器显示秒十位和个位,在设计过程中用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60时,就自动返回到0,重新开始秒计数。
三:设计过程:1.设计原理:此次课程设计题目是秒表/时钟计时器,由课程设计的要求和任务,我采用的C语言编程,设计秒表要求一秒定时,采用了定时器和FOR 循环来定时,其中一个软件一个硬件,会在方案论证中分析在1秒时采用的是硬件定时,即用单片机内部的定时器T0。
先将时钟初始化,赋入初值50ms定时,循环20次来进行1秒定时。
然后由定义的变量second来进行加一运算,然后将其值通过P1,P2口在数码管上进行显示。
其中数码管的显示时,我在程序中首先定义了一个关于数码管显示的字形码定义,以便在显示时调用即可。
(1)方案论证:方案1:在方案1中,我们所选用的是软件定时,即用for循环来定时1秒进行显示的变化。
方案2:在方案2中,采用的是硬件定时,即用单片机内部的定时器T0。
先将时钟初始化,赋入初值50ms定时,循环20次来进行1秒定时。
方案比较:我们从两方面进行两种方案的比较,第一,由于此次课程设计要求是秒表,则在定时时要求比较精确,所以采用硬件的定时器定时时比较准确的。
第二,由于秒表的定时程序是很小的,在利用软件定时占用的CPU并不是很多,不能显现出来,但真正大程序时会很占用资源的,所以在用定时中断过程中是非常节省资源的。
综合上述两种比较,我们选用了第二种方案。
(2)创新点:a.在课程要求的基础上,我们做成的电路板上,用复位键来控制秒表计时的重新开始,即清零。
b.在以上设计的基础上,我们又重新设计了一个程序,基本原理没有变,只是将秒表在到达59清零的瞬间向分的位数上进1,程序将会在附录3中给出。
2.硬件系统框图与说明:首先,连接的是单片机51的最小系统,其中包括时钟电路,复位电路,在此中包括的元器件在附录3中。
《单片机原理与应用》课程设计报告基于89C51单片机的秒表设计专业:学号:2015-12-25一、课题名称基于89C51单片机的秒表设计二、任务要求1、计时围:0~59分59.59秒,整数四位数和小数两位数显示;2、计时精度10毫秒;3、复位按钮,计时器清零,并做好下次计时准备;4、可以对两个对象(A、B)计时,具有启/停控制;3、设开始、停止A、停止B、显示A、显示B复位按钮。
三、任务分析1、设计中包括硬件电路的设计和系统程序的设计。
其硬件电路主要有主控制器,计时与显示电路和回零、启动和停表电路等。
主控制器采用单片机89C52显示电路采用共阳极LED数码管显示计时时间。
2、利用89C52单片机的定时器/计数器定时和记数的原理,使其能精确计时。
3、P0 口输出段码数据,P2.0-P2.4 口作列扫描输出,P1.1、P3.2、P3.3、P2.5 口接四个按钮开关,分别实现开始、暂停、清零和查看上次计时时间功能。
4、利用中断系统使其能实现开始暂停的功能。
四、设计方案1、硬件方案工作原理:计时采用定时器TO中断完成,定时溢出中断周期为1ms当一处中断后向CPL发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,达到10次就对十毫秒位进行加一,依次类推,直到99.99秒重新复位。
再看按键的处理。
这四个键可以采用中断的方法,也可以采用扫描的方法来识别。
复位键和查看主要功能在于数值复位和查询上次计时时间,对于时间的要求不是很严格。
而开始和停止键则是用于对时间的锁定,需要比较准确的控制。
因此可以对复位和查看按键采取扫描的方式。
而对开始和停止键采用外部中断的方式。
设计中包括硬件电路的设计和系统程序的设计。
其硬件电路主要有主控制器,显示电路和回零、启动、查看、计次电路等。
主控制器采用单片机89C52显示电路采用共阳极LED数码管显示计时时间,四个按键均采用触点式按键。
程序流程图:2、软件方案使用keil软件编程,protues软件仿真五、具体实现1、硬件电路图及工作原理描述1 (屮JP■、51单片机51单片机是对所有兼容In tel 8031指令系统的单片机的统称。
广东石油化工学院单片机秒表系统设计专业:电气工程及其自动化姓名:陈良泉王帅班级:电气10-4学号:07 54老师:张翼成2013年1月10日前言本设计主要是对51单片机的一个方面的扩展,是能实现一般定时功能的设计。
系统采用单片机AT89C51作为本设计的核心元件,在其基础上外围扩展芯片和外围电路,附加时钟电路,复位电路,键盘接口及LED显示器,键盘采用独立连接式。
外围设备有LED显示驱动器及相应的显示数字电子钟设计与制作可采用数字电路实现,也可以采用单片机来完成。
若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计与制作中采用单片机AT89C51,它是低功耗、高性能的CMOS型8位单片机。
片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。
另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。
在LED显示器中,分成静态显示和动态显示两类,在这个设计的最小系统中主要用了它的动态显示功能,动态显示器利用了人视觉的短暂停留,在数据的传输中是一个一个传输的,且先传输低位。
按键电路设有四个按键:从上往下为k1,k2,k3和k4键。
按下k1键用于启动和暂停秒表;k2键用于复位;k3键用于当秒表暂停时,增加其显示值;k4键用于秒表暂停时减少其显示值。
目录一、设计任务和要求 (4)(一)系统功能任务 (4)(二)系统设计要求 (4)二、方案设计与论证 (4)三、硬件设计 (5)(1)时钟电路 (5)(2)按钮电路 (6)(3)显示电路 (7)(4)动态显示原理 (8)(5)80C51中断的控制 (8)(6)定时/计数器的控制 (9)(7)单片机 (10)四、总原理图及元器件清单 (11)(1)总原理图 (11)(2)元器件清单 (12)五、源程序 (12)六、结论与心得 (16)七、参考文献................................................................................................. 错误!未定义书签。
秒表显示实验一.实验目的1. 这个实验是设计一个程序,可以通过单片机让数码管显示从00开始每秒自动加一至99(不熟练的可先设计一个数码管的显示)到99后自动清零,从00开始继续计时。
2. 在做这个实验时要用到更新显缓存这种方法。
3. 让学生更熟悉keil软件的应用,对单片机C语言能更好的应用。
二. 实验过程1.对程序开发环境进行处理(打开软件,建工程,保存工程,建文件,文件加到工程里)。
2编程序,用更新显缓存:#include"AT89X51.H"//************************#define uchar unsigned char#define uint unsigned int//************************uint second;uchar disbuf[4];uchar codeLED[10]={0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00}void delay_nms(unit nms){}//延时void update_disbuf(void){uint tmp16bit;tmp16bbit = second;disbuf[0] = LED[tmp16bit%10]tmp16bit=tmp16bit/10disbuf[1] = LED[tmp16bit%10]tmp16bit=tmp16bit/10disbuf[2] = LED[tmp16bit%10]tmp16bit=tmp16bit/10disbuf[3] = LED[tmp16bit%10]}void main(void){sp = 0x70;P1_4 = 0;P0 = 0xff;second = 0;update_disbuf();while(1){P0 = disbuf[0];delay nms(1000);second++;update_disbuf();}} //end3.完成整个程序:#include"AT89X51.H"#include"intrins.h"//==============================#define uint unsigned int#define uchar unsigned charuint second;uchar disbuf[4];sbit wei=P2^7;sbit duan=P2^6;uchar codeLED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f };//============================== void delay_ms(uint nms){uint i,j;for(i=0;i<nms;i++){for(j=0;j<99;j++){_nop_();_nop_();}}}//============================== void update_disbuf(){delay_ms(1000);second++;disbuf[0]=second%10;disbuf[1]=second/10%10;disbuf[2]=second/100%10;disbuf[3]=second/1000%10;}//============================== void main(){second=0;wei=1;P0=0xdf;wei=0;duan=1;P0=LED[0];while(1){update_disbuf();P0=LED[ disbuf[0]];}}4.对程序进行保存编译,无错后,点击target options,在点击OUTPUT后,生成.hex文件,将程序下载到开发板上,观察实验效果。
单片机课程设计报告单片机秒表系统课程设计班级:课程名称:秒表设计成员:实训地点:北校机房实训时间:6月4日至6月15日目录1课程设计的目的和任务1.1 单片机秒表课程设计的概述1.2课程设计思路及描述1.3 课程设计任务和要求2硬件与软件的设计流程2.1系统硬件方案设计2.2所需元器件3 程序编写流程及课程设计效果3.1源程序及注释3.2原理图分析3.3课程设计效果4 心得体会1. 课程设计的目的和任务1.1单片机秒表课程设计的概述一、课程设计题目秒表系统设计——用STC89C51设计一个4位LED数码显示“秒表”,显示时间为000.0~9分59.9秒,每10毫秒自动加一,每1000毫秒自动加一秒。
二、增加功能增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。
三、课程设计的难点单片机电子秒表需要解决几个主要问题,一是有关单片机定时器的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程;四是如何进行安装调试。
四、课程设计内容提要本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。
其中本课程设计有三个开关按键:其中key1按键按下去时开始计时,即秒表开始键,key2按键按下去时数码管清零,复位为“00.00”. key3按键按下去时数码管暂停。
五、课程设计的意义1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2)掌握定时器、外部中断的设置和编程原理。
3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义1.2课程设计思路及描述该课程设计要求进行计时并在数码管上显示时间,则可利用MCS-51系列单片机的芯片AT89C51的P3.2,P3.3,RST作为按键的入口;定时器T1作为每0.1秒加一的定时器。
其中“开始”按键当开关由上向下拨时开始计时,此时若再拨“暂停”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时。
1.3 课程设计任务和要求1.3.1 设计指标。
了解8051芯片的的工作原理和工作方式,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、9分59.9秒、清零等功能,精确到0.1秒。
要求选用定时器的工作方式,画出使用单片机控制LED数码管显示的电路图,并实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零等功能。
2.软件与硬件设计2.1系统硬件方案设计单片机应用系统由硬件系统和软件系统两部分组成。
硬件系统是指单片机以及扩展的存储器、I\O接口、外围扩展的功能芯片以及接口电路。
软件系统包括监控程序和各种应用程序。
在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。
与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和I\O接口,使单片机应用系统能够运行。
在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。
在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。
配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就可以进行处理了。
在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。
2.2 所需原器件名称数量四位数码管1个200欧电阻13个1千欧电阻4个开关3个电容3个晶振1个三极管4个AT89C511个导线若干AT89C51的接口连接示意图四位数码管的接口连接示意图共阴级数码管编码主程序流程图:3.程序编写的流程及课程设计效果3.1 源程序及注释ORG 0000HAJMP TOUORG 000BH 外部中断0入口地址LJMP MIAOORG 0003H 外部中断0入口地址LJMP KGORG 0030H 定时器中0断入口地址TOU:MOV B,#02HMOV R3,#00HMOV R4,#00HMOV R5,#00HMOV R6,#00HMOV TMOD,#01H 定时器0工作在方式1MOV TL0,#0B0H 初始值为3CB0H ,即计数50000 次MOV TH0,#3CHCLR IT1SETB EA 总中断EA=1SETB ET0 定时器T0的溢出中断允许控制位SETB TR0 定时器0开始计数SETB EX0 外部中断0中断请求允许控?制位SETB PX0 外部中断0为优先级S1:S1:LCALL XSSJMP S1 短跳转MIAO:MOV TL0,#0B0HMOV TH0,#3CHDJNZ B,FHMOV B,#02HINC R3CJNE R3,#0AH,FH 判断毫秒值是否为10 MOV R3,#00HINC R4CJNE R4,#0AH,FH 判断个位秒值是否为10 MOV R4,#00HINC R5CJNE R5,#06H,FH 判断十位秒值是否为6 MOV R5,#00HINC R6CJNE R6,#0AH,FH 判断分值是否为10 MOV R3,#00HMOV R4,#00HMOV R5,#00HMOV R6,#00HFH:LCALL XS 调用显示子程序RETI 中断返回XS:MOV DPTR ,#TABMOV A,R3MOVC A,@A+DPTR 查得字形码MOV P2,ACLR P1.0 ;P1.0 清零LCALL DEL 调用延时子程序SETB P1.0 ;P1.0置1MOV A,R4MOVC A,@A+DPTR 查得字形码CLR P1.1LCALL DEL 调用延时子程序SETB P1.1MOV A,R5MOVC A,@A+DPTR 查得字形码MOV P2,ACLR P1.2LCALL DEL 调用延时子程序SETB P1.2MOV A,R6MOVC A,@A+DPTR 查得字形码MOV P2,ACLR P1.3LCALL DEL 调用延时子程序SETB P1.3RETKG:CLR TR0 ;关闭定时器0CLR ET0S2:LCALL XSJB P3.3,S2 ;P3.3为跳转到S2 SETB TR0 ;开定时器0 SETB ET0RETIDEL: 延时函数MOV R1,#10DE:MOV R2,#60DJNZ R2,$RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END3.2原理图4 心得体会经过两个星期的课程设计,使我们加深了单片机课程的了解,我们花费了很多的时间和精力,比如说单片机书籍和以前不太懂的知识,我觉得这几天让我们过得十分充实,我相信其余的队友也有相同的看法,下面是我们的一些心得体会:1.将学习的理论知识通过实验融会贯通,让我对它的理解更加深刻,对程序的编译过程也有一定了解。
2.本次课程设计是以团队为主,没有团队的力量,在较短的时间内完成是难以实现的,因此培养了我们积极合作、认真的态度,每个人都有不同分工和任务,做好一个电子秒表成为了一件很开心的事情,增进了同学们之间的沟通与交流。
3.本次课程设计不仅设计了编程和单片机的知识,也涉及其他两门学科上的知识,真是学海无涯啊。
4.在实训过程中,遇到了许多的问题。
主要是程序的编写、编译、还有下载,一开始由于自己的粗心大意和对单片机知识掌握的不够,导致程序不断出错无法编译,一开始我们无法理清头绪,但是我们通过寻找资料,向老师咨询,同学帮助总算是把程序编写完成。
程序编完以后下一个问题就是用用面包板接线路,新的问题也就随之而来,本以为对着画好的的电路直接接就可以圆满成功的,但是由于自己的实践经验不好,线路总是接不好,勉强接好程序也没办法运行,本来原定周四就能完成的一直拖到了周五晚上加班,最后在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期两周的单片机课程设计没有浪费,我们从中学到了很多知识,也让我们对单片机有了更深一步的了解。
总而言之,通过本次实验不仅加深了我们对单片机理论知识的理解,将理论更好的应用到实践中,而且锻炼了我们各个方面的能力,培养了坚强的意志和做事的耐心和细心,认识到合作的重要性,虽然过程中还有不足之处,这需要在实践中不断的锻炼才能提高,希望各位老师和同学多多知道,促进我们进步。
本次实验也让我们了解到自己的不足之处,很多的东西还是没有学好。
所以说实验可能有瑕疵之处。