江苏大学单片机课程设计
江苏大学单片机课程设计多功能电子时钟

J I A N G S U U N I V E R S I T Y单片机课程设计多功能电子时钟学院名称:专业班级:学生姓名:学生学号:错误!未找到引用源。
一、设计目的(1)能在LED显示器上实现正常的时分秒计时(2)能通过键盘输入当前时间,并从该时间开始计时(3)有校时、校分功能(4)有闹时功能,闹时时间可以设定,通过指示灯表示二、设计内容该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。
三、MCS-51单片机系统简介单片机应用系统由硬件系统和软件系统两部分组成。
硬件系统是指单片机以及扩展的存储器、I\O接口、外围扩展的功能芯片以及接口电路。
软件系统包括监控程序和各种应用程序。
在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。
与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和I\O接口,使单片机应用系统能够运行。
在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。
在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。
配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就可以进行处理了。
在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。
显示器可以是LED指示灯,也可以是LED数码管,也可以是LCD显示器,还可以使用CRT显示器。
单片机应用系统中键盘一般用的比较多的是矩阵键盘,显示器用的比较多的是LED数码管还LCD显示器。
四、设计方案通过键盘输入,设置当前时间,并显示在LCD显示器上,键盘和LED显示通过键盘专用芯片HD7279A进行控制,7279A也是I2C总线接口的芯片,系统中采用并行口线模拟I2C 实现C8051F020和HD7279A的通信。
单片机课程设计报告书模板(海洋港口学院)讲解

江苏师范大学连云港校区海洋港口学院课程设计报告书课程名称专业班级学号姓名指导教师2015年06 月12 日课程设计基本要求课程设计是本科学生十分重要的实践教学环节,通过课程设计,培养学生综合运用先修课程的理论知识和专业技能,解决工程领域某一方面实际问题的能力。
课程设计报告是科学论文写作的基础,不仅可以培养和训练学生的逻辑归纳能力、综合分析能力和文字表达能力,也是规范课程设计教学要求、反映课程设计教学水平的重要依据。
为了加强课程设计教学管理,提高课程设计教学质量,特拟定如下基本要求。
1. 课程设计教学一般可分为平时实训考勤、项目设计、参考文献、总结等4个环节,每个环节都应有一定的考核要求和考核成绩。
2. 课程设计项目的选题要符合本课程设计教学大纲的要求,该项目应能突出学生实践能力、设计能力和创新能力的培养;该项目有一定的实用性,且学生通过努力在规定的时间内是可以完成的。
3. 平时实训考勤主要包括每次的实训报到情况和练习情况。
4. 项目设计主要包括项目设计与制作结果的工艺水平,项目测试性能指标的正确性和完整性,项目测试中出现故障或错误原因的分析和处理方法。
5. 学生在课程设计过程中应认真阅读与本课程设计项目相关的文献,培养自己的阅读兴趣和习惯,借以启发自己的思维,提高综合分和理解能力。
6. 提问是课程设计中十分重要的环节,由课程设计指导教师向提问学生提出2~3个问题,通过提问可进一步了解学生对课程设计中理论知识和实际技能掌握的程度,以及对问题的理解、分析和判断能力。
7.学生应在课程设计周内认真参加项目设计的各个环节,按时完成课程设计报告书交给课程设计指导教师评阅。
课程设计指导教师应认真指导学生课程设计全过程,认真评阅学生的每一份课程设计报告,给出课程设计综合评阅意见和每一个环节的评分成绩(百分制),最后将百分制评分成绩转换为五级分制(优秀、良好、中等、及格、不及格)总评成绩。
8. 课程设计报告书是实践教学水平评估的重要资料,应按课程、班级集成存档交院里统一管理。
单片机系统的设计课程设计

