单片机课程设计数字时钟
数字电子钟单片机课程设计

数字电子钟单片机课程设计一、课程目标知识目标:1. 学生能理解数字电子钟的基本工作原理,掌握单片机在数字电子钟中的应用。
2. 学生能掌握数字电子钟的各功能模块(如计时、闹钟、显示等)的设计与实现。
3. 学生了解并掌握数字电子钟程序编写的基本方法,学会运用编程语言(如C 语言)进行程序设计。
技能目标:1. 学生能运用所学知识,设计并制作一个简易的数字电子时钟,具备基本的时间显示、闹钟等功能。
2. 学生能够独立完成程序编写,实现数字电子钟的基本功能,并具备一定的调试与优化能力。
3. 学生能够通过团队合作,发挥各自专长,共同完成课程设计任务。
情感态度价值观目标:1. 学生在课程学习中,培养对电子技术的兴趣和爱好,激发创新意识。
2. 学生通过实践活动,培养动手能力、解决问题的能力和团队协作精神。
3. 学生在学习过程中,树立正确的价值观,认识到科技对生活的重要性,增强社会责任感。
本课程针对高年级学生,课程性质为实践性较强的设计与制作类课程。
学生在前期课程中已具备一定的电子技术基础和编程能力,本课程旨在巩固和拓展这些知识。
在教学过程中,要求教师注重引导学生主动探索、实践,鼓励学生发挥创新能力,同时关注学生的个体差异,提供有针对性的指导。
通过课程目标的实现,使学生在知识、技能和情感态度价值观方面取得具体的学习成果,为后续相关课程的学习打下坚实基础。
二、教学内容1. 数字电子钟原理及单片机基础:包括时钟电路、计数器、寄存器等基本原理,以及单片机的内部结构、工作原理和编程接口。
- 教材章节:第一章 电子时钟原理;第二章 单片机基础- 内容列举:时钟电路设计、计数器应用、寄存器配置、单片机内部结构、I/O 口编程。
2. 数字电子钟功能模块设计:讲解并实践计时、闹钟、显示等模块的设计方法。
- 教材章节:第三章 数字电子钟设计;第四章 模块化设计- 内容列举:计时模块、闹钟模块、显示模块设计,模块间通信协议。
3. 程序设计与编写:学习数字电子钟的程序编写方法,运用C语言进行程序设计。
单片机数字时钟课程设计

单片机数字时钟课程设计一、课程目标单片机数字时钟课程设计旨在让八年级学生在巩固已学电子技术知识的基础上,通过实践操作,实现以下目标:1. 知识目标:(1)理解单片机的基本原理,掌握其编程方法;(2)掌握数字时钟的构成和工作原理;(3)学会使用相关电子元件,如LED显示屏、时钟芯片等。
2. 技能目标:(1)能够运用C语言进行单片机编程,实现数字时钟的基本功能;(2)通过动手实践,提高电路搭建和调试能力;(3)培养团队协作和问题解决能力。
3. 情感态度价值观目标:(1)激发学生对电子技术的兴趣,培养创新精神和动手实践能力;(2)养成严谨的学习态度,提高自主学习能力;(3)培养学生关爱环境、珍惜资源的意识,强化责任感。
本课程针对八年级学生的认知特点,注重理论与实践相结合,以学生为主体,教师为主导。
通过本课程的学习,学生能够将所学知识应用于实际项目中,提高综合运用能力,培养科学精神和创新意识。
课程目标分解为具体学习成果,便于后续教学设计和评估。
二、教学内容依据课程目标,教学内容围绕单片机数字时钟设计与实现展开,包括以下部分:1. 理论知识:(1)单片机原理及编程基础,参考教材第3章;(2)数字时钟工作原理及电路设计,参考教材第5章;(3)C语言编程及应用,参考教材第4章。
2. 实践操作:(1)数字时钟电路搭建,使用LED显示屏、时钟芯片等元件;(2)单片机编程,编写控制程序,实现时钟显示、校时等功能;(3)调试与优化,对搭建的数字时钟进行调试,确保其稳定运行。
3. 教学大纲:第1周:回顾单片机原理及编程基础,学习数字时钟工作原理;第2周:学习C语言编程,编写简单的数字时钟程序;第3周:设计数字时钟电路,进行电路搭建;第4周:编程实现数字时钟功能,进行调试与优化。
教学内容注重科学性和系统性,结合教材章节内容,以实践操作为主,使学生能够将理论知识与实际应用紧密结合,提高综合运用能力。
同时,教学进度安排合理,确保学生在规定时间内完成课程学习。
单片机数字时钟课程设计

