单片机课程设计-秒表
课程设计单片机秒表

课程设计单片机秒表一、教学目标本课程旨在通过学习单片机秒表的设计与实现,让学生掌握单片机的基本原理、编程方法和实际应用。
具体的教学目标如下: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语言编程知识的掌握程度。
秒表(跑表)-课程设计-单片机

第一章设计的内容、要求及目的1.1设计内容本课题以单片机为核心,要求设计和制作一个秒表,实现计时功能。
开始时,全显示“0”,自行设计按钮,要求第1次按下按钮后就开始计时,计时精度最好为0.01秒;第2次按按钮后,计时停止,此时可读取计时数值;第3次按按钮后,计时归零,全显示“0”。
此为基本要求,学生可根据自己的创意添加相应扩张,完善或者添加部分功能。
1.2设计要求1.设计方案要合理、正确;2.系统硬件设计;3.完成必要元器件选择;4.系统软件设计及调试;5.写出设计报告。
1.3目的及意义要求通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
同时要求掌握定时器、外部中断的设置和编程原理。
此外,还希望通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
该实验通过单片机的定时器/计数器定时和计数原理,设计简单的秒表计时系统,拥有正确的计时、暂停、清零功能,并同时可以用数码管或者液晶显示器显示,在现实生活中应用广泛,比如说体育项目中的跑步竞赛计时,因此具有现实意义。
第二章 系统方框图与工作原理2.1 系统方框图秒表系统主要由单片机、显示电路,控制按钮等组成。
硬件系统比较简单,其系统方框图如下:图1 系统构成框图2.2 系统工作原理秒表系统比较简单,因此,实施了相应扩展,显示器采用了液晶显示器取代LED 数码管显示器。
同时,添加一个控制按钮,实现可计10个计数值的功能。
主要硬件部分与逻辑功能如下: 秒表系统主要用到的是一个内部定时器,如T0,每隔10MS 产生一次中断,实现秒表计时的“跑动”;一个外部中断,用于控制按钮,控制的实现由软件判定来实现;此外,就是一个显示电路,由内存读取需要显示的数值传输给显示器循环显示。
主要逻辑和控制均由51单片机的软件编程来实现。
对于内部定时器,为了保证计时要求,保证计时精度,步进定为10MS,51单片机系统内部定时器T0产生中断,定时时间为10MS,每次中断重写计数初值。
单片机课程设计之秒表设计

单片机课程设计之秒表设计一、课程目标知识目标:1. 学生理解单片机的基本原理,掌握单片机编程基础知识;2. 学生掌握秒表设计的流程和关键步骤,了解计时器的工作原理;3. 学生熟悉并掌握单片机中断、定时器等相关知识,并能将其应用于实际项目中。
技能目标:1. 学生能够运用所学知识,独立设计并实现一个简单的秒表程序;2. 学生能够通过编程调试,解决在秒表设计过程中遇到的问题;3. 学生具备团队协作能力,能够与同学共同分析问题、讨论方案并完成项目。
情感态度价值观目标:1. 学生培养对单片机及电子制作的兴趣,激发创新精神和实践能力;2. 学生养成勤奋好学、独立思考的良好习惯,形成积极向上的学习态度;3. 学生在项目实践中,培养团队精神,学会相互尊重、沟通协作。
本课程针对单片机课程设计之秒表设计,结合学生年级特点,注重理论与实践相结合,培养学生的动手能力和实际操作技能。
通过课程学习,使学生能够掌握单片机基础知识,具备实际项目设计与实施能力,同时培养他们的团队协作和创新能力。
课程目标明确、具体,可衡量,有助于学生和教师在教学过程中清晰了解预期成果,并为后续教学设计和评估提供依据。
二、教学内容1. 单片机基础知识回顾:主要包括单片机的结构、工作原理、指令系统及编程基础;2. 定时器与中断:讲解单片机定时器的工作原理,中断处理过程,以及如何利用定时器实现精确计时;3. 秒表设计原理:分析秒表的功能需求,设计流程,以及所需硬件和软件资源;4. 程序设计:根据秒表设计原理,编写程序代码,实现秒表的开始、停止、计次、清零等功能;5. 硬件电路设计:介绍秒表所需硬件电路的设计方法,包括单片机、按键、显示屏等部分的连接;6. 调试与优化:教授学生如何对程序进行调试,找出并解决存在的问题,优化程序性能;7. 课外拓展:引导学生思考如何改进秒表功能,增加趣味性和实用性。
教学内容依据课程目标制定,涵盖单片机基础知识、定时器与中断、程序设计、硬件电路设计等方面,以确保内容的科学性和系统性。
单片机课程设计_基于单片机的数字秒表设计