单片机系统的设计课程设计一、课程目标知识目标:1. 让学生理解单片机系统的基本原理和组成,掌握其设计流程和方法。
2. 使学生掌握单片机编程的基础知识,能运用C语言或汇编语言进行简单程序编写。
3. 帮助学生了解单片机系统在实际应用中的功能与作用,如智能家居、机器人等。
技能目标:1. 培养学生具备独立设计单片机系统的能力,包括硬件电路设计和软件编程。
2. 提高学生运用单片机解决实际问题的能力,如数据采集、信号处理等。
3. 培养学生动手实践和团队协作的能力,能够完成课程项目的设计与实施。
情感态度价值观目标:1. 培养学生对单片机系统设计和开发产生兴趣,提高其学习积极性和主动性。
2. 培养学生具备创新精神和实践意识,敢于尝试新方法,解决实际问题。
3. 培养学生具备良好的团队合作精神和沟通能力,能够在团队中发挥积极作用。
课程性质:本课程为实践性较强的学科,要求学生在理解理论知识的基础上,动手实践,完成单片机系统的设计与实现。
学生特点:学生具备一定的电子技术基础和编程能力,对单片机系统有一定了解,但实践经验不足。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,培养其创新能力和实践能力。
通过课程学习,使学生能够达到上述课程目标,为后续专业课程学习和实际工程应用打下坚实基础。
二、教学内容1. 单片机系统概述:介绍单片机的基本概念、发展历程、应用领域及未来发展趋势。
- 教材章节:第一章 单片机概述2. 单片机硬件结构:讲解单片机的内部结构、工作原理、主要性能指标及硬件连接方式。
- 教材章节:第二章 单片机硬件结构3. 单片机编程语言:学习单片机编程所需的基础知识,包括C语言和汇编语言。
- 教材章节:第三章 单片机编程语言4. 单片机I/O口编程:介绍I/O口的基本操作方法,包括输入、输出、中断等。
- 教材章节:第四章 单片机I/O口编程5. 单片机系统设计流程与方法:讲解单片机系统设计的步骤、方法及注意事项。
SOC单片机原理与应用课程设计报告

SOC单片机原理与应用课程设计报告学院名称:计算机科学与通信工程学院专业班级:计算机0802学生姓名:学生学号:指导教师姓名:一、设计题目:液晶点阵显示屏程序设计二、设计要求:1)从下到上滚动显示:“江苏大学计算机学院”然后交替显示:“单片机课程设计”“液晶点阵显示屏程序设计”“作者姓名、班级、学号”2)能进行正常的模拟量采样值显示(温度、压力、电位) 。
3) 改变字库的内容,显示其它汉字。
4) 改变页地址或列地址,使显示的内容改变位置。
5)其它功能不限,可自由发挥(左、右移,上下卷、显示图片等)。
三、液晶显示器指令描述1、显示开/关设置CODE : R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1DB0=H ,开显示;DB0=L ,关显示。
不影响显示RAM(DD RAM)中的内容。
2、设置显示起始行CODE : R/W D/I DB7 DB6DB5 DB4 DB3 DB2 DB1 功能:执行该命令后,所设置的行将显示在屏幕的第一行。
显示起始行是由Z 地址计数器控制的,该命令自动将A0-A5位地址送入Z 地址计数器,起始地址可以是0-63范围内任意一行。
Z 地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。
3、设置页地址CODE : R/W D/I DB7 DB6 DB5 DB4 DB3DB2 DB1功能:执行本指令后,下面的读写操作将在指定页内,直到重新设置。
页地址就是DD RAM 的行地址,页地址存储在X 地址计数器中,A2-A0可表示8页,读写数据对页地址没有影响,除本指令可改变页地址外,复位信号(RST)可把页地址计数器内容清零。
DD RAM 地址映像表Y 地址0 1 2 ……………………… 61 62 63X=0X=1X=7X=84、设置列地址CODE:R/W D/I DB7 DB6 DB5 DB4 DB3 DB2DB1功能: DD RAM 的列地址存储在Y地址计数器中,读写数据对列地址有影响,在对DD RAM 进行读写操作后,Y地址自动加一。
《单片机技术》整体课程设计