单片机数字时钟课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和编程方法,掌握数字时钟的设计与实现过程。
2. 使学生掌握数字时钟的显示原理,包括时、分、秒的显示和调整方法。
3. 让学生了解单片机与其他硬件设备(如LED显示屏、按键等)的接口技术。
技能目标:1. 培养学生运用单片机编程实现数字时钟功能的能力。
2. 培养学生运用所学知识解决实际问题的能力,如调试程序、排查故障等。
3. 提高学生的动手实践能力,能够独立完成数字时钟的搭建和调试。
情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发学生的创新意识和探索精神。
2. 培养学生团队协作精神,学会在合作中解决问题,共同完成任务。
3. 培养学生严谨的学习态度和良好的学习习惯,注重实践与理论相结合。
分析课程性质、学生特点和教学要求:1. 课程性质:本课程为单片机应用实践课程,注重理论联系实际,培养学生的动手能力和创新能力。
2. 学生特点:学生已具备一定的单片机基础知识,有一定的编程基础,但实践能力有待提高。
3. 教学要求:以学生为主体,教师为主导,采用项目式教学,引导学生主动探究和解决问题。
二、教学内容1. 理论知识:- 单片机原理及编程基础回顾;- 数字时钟的原理与设计思路;- 单片机与其他硬件设备的接口技术。
2. 实践操作:- 数字时钟的硬件搭建,包括LED显示屏、按键等;- 单片机程序编写,实现时、分、秒的显示与调整;- 程序调试与故障排查。
3. 教学大纲:- 第一阶段(1课时):单片机原理及编程基础回顾;- 第二阶段(2课时):数字时钟原理学习,设计思路讲解;- 第三阶段(2课时):硬件搭建与程序编写;- 第四阶段(1课时):程序调试与故障排查;- 第五阶段(1课时):成果展示与总结。
4. 教材关联:- 教材第3章:单片机原理及编程基础;- 教材第4章:数字时钟设计与实现;- 教材第5章:单片机与其他硬件设备接口技术。
单片机数字钟课程设计

单片机数字钟课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握数字时钟的工作机制;2. 学生能描述数字时钟的各个模块功能,如时钟电路、计数器、显示电路等;3. 学生能运用所学编程语言,如C语言,编写数字时钟的程序代码。
技能目标:1. 学生能运用单片机开发工具进行程序编写、调试和下载;2. 学生能动手搭建数字时钟硬件电路,实现时钟的显示和计时功能;3. 学生能通过实际操作,掌握基本电路故障排查和程序调试技巧。
情感态度价值观目标:1. 学生培养对单片机及电子制作的兴趣,激发创新意识和动手能力;2. 学生在团队协作中学会沟通、分享和承担责任,培养合作精神;3. 学生通过解决实际问题,体会科技对社会发展的作用,增强社会责任感。
课程性质:本课程为实践性较强的课程,结合理论教学和动手操作,让学生在实际操作中掌握单片机数字时钟的制作。
学生特点:学生具备一定的电子基础知识,对单片机有一定了解,喜欢动手实践,具有较强的求知欲和好奇心。
教学要求:注重理论与实践相结合,强调学生在操作过程中掌握知识,培养学生动手能力、创新意识和团队协作能力。
通过课程学习,使学生能够独立完成单片机数字时钟的设计与制作。
二、教学内容1. 理论知识:- 单片机原理:介绍单片机的硬件结构、工作原理和编程方法;- 数字时钟原理:分析数字时钟的组成、工作原理及各模块功能。
2. 实践操作:- 硬件设计:指导学生设计数字时钟的硬件电路,包括时钟电路、计数器、显示电路等;- 程序编写:教授学生使用C语言编写单片机程序,实现数字时钟的功能;- 调试与下载:教授学生如何使用开发工具进行程序调试和下载。
3. 教学大纲:- 第一周:单片机原理学习,了解数字时钟的基本原理;- 第二周:分析数字时钟各模块功能,学习C语言编程基础;- 第三周:设计数字时钟硬件电路,编写程序代码;- 第四周:进行程序调试,搭建完整的数字时钟系统。
4. 教材关联:- 教材第一章:单片机原理及其应用;- 教材第二章:数字电路设计基础;- 教材第三章:C语言编程基础;- 教材第四章:单片机程序设计与实践。
单片机实验报告数字时钟设计报告