单片机课程设计_基于单片机的数字秒表设计在当今科技迅速发展的时代,电子设备的应用无处不在,其中数字秒表作为一种常见的计时工具,具有广泛的应用场景,如体育比赛、科学实验、工业生产等。
本次课程设计旨在基于单片机技术实现一个数字秒表,通过对硬件电路的设计和软件程序的编写,掌握单片机系统的开发流程和方法,提高实践动手能力和解决问题的能力。
一、设计要求1、能够实现秒表的启动、暂停、复位功能。
2、计时精度达到 001 秒。
3、能够通过数码管显示计时结果。
二、系统方案设计1、硬件设计单片机选型:选用常见的 STC89C52 单片机作为核心控制器,其具有性能稳定、价格低廉、易于编程等优点。
显示模块:采用 8 位共阴极数码管作为显示器件,通过动态扫描的方式实现数字的显示。
按键模块:设置三个独立按键,分别用于启动、暂停和复位操作。
时钟模块:使用单片机内部的定时器/计数器产生精确的时钟信号,实现计时功能。
2、软件设计主程序:负责系统的初始化、按键扫描和计时处理等。
中断服务程序:利用定时器中断实现 001 秒的定时,更新计时数据。
三、硬件电路设计1、单片机最小系统包括单片机芯片、晶振电路和复位电路。
晶振频率选择 12MHz,为单片机提供时钟信号。
复位电路采用上电复位和手动复位相结合的方式,确保系统能够可靠复位。
2、显示电路将 8 位数码管的段选引脚通过限流电阻连接到单片机的 P0 口,位选引脚通过三极管连接到单片机的 P2 口。
通过动态扫描的方式,依次点亮每个数码管,实现数字的显示。
3、按键电路三个按键分别连接到单片机的 P10、P11 和 P12 引脚,采用低电平有效。
当按键按下时,相应引脚的电平被拉低,单片机通过检测引脚电平的变化来判断按键的操作。
四、软件程序设计1、主程序流程系统初始化后,进入主循环。
在主循环中,不断扫描按键状态,如果检测到启动按键按下,则启动计时;如果检测到暂停按键按下,则暂停计时;如果检测到复位按键按下,则将计时数据清零。
单片机控制秒表课程设计

单片机控制秒表课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握单片机在秒表设计中的应用。
2. 使学生掌握秒表计时原理,了解秒表各功能模块的工作原理。
3. 帮助学生掌握相关编程语言,实现单片机控制秒表的程序编写。
技能目标:1. 培养学生运用所学知识,设计并实现一个具有启动、停止、复位和计秒功能的单片机控制秒表。
2. 提高学生动手实践能力,学会使用编程软件、下载器和调试工具。
3. 培养学生团队协作能力,分工合作完成课程设计任务。
情感态度价值观目标:1. 培养学生热爱科学、勇于探索的精神,增强对单片机及嵌入式系统学习的兴趣。
2. 培养学生严谨、认真、负责的学习态度,养成良好的学习习惯。
3. 引导学生关注科技发展,了解单片机在日常生活和工业生产中的应用,提高创新意识。
本课程针对高年级学生,具有较强的实践性和综合性。
通过本课程的学习,使学生能够将所学理论知识与实际应用相结合,提高解决实际问题的能力。
课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果。
在教学过程中,需关注学生的个体差异,激发学生的学习兴趣,培养其动手实践能力和团队协作精神,为后续学习打下坚实基础。
二、教学内容本章节教学内容主要包括以下几部分:1. 单片机基本原理:讲解单片机的组成、工作原理和功能特点,使学生了解单片机在秒表设计中的核心作用。
2. 秒表计时原理:介绍秒表的计时原理,分析秒表的启动、停止、复位和计秒功能模块。
3. 编程语言及开发环境:学习单片机编程所需的语言(如C语言),介绍编程软件、下载器和调试工具的使用。
4. 单片机控制秒表设计:根据课程目标,制定以下详细教学大纲:(1)秒表功能需求分析:讨论并明确秒表的各项功能需求。
(2)硬件设计:讲解如何选用合适的单片机、时钟电路、按键、显示屏等硬件设备。
(3)软件设计:指导学生使用C语言编写单片机控制秒表的程序代码。
(4)系统调试:教授学生如何进行硬件和软件的调试,确保秒表的正常工作。
单片机课程设计-秒表