《单片机技术》整体教学设计(2020~ 2021学年第一学期)(第2学年第4学期)课程名称:单片机控制系统编程与实现所属系部:自动控制系制定人:合作人:制定时间: 2020年5月信息工程学院课程整体教学设计一、课程基本信息一、课程定位该课程是电类专业的必修课,是培养学生单片机基础应用能力和程序设计能力的核心课程,为专业培养适应于电子电气产品设计、检测维修、销售及技术服务第一线需要,具有较强电子技术应用能力,熟悉基于单片机电路的应用技术设计,又具有自动化设备安装、调试、维护能力和良好职业素质技能型专门人才的培养目标服务。
1. 岗位分析电气自动化技术应用岗位是指自动化设备的设计、制造、安装、调试、运行维护、设备管理及质量管理岗位。
表1 电气自动化技术应用岗位工作内容2.本课程面向的主要岗位本课程主要面向电子产品装接工,电气设备检测员,自动生产线操作员,仪器仪表的安装调试工等。
其典型工作流程图如图1所示。
图1 本课程面向典型工作流程图3.岗位需求分析岗位需求分析如表2所列。
表2 岗位需求分析电气自动化技术应用岗位职责如表3所示。
表3 电气自动化技术应用岗位职责分析2. 课程分析:本课程前导课程为模拟电路分析与应用、数字电路分析与应用、继电控制系统运行与维护;后续课程为自动化生产线安装与调试;与培训机构、中职、本科院校相比,区别如下:二、课程目标设计三、课程内容设计:四、能力训练项目设计五、项目情境设计六、课程进程表六、第一次课设计1、提出思考问题:单片机在哪里?鼓励学生思考并主动回答,可做适当提示和引导,从家具、民用、汽车、工业、机器人、航空、导弹等多领域引导学生举出单片机使用的例子;(15min ) 2、以电冰箱为例,引导学生思考其温控系统的工作原理,进而引出单片机在其中所起的作用,为讲解单片机原理做好铺垫和感性认识;(10min )3、以汽车为例,讲解单片机技术在汽车中的应用,进一步加深对单片机的理解;(10min ) 4、以机器人为例,讲解单片机技术在机器人控制中的应用,进一步加深对单片机的理解;(10min )5、课程介绍:为什么要学习这门课,这门课能带来的技能,所增加的职业竞争力,以及在自动化人才能力培养中的作用等;(10min )6、简要介绍本门课主要内容,让学生知道这门课的知识脉络,并向学生说明本课程的考核方式;(10min )7、参观单片机实训室的教学设备,并向学生展示往届学生课程设计作品,提高学习兴趣;(20min )8、最后介绍学习单片机的相关网址,分组阅读相关单片机知识介绍。
单片机课程设计毕业设计