单片机实验报告数字时钟设计报告一、实验目的本次单片机实验的目的是设计并实现一个基于单片机的数字时钟。
通过该实验,深入了解单片机的工作原理和编程方法,掌握定时器、中断、数码管显示等功能的应用,提高综合运用知识解决实际问题的能力。
二、实验原理1、单片机选择本次实验选用了常见的 51 系列单片机,如 STC89C52。
它具有丰富的资源和易于编程的特点,能够满足数字时钟的设计需求。
2、时钟计时原理数字时钟的核心是准确的计时功能。
通过单片机内部的定时器,设定合适的定时时间间隔,不断累加计时变量,实现秒、分、时的计时。
3、数码管显示原理采用共阳或共阴数码管来显示时间数字。
通过单片机的 I/O 口控制数码管的段选和位选信号,使数码管显示相应的数字。
4、按键控制原理设置按键用于调整时间。
通过检测按键的按下状态,进入相应的时间调整模式。
三、实验设备与材料1、单片机开发板2、数码管3、按键4、杜邦线若干5、电脑及编程软件(如 Keil)四、实验步骤1、硬件连接将数码管、按键与单片机开发板的相应引脚通过杜邦线连接起来。
确保连接正确可靠,避免短路或断路。
2、软件编程(1)初始化单片机的定时器、中断、I/O 口等。
(2)编写定时器中断服务程序,实现秒的计时。
(3)设计计时算法,将秒转换为分、时,并进行进位处理。
(4)编写数码管显示程序,将时间数据转换为数码管的段选和位选信号进行显示。
(5)添加按键检测程序,实现时间的调整功能。
3、编译与下载使用编程软件将编写好的程序编译生成可执行文件,并下载到单片机中进行运行测试。
五、程序设计以下是本次数字时钟设计的主要程序代码片段:```cinclude <reg52h>//定义数码管段选码unsigned char code SEG_CODE ={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};//定义数码管位选码unsigned char code BIT_CODE ={0x01, 0x02, 0x04, 0x08, 0x10,0x20, 0x40, 0x80};//定义时间变量unsigned int second = 0, minute = 0, hour = 0;//定时器初始化函数void Timer_Init(){TMOD = 0x01; //定时器 0 工作在方式 1 TH0 =(65536 50000) / 256; //定时 50ms TL0 =(65536 50000) % 256;EA = 1; //开总中断ET0 = 1; //开定时器 0 中断TR0 = 1; //启动定时器 0}//定时器 0 中断服务函数void Timer0_ISR() interrupt 1{TH0 =(65536 50000) / 256;TL0 =(65536 50000) % 256;second++;if (second == 60){second = 0;minute++;if (minute == 60){minute = 0;hour++;if (hour == 24){hour = 0;}}}}//数码管显示函数void Display(){unsigned char i;for (i = 0; i < 8; i++)P2 = BIT_CODEi;if (i == 0){P0 = SEG_CODEhour / 10;}else if (i == 1){P0 = SEG_CODEhour % 10;}else if (i == 2){P0 = 0xBF; //显示“”}else if (i == 3){P0 = SEG_CODEminute / 10;else if (i == 4){P0 = SEG_CODEminute % 10;}else if (i == 5){P0 = 0xBF; //显示“”}else if (i == 6){P0 = SEG_CODEsecond / 10;}else if (i == 7){P0 = SEG_CODEsecond % 10;}delay_ms(1);//适当延时,防止闪烁}}//主函数void main(){Timer_Init();while (1){Display();}}```六、实验结果与分析1、实验结果将程序下载到单片机后,数字时钟能够正常运行,准确显示时、分、秒,并且通过按键可以进行时间的调整。
单片机课程设计报告数字时钟