单片机课程设计姓名: 学号: 设计课题: 指导老师: 同组人员: 设计时间: 一、设计目的1.单片机的基本原理及相关的简单应用。
2.掌握用单片机设计系统的一般步骤。
3.了解LED数码管的基本知识和驱动方法。
4•掌握单片机系统各个组成部分的作用以及分布位置5•学会运用单片机的硬件资源。
*********2009 年12 月16二、设计要求1、要求设计一个秒表,精度为00.01秒;2、显示位数为4位;3、有启动、停止、清零功能三、设计工具1.PC机一台2.TDN-MI教学实验系统台(配串行口通讯线)四、元器件4位数码管(1个)、30P瓷片电容(2个)、12M晶振(1个)、12*12键盘(2个)、面包板(1块)、连接线(若干)、10K排阻(1个)五、电路连接1、本系统中“启动/停止”按钮接在外部中断0 口(P3.2);2、本系统中“清零”按钮接在RST脚(第9管教);3、本系统的位选通信号接在P1 口的低四位;4、本系统的LED数据端口使用的是P0口,由于采用了共阴数码管,且面包板上空间有限,未加扩流三极管,只使用了上拉电阻。
5、为使电路工作更加稳定,加了上电复位电路。
详见下图06级电子信息工程单片机课程设计六、设计原理图1、3641数码管脚位图nO1DI01Gco6JGAAiiiiiA Ki i A ii i i ******; l E C D [ f F 帥fi c > r t or ij B C J> F r cDIG*neoA if F ;W*I0 6 61 4 2O O O OI ICM 32、系统电路图19七、程序流程图(1)主函数(2) LED动态扫描(3)外部中断0 (4)定时器0羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊//乂)人羽PIOA诲国庙第工酉&寅易咸诲〃!()Xe|sp piOA 诲国工酉易咸诲//!()Xe|dsip piOA滋国羽券回//:()l!U! P!OA************************* 国羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊Mj9X0'jZX020X0'PZX0'P9X0'99X0hX0'qgxo'90XO‘j£Xo}=[]o|qEl 」Eip psu6isun spoo! 0 = SOBjLU0 = snqsoeix 0 = i^nqsoeix jeqo psu6isunJvbElj = P|OH_se>rs| *qs !0v6e|j = 6e|d _sn;e;s l!qs !6e|j jeqo psu6isun e;epq3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3dD0lzlN00 Nld 羊羊羊羊羊羊羊羊羊羊羊羊羊 *//uM SUUiuj,,spnpuj# ”UN9bai”spnpuj#/羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊91/乙1/60 :晡目妞琴 SLOO:首1糾4視 即磷4》当尊回:#W韋戢 '可劃 '程日 黑44視:來壷44視華矽:@WW羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊,MW 6~o *申 //(冯亠)冯一骂占涯诲轟阴呦44孙爭〃! 0 = l^oeiiu*//单诲\[/孙爭〃 口陳舉滋a3i x 君〃冯园骂易咸诲孙爭// 冯三骂易咸诲孙爭// 冯二骂易咸诲孙爭// 冯一骂易咸诲孙爭// ws 韋戢 m WS 可劃/程日"II08X0 da ou!Qp# 0d a31 ou!Qp#:£vid = LC T IOS *qs 2v ・d = LO_|8S *qsiivid =旧 PS *qs :0vid = LV_|8S *qs!£v£d = JBSIO *qs3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.44探屋削酗月寅屋工冒马£因舵90void key() 〃启动停止按钮释放键盘判断{if(ls_KeyS_Hold)if(Start_Stop){Is_KeyS_Hold = 0 ; EXO = 1 ;〃****************display(void delay() {unsigned int i ; for(i = 0; i<300; i++); }void display() {Sel_A1 = 1; Sel_B1 = 1; Sel_C1 = 1; Sel_D1 = 0;LED = table[xiaoshu2];delay();Sel_A1 = 1; Sel_B1 = 1; Sel_C1 = 0;//********************* void main() { init(); while(1){ key(); display 。
单片机秒表课程设计

单片机 秒表 课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握秒表编程的基本知识。
2. 学生能描述单片机内部定时器的功能和工作原理。
3. 学生能运用所学知识,编写出功能完整的秒表程序。
技能目标:1. 学生能运用C语言进行单片机程序设计,具备一定的编程能力。
2. 学生能够通过实验,学会使用开发板和编程软件进行程序下载和调试。
3. 学生能够通过团队协作,解决实际编程过程中遇到的问题。
情感态度价值观目标:1. 学生培养对单片机编程的兴趣,激发创新意识和实践欲望。
2. 学生在学习过程中,形成积极思考、主动探究的良好学习习惯。
3. 学生通过团队协作,培养沟通能力和团队精神,学会共同解决问题。
课程性质:本课程为实践性课程,以单片机基础知识为背景,结合秒表实例,培养学生的编程能力和实际操作能力。
学生特点:学生已具备一定的单片机基础知识和C语言编程能力,对实际操作感兴趣,喜欢动手实践。
教学要求:教师需结合课程目标,采用任务驱动法,引导学生主动参与,注重培养学生的动手能力和团队协作能力。
教学过程中,关注学生个体差异,给予个性化指导,确保学生能够达到预期的学习成果。
通过课程学习,使学生在知识、技能和情感态度价值观方面得到全面提升。
二、教学内容1. 理论部分:a. 单片机基础知识回顾:主要包括单片机内部结构、工作原理及常用寄存器的作用。
b. 定时器原理讲解:详细介绍单片机内部定时器的工作原理,包括计数器、定时器的设置和使用方法。
c. C语言编程基础:复习C语言在单片机编程中的应用,重点讲解与秒表编程相关的语法和技巧。
2. 实践部分:a. 秒表功能需求分析:明确秒表的功能需求,包括开始、停止、计次、清零等功能。
b. 程序设计:引导学生运用所学知识,编写秒表的程序代码。
c. 程序下载与调试:教授学生如何将编写好的程序下载到开发板上,并进行调试和优化。
3. 教学大纲:a. 第一课时:回顾单片机基础知识,讲解定时器原理,明确秒表功能需求。
单片机课程设计——秒表

单片机预习报告--------------秒表一、题目分析利用单片机内部定时/计数器和中断功能,实现分、秒、十分之一秒的正计时和倒计时功能,并将计时时间通过六位数码管实时动态显示出来。
倒计时模式中可通过键盘上的按键分别对分、秒进行定时设定,在计时过程中,可通过相应按钮进行暂停、开始,从而实现了六位倒计时秒表功能。
二.系统总体设计与框图系统框图如图下图所示。
该过程是:利用单片机8051实现计数功能,按键开关 K4按下,切换定时与计时。
定时范围在0到99分,计时范围在0到99.99.秒。
首先通过检测按键K4,来确定系统工作什么模式,计时模式有开始,暂停,复位3种功能,倒计时模式有,置数,开始,暂停,复位功能。
系统总体设计与框图三.解决方案:初始化为何种状态,开关是否按下,显示是定时状态还是计时状态。
若为定时状态,。
用6个共阴数码管LED显示起显示时间,采用动态显示的方法,P2.4、P2.5、P2.6、P2.7作为位选信号,P0口输出选段码。
键盘为独立式按键,分别接在P3.2、P3.3、P3.4、P3.5上。
K1为设置/启动功能键。
按下时,系统进入时间设置;再按下,系统启动。
K2为倒计时时间十位数设定键,按下时十位数字在0到9的范围。
K3倒计时个位数设定键,按下时,个位数字在0到9的范围。
K4为复位键。
K5为定时与计时的切换键,按下切换到计时状态,不按为定时状态。
P3.5连接发光二极管状态指示,系统时间设为定时状态熄灭,倒计时状态闪烁。
P3.6输出控制信号驱动蜂鸣器,倒计时时间到,蜂鸣器响。
开始正计时,正计时结束,蜂鸣器再响,程序结束。
四.各模块方案1.计时模式开始计时:利用外部中断1与定时中断1进行开始功能与计时功能暂停计时:利用外部中断关闭时实现暂停功能硬件复位:利用电容的冲电与放电特性实现硬件复位。
实现方法:用8051单片机做一个最小系统,计数器的复位功能通过单片机的硬件复位来实现。
秒表的显示用数码管显示,秒表的秒计数和循环通过程序控制单片机的输出来显示在数码管上。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计
姓名:***
学号:
设计课题:秒表
指导老师:
同组人员:*********
设计时间:2009年12月16日
一、设计目的
1.单片机的基本原理及相关的简单应用。
2.掌握用单片机设计系统的一般步骤。
3.了解LED数码管的基本知识和驱动方法。
4.掌握单片机系统各个组成部分的作用以及分布位置。
5.学会运用单片机的硬件资源。
二、设计要求
1、要求设计一个秒表,精度为00.01秒;
2、显示位数为4位;
3、有启动、停止、清零功能
三、设计工具
1.PC机一台
2.TDN-MI教学实验系统一台(配串行口通讯线)
四、元器件
4位数码管(1个)、30P瓷片电容(2个)、12M晶振(1个)、12*12键盘(2个)、面包板(1块)、连接线(若干)、10K排阻(1个)
五、电路连接
1、本系统中“启动/停止”按钮接在外部中断0口(P3.2);
2、本系统中“清零”按钮接在RST脚(第9管教);
3、本系统的位选通信号接在P1口的低四位;
4、本系统的LED数据端口使用的是P0口,由于采用了共阴数码管,且面包板上空间有限,未加扩流三极管,只使用了上拉电阻。
5、为使电路工作更加稳定,加了上电复位电路。
详见下图
六、设计原理图
1、3641数码管脚位图
2、系统电路图
七、程序流程图
(1)主函数(2)LED动态扫描
八、设计程序
/************************************************
设计题目:秒表
设计要求:设计带启动、停止、清零功能的秒表
利用4位数码管,显示整数两位和小数两位
设计者:何友东付艳娟
设计精度:0.01s
完成日期:09.12.16
*************************************************/
#include "reg52.h"
#include "intrins.h"
//************** PIN CONFIGURE ********************
sbit Start_Stop = P3^2; //定义启动/停止按键
sbit Clear = P3^3; //定义清零按键
sbit Sel_A1 = P1^0; // 定义数码管第一位
sbit Sel_B1 = P1^1; // 定义数码管第二位
sbit Sel_C1 = P1^2; // 定义数码管第三位
sbit Sel_D1 = P1^3; // 定义数码管第四位
#define LED P0 //定义LED 数据端口
#define DP 0x80 //定义小数点
//**************************************************
bdata unsigned char flag; //定义标志寄存器
sbit Status_Flag = flag^0; //1----计时0----停止
sbit Is_KeyS_Hold = flag^1; //定义键盘释放判断标志位
//1---未释放0---释放
unsigned char xiaoshu1 = 0 , //定义计时的小数部分,第一位
xiaoshu2 = 0 , //定义小数部分第二位
miao1 = 0 ; //定义计时的整数部分第一位(十位)
miao2 = 0 ; //定义整数部分第二位(个位)
code unsigned char table[]={0x3f,0x06,0x5b, // 定义0~9 编码
0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,};
//******************函数声明*************************
void init(); //初始化函数
void display(); // 数码管显示函数
void delay(); //数码管单个显示延时函数
void key(); //键盘释放判断操作函数
//****************************************************
//*********************主函数************************* void main()
{
init(); //调用初始化函数
while(1)
{
key(); //调用键盘操作函数
display(); //调用LED动态显示函数
}
}
//********************键盘释放判断操作函数************* void key() //启动停止按钮释放键盘判断
{
if(Is_KeyS_Hold)
if(Start_Stop)
{
Is_KeyS_Hold = 0 ;
EX0 = 1 ;
}
}
//****************display()的内部延时函数*************** void delay()
{
unsigned int i ;
for(i = 0; i<300; i++);
}
//***************LED的动态显示函数********************** void display()
{
Sel_A1 = 1;
Sel_B1 = 1;
Sel_C1 = 1;
Sel_D1 = 0;
LED = table[xiaoshu2];delay(); //显示小数的第二位
Sel_A1 = 1;
Sel_B1 = 1;
Sel_C1 = 0;
Sel_D1 = 1;
LED = table[xiaoshu1];delay(); //显示小数的第一位
Sel_A1 = 1;
Sel_B1 = 0;
Sel_C1 = 1;
Sel_D1 = 1;
LED = table[miao2]|DP;delay(); //显示秒的第二位
//并显示小数点
Sel_A1 = 0;
Sel_B1 = 1;
Sel_C1 = 1;
Sel_D1 = 1;
LED = table[miao1];delay(); //显示秒的第一位
}
//******************外部中断0处理函数************************ void Key_Start_Stop() interrupt 0 //外部中断0 启动停止按钮连接于此{
EX0 = 0;
Status_Flag = ~ Status_Flag ;
Is_KeyS_Hold = 1;
if( Status_Flag )
TR0 = 1;
else
TR0 = 0;
}
//*******************定时器0中断处理函数****************
void time10ms() interrupt 1 //定时器中断延时时间10ms
{
TL0 = 0XEF;
TH0 = 0XD8;
TR0 = 1 ; //开定时器
xiaoshu2+=1;
if(xiaoshu2 == 10) { xiaoshu2 = 0 ; xiaoshu1 += 1;}
if(xiaoshu1 == 10) { xiaoshu1 = 0 ; miao2 += 1;}
if(miao2 == 10) { miao2 = 0 ; miao1 += 1;}
if(miao1 == 10) miao1 = 0; //计数最大值99.99 ,
//下一时刻00.00
}
//*********************系统初始化函数********************
void init()
{
Sel_A1 = Sel_B1 = Sel_C1 = Sel_D1 = 1 ;
LED = 0XFF; //关显示
Status_Flag = 0; //标志位清零(未计数)
xiaoshu1 = xiaoshu2 = miao1 = miao2 = 0 ;//初始化显示00.00
ET0 = 1; //定时器0开中断
EX0 = 1; //外部中断0开中断
EA = 1 ; //开总中断
TMOD = 0X01; //定时器0工作方式1
TL0 = 0XEF; //延时10ms初始化设置
TH0 = 0XD8;
TR0 = 0 ; //定时器停止计数
}
九、实验步骤
1.先在电脑上编写程序,然后在试验箱上装载,编译并运行,验证时钟功能是否正确。
2.把数码管,单片机移到面包板上,正确接线,并验证是否正确。
十、作品目前缺陷
1、使用数码管为共阴数码管,使用面包板,空间有限,未能加扩流三极管,导致数码管亮度较低。
2、单片机长期工作在高功耗状态,寿命降低。
3、上拉电阻的引入,增加电路静态功耗。
4、可行的解决方案为:使用驱动能力更强的、能够直推LED的AT89C2051,或者使用三极管扩流,推荐使用共阳数码管。
十一、实验心得
1.进一步复习和巩固了单片机的知识,熟悉了单片机硬件资源的使用。
2.进一步学习了数码管的驱动方法。
3.最后感谢汤老师对我的指导。