单片机课程设计毕业设计一、课程目标知识目标:1. 理解单片机的基本原理和内部结构,掌握其工作原理;2. 学会使用单片机编程语言进行程序设计,掌握相关指令和语法;3. 掌握单片机与其他外围设备的接口技术,实现数据交互和功能扩展;4. 了解单片机在工程实践中的应用,培养解决实际问题的能力。
技能目标:1. 能够运用所学知识设计简单的单片机控制系统,具备实际操作能力;2. 熟练使用编程软件和开发工具,进行程序编写、调试和优化;3. 学会查阅技术文档和参考资料,提高自主学习能力;4. 培养团队协作能力,提高沟通表达和项目管理水平。
情感态度价值观目标:1. 培养学生对单片机技术及其应用的兴趣,激发创新精神;2. 增强学生实践操作的信心,形成积极的学习态度;3. 使学生认识到单片机技术在国家经济发展和科技创新中的重要性,增强社会责任感;4. 培养学生严谨细致的工作作风,提高职业素养。
本课程针对高年级学生,结合单片机课程特点,以实用性为导向,注重培养学生的实践能力和创新能力。
通过本课程的学习,使学生能够掌握单片机的基本知识和技能,为后续专业课程学习和未来从事相关工作打下坚实基础。
同时,课程目标分解为具体的学习成果,以便教师进行教学设计和评估。
二、教学内容1. 单片机原理与结构:介绍单片机的基本概念、发展历程、内部结构和工作原理,以教材第一章内容为基础,让学生了解单片机的基本组成和功能。
2. 单片机编程语言:讲解单片机编程基础,包括指令系统、语法规则和编程技巧。
以教材第二章内容为参考,使学生掌握单片机程序设计的基本方法。
3. 单片机接口技术:介绍单片机与其他外围设备的接口原理和设计方法,涵盖教材第三章内容,如I/O接口、定时器/计数器、中断系统等。
4. 单片机应用实例:分析单片机在实际工程项目中的应用,结合教材第四章内容,如温度控制、智能家居、机器人控制等,提高学生解决实际问题的能力。
5. 单片机系统设计与实现:指导学生进行课程设计,从需求分析、方案设计、硬件选型、编程调试到系统优化,参照教材第五章内容,培养学生的实际操作能力和团队协作精神。
单片机课程设计

单片机课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理和结构,理解其工作流程。
2. 使学生了解并熟练运用单片机的编程语言,如C语言或汇编语言。
3. 帮助学生掌握单片机外围电路的设计与搭建,使其能独立完成简单的电路系统。
技能目标:1. 培养学生运用单片机解决实际问题的能力,提高创新思维和动手实践能力。
2. 培养学生具备查阅资料、分析问题、设计方案、调试程序等综合技能。
情感态度价值观目标:1. 培养学生对单片机课程的兴趣,激发学习热情,形成自主学习、合作学习的良好习惯。
2. 培养学生具备团队协作精神,学会与他人分享、交流、合作,提高沟通能力。
3. 培养学生关注科技发展,了解单片机在现实生活中的应用,增强社会责任感和创新意识。
课程性质分析:本课程为单片机课程设计,旨在让学生在掌握理论知识的基础上,通过实际操作,提高解决实际问题的能力。
学生特点分析:学生已具备一定的电子技术基础和编程能力,对单片机有一定了解,但实践经验不足,需要通过本课程加强实践操作和综合运用。
教学要求:1. 理论与实践相结合,注重培养学生的动手能力。
2. 引导学生主动思考,发现问题,解决问题。
3. 创设实际情境,提高学生的学习兴趣和参与度。
4. 注重培养学生的团队协作能力和沟通能力。
二、教学内容1. 单片机原理及结构:介绍单片机的组成、工作原理,重点讲解CPU、存储器、输入输出接口等部分。
参考教材章节:第一章 单片机概述2. 单片机编程语言:学习C语言和汇编语言的基础知识,掌握编程技巧,能独立编写简单的单片机程序。
参考教材章节:第二章 单片机编程语言3. 单片机外围电路设计:讲解并实践常用外围电路的设计与搭建,如LED 灯、蜂鸣器、数码管等。
参考教材章节:第三章 单片机外围电路设计4. 单片机程序下载与调试:学习使用编程器、仿真器等工具,掌握程序下载、调试方法。
参考教材章节:第四章 单片机程序下载与调试5. 实践项目:设计并实现几个实际项目,如温度控制器、智能小车、智能家居系统等,锻炼学生解决实际问题的能力。
单片机综合实验课程设计