课程设计报告课程设计名称:数字时钟系:三学生姓名:班级:电信1_学号:成绩:_指导教师:袁静开课时间:2011-2012学年下学期一.设计题目数字时钟二.主要内容利用定时器设计一个电子钟,并定义一个启动键。
当按下该键时电子时钟从当前设定值开始走时。
按秒刷新,要求在LCD 屏上显示。
三.具体要求在课程设计时,1人一组,设计报告由学生独立完成,不得互相抄袭。
教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。
学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。
学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。
学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。
学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。
设计中可边设计,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。
四.进度安排五.成绩评定考核方法:现场验收(占50%),课程设计报告(占50%)。
考核内容:学习态度(出勤情况,平时表现等)、方案合理性、程序编制质量、演示效果、设计报告质量。
成绩评定:优,良,中,及格,不及格。
特别说明:如发现抄袭,按照不及格处理。
周一 周二 周三 周四 周五 讲课设内容,安排任务查资料,确定硬件电路方案画出程序流程图,写出程序清单画出程序流程图,写出程序清单写总结报告目录第一章系统概要1.1 系统背景 (4)1.2 系统功能 (4)第二章系统硬件设计2.1 系统原理图 (5)2.2 单片机(MCU)模块2.2.1 MC9S08AW60单片机功能概述 (6)2.2.2 内部结构简图 (6)2.3 串行通信模块2.3.1 MAX232引图 (7)2.3.2 串行通信的电路原理 (7)2.4 液晶显示模块 (8)第三章系统软件设计3.1 MCU方(C)程序3.1.1主程序(mian.c) (10)3.1.2 中断子程(Isr.c) (11)3.1.3LCD子程序(LCD.c) (11)3.1.4定时器(Timer.c) (13)3.1.5串行通信子程(SCI.c) (16)第四章系统测试 (18)第五章总结展望5.1 总结 (22)5.2 展望 (23)参考文献 (23)第一章系统概要1.1 系统背景这些年,人们对数字时钟的要求也越来越高,传统的时钟已不能够满足人们的需求。
单片机数学钟课程设计

单片机数学钟课程设计一、课程目标知识目标:1. 让学生理解单片机的基础知识,掌握其工作原理和编程方法。
2. 使学生掌握数字时钟的原理,包括时、分、秒的计算与显示。
3. 帮助学生了解数学在单片机编程中的应用,如时间计算、数值转换等。
技能目标:1. 培养学生运用单片机进行数字时钟编程的能力,学会编写相关程序代码。
2. 提高学生动手实践能力,能够自行设计、搭建并调试单片机数学钟。
3. 培养学生运用数学知识解决实际问题的能力,提高问题分析及解决能力。
情感态度价值观目标:1. 激发学生对单片机及编程的兴趣,培养主动学习的习惯。
2. 培养学生的团队协作精神,提高沟通与交流能力。
3. 增强学生对科技与数学的热爱,树立创新意识,培养探索精神。
课程性质:本课程为实践性较强的课程,结合单片机技术、数学知识及编程技能,旨在提高学生的动手实践能力和问题解决能力。
学生特点:学生具备一定的数学基础和编程知识,对单片机有一定了解,但实践经验不足。
教学要求:注重理论与实践相结合,强调动手实践,鼓励学生自主探究,培养学生解决问题的能力和创新意识。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高综合运用能力。
二、教学内容1. 单片机基础知识:介绍单片机的组成、工作原理及编程环境,重点讲解51单片机的内部结构、指令系统及I/O口操作。
- 教材章节:第一章单片机基础知识2. 数字时钟原理:讲解数字时钟的时、分、秒计算方法,以及如何通过单片机实现数字时钟的功能。
- 教材章节:第三章数字时钟原理与应用3. 数学知识应用:介绍数学在单片机编程中的应用,如数值转换、时间计算等。
- 教材章节:第二章数学基础知识及其在单片机中的应用4. 编程实践:指导学生使用C语言或汇编语言编写单片机程序,实现数字时钟功能。
- 教材章节:第四章单片机编程实践5. 动手实践:学生自行设计、搭建单片机数学钟电路,并调试程序。
- 教材章节:第五章单片机系统设计与实践6. 项目展示与评价:学生展示作品,进行交流与评价,总结学习收获。
51数字时钟课程设计

