单片机秒表课程设计报告
单片机时钟秒表课程设计报告

单片机的时钟设计小组成员:班级:课程老师:目录一、硬件结构 (3)1硬件原理 (3)1 89C52 (3)1.1硬件原理 (3)1.2 主要功能特性 (3)1.3 管脚说明 (4)1.4振荡器特性 (5)1.5结构特点 (5)2、数码管 (6)2.1数码管分类 (6)2.2数码管结构 (7)2.3驱动方式 (8)3、排阻 (9)3.1排阻的作用 (9)3.2排阻引脚说明 (9)4、晶振 (10)4.1晶振构成 (10)4.2工作原理 (11)4.3功能作用 (11)二、软件结构概述 (12)1、显示子程序 (12)2、键盘扫描子程序 (13)3、中断程序 (16)4、流程图 (18)三、调试过程 (20)四、心得体会 (22)五、参考文献 (23)六、硬件电路图 (23)七、程序清单 (25)一、硬件结构概述1、89C521.1硬件原理89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。
它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。
89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。
89C52有PDIP(40pin)和PLCC(44pin)两种封装形式。
1.2 主要功能特性·标准MCS-51内核和指令系统· 32个双向I/O口· 3个16位可编程定时/计数器·向上或向下定时计数器· 6个中断源·全双工串行通信口·空闲和掉电节省模式·片内8kROM(可扩充64kB外部存储器)· 256x8bit内部RAM(可扩充64kB外部存储器)·时钟频率3.5-12/24/33MHz·改进型快速编程脉冲算法· 5.0V工作电压·布尔处理器· 4层优先级中断结构·兼容TTL和CMOS逻辑电平· PDIP(40)和PLCC(44)封装形式·—帧错误侦测·—自动地址识别1.3 管脚说明VCC:供电电压。
课程设计单片机秒表

课程设计单片机秒表一、教学目标本课程旨在通过学习单片机秒表的设计与实现,让学生掌握单片机的基本原理、编程方法和实际应用。
具体的教学目标如下:1.了解单片机的基本结构和工作原理;2.掌握C语言编程的基本语法;3.掌握单片机秒表的设计方法和步骤。
4.能够使用单片机开发工具进行程序编写和调试;5.能够独立完成单片机秒表的设计和实现;6.能够对单片机程序进行优化和升级。
情感态度价值观目标:1.培养学生的创新意识和团队合作精神;2.培养学生对新技术的敏感度和持续学习的兴趣;3.培养学生对社会和科学的负责任态度。
二、教学内容本课程的教学内容主要包括以下几个部分:1.单片机的基本原理:介绍单片机的结构、工作原理和编程语言;2.C语言编程:讲解C语言的基本语法和编程技巧;3.单片机秒表的设计:讲解单片机秒表的设计方法和步骤,包括硬件设计和软件编程;4.实践操作:安排实验室实践环节,让学生亲手操作单片机,完成秒表的设计和实现。
三、教学方法为了达到上述教学目标,我们将采用以下教学方法:1.讲授法:讲解单片机的基本原理和C语言编程基础知识;2.案例分析法:分析具体的单片机秒表设计案例,让学生了解实际应用;3.实验法:安排实验室实践环节,让学生亲手操作单片机,完成秒表的设计和实现;4.讨论法:学生进行小组讨论,培养团队合作精神和创新意识。
四、教学资源为了支持本课程的教学内容和教学方法,我们将准备以下教学资源:1.教材:选择合适的单片机和C语言编程教材;2.参考书:提供相关的参考书籍,供学生自主学习;3.多媒体资料:制作PPT和教学视频,帮助学生更好地理解教学内容;4.实验设备:准备单片机开发板和实验工具,让学生进行实践操作。
五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过课堂参与、提问和小组讨论等方式,评估学生的学习态度和积极性;2.作业:布置相关的编程练习和设计任务,评估学生的编程能力和设计水平;3.考试:安排期末考试,测试学生对单片机秒表设计和C语言编程知识的掌握程度。
基于51单片机的秒表设计报告