单片机综合实验课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握其内部结构及相关功能模块的使用方法。
2. 学生能掌握单片机编程的基本语法和技巧,能独立完成简单的程序设计。
3. 学生能了解单片机在现实生活中的应用,并学会分析实际案例。
技能目标:1. 学生能运用所学知识,完成单片机的基本操作和程序编写。
2. 学生能通过实验,学会使用相关开发工具和调试技巧,具备一定的故障排查能力。
3. 学生能运用单片机技术解决实际问题,提高创新实践能力。
情感态度价值观目标:1. 学生通过单片机综合实验课程,培养对电子信息科学的兴趣和热情。
2. 学生在团队协作中,学会沟通、分享和合作,提高解决问题的能力。
3. 学生能认识到单片机技术对社会发展的作用,树立正确的价值观和责任感。
课程性质:本课程为实践性课程,侧重于培养学生的动手能力和创新能力。
学生特点:学生已具备一定的单片机基础知识,对实际操作感兴趣,但编程能力和问题解决能力有待提高。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践和团队协作,提高学生的综合能力。
通过课程目标分解,使学生在知识、技能和情感态度价值观方面取得具体的学习成果,为后续教学设计和评估提供依据。
二、教学内容本课程教学内容主要包括以下几部分:1. 单片机基础理论:回顾单片机的基本原理、内部结构、工作原理等,重点讲解中断系统、定时器/计数器、串行通信等模块的功能和应用。
2. 单片机编程语言:以C语言为基础,介绍单片机编程的基本语法、数据类型、运算符、控制语句等,并通过实例进行讲解。
3. 单片机实验操作:结合教材章节,进行以下实验:- 基本输入输出实验:学习单片机I/O口控制,实现LED灯、蜂鸣器等设备的控制。
- 中断控制实验:掌握中断系统的使用,实现外部中断控制。
- 定时器/计数器实验:学习定时器/计数器的配置,完成定时控制等功能。
- 串行通信实验:了解串行通信原理,实现单片机之间的数据传输。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程实验报告班级J计算机1302 学号********** 姓名杨岚指导老师余景华2016.07.09一、多功能数字钟的设计要求:1.能在LED显示器上实现正常的时分秒计时2.能通过键盘输入当前时间,并从该时间开始计时3.有校时、校分功能4.有报时功能,通过指示灯表示5.有闹时功能,闹时时间可以设定,通过指示灯表示二、课程设计电路图:图1 设计电路图•HD7279A的片选引脚CS连在P5.7;·通过C8051F020的P1.6、P1.7连接7279A的CLK和DATA实现串行数据编程;•KEY连在比较器1的同相输入端CP1P三、设计思路:根据课程设计要求,我们要设计一个多功能数字电子时钟,随着人类科技文明的发展,高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。
在这种趋势下,时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向。
本实验正是基于这种设计方向,以单片机(C8051F020)为控制核心,设计制作一个多功能的数字时钟。
在这些当中,必须要求要有时钟功能、校时校分功能、整点报时和闹钟功能等。
1.1首先要实现数码管的正常时分秒计时必须初始化系统时钟,初始化I/O端口以及定时器和使能比较器等,为系统的运行做必要的准备。
1.2其次通过键盘输入当前时间并从当前时间开始计时,这个过程中搞清楚,通过键盘输入的数据送到了哪里,是通过什么样的方式送进去的,同时对时间的计时有一个严密的算法来控制。
1.3在时间通过键盘输入并正常显示后,可以通过按键来进行校时、校分的功能。
并显示出校正后的时间1.4通过按键实现闹钟功能,在设置闹钟的同时,原时间能确保正确行走。
7279指令说明:88H,闪烁控制指令,d1-d8对应8个数码管,0表示闪烁,1表示不闪烁。
开始输入按键(ABCD) 输入按键(F) 当达到整点时,A (校时的高位) F(输入闹钟)数码管闪烁3秒B(校时的低位)当当前时间与闹钟时间相等时,C(校分的高位)数码管闪烁2秒。
D(校分的低位)图2 功能模块图•输入按键A使得时钟的时高位加1,若时高位值超过2则返回0值。
•输入按键B使得时钟的时低位加1,若时低位值超过9则返回0值同时时高位加1,最后判断时高位>1且时低位>3则时高位=0,时低位0。
•输入按键C使得时钟的分高位加1,若分高位值超过5,则时低位加1,分高位至0。
•输入按键D使得时钟的分低位加1,若分低位值超过9,则分高位加1,分低位至0。
•输入按键E使得时钟的秒高位加1,若秒高位值超过5,则分低位加1,秒高位至0。
•按键F进入闹钟模块。
四、程序的结构图图3 主程序流程图五、具体功能模块的设计及实现:1、端口初始化:将允许SMBus、SPI0和UART0,使能交叉开关和弱上拉。
实现代码:void PORT_Init (void){XBR0 = 0x07; //允许SMBus、SPI0和UART0XBR1 = 0x00;XBR2 = 0x44; //使能交叉开关和弱上拉}2、定时器初始化将T0以方式一,系统时钟频率计数,1000个脉冲为一秒。
实现代码:void Timer0_Init (void){CKCON|=0x8; //T0按系统时钟频率计数TMOD|=0x1; //T0方式1Count1ms=10;TR0 = 0; //停止T0TH0 = (-SYSCLK/1000) >> 8; //定时1ms的时间常数TL0 = -SYSCLK/1000;TR0 = 1; //启动T0IE|= 0x2; //开T0中断}3、读取按键值首先需要判断是否按键,若未按键则返回-1,若按键则记录保存按键的值,将其放在keyvalue中保存。
实现代码:unsigned char GetKeyValue(void){unsigned char KeyValue;if(CPT1CN&0x40) return -1;//if (P17==1) return -1; //无键按下Send7279Byte(0x15); //发读键盘命令KeyValue=Receive7279Byte();NOSELECT7279;return KeyValue;}图4 读取按键值流程图4、首次启动程序时输入初始时间首先在显示器上显示-,提示程序开始运行,其后将按键进来的六个数字依次保存在num 中(若按键不是0-9则无效),然后再显示器上显示。
实现代码:unsigned long InputNum(void){unsigned long Num=0;unsigned char i=0, KeyValue;DispLED(" -",0);//输入提示FlashLED(0); //第一位闪烁Delay1s(1);while(1){KeyValue=GetKeyValue();if (i==6) //6位数据输入完,返回{FlashLED(8); //关闪烁return Num;}if((KeyValue>=0) && (KeyValue<=9)) //只接收十进制的0到9 {i++;Send7279Byte(0xC8); //发送键码值,按方式1译码下载显示 Send7279Byte(KeyValue);MoveLeft(); //显示并左移一位,仍使低位显示并闪烁。
Send7279Byte(0x90);Send7279Byte(0x01);NOSELECT7279;WaitKeyOff();Num*=10; //转换成十进制Num+=KeyValue;Delay1ms(200);}}}5、显示功能依次将小时的十位、个位,分钟的十位、个位,秒钟的十位、个位显示在显示器的相应LED上。
实现代码:void DispTime(void){Send7279Byte(0x85); //在最高位(第5位)LED显示小时的高位Send7279Byte(HourH);Send7279Byte(0x84); //在第4位LED显示小时的低位Send7279Byte(HourL);Send7279Byte(0x83); //在第3位LED显示分钟的高位Send7279Byte(MinuteH);Send7279Byte(0x82); //在第2位LED显示分钟的低位Send7279Byte(MinuteL);Send7279Byte(0x81); //在第1位LED显示秒钟的高位Send7279Byte(SecondH);Send7279Byte(0x80); //在第0位LED显示秒钟的低位Send7279Byte(SecondL);}图5 显示功能流程图6、时钟计时功能每接受1000次脉冲,保存秒钟个位值的SecondL加一,判断如果SecondL>9,则SecondL=0,SecondH加一。
再判断SecondH是否大于5,若SecondH>5,则SecondH=0,MinuteL 加一。
再判断MinuteL是否大于9,若MinuteL>9,则MinuteL=0,MinuteH加一。
再判断MinuteH是否大于5,若MinuteH>5,则MinuteH=0,HourL加一。
再判断HourL是否大于9,若HourL>9,则HourL=0,HourH加一。
再判断HourH是否大于2,若HourH>2,则HourH=0。
最后判断HourH>1且HourL>3则HourH=0,HourL=0。
实现代码:SecondL++;if (SecondL>9) {SecondH++,SecondL=0;}if(SecondH>5){SecondH=0,MinuteL++; }if (MinuteL>9) {MinuteH++,MinuteL=0;}if(MinuteH>5){MinuteH=0,HourL++; }if(HourL>9) {HourH++;HourL=0;}if(HourH>2) HourH=0;if(HourH>1&HourL>3){HourH=0,HourL=0;}从键盘输入时间并显示时钟计时秒低位大于9秒低位为0 秒高位加1秒高位大于5分低位加1 秒高位为0分低位大于9分低位为0 分高位加1开始分高位大于5时低位加1 分高位为0时低位大于9时低位为0 时高位加1 时高位大于时高位为0YNNYNYNYNYNY时高位大于1且时低位大于3时高位为0 时低位为0结束7、校时校分功能根据按键来判断运行,若按键是A,则执行HourH+1的操作。
若按键是B,则执行HourL+1的操作。
若按键是C,则执行MinuteH+1操作。
若按键是D,则执行MinuteL+1操作。
若按键是E,则执行SecondH+1操作。
实现代码:if(KeyValue==10){HourH++;}if(KeyValue==11){HourL++;}if(KeyValue==12){MinuteH++;}if(KeyValue==13){MinuteL++;}图7 校时校分功能流程图8、整点报时功能在SecondL在0到3之间时并且SecondH=、MinuteL=0、MinuteH=0时显示器内容闪烁表示报时。
SecondL超过3后取消闪烁,回复正常。
实现代码if((SecondL>=0&&SecondL<=3)&SecondH==0&MinuteL==0&MinuteH==0){Send7279Byte(0x88);Send7279Byte(0x00);}if((SecondL>3)&SecondH==0&MinuteL==0&MinuteH==0){FlashLED(8);}图8 整理报时功能流程图9、闹钟功能在按键为F的时候进入闹钟模式。
输入设定时间,系统保存设定的时间,并在计时的每秒上面与保存的时间进行比较,若一致,则显示器闪烁,时间暂停计时,表示闹钟。
实现代码:KeyValue=GetKeyValue();if(KeyValue==15){SetTime=InputNum();NowTime[0]=(unsigned char)((SetTime/100000)<<4);//时SetTime=SetTime%100000;NowTime[0]=NowTime[0]|(SetTime/10000);SetTime=SetTime%10000;NowTime[1]=(unsigned char)((SetTime/1000)<<4);//分SetTime=SetTime%1000;NowTime[1]=NowTime[1]|(SetTime/100);SetTime=SetTime%100;NowTime[2]=(unsigned char)((SetTime/10)<<4);//秒SetTime=SetTime%10;NowTime[2]=NowTime[2]|SetTime;S[0]=NowTime[0]/16;//转换成10进制S[1]=NowTime[0]%16;S[2]=NowTime[1]/16;S[3]=NowTime[1]%16;S[4]=NowTime[2]/16;S[5]=NowTime[2]%16;}if(SecondL==S[5]&&SecondH==S[4]&&MinuteL==S[3]&&MinuteH==S[2]&&HourL==S [1]&&HourH==S[0]){Send7279Byte(0x88);Send7279Byte(0x00);a=SecondL;a=a+2;}if (a==SecondL)FlashLED(8);图9 闹钟功能流程图显示指针DisplLED所指6个单元数据流程图:图10 显示指针DisplLED所指6个单元数据流程图六、实验小结:本次课程设计的基本要求是实现多功能时钟具备整点报时,校时校分的功能以及闹钟功能。