51数字时钟课程设计一、课程目标知识目标:1. 学生能理解数字时钟的基本原理和组成部分;2. 学生掌握51单片机的寄存器编程,能实现数字时钟的显示功能;3. 学生了解时钟芯片DS1302的工作原理,能正确读取和设置时间。
技能目标:1. 学生通过编程实践,提高51单片机的编程能力;2. 学生学会使用时钟芯片DS1302,培养实际应用能力;3. 学生能运用所学知识,解决数字时钟制作过程中的问题。
情感态度价值观目标:1. 学生培养对电子制作的兴趣,激发创新精神和实践能力;2. 学生通过团队协作,培养沟通能力和团队精神;3. 学生认识到科技对生活的改变,增强对科技的兴趣和认识。
课程性质:本课程为电子技术实践课程,结合理论知识和实际操作,培养学生动手能力和实际应用能力。
学生特点:五年级学生具备一定的51单片机编程基础,对电子制作有浓厚兴趣,喜欢动手实践。
教学要求:教师需引导学生掌握数字时钟的基本原理,关注学生动手实践过程,培养解决问题的能力。
通过课程学习,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。
二、教学内容本课程教学内容分为三个部分:第一部分:数字时钟原理及51单片机基础1. 简介数字时钟的组成和原理,包括时钟芯片、显示部分等;2. 复习51单片机的基本结构和寄存器编程方法;3. 结合教材相关章节,介绍51单片机与DS1302时钟芯片的接口技术。
第二部分:DS1302时钟芯片编程与应用1. 详细讲解DS1302时钟芯片的工作原理和编程方法;2. 通过实例,指导学生编写读取和设置时间的程序;3. 分析并解决在实际操作过程中可能遇到的问题。
第三部分:数字时钟设计与制作1. 制定详细的教学大纲,安排课时进度,确保教学内容系统性和连贯性;2. 指导学生设计数字时钟电路,并进行仿真测试;3. 组织学生动手制作数字时钟,培养实际操作能力。
教学内容与教材紧密关联,注重理论与实践相结合,按照教学大纲逐步推进,使学生能够在掌握基础知识的同时,提高实际应用能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编程序
SECOND EQU 30H
MINITE EQU 31H
HOUR EQU 32H
HOURK BIT P0.0
MINITEK BIT P0.1
SECONDK BIT P0.2
DISPBUF EQU 40H
DISPBIT EQU 48H
T2SCNTA EQU 49H
T2SCNTB EQU 4AH
TEMP EQU 4BH
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START: MOV SECOND,#00H
MOV MINITE,#00H
MOV HOUR,#12
MOV DISPBIT,#00H
MOV T2SCNTA,#00H
MOV T2SCNTB,#00H
MOV TEMP,#0FEH
LCALL DISP
MOV TMOD,#01H
MOV TH0,#(65536-2000) / 256
MOV TL0,#(65536-2000) MOD 256
SETB TR0
SETB ET0
SETB EA
WT: JB SECONDK,NK1
LCALL DELY10MS
JB SECONDK,NK1
MOV SECOND,#00H
NS60: LCALL DISP
JNB SECONDK,$
NK1: JB MINITEK,NK2
LCALL DELY10MS
JB MINITEK,NK2
INC MINITE
MOV A,MINITE
CJNE A,#60,NM60 MOV MINITE,#00H NM60: LCALL DISP JNB MINITEK,$
NK2: JB HOURK,NK3 LCALL DELY10MS
JB HOURK,NK3
INC HOUR
MOV A,HOUR
CJNE A,#24,NH24 MOV HOUR,#00H
NH24: LCALL DISP JNB HOURK,$
NK3: LJMP WT DELY10MS:
MOV R6,#10
D1: MOV R7,#248 DJNZ R7,$
DJNZ R6,D1
RET
DISP:
MOV A,#DISPBUF ADD A,#8
DEC A
MOV R1,A
MOV A,HOUR
MOV B,#10
DIV AB
MOV @R1,A
DEC R1
MOV A,B
MOV @R1,A
DEC R1
MOV B,#10
DIV AB
MOV @R1,A
DEC R1
MOV A,B
MOV @R1,A
DEC R1
MOV A,#10
MOV@R1,A
DEC R1
MOV A,SECOND
MOV B,#10
DIV AB
MOV @R1,A
DEC R1
MOV A,B
MOV @R1,A
DEC R1
RET
INT_T0:
MOV TH0,#(65536-2000) / 256
MOV TL0,#(65536-2000) MOD 256
MOV A,#DISPBUF
ADD A,DISPBIT
MOV R0,A
MOV A,@R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P1,A
MOV A,DISPBIT
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P3,A
INC DISPBIT
MOV A,DISPBIT
CJNE A,#08H,KNA
MOV DISPBIT,#00H
NE
MOV T2SCNTB,#00H
INC SECOND
MOV A,SECOND
CJNE A,#60,NEXT
MOV SECOND,#00H
INC MINITE
MOV A,MINITE
CJNE A,#60,NEXT
MOV MINITE,#00H
INC HOUR
MOV A,HOUR
CJNE A,#24,NEXT
MOV HOUR,#00H
NEXT: LCALL DISP
DONE: RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H
TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH END
C 语言源程序
#include <AT89X51.H>
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x00};
unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsigned char dispbuf[8]={0,0,16,0,0,16,0,0};
unsigned char dispbitcnt;
unsigned char second;
unsigned char minite;
unsigned char hour;
unsigned int tcnt;
unsigned char mstcnt;
unsigned char i,j;
void main(void)
{
TMOD=0x02;
TH0=0x06;
TL0=0x06;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(P0_0==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P0_0==0)
{
second++;
if(second==60)
{
second=0;
}
dispbuf[0]=second%10; dispbuf[1]=second/10; while(P0_0==0);
}
}
if(P0_1==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P0_1==0)
{
minite++;
if(minite==60)
{
minite=0;
}
dispbuf[3]=minite%10; dispbuf[4]=minite/10; while(P0_1==0);
}
}
if(P0_2==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P0_2==0)
{
hour++;
if(hour==24)
{
hour=0;
}
dispbuf[6]=hour%10; dispbuf[7]=hour/10; while(P0_2==0);
}
}
}
}
void t0(void) interrupt 1 using 0 {
mstcnt++;
if(mstcnt==8)
{
mstcnt=0;
P1=dispcode[dispbuf[dispbitcnt]]; P3=dispbitcode[dispbitcnt]; dispbitcnt++;
if(dispbitcnt==8)
{
dispbitcnt=0;
}
}
tcnt++;
if(tcnt==4000)
{
tcnt=0;
second++;
if(second==60)
{
second=0;
minite++;
if(minite==60)
{
minite=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
dispbuf[0]=second%10; dispbuf[1]=second/10; dispbuf[3]=minite%10; dispbuf[4]=minite/10;
dispbuf[6]=hour%10;
dispbuf[7]=hour/10;
原理图。