课程名称:微机原理课程设计题目:基于51单片机的秒表设计随着社会的发展,单片机已经渗透到我们生活中的各个领域,广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等。
本设计就是由单片机STC89C52RC芯片和四位一体LED数码管为核心,辅以必要的电路,构成了一个单片机电子秒表。
秒表是一种常用的测试仪器,它可以用在百米赛跑等需要精确计时的地方,为人们的生活提供了很大的方便。
该单片机电子秒表布置合理,全部器件分布在7*9cm洞洞板上,看起来小巧精简。
采用的是单片机内部定时/计数器计时,走时非常精确而且不易出错。
0.56英寸的四位数码管发出红光,可以直观地显示时间。
一个控制按键就可以控制秒表的计数与停止,按一下控制键,秒表工作状态就由计时变为计时变为停止或停止变为计时,按一下清零键就可以清零,操作非常简单。
由于是四位数码管,它的计时周期为100秒,显示满刻度为99:99秒,从左往右数共四位,前两位显示整数部分,后两位显示小数部分,中间两个个秒闪灯(秒闪灯一直亮)。
关键词:秒表,51单片机,C语言一、设计任务与要求 (18)1.1 设计任务 (18)1.2 设计要求 (18)二、方案总体设计 (19)2.1 方案一 (19)2.2 方案二 (19)2.3 系统采用方案 (19)三、硬件设计 (21)3.1 单片机最小系统 (21)3.2 数码管显示模块 (21)3.3 系统电源 (22)3.4 整体电路 (22)四、软件设计 (24)4.1 keil软件介绍 (24)4.2 系统程序流程 (24)五、仿真与实现 (27)5.1 proteus软件介绍 (27)5.2 仿真过程 (27)5.3 实物制作与调试 (29)5.4 使用说明 (30)六、总结 (32)6.1设计总结 (32)6.2经验总结 (20)七、参考文献 (21)一、设计任务与要求1.1 设计任务1).对更多小器件的了解2).巩固51单片机和C语言的知识,熟悉单片机和C语言的实际操作运用3).掌握仿真软件的运用和原理图的绘制4).加深焊接的技巧,提高焊接的能力5).熟悉调试方法和技巧,提高解决实际问题的能力6).熟悉设计报告的编写过程1.2 设计要求1).清零键进行清零2).一个独立按键进行停止与运行的操作3).秒闪灯一直亮二、方案总体设计设计一个基于51单片机的秒表。
89C51单片机课程设计之秒表设计实验报告

单片机课程设计报告单片机秒表系统课程设计班级:课程名称:秒表设计成员:实训地点:北校机房实训时间: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秒加一的定时器。
单片机秒表课程设计 (3)

单片机秒表课程设计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 功能函数除了定时器中断函数和外部中断函数之外,还可以编写一些功能函数来实现计时、暂停和复位等功能。
基于89C51单片机的秒表课程设计

基于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秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。
单片机秒表课程设计报告

一:课程设计题目秒表/时钟计时器二:课程设计任务与要求:利用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中.我们所选用的数码管是共阴极的,置1时导通,所以将单片机的P1。
单片机倒计时秒表课程设计报告书

课程设计说明书课程名称:单片机技术设计题目:倒计时数字秒表设计院系:学生:三学号: *********专业班级: ***********指导教师:四年月日课程设计任务书倒计时秒表摘要:本次课程设计以AT89S52单片机为核心设计一个倒计时数字秒表,计数初值为59并开始每秒自动减1,当按键1按下时记录当前时间值,当按键2按下时显示当前记录值,显示过之后再次按下按键1时秒表复位为59。
本设计硬件部分包括电源电路、复位电路、按键电路、振荡电路、数码管显示电路五部分电路,软件程序部分有定时中断程序、外部中断程序、显示子程序和延时子程序等。
软件Proteus画出原理图并进行仿真,依照仿真成功的原理图接线,在万能版上把个个器件焊接好从而实现预期的功能。
关键词:倒计时 AT89S52 74LS47 数码管目录1.设计背景 (5)1.1、设计课题的提出 (5)1.2、设计作用与意义 (5)2.设计方案 (6)2.1、可行方案选择 (6)2.2、可行方案比较 (6)3.方案实施 (7)3.1、硬件电路的实施 (7)3.2、软件程序的实施 (11)4.结果与结论 (13)4.1、Proteus仿真运行结果 (13)4.2、结论 (14)5.收获与致 (14)6.参考文献 (14)7.附件 (15)7.1、附件一(整体电路图) (15)7.1、附件二(元件清单图) (16)7.1、附件三(程序) (17)7.1、附件四(运行实物图) (22)1.1设计课题的提出计时器日常生活中随处可见,我们手上的电子表,手机上的时间显示等,这些利用数字电路实现的装置,与机械时钟相比具有更高的准确性与直观性,且无机械装置,具有更长的使用寿命。
其中重要的组成部分就是计数器模块,是单片机中常见的模块,以计时器为基础还可以设计更多对日常生活密切相关的设备,诸如定时报警、按时自动打铃、时间程序自动控制、定时广播、自动启闭路灯、定时开关烘箱、甚至各种定时电器的自动启用等,都是以计时器为基础的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一:课程设计题目秒表/时钟计时器二:课程设计任务与要求:利用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中。
我们所选用的数码管是共阴极的,置1时导通,所以将单片机的P1.0~P1.7连接数码管的a~dp,P2口同理。
然后在数码管秒表个十位的显示则由软件程序来控制。
3.软件主要模块流程图与说明:在真正应用时,我们的一秒定时是用定时中断的,但单片机的T0最长也不能1秒定时,所以我们采用50ms定时循环20次,用count来控制。
当秒的时间达到59时,用软件来清零时循环从00重新开始。
四:课程设计总结:1:本次的课程设计,使关于51系列单片机的,正是我们刚刚学到的51单片机,在平时课程的学习中,我们仅限于理论知识的讲解,即使知识是很扎实的,实际应用并不是这样的。
开始时我也觉得自己的理论知识已经够了,但当我拿到课题时,在脑海里想的是非常好的,但真正编成和控制时,理论和实际结合不到一起,甚至于51芯片的使用我都感觉很迷茫,还是经过搜集大量资料才将理论与实际结合到一起了。
本次课程设计我主要负责编程,这次不仅锻炼了我C语言的知识,更加我们正在学习的51的定时与中断结合在一起,进行了实际的操作,让我的知识掌握得更加牢固。
本次的实际经验之后,让我对单片机定时赋初值有了更新的认识,对程序的循环顺序、结构类型都有了非常深刻的认识,对真正硬件的连接也有了认识,不再将自己的知识局限于自己狭隘的空间中。
2:通过这次课程设计——秒表/时钟计时器,使我又重新开始学习C语言,因为C语言是大一学的,至从学完就再也没用过,所以开始很陌生,我又找了有关资料来了解,才有了一点眉目。
刚开始以为可以用汇编很容易就写出来,因为我们正在学习汇编语言,以为学的很明白了,但是用汇编时才发现原来都不怎么熟练,编了一会程序发现只有一种感觉——举步维艰啊!还是放弃汇编选择C语言吧!对于单片机,我们课本学习的是80C51,但是这次做课程设计用的是89C51,这样不仅使我们掌握了80C51,而且对89C51也有了一定的了解了,在课堂上学习的都理论的,跟实际永远有一定的差距,不实践就不会发现问题。
通过这次课程设计使我把课堂上学习的东西都用到了实践中,例如:定时/计数器的应用与中断。
学习的时候不怎么理解,但是在实践中应用了以后就自然了解了。
这次课程设计使我受益匪浅,而且都是实际的东西。
3:这次课程设计,我们做的是秒表/时钟计时器,最终我们选择的是用C语言编程,但原来学的也只是能看懂别人写好的程序而已,通过这次课程设计,更加熟练了C语言的程序设计思路。
这次课程设计我主要负责焊接电路板,焊接过程中最困难的地方就是数码管的焊接,因为数码管的管脚和89C51的管脚是不对应的,而且要避免接线的交叉,所以最后确定了布线最合理的方案,如硬件电路图所示。
我们这次设计的出现的最大问题是电路当中的复位电路,开始电路在Proteus上仿真时都是可以正常复位的,但实际的电路中复位按键后的电阻的参数不合理,导致了RST上有电压,复位电路无效,所以最后我们去掉了那个电阻,此时复位电路才有效,所以理论和实际永远有差距,不实践永远发现不了问题。
在焊接前我们没有想到给数码管用插槽固定,而是直接焊在了电路板上,这造成了后面的很多麻烦,我们方案中用的是共阴极的数码管,焊接第一个数码管时没有注意型号,等焊接到一半时才发现焊上的是共阳极的,所以不得不解焊重新焊接,这也是一个教训,以后焊接器件时能用上插槽的尽量用插槽,这在器件出了问题时很方便更换。
最后焊接完成后在试验的过程中,刚一接通电源后的上电电压烧坏了LED显示器显示秒十位的c脚,这也是这次课程设计的遗憾,以后在硬件的实验时还要多小心,避免造成不必要的损失。
4:通过本次秒表/时钟计时器的设计实验,使我对这学期学所学51系列的单片机从理论知识到实践硬件的应用以及C语言知识的回顾,更加熟悉了89C51单片机的每一个拐角的输出和各项功能,而且对硬件电路的布线以及焊接能力有了很大的进步。
在这次试验中,我主要负责的是硬件电路的布线和焊接以及硬件测试。
由于本次试验电路比较简单,所以我们按照电路图布线后就马上开始焊接。
焊好一个数码管检测后才发现我们把共阴极的数码管焊接成共阳级的了,很不容易才解焊下来,有了这次教训后,我们在焊接其他元器件的时候都提前检测好才开始焊接。
第一次焊接完成后我们上电后发现实现了基本功能,可是不能复位,经过我们的讨论和反复试验,我们发现软件仿真和硬件实现并不是完全一致的,我们按照课本上焊接后终于完全实现了秒表/时钟计时器的功能。
快要验收时我们发现数码管的一个二极管坏了,这才让我们意识到没有焊接插针的缺陷,以后一实验时一定要尽可能让原件可以取下,以便出现问题是更好的更换。
这次课程设计终于圆满的完成了,我从理论和硬件以及实践上懂得了很多,也明白了一个团队的合作精神可以让我们战胜所有的困难。
五:附录附录1:电路原理图:附录2:实物图:附录3:源程序及程序解释:#include <REG51.H> //包含头文件REG51。
H#define uint unsigned int#define uchar unsigned charunsigned char code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管0~9的字型码uchar count,second; //定义变量/*===================================*/void init() //定义定时器T0初始化程序{TMOD=0x01;TH0=(65536-50000)/256; //赋初值定时1秒TL0=(65536-50000)%256;ET0=1;TR0=1;EA=1;P2=SEG7[0];P1=SEG7[0];}void delay(unsigned int k) //定义延时程序{unsigned int i,j;for(i=0;i<k;i++){for(j=0;j<121;j++){;}}}//----------------------------------------------------------- void main(void){init(); //定时器初始化while(1) //无限循环{;}}//----------------------------------------------------void timer0() interrupt 1 //定时器T0中断{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;if(count==20){count=0;second++;if(second>59)second=0;P1=SEG7[second/10]; //显示秒的十位delay(10); //延时P2=SEG7[second%10]; //显示秒的个位delay(10);}附录4:for循环程序#include <REG51.H>unsigned char code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};/*===================================*/void delay(unsigned int k);//-----------------------------------------------------------void main(void){unsigned char val1=0;long i;while(1){for(i=0;i<380;i++){/*P2=0xfd;*/P2= SEG7[val1%10];delay(1);/*P2=0xfe; */P1= SEG7[val1/10];delay(1);}val1=val1+1;if(val1>59)val1=0;}}//----------------------------------------------------void delay(unsigned int k) {unsigned int i,j;for(i=0;i<k;i++){for(j=0;j<121;j++);}}附录5:汇编程序ORG 0000H START:MOV R1,#20MOV R2,#10MOV R3,#6MOV R4,#00H LOOP1:MOV R2,#10 LOOP: MOV A,R4MOV B,#0AHDIV ABMOV DPTR,#TABMOVC A,@A+DPTRMOV P1,AMOV A,BMOVC A,@A+DPTRMOV P2,ALCALL DELINC R4DJNZ R2,LOOPDJNZ R3,LOOP1MOV P1,#00MOV P2,#00LJMP STARTDEL:MOV R7,#12DEL1:MOV R6,#123NOPDEL2:DJNZ R6,DEL2DJNZ R7,DEL1DJNZ R1,DELRETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND附录6:使用元器件一览表:附录7:参考资料:单片机原理及接口技术李全利迟荣强编著C语言程序设计11。