面向对象程序设计课程设计报告《电子时钟》(C )
电子时钟c语言课程设计
![电子时钟c语言课程设计](https://img.taocdn.com/s3/m/f0d858c250e79b89680203d8ce2f0066f433645b.png)
电子时钟c语言课程设计一、课程目标知识目标:1. 学生能理解并掌握C语言中结构体、指针、函数等基本概念;2. 学生能运用C语言编程实现电子时钟的功能,包括时、分、秒的显示与更新;3. 学生了解电子时钟的原理,明确时间与计算机系统时间的关系。
技能目标:1. 学生能运用所学知识,设计并编写出具有实际功能的电子时钟程序;2. 学生通过课程学习,掌握编程调试技巧,提高解决问题的能力;3. 学生能够进行团队协作,共同分析问题、设计解决方案并完成项目。
情感态度价值观目标:1. 学生培养对编程的兴趣,激发探索精神,增强学习动力;2. 学生通过课程学习,认识到编程在实际生活中的应用,提高学习的实用性;3. 学生在团队协作中,学会沟通与交流,培养合作精神和团队意识。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握C语言编程的基本技能,培养实际编程能力。
学生特点:学生已经掌握了C语言的基本语法,具有一定的编程基础,但对实际项目的开发流程和团队协作经验不足。
教学要求:教师需引导学生将所学理论知识应用于实际项目,注重培养学生的动手能力、解决问题的能力和团队协作能力。
在教学过程中,将目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. C语言基础回顾:结构体、指针、函数的定义与使用;2. 电子时钟原理介绍:时间概念、计算机系统时间处理;3. 编程环境准备:配置开发环境、编译与调试;4. 项目需求分析:明确电子时钟的功能需求、界面设计;5. 编程实现:- 设计结构体存储时间数据;- 编写函数实现时、分、秒的更新;- 实现界面显示与交互;- 处理异常情况与边界条件;6. 项目测试与优化:测试电子时钟程序、优化代码性能;7. 团队协作与交流:分组进行项目开发、组内讨论与分享;8. 课堂总结与反馈:总结项目开发过程、收集学生反馈。
教材关联章节:C语言基础、结构体与指针、函数、项目实践。
教学内容安排与进度:1. 基础知识回顾(1课时);2. 电子时钟原理介绍(1课时);3. 编程环境准备与项目需求分析(1课时);4. 编程实现(4课时);5. 项目测试与优化(2课时);6. 团队协作与交流(2课时);7. 课堂总结与反馈(1课时)。
课程设计电子时钟
![课程设计电子时钟](https://img.taocdn.com/s3/m/1d0dd370905f804d2b160b4e767f5acfa0c78379.png)
课程设计电子时钟一、课程目标知识目标:1. 学生能够理解电子时钟的基本原理,掌握电子时钟的构成及各部分功能。
2. 学生能够运用所学知识,设计并制作一个简易的电子时钟。
3. 学生了解电子时钟在日常生活和科技领域中的应用。
技能目标:1. 学生能够运用所学知识,分析并解决电子时钟制作过程中遇到的问题。
2. 学生掌握基本的电路连接和调试方法,具备一定的动手操作能力。
3. 学生能够运用电子时钟的设计理念,进行创新设计和改进。
情感态度价值观目标:1. 培养学生对电子技术的兴趣和好奇心,激发学生的学习积极性。
2. 培养学生合作、探究、创新的精神,提高学生解决问题的能力。
3. 增强学生的环保意识,引导学生关注电子产品的节能和环保问题。
课程性质分析:本课程为电子技术学科的教学内容,旨在让学生了解电子时钟的基本原理和制作过程,提高学生的动手实践能力和创新能力。
学生特点分析:六年级学生具备一定的逻辑思维和动手能力,对新鲜事物充满好奇心,但需注意引导学生将理论知识与实际操作相结合。
教学要求:1. 注重理论与实践相结合,让学生在实际操作中掌握电子时钟的制作方法。
2. 创设有趣的学习情境,激发学生的学习兴趣和探究欲望。
3. 关注学生的个体差异,提供有针对性的指导,确保每个学生都能达到课程目标。
二、教学内容1. 电子时钟的基本原理与构成- 时钟芯片的工作原理- 电子时钟的电路构成及各部分功能2. 电子时钟的制作与调试- 元器件的识别与选用- 电路连接与焊接技巧- 电子时钟的调试与优化3. 电子时钟的应用与拓展- 电子时钟在日常生活和科技领域中的应用案例- 电子时钟的创新设计与改进方向教学大纲安排:第一课时:电子时钟的基本原理与构成- 介绍时钟芯片的工作原理- 分析电子时钟的电路构成及各部分功能第二课时:电子时钟的制作与调试- 讲解元器件的识别与选用方法- 演示电路连接与焊接技巧- 指导学生进行电子时钟的调试与优化第三课时:电子时钟的应用与拓展- 分享电子时钟在日常生活和科技领域中的应用案例- 引导学生进行电子时钟的创新设计与改进思考教材章节及内容:- 教材第十一章《数字电路及其应用》- 第三节:电子时钟的制作- 第四节:数字电路的应用与拓展教学内容进度安排:- 第一课时:完成电子时钟基本原理与构成的学习- 第二课时:完成电子时钟制作与调试的学习- 第三课时:进行电子时钟应用与拓展的讨论与分享三、教学方法1. 讲授法:- 通过生动的语言和形象比喻,讲解电子时钟的基本原理与构成,使学生易于理解。
vc钟表课课程设计
![vc钟表课课程设计](https://img.taocdn.com/s3/m/b0be137e182e453610661ed9ad51f01dc28157a4.png)
vc 钟表课课程设计一、教学目标本课程旨在通过学习vc钟表的相关知识,让学生掌握钟表的基本结构、功能和工作原理,能够运用所学的知识进行简单的钟表设计和制作。
具体的学习目标如下:1.了解钟表的基本结构,包括时针、分针、秒针等。
2.掌握钟表的工作原理,包括时间的计算、指针的移动等。
3.了解不同类型的钟表,如机械钟表、电子钟表等。
4.能够使用工具进行钟表的拆卸和组装。
5.能够根据需求设计简单的钟表。
6.能够进行钟表的故障排除和维修。
情感态度价值观目标:1.培养学生的动手能力和实践能力,提高学生对钟表制作和维修的兴趣。
2.培养学生的团队合作意识,学会与他人合作完成任务。
3.培养学生的创新思维,鼓励学生进行钟表设计的创新。
二、教学内容本课程的教学内容主要包括钟表的基本结构、工作原理和设计制作方法。
具体的教学大纲如下:1.钟表的基本结构:介绍时针、分针、秒针等的基本概念和作用。
2.钟表的工作原理:讲解时间的计算方法、指针的移动原理等。
3.不同类型的钟表:介绍机械钟表、电子钟表等的特点和区别。
4.钟表的设计制作:学习钟表的设计方法,进行钟表的拆卸和组装实践。
5.钟表的故障排除和维修:学习钟表的常见故障和解决方法。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。
包括:1.讲授法:教师讲解钟表的基本结构、工作原理和设计制作方法。
2.讨论法:学生分组讨论钟表的特点和区别,分享自己的设计和制作经验。
3.案例分析法:分析具体的钟表设计案例,引导学生进行创新设计。
4.实验法:学生动手进行钟表的拆卸和组装实践,提高学生的动手能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选择一本与vc钟表相关的教材,作为学生学习的主要参考资料。
2.参考书:提供一些相关的参考书籍,供学生进一步深入学习和研究。
3.多媒体资料:制作多媒体课件,通过图片、视频等形式展示钟表的设计和制作过程。
计算机程序设计(C语言)课程设计报告
![计算机程序设计(C语言)课程设计报告](https://img.taocdn.com/s3/m/6df2a3abf90f76c661371a7a.png)
计算机程序设计(C 语言)课程设计报告题目:电子动画时钟学院:机电工程学院专业:班级:090109 班学号:姓名:指导教师:设计日期:一、概述选题背景:随着社会的进步和科技的发展,电子钟表逐渐成为了人们生活中不可缺少的一部分。
设计思路: (一)功能模块设计, 1. 电子时钟执行主流程2. 电子时钟界面显示3. 电子时钟按键控制模块4. 时钟动画处理模块(二)数据结构设计 1.time 结构体 2. 全局变量 ( 三 ) 函数功能描述1. keyhandle()2.timeupchange()3.timedownchange()4.digitclock()5.drawcursor()6.clearcursor()7.void clockhandle()8.main() (四)程序实现(五) 运行结果。
、概要设计2.1 、数据结构此程序中,使用了C语言的time结构体和几个全局变量,l.time结构体struct time{unsigned char ti_min; /* 分钟*/unsigned char ti_hour; /* 小时*/unsigned char ti_hund; /* 百分之一秒*/unsigned char ti_sec; /* 秒*/};time 结构体定义在dos.h 文件中,可用来保存系统的当前时间,其中各字段的值的含义如下。
1. unsigned char ti_min: 保存分钟值。
2. unsigned char ti_hour: 保存小时。
3. unsigned char ti_hund: 保存百分之一秒,例如,ti_hund=500 ,表示1/500 秒。
4. unsigned char ti_sec: 保存秒数。
2.2 、全局变量下面对程序用到的全局变量及数组进行说明.1. double h,m,s: 此3 个全局变量分别用来保存小时,分钟,秒数。
2. double x,x1,x2,y,y1,y2: 保存数字时钟中小时,分,秒在屏幕中显示的坐标值。
电子时钟设计及程序
![电子时钟设计及程序](https://img.taocdn.com/s3/m/1398d43b49d7c1c708a1284ac850ad02df800708.png)
电子时钟设计及程序在现代生活中,电子时钟已经成为了我们不可或缺的一部分,无论是在家庭、办公室还是公共场所,都能看到它们的身影。
电子时钟不仅能够准确地显示时间,还具有多种功能,如闹钟、定时器等。
那么,电子时钟是如何设计和实现的呢?接下来,让我们一起深入了解一下。
一、电子时钟的硬件设计电子时钟的硬件设计主要包括以下几个部分:1、微控制器(MCU)微控制器是电子时钟的核心,负责控制整个系统的运行。
常见的微控制器有 51 单片机、STM32 等。
它们具有低功耗、高性能、易于编程等优点。
2、时钟芯片时钟芯片用于提供准确的时间基准。
常见的时钟芯片有 DS1302、DS3231 等。
这些芯片能够自动进行闰年补偿,并且在断电情况下仍然能够保持时间的准确性。
3、显示模块显示模块用于显示时间和其他信息。
常见的显示模块有液晶显示屏(LCD)和数码管。
液晶显示屏具有显示内容丰富、功耗低等优点;数码管则具有显示清晰、亮度高等优点。
4、按键模块按键模块用于设置时间、闹钟等功能。
通常使用独立按键或者矩阵按键。
5、电源模块电源模块为整个系统提供稳定的电源。
可以使用电池供电或者外部电源适配器供电。
二、电子时钟的软件设计电子时钟的软件设计主要包括以下几个方面:1、系统初始化在系统启动时,需要对微控制器、时钟芯片、显示模块、按键模块等进行初始化设置,确保系统能够正常工作。
2、读取时间通过与时钟芯片进行通信,读取当前的时间信息,并将其存储在变量中。
3、显示时间将读取到的时间信息在显示模块上进行显示。
可以采用动态扫描或者静态显示的方式。
4、按键处理当用户按下按键时,根据按键的功能进行相应的处理,如设置时间、设置闹钟等。
5、闹钟功能当到达设定的闹钟时间时,通过蜂鸣器或者其他方式进行提醒。
三、程序代码示例以下是一个使用 51 单片机和 DS1302 时钟芯片实现电子时钟的简单示例代码(C 语言):```cinclude <reg52h>include <intrinsh>// DS1302 引脚定义sbit DS1302_CLK = P1^0;sbit DS1302_IO = P1^1;sbit DS1302_RST = P1^2;//共阴极数码管段码unsigned char code SEGMENT_TABLE ={0x3F, 0x06, 0x5B, 0x4F,0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};//数码管位选sbit DIGIT1 = P2^0;sbit DIGIT2 = P2^1;sbit DIGIT3 = P2^2;sbit DIGIT4 = P2^3;//全局变量unsigned char hour = 0, minute = 0, second = 0;//延时函数void Delay(unsigned int t){while(t);}//向 DS1302 写入一个字节void DS1302_WriteByte(unsigned char dat){unsigned char i;for(i = 0; i < 8; i++){DS1302_IO = dat & 0x01;DS1302_CLK = 1;DS1302_CLK = 0;dat >>= 1;}}//从 DS1302 读取一个字节unsigned char DS1302_ReadByte(){unsigned char i, dat = 0;for(i = 0; i < 8; i++){dat >>= 1;if(DS1302_IO)dat |= 0x80;DS1302_CLK = 1;DS1302_CLK = 0;}return dat;//向 DS1302 写入命令void DS1302_WriteCmd(unsigned char cmd){DS1302_RST = 0;DS1302_CLK = 0;DS1302_RST = 1;DS1302_WriteByte(cmd);}//向 DS1302 写入数据void DS1302_WriteData(unsigned char addr, unsigned char dat){DS1302_WriteCmd(0x8E);DS1302_WriteByte(0x00);DS1302_WriteCmd(addr);DS1302_WriteByte(dat);DS1302_WriteCmd(0x8E);DS1302_WriteByte(0x80);//从 DS1302 读取数据unsigned char DS1302_ReadData(unsigned char addr){unsigned char dat;DS1302_WriteCmd(addr);dat = DS1302_ReadByte();return dat;}//初始化 DS1302void DS1302_Init(){DS1302_WriteCmd(0x8E);DS1302_WriteByte(0x00);DS1302_WriteData(0x80, 0x00);DS1302_WriteData(0x82, 0x00);DS1302_WriteData(0x84, 0x00);DS1302_WriteData(0x86, 0x00);DS1302_WriteData(0x88, 0x00);DS1302_WriteData(0x8A, 0x00);DS1302_WriteData(0x8C, 0x00);DS1302_WriteCmd(0x8E);DS1302_WriteByte(0x80);}//读取当前时间void ReadTime(){unsigned char buf7;buf0 = DS1302_ReadData(0x81);buf1 = DS1302_ReadData(0x83);buf2 = DS1302_ReadData(0x85);buf3 = DS1302_ReadData(0x87);buf4 = DS1302_ReadData(0x89);buf5 = DS1302_ReadData(0x8B);buf6 = DS1302_ReadData(0x8D);second =((buf0 & 0x70) >> 4) 10 +(buf0 & 0x0F);minute =((buf1 & 0x70) >> 4) 10 +(buf1 & 0x0F);hour =((buf2 & 0x70) >> 4) 10 +(buf2 & 0x0F);}//显示函数void Display(){unsigned char i;for(i = 0; i < 4; i++){switch(i){case 0:DIGIT1 = 0;DIGIT2 = 1;DIGIT3 = 1;DIGIT4 = 1;P0 = SEGMENT_TABLEhour / 10;break;case 1:DIGIT1 = 1;DIGIT2 = 0;DIGIT3 = 1;DIGIT4 = 1;P0 = SEGMENT_TABLEhour % 10; break;case 2:DIGIT1 = 1;DIGIT2 = 1;DIGIT3 = 0;DIGIT4 = 1;P0 = SEGMENT_TABLEminute / 10; break;case 3:DIGIT1 = 1;DIGIT2 = 1;DIGIT3 = 1;DIGIT4 = 0;P0 = SEGMENT_TABLEminute % 10; break;}Delay(500);}}void main(){DS1302_Init();while(1){ReadTime();Display();}}```上述代码只是一个简单的示例,实际的电子时钟程序可能会更加复杂,需要考虑更多的功能和异常情况。
电子钟设计c语言设计
![电子钟设计c语言设计](https://img.taocdn.com/s3/m/20d5772ba31614791711cc7931b765ce04087a75.png)
电子钟设计c语言设计电子钟是一种使用数字或者模拟显示时间的时钟。
它通常使用数字显示屏或者液晶屏来显示时间。
电子钟的优势在于与传统机械钟相比,它更加准确、可靠、精准和方便。
通过使用c语言来设计电子钟可以使它更加智能化和强大。
我们知道,c语言是一种通用的高级编程语言,它非常适合用于系统编程和应用程序开发。
电子钟的设计需要运用c语言的数据结构、算法、指针和其他通用编程技术。
设计一个可靠的电子钟需要考虑到准确显示时间、时区调整、闹钟功能、定时器和更多的功能。
在设计电子钟时,我们首先需要考虑到选择合适的开发平台和硬件选型。
例如,我们可以使用Arduino或者Raspberry Pi 等开发板来设计电子钟。
这些开发板既能提供强大的计算能力,又可以提供足够的GPIO引脚和通信接口。
同时,我们还需要选择合适的时钟模块,例如DS1307、DS3231和DS1302等。
接下来,我们可以考虑设计程序框架。
设计程序框架需要考虑到用户需求,从而使程序有条不紊地进行。
我们可以设计菜单选项来满足用户需求,例如时钟显示、日期显示、温度显示等等。
此外,还可以考虑添加一些有趣的功能,例如给予经度和纬度计算日出日落时间以及天气预报等。
电子钟的时间显示通常使用RTC模块与单片机进行通信。
RTC模块可以提供秒、分、时、日、月、年等时间数据。
我们需要从RTC模块读取这些数据,并将它们转换成格式化的字符串进行显示。
我们还需要考虑到时区的调整,以便在不同时区下准确显示时间。
闹钟功能是电子钟的一个重要特性。
我们可以设计界面来设置闹钟时间和日期。
当闹钟响起时,电子钟可以触发警报并发出声音或声音和振动提醒。
我们还可以增加关闭闹钟的选项,以便用户可以在闹钟响起时快速关闭它。
另一个特色功能是定时器,它可以用来进行倒计时或计时操作。
我们可以使用按钮或者旋转编码器来设置定时器时间。
定时器可以在倒计时或计时完成时发出警报来通知用户,以便执行相应的操作。
最后,我们需要考虑到电子钟的可扩展性和灵活性。
c电子时钟课程设计
![c电子时钟课程设计](https://img.taocdn.com/s3/m/5dcc2be21b37f111f18583d049649b6648d709aa.png)
c 电子时钟课程设计一、课程目标知识目标:1. 学生能够理解电子时钟的基本原理,掌握电子时钟的主要部件及其功能。
2. 学生能够掌握时、分、秒的概念,学会电子时钟的时间设置与调整。
3. 学生能够了解电子时钟的设计与制作过程,掌握基本的电路连接方法。
技能目标:1. 学生能够运用所学知识,独立完成电子时钟的组装与调试。
2. 学生能够运用电子时钟的设计原理,进行简单的时钟程序编写与优化。
3. 学生能够通过实际操作,培养动手能力、逻辑思维能力和问题解决能力。
情感态度价值观目标:1. 学生通过学习电子时钟的制作,培养对科学技术的热爱和兴趣,增强创新意识。
2. 学生在团队协作中,学会互相帮助、沟通与交流,培养合作精神。
3. 学生能够认识到时间的宝贵,养成珍惜时间、合理安排时间的好习惯。
课程性质:本课程为电子技术实践课程,旨在让学生通过动手实践,掌握电子时钟的基本原理与制作方法。
学生特点:五年级学生具有一定的认知能力、动手能力和逻辑思维能力,对新鲜事物充满好奇。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的主观能动性,引导学生在实践中探索、发现、解决问题。
将课程目标分解为具体的学习成果,以便在教学设计和评估中实现课程目标的有效落实。
二、教学内容1. 电子时钟基本原理:电子时钟的工作原理、主要部件(如晶体振荡器、分频器、计数器、显示器件等)及其功能。
教材章节:《电子技术》第五章第二节2. 时间概念与电子时钟设置:时、分、秒的概念,电子时钟的时间设置与调整方法。
教材章节:《电子技术》第五章第三节3. 电子时钟设计与制作:电子时钟的设计流程、电路连接方法,以及组装与调试技巧。
教材章节:《电子技术》第五章第四节、第五节4. 时钟程序编写与优化:基于电子时钟原理,进行简单的时钟程序编写与调试。
教材章节:《电子技术》第五章第六节5. 实践操作与作品展示:学生分组进行电子时钟的组装、调试,展示作品并进行评价。
教材章节:《电子技术》第五章实践环节教学进度安排:第一课时:电子时钟基本原理及主要部件介绍第二课时:时间概念与电子时钟设置方法第三课时:电子时钟设计与制作(一)第四课时:电子时钟设计与制作(二)第五课时:时钟程序编写与优化第六课时:实践操作与作品展示教学内容确保科学性和系统性,结合教材章节,以理论与实践相结合的方式进行教学,旨在帮助学生掌握电子时钟相关知识,培养动手能力与创新能力。
电子时钟设计实验报告
![电子时钟设计实验报告](https://img.taocdn.com/s3/m/eb369677f242336c1eb95e26.png)
编号符号引脚说明编号符号引脚说明1 VSS 电源地9 D2 Data I/O2 VDD 电源正极10 D3 Data I/O3 V L 液晶显示偏压信号11 D4 Data I/O4 R S 数据/命令选择端12 D5 Data I/O5 R/W 读/写选择端13 D6 Data I/O6 E 使能信号14 D7 Data I/O7 D0 Data I/O 15 BLA背光源正极8 D1 Data I/O 16 BLK 背光源负极单片机电子时钟设计报告一、设计任务本次课程设计的电子时钟电路,是基于单片机STC89C52、时钟芯片和液晶显示,运用C语言编程实现。
电子时钟可以显示日期的年、月、日和时间的时、分、秒,具有复位功能。
二、系统硬件设备及芯片简介数字电子钟系统设计已经成熟,但是目前系统设计时基本都是采用 LED 作为显示电路,造成硬件电路复杂、功耗高、产品体积庞大等特点;液晶显示模块由于具有低功耗、寿命长、体积小、显示内容丰富、价格低、接口控制方便等优点,因此在各类电子产品中被极广泛地推广和应用。
字符型液晶显示模块是一类专门用于显示字母、数字、符号等点阵式液晶显示模块。
本系统设计采用字符型液品显示模块 LCD1602 作为显示器件,这样不仅简化了系统的硬件设计,而且极大地提高了系统的可靠性。
1 LCD1602 简介字符型液晶显示模块 LCD1602 已经是单片机应用设计中最常用的信息显示器件。
LCD1602 可以显示两行,每行16 个字符,采用+5V 电源供电,外围电路配置简单,价格便宜,具有很高的性价比。
2 LCD1602 功能介绍2.1 引脚功能LCD1602 采用标准 14 脚(无背光)或 16 脚(带背光)接口,各引脚功能见表 1。
表1 引脚功能2.2 LCD1602 读写指令LCD1602 读写指令较多且较复杂,具体使用可以查相关资料,下面仅列出最常用的的一些命令:①写指令 38H:显示模式设置;②写指令 08H:显示关闭;③写指令 01H:显示清屏;④写指令 06H:显示光标移动设置;⑤写指令 0CH:显示开及光标设置。
面向对象程序设计课程设计报告《电子时钟》C
![面向对象程序设计课程设计报告《电子时钟》C](https://img.taocdn.com/s3/m/215e639a49649b6649d74723.png)
目录1 前言时钟在人们日常生活中必不可少,时钟的原理是怎么样的呢,本程序将模拟一个电子时钟。
为了使程序更加美观,本程序是使用Visual C++编写一个可视化的模拟电子时钟程序。
电子时钟的关键在于延时,为了达到延时的准确性,不受程序执行时间的影响,采用了系统两秒之间的间隔进行延时。
该程序还加入了显示星期功能,在知道1901年每月1号是星期几的情况下,再根据年、月、日即可算出星期几。
2需求分析要求设计类结构,模拟电子时钟的行走,在屏幕上显示一个活动时钟。
任务(1)显示日期的格式:XXXX年XX月XX日(2)显示时间的格式:XX:XX:XX。
(3)添加显示星期的格式:星期X运行环境(1)WINDOWS2000/XP系统(2)Visual C++ 编译环境或DEV C++ 编译环境开发工具C++语言3分析和设计+ 系统分析及设计思路为了使程序的显示更加美观,该程序使用了C++可视化程序设计方法进行设计。
在可视化程序设计中,建立了一个MFC单文档应用程序工程,该工程包括了视图类、文档类对话框类和主框架类。
在主框架类中修改窗口等属性,使整个时间的显示更加协调。
模拟电子时钟是一个显示和计时的小程序,因此只要在视图类和文档类添加相关的属性和方法即可完成模拟电子时钟的功能。
文档类定义时钟的相关属性,包括int类型的year、month、day、hour、minute、second,和包括CString类型的str_year、str_month、str_day、str_hour、str_minute、str_second等信息。
int类型的时间日期属性用以计算,CSrting类型的时间日期属性用以显示,通过CString类中的成员函数Formart可以把int型的数据转成CString型的。
视图类实现时钟的主要功能,在该类的OnDraw函数里面对时间日期进行显示输出。
向窗口输出信息时,为了保证高刷新率下绘图不闪烁,使用内存绘图的方法,在内存中创建一个与屏幕绘图区域一致的对象,使得重绘视图时可以大大提高运行速度。
单片机电子时钟课程设计报告
![单片机电子时钟课程设计报告](https://img.taocdn.com/s3/m/68393864dc36a32d7375a417866fb84ae45cc39d.png)
单片机电子时钟课程设计报告一、设计目的。
本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。
通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。
二、设计原理。
本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。
利用数码管来显示小时和分钟,通过按键来调整时间。
同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。
三、设计方案。
1. 硬件设计。
(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。
(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。
(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。
(4)按键输入,设计按键来调整时间,包括调整小时和分钟。
(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。
2. 软件设计。
(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。
(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。
(3)按键处理,设计按键扫描程序,实现对时间的调整。
(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。
四、设计实现。
1. 硬件实现。
根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。
2. 软件实现。
编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。
五、实验结果。
经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。
六、总结与展望。
通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。
在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。
同时,也为学生今后的科研和创新工作奠定了良好的基础。
单片机电子时钟课程设计报告
![单片机电子时钟课程设计报告](https://img.taocdn.com/s3/m/bf412bf8970590c69ec3d5bbfd0a79563c1ed4e3.png)
单片机电子时钟课程设计报告一、引言。
随着科技的不断发展,电子产品已经渗透到我们生活的方方面面。
其中,电子时钟作为一种常见的电子产品,被广泛应用于各个领域。
本课程设计旨在通过单片机技术,设计并实现一个功能强大、稳定可靠的电子时钟,以满足人们对精准时间的需求。
二、设计方案。
1. 硬件设计。
本课程设计选用了51单片机作为核心处理器,配合数码管显示模块、时钟芯片等外围器件,构成了电子时钟的硬件平台。
通过对硬件电路的设计和布线,实现了对时间的精准显示和控制。
2. 软件设计。
在软件设计方面,本课程设计采用了C语言作为编程语言,利用单片机的定时器、中断等功能模块,编写了精确的时钟控制程序。
通过对时钟的分、秒、小时的精准控制,实现了电子时钟的正常运行和显示。
三、功能实现。
1. 时间显示。
经过精心设计的软件程序,实现了对时间的精准显示。
时钟的显示界面清晰明了,数字显示稳定可靠,能够满足人们对时间的基本需求。
2. 时间调整。
通过设置按键,可以对时钟进行时间的调整。
用户可以根据实际需求,随时对时钟的时间进行调整,保证时钟的准确性。
3. 闹铃功能。
本课程设计还实现了闹铃功能,用户可以通过设置闹铃时间,让时钟在设定的时间点发出提示音,提醒用户重要事件的发生。
四、实验结果。
经过实际测试,本课程设计的电子时钟能够稳定可靠地运行,显示精准,功能完善。
时钟的硬件和软件设计均达到了预期的要求,符合设计的初衷和要求。
五、总结与展望。
本课程设计通过对单片机电子时钟的硬件和软件设计,成功实现了一个功能强大、稳定可靠的电子时钟。
但是,仍有一些功能可以进一步完善和优化,比如增加温湿度显示功能、实现无线时间校准等。
未来,我们将继续努力,不断完善电子时钟的功能,为人们的生活带来更多的便利。
六、参考文献。
[1] 《单片机原理与接口技术》,XXX,XXX出版社,2008。
[2] 《C语言程序设计》,XXX,XXX出版社,2010。
七、致谢。
感谢所有为本课程设计提供帮助和支持的老师和同学们,在他们的帮助下,本课程设计得以顺利完成。
单片机电子时钟课程设计报告
![单片机电子时钟课程设计报告](https://img.taocdn.com/s3/m/931f3b07326c1eb91a37f111f18583d049640fe3.png)
单片机电子时钟课程设计报告一、引言。
电子时钟是现代社会中常见的时间显示设备,其精准的时间显示功能在各个领域都有着重要的应用价值。
本课程设计旨在通过单片机技术,设计并实现一个简单的电子时钟,以帮助学生深入理解单片机的工作原理和应用技术。
二、课程设计内容。
1. 电子时钟的基本原理。
电子时钟是通过内部的振荡器产生稳定的脉冲信号,再经过分频和计数等操作,最终显示出精确的时间。
学生需要了解时钟电路的基本组成和工作原理,包括振荡器、分频器、计数器等模块的功能和相互配合关系。
2. 单片机的应用技术。
本课程设计中,我们选用了常见的单片机作为控制核心,学生需要学习单片机的基本结构、工作原理以及编程技术,掌握单片机与外围元器件的连接和通信方法,以及如何利用单片机实现电子时钟的各项功能。
3. 电子时钟的功能设计。
在课程设计中,学生需要设计电子时钟的基本功能,包括时间的显示、设置和调整功能,以及闹钟、定时器等附加功能。
通过设计和实现这些功能,学生能够更好地理解单片机的应用和程序设计技术。
4. 硬件电路的搭建与调试。
除了软件设计,学生还需要学会如何搭建电子时钟的硬件电路,并进行相应的调试工作。
这将帮助他们更深入地理解电子时钟的工作原理,以及单片机与外围电路的配合方式。
5. 系统整体性能测试与优化。
最后,学生需要对设计的电子时钟系统进行整体性能测试,并对系统进行优化,提高其稳定性和可靠性。
这一步骤将帮助他们更全面地掌握电子时钟设计的整体流程和技术要点。
三、课程设计实施。
在课程设计实施过程中,学生将分为若干小组,每个小组负责一个电子时钟系统的设计与实现。
在指导老师的指导下,他们将逐步完成电子时钟的功能设计、硬件搭建、软件编程、系统调试和性能优化等工作。
通过实际动手操作,学生将更好地理解课程内容,并培养实际动手能力和团队合作意识。
四、课程设计总结。
通过本课程设计,学生将全面掌握单片机技术在电子时钟设计中的应用,深入理解电子时钟的工作原理和设计方法,提高动手能力和实际应用能力。
vc++电子时钟课程设计
![vc++电子时钟课程设计](https://img.taocdn.com/s3/m/df693223453610661ed9f45c.png)
VisualC++通信平台实训报告学院:信息与通信工程学院专业:通信工程班级:通信111学号:2011136108姓名:李晶项目名称:电子时钟的设计一.项目内容编写一个带有“时间”菜单项的单文档应用程序。
“时间”菜单项中分别包含“时”“分”和“秒”3 个选项,选择这些选项,可以在视图窗口中分别显示当前系统时间的小时、分钟及秒。
并创建一个新的工具栏,添加分别与“时”“分”和“秒”3 个菜单相对应的按钮,在工具栏里创建一个“时间”按钮,使得能在状态栏上显示当前的系统时间。
要求:工具栏上的按钮和菜单项的命令要求统一,视图窗口显示的时间为动态显示。
提示:主要涉及菜单栏、工具栏和状态栏资源,使用定时器控制时间。
二.步骤步骤(1)根据MFC应用程序的方法,利用MFC App Wizard创建一个单文档应用程序,命名为7Time;(2)添加菜单项”时间”,并在”时间”下有”时”,”分”,”秒”三个菜单,如图:并修改其ID值:标识号(ID ) 标题(Caption )消息响应函数时间(&T)ID_VIEW_HOU R时(&H)OnViewHour()ID_VIEW_MINU TE分(&M)OnViewMinute()ID_VIEW_SECO ND秒(&S)OnViewSecond()并添加相应函数. 新建新的工具栏:并设置各按钮的ID 标识号(ID ) 消息响应函数 ID_TIME OnToolTime() ID _HOUR OnToolHour() ID _MINUTE OnToolMinute() ID _SECONDOnToolSecond()由于需要新建一个新的工具栏所以到MainFrm.h 中添加:CToolBar m_wndToolBar1;并到MainFrm.cpp 中添加: if (!m_wndToolBar1.Create(this) || !m_wndToolBar1.LoadToolBar(IDR_TimeBAR)){ TRACE0("Failed to create toolbar\n");return -1; // fail to create}m_wndToolBar1.ModifyStyle(0, TBSTYLE_FLAT);…….m_wndToolBar1.EnableDocking(CBRS_ALIGN_ANY);DockControlBarLeftOf(&m_wndToolBar1,&m_wndToolBar);为了实现新的工具栏可以出现在老工具栏的右侧,所以才头文件中添加void CMainFrame::DockControlBarLeftOf(CToolBar* Bar, CToolBar* LeftOf) {CRect rect;DWORD dw;UINT n;RecalcLayout(TRUE);LeftOf->GetWindowRect(&rect);rect.OffsetRect(1,0);dw=LeftOf->GetBarStyle();n = 0;n = (dw&CBRS_ALIGN_TOP) ? AFX_IDW_DOCKBAR_TOP : n;n = (dw&CBRS_ALIGN_BOTTOM && n==0) ? AFX_IDW_DOCKBAR_BOTTOM : n;n = (dw&CBRS_ALIGN_LEFT && n==0) ? AFX_IDW_DOCKBAR_LEFT : n;n = (dw&CBRS_ALIGN_RIGHT && n==0) ? AFX_IDW_DOCKBAR_RIGHT : n;DockControlBar(Bar,n,&rect);}为了实现动态显示时间的效果,所以建立计时器添加计时器实现函数显示时钟接下来添加个按钮的实现函数: 再添加工具栏按钮的实现功能: 最后在程序结束时终止计时器4: void CMainFrame::OnClose() {KillTimer(4);CFrameWnd::OnClose();}三.程序运行结果。
C语言课程设计--电子时钟
![C语言课程设计--电子时钟](https://img.taocdn.com/s3/m/14a27f48f8c75fbfc67db261.png)
目录第一章课程设计目的和要求.............................................................. (2)1.1 C语言课程设计的目的.......................................................... (2)1.2 C语言课程设计的要求 (2)第二章课程设计任务内容 (3)第三章详细设计说明 (4)3.1模块 (4)3.1.1函数功能模块图 (4)3.1.2模块描述 (4)3.2 流程图及注释 (5)3.3限制条件 (5)3.4测试计划 (5)第四章软件使用说明及运行结果 (6)4.1使用说明 (6)4.2运行结果 (6)第五章课程设计心得与体会 (7)附录1 参考文献 (8)附录2 程序清单 (9)第一章课程设计目的和要求1.1 C语言课程设计的目的本次课程设计使得课堂教学与实验实践之间关系更为密切,让同学们认识到必须重视实践环节,多读程序,多编写程序,多上机实践。
进一步培养结构化程序设计的思想,加深对高级语言要素和控制结构的理解,针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序风格。
本次课程设计着眼于知识的运用,把平常学的知识运用到课程时间中来,考察我们知识运用能力,对我们所学的理论知识进一步深化。
1.2 C语言课程设计的要求1. 分析课程设计题目的要求。
2. 对系统功能模块进行分析,写出详细设计说明文档。
3. 编写程序代码,代码量要求不少于300行。
调试程序使其能正确运行。
4. 设计完成的软件要便于操作和使用。
5. 设计完成后提交课程设计报告。
第二章课程设计任务内容设计一个电子时钟并满足下列要求:(1)能准确地利用数字显示日期和时间,在屏幕上显示一个运行的电子时钟,按任意键时程序退出。
(2)编写程序及上机运行并打印出来。
能准确得到相应的结果,原满完成该次课程设计的内容。
推荐 C语言课程设计(电子时钟) 精品
![推荐 C语言课程设计(电子时钟) 精品](https://img.taocdn.com/s3/m/f2b69c06a300a6c30c229ffc.png)
摘要就钟表的演变历史而言,它大致可以分为3个演变阶段,第一,从大型钟向小型钟演变;第二,从小型钟向袋表过渡;第三,从袋表象腕表发展。
每一阶段的发展都和当时的技术发明有着十分紧密的联系,同时它也是各个不同时期的科学家和钟表工匠智慧的结晶。
钟和表通常是以内机的大小来区别的。
按国际惯例,机芯直径超过50mm、厚度超过12mm的为钟;直径37~50mm、厚度4~6mm者,称为怀表;直径37mm以下为手表;最坚固、最精密的机械之一。
现代钟表的原动力有机械力和电力两种。
机械钟表是一种用重锤或弹簧的释放能量为动力,推动一系列齿轮运转,借助调速器调节轮系转速,以指针指示时刻和计量时间的计算器。
在生活进步的今天,电子时钟正成为人们生活的一部分,特别是应用在如火车站之类的公共场所,其用途不言而喻。
关键词: 模拟系统; 电子时钟; 时间修改.目录一. 设计过程1. 程序功能 (3)2.程序设计 (3)1)设计思路 (3)2)数据结构 (3)3)主函数 (4)4)流程图 (4)3.程序运行及分析 (8)4.运行结果 (9)二. 源代码 (10)1.程序预处理 (11)2. 主函数 (11)3. 时钟动画处理模块 (14)4.时钟按键控制模块 (15)5.数字时钟处理模块 (19)三. 设计总结 (22)四. 参考文献 (23)课程设计(电子时钟) 一.设计过程 1. 程序功能随着社会的进步和科技的发展,电子时钟逐渐成为人们生活中不可缺少的一部分,下面介绍一种电子时钟的设计和实现。
其基本功能模块图如图2.程序设计1) 设计思路程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性。
在电子时钟程序中,重点和难点在于时、分、秒针坐标值得计算和时钟指针的运行控制,旨在了解C 语言图形模式下的编程,了解系统的绘图机数据结构等方面的知识。
利用几个模块现实时钟的运转,并可在界面进行时间的更改。
c电子时钟课程设计
![c电子时钟课程设计](https://img.taocdn.com/s3/m/bd57643224c52cc58bd63186bceb19e8b8f6ecd7.png)
c 电子时钟课程设计一、课程目标知识目标:1. 学生能够理解电子时钟的基本原理,掌握电子时钟的组成、功能及工作流程。
2. 学生能够运用所学知识,分析并设计简单的电子时钟电路。
3. 学生能够解释电子时钟显示时间的原理,理解时、分、秒之间的换算关系。
技能目标:1. 学生能够运用电子元件,如集成电路、晶体管、LED灯等,动手搭建一个简易的电子时钟。
2. 学生能够通过编程软件,设计并实现电子时钟的显示功能。
3. 学生能够运用所学知识,解决电子时钟在实际应用中遇到的问题。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发学生的创新意识和探索精神。
2. 培养学生团队协作意识,提高学生在团队中沟通、协作的能力。
3. 培养学生关注社会发展,了解电子时钟在生活中的应用,认识到科技对生活的影响。
本课程针对中学生设计,结合学生好奇心强、动手能力逐步提高的特点,注重理论与实践相结合,以培养学生的创新能力和实际操作能力为核心。
课程目标具体、可衡量,旨在帮助学生掌握电子时钟相关知识,提高实践技能,培养科学素养,为后续学习打下坚实基础。
二、教学内容本课程教学内容主要包括以下几部分:1. 电子时钟基本原理:介绍电子时钟的组成、工作原理,包括时钟电路、振荡器、分频器、计数器等。
2. 电子时钟电路设计:讲解如何使用集成电路、晶体管、LED灯等元件搭建电子时钟,分析电路图,明确各部分功能。
3. 编程设计:教授如何使用编程软件(如Arduino、Scratch等)设计电子时钟程序,实现时、分、秒的显示功能。
4. 电子时钟制作与调试:指导学生动手制作简易电子时钟,学会调试电路,解决问题,确保电子时钟正常运行。
5. 电子时钟应用与拓展:探讨电子时钟在生活中的应用,了解其发展趋势,激发学生创新意识。
教学内容与课本章节关联如下:1. 电子时钟基本原理——对应教材第3章“数字电路基础”2. 电子时钟电路设计——对应教材第4章“数字电路设计”3. 编程设计——对应教材第5章“微控制器及应用”4. 电子时钟制作与调试——对应教材第6章“电子制作与调试”5. 电子时钟应用与拓展——对应教材第7章“现代电子技术应用”教学进度安排:共5个课时,第1-2课时学习基本原理和电路设计,第3-4课时进行编程设计和制作调试,第5课时进行应用与拓展讨论。
c电子钟的课程设计
![c电子钟的课程设计](https://img.taocdn.com/s3/m/947e743af4335a8102d276a20029bd64783e62fc.png)
c 电子钟的课程设计一、课程目标知识目标:1. 学生能够理解电子钟的基本原理和组成部分,掌握其工作原理。
2. 学生能够掌握电子钟中关键元件如时钟芯片、晶体振荡器等的功能和作用。
3. 学生能够描述电子钟的时间计数、显示和调整功能。
技能目标:1. 学生能够运用所学知识,设计简单的电子钟电路,并进行组装和调试。
2. 学生能够通过实际操作,学会使用万用表、电烙铁等基本电子工具。
3. 学生能够运用电子钟相关知识,解决实际生活中的时间测量问题。
情感态度价值观目标:1. 学生通过学习电子钟的制作,培养对电子技术的兴趣和爱好,激发创新意识。
2. 学生在团队协作中,学会互相帮助、共同解决问题,培养合作精神和沟通能力。
3. 学生能够关注电子钟在日常生活中的应用,认识到科技对生活的影响,提高科技素养。
课程性质:本课程为实践性强的学科,结合理论知识与动手操作,培养学生电子技术的基本技能。
学生特点:六年级学生具有一定的电子知识基础和动手能力,对新鲜事物充满好奇心。
教学要求:教师需注重理论与实践相结合,关注学生个体差异,引导学生主动探究,提高学生的实践能力和创新能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容本课程依据课程目标,选择以下教学内容:1. 电子钟基本原理:讲解电子钟的工作原理,包括时钟芯片、晶体振荡器、计数器、显示电路等组成部分。
2. 电子元件识别与使用:学习常用电子元件如电阻、电容、二极管、三极管等的识别和使用方法。
3. 电子钟电路设计:学习电子钟电路图的绘制,分析电路中各部分的功能和连接方式。
4. 电子钟组装与调试:动手实践,组装电子钟,学会使用万用表、电烙铁等工具进行调试。
5. 电子钟程序设计:学习编写简单的电子钟程序,实现时间计数、显示和调整功能。
教学内容安排和进度:第一课时:电子钟基本原理,时钟芯片和晶体振荡器介绍。
第二课时:电子元件识别与使用,分析电子钟电路图。
c电子时钟课程设计
![c电子时钟课程设计](https://img.taocdn.com/s3/m/12e2b56d11661ed9ad51f01dc281e53a59025176.png)
c电子时钟课程设计一、课程目标知识目标:1. 学生能够理解电子时钟的构成和工作原理,掌握基础电子元件的作用。
2. 学生能够阐述数字电路的基本概念,并运用至电子时钟的制作中。
3. 学生能够解释电子时钟显示时间的原理,包括时、分、秒的计算与显示。
技能目标:1. 学生能够运用所学知识,设计并搭建简单的电子时钟电路。
2. 学生能够通过编程,实现电子时钟的时、分、秒显示功能。
3. 学生能够熟练使用相关工具和仪器,进行电子时钟的组装和调试。
情感态度价值观目标:1. 学生培养对电子科学的兴趣,提高学习主动性和探究精神。
2. 学生培养团队协作意识,学会与他人共同解决问题。
3. 学生培养创新思维,敢于尝试新方法,勇于面对挑战。
分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握电子时钟相关知识的基础上,提高实践操作能力,培养科学素养和创新能力。
通过具体的学习成果分解,教师可针对不同学生的学习情况进行教学设计和评估,确保课程目标的实现。
二、教学内容本课程教学内容围绕电子时钟的设计与制作展开,依据课程目标,教学内容分为以下三个部分:1. 电子时钟基础知识:- 电子元件:介绍常用电子元件如电阻、电容、二极管、三极管等,以及它们在电子时钟中的作用。
- 数字电路:讲解基本逻辑门、触发器、计数器等数字电路原理,为电子时钟设计打下基础。
- 教材章节:参照课本第3章“数字电路基础”和第4章“常用电子元件及其应用”。
2. 电子时钟设计与制作:- 设计原理:讲解电子时钟工作原理,包括时、分、秒计数及显示方法。
- 制作实践:指导学生进行电子时钟电路设计、编程、组装和调试。
- 教材章节:参照课本第6章“数字电路应用实例”和第7章“电子时钟设计与制作”。
3. 技能训练与创新能力培养:- 实践操作:训练学生熟练使用工具、仪器进行电子时钟组装和调试。
- 创新设计:鼓励学生尝试改进电子时钟设计,发挥创新思维。
- 教材章节:参照课本第8章“实践与创新”相关内容。
c语言电子时钟课程设计
![c语言电子时钟课程设计](https://img.taocdn.com/s3/m/8fc477d2690203d8ce2f0066f5335a8102d2662e.png)
c语言电子时钟课程设计一、课程目标知识目标:1. 理解C语言中结构体、函数和循环控制的使用,掌握电子时钟的基本原理。
2. 学习并掌握使用C语言编写程序,实现电子时钟的功能,包括时、分、秒的显示与更新。
3. 了解C语言中定时器功能的使用,实现电子时钟的自动更新。
技能目标:1. 能够运用所学知识,独立设计并编写一个简单的C语言电子时钟程序。
2. 培养学生的编程实践能力,提高问题分析和解决能力。
3. 学会使用调试工具,对程序进行调试和优化,提高程序运行的稳定性。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,激发学生的学习主动性。
2. 培养学生的团队合作意识,学会与他人共同解决问题,相互学习和进步。
3. 培养学生的创新精神,敢于尝试新方法,勇于克服困难,不断优化程序。
课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,使学生能够学以致用。
学生特点:学生已具备一定的C语言基础,了解基本语法和编程思路,但对实际应用还不够熟练。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的编程实践能力,培养学生的问题分析和解决能力。
在教学过程中,关注学生的个体差异,给予个性化指导。
通过课程学习,使学生能够独立完成一个具有实际意义的编程项目。
二、教学内容1. 复习C语言基础:变量、数据类型、运算符、控制结构(章节1-4)。
2. 结构体与指针:介绍结构体的定义和使用,指针的概念和操作(章节5)。
3. 函数:回顾函数的定义、调用和参数传递,强调模块化编程的重要性(章节6)。
4. 循环控制:深入学习for循环和while循环,理解其在电子时钟中的应用(章节7)。
5. 定时器与时间处理:介绍定时器原理,时间处理函数的使用(章节8)。
6. 电子时钟编程实践:结合所学知识,设计并实现电子时钟程序。
- 显示部分:编写代码实现时、分、秒的显示(课时1)。
- 更新部分:实现时间递增,每秒更新显示(课时2)。
- 定时器应用:使用定时器自动更新时间,减少资源消耗(课时3)。
电子时钟课程设计(含代码)[优秀]
![电子时钟课程设计(含代码)[优秀]](https://img.taocdn.com/s3/m/6425ef61b9f3f90f76c61bdc.png)
电子时钟设计一、课程设计目的和意义掌握8255、8259、8253芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8088微处理器完成了电子钟的小系统的独立设计.同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰.二、开发环境及设备1、设计环境PC机一台、windows 98系统、实验箱、导线若干.2、设计所用设备8253定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2.8255并口:用做接口芯片,和控制键相连.8259中断控制器:用于产生中断.LED:四个LED用于显示分:秒值.KK1或KK2键与K7键,用于控制设置.三、设计思想与原理1、设计思想在本系统设计的电子时钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和控制键电路,8259做中断控制器产生中断.在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号.8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号.即每隔20米s,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化.其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电瓶触发方式还是上升沿触发方式,是单片8259还是多片8259.8259接收到信号后,产生中断信号送CPU处理.2、设计原理利用实验台上提供的定时器8253和扩展板上提供的8259以及控制键和数码显示电路,设计一个电子时钟,由8253中断定时,控制键控制电子时钟的启停及初始值的预置.电子时钟的显示格式米米:SS由左到右分别为分、秒,最大记时59:59超过这个时间分秒位都清零从00:00重新开始.基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分寄存器的内容加一,四个数码管动态显示分、秒的当前值.三、设计所用芯片结构1、8259A芯片的内部结构及引脚中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片.它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中.因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定.在米D微机系统中,8259芯片工作于单片方式.8259引脚图如图3.3,各引脚功能如下.D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0——地址信号;INT——中断请求信号;INTA(低电平有效)——中断响应信号;CAS0~CAS2——级联信号,形成一条专用8259A总线,以便多片8259A的级联;SP/EN——从编程/允许级联.在缓冲方式中,可用做输图3.1 8259A引脚图出信号以控制总线缓冲器的接收和发送.在非缓冲方式中,作为输入信号用于表示主片还是从片;IR0~IR7——外部中断请求输入线.要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU 响应时为止)或者是高电平. 8259中断矢量地址与中断信号之间的关系如表3.1所示:中断序号 0 1 2 3 4 5 6 7 功能调用 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 矢量地址 20H~ 23H24H ~ 27H 28H ~ 2BH 2CH ~ 2FH 30H ~ 33H34H ~ 37H38H ~ 3BH 3CH ~ 3FH 说明时钟键盘可用可用串行口 可用可用可用2、8255芯片的内部结构及引脚8255可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A 、B 、C 三个并行接口,用+5V 单电源供电,能在以下三种工作方式下工作: 方式0—基本输入/输出方式 方式1—选通输入/输出方式 方式2—双向选通输入/输出方式 8255引脚图如图3.2示,各引脚功能如下. D7~D0——与CPU 侧连接的八条双向数据线; WR(低电平有效)——写输入信号; RD(低电平有效)——读输入信号; CS(低电平有效)——片选输入信号; A0、A1——片内寄存器选择输入信号; PA7~PA0——A 口外设双向数据线; PB7~PB0——B 口外设双向数据线; PC7~PC0——C 口外设双向数据线; RESET ——复位输入信号表3.1 8259A 中断矢量表图3.2 8255引脚图2、8255端口地址 信号线寄存器 编址 IOY3A 口60H B 口 61H C 口 62H 控制寄存器63H3、8253芯片的内部结构及引脚8253可编程定时/计数器是Intel 公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2米HZ,它所有的技术方式和操作方式都通过编程控制. 8253的功能用途是: (1) 延时中断 (2) 可编程频率发生器 (3) 事件计数器 (4) 二进倍频器 (5) 实时时钟 (6) 数字单稳 (7)复杂的电机控制器8253有六种工作方式: (1) 方式0:计数结束中断 (2) 方式1:可编程频率发生器 (3) 方式2:频率发生器 (4) 方式3:方波频率发生器 (5)方式4:软件触发的选通信号(6)方式5:硬件触发的选通信号8253引脚图如图3.3示,各引脚功能如下.表3.2 8255端口地址表图3.3 8253引脚图D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器地址输入信号;CLK——计数输入,用于输入定时基准脉冲或计数脉冲;OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形; GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步.2、8253端口地址表3.3 8253端口地址表四、具体模块设计1、概述本系统设计的电子钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断.在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号.8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号.即每隔20米s,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化.程序由以下模块组成:系统共有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块.系统框图如下:2、主程序模块主控模块是系的核心模块,对8253、8255A进行初始化,设置中断向量,扫描键盘根据按键值作相应的处理.主要由软件实现.它的主要功能是调用其它模块对系统工作进行协调,它的主要功能是读控制模块输入值并执行要做的工作,如果是由KK1或KK2的信号,则将进行中断处理,并调用显示模块显示.如果控制模块输出的K7的信号,则将进入对时状态.3、控制模块控制模块送入主控模块的子功能模块.由软件和硬件实现,硬件上由控制键和8255互连,将键值由8255送入主控模块.软件上使用行扫描法获得键值并送回主控模块.4、显示模块显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位.硬件上由六个LED构成,软件上由扫描显示的方法实现.实现代码如下:DISPLAY PROC NEAR 米OV CX,77FFH LED52: CALL DISUP LOOP LED52DISUP: PUSH CX米OV DI,OFFSET 米IN1米OV CL,01DISUP1: 米OV AL,0米OV DX,PORTBITOUT DX,AL米OV AL,[DI]米OV BX,OFFSET LEDXLAT米OV DX,PORTSEGOUT DX,AL米OV AL,CL米OV DX,PORTBITOUT DX,AL米OV BX,35H DELAY1: DEC BXJNZ DELAY1厘米P CL,20HJZ DISUP2INC DISHL CL,1J米P DISUP1 DISUP2: POP CXRET DISPLAY ENDP5、定时模块定时模块是为8259提供中断请求信号的.由一片8253实现,选用定时器0号,工作在方式3,由于时钟应该1秒走动一次,所以输出值应为1S,其输出信号可作为8259的中断请求信号.6、中断处理模块中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果.代码:START: 米ov al,14h out 76h,al米ov al,3dhOUT 74H,AL米OV AL,1FH OUT 80H,AL米OV AL,18H OUT 81H,AL米OV AL,03H OUT 81H,AL米OV AL,80H OUT 0D6H,AL米OV AL,7FH OUT 81H,AL 米OV AX,0000H米OV CX,AX米OV BL,ALIR7: OUT 00D0H,CL OUT 00D2H,CH OUT 00D4H,BL INC CL厘米P CL,3CH JGE P1CALL IR7P1:米OV CL,AL INC CH厘米P CH,3CH JGE P2CALL IR7P2:米OV CH,AHINC BL厘米P BL,18H JGE P3CALL IR7米OV BL,AL CALL IR7 CODE ENDSEND START五、心得体会本次课程设计做的是电子时钟设计,本以为设计思路清楚,设计会简单,可是经过两周的时间,发现选择了一个相对比较难的题目,最终也没有将其完全设计出来,比较遗憾.这个题目有几个难处,一,是汇编语言与微机原理的相结合部分比较难,导致部分代码不能正确写出:二,对实验箱了解不充分,设计起来对具体端口不理解.三,本次设计的大多数题目都能在网上找到可以借鉴的程序,而我们的虽然找到了,但是遇到了相当不擅长的端口问题,暴漏了平常学习的缺漏.四,总结,中断,计数,以及端口等的知识在学习中没有能够很好的学习,遇到具体细节问题时,解决不了.两组成员一起讨论,仍然没有很好的解决,不过确实对微机原理的相关知识很有收获.本次设计的收获:对8259、8255、8253有了进一步的了解,对中断处理有了更深的理解,很好的复习了微机原理,同时对端口有了初步的理解.通过课程设计更加体会到了团队作战的长处,大家一起受益颇多,取长补短,最主要的是认识到了自己的不足,需要进一步学习所含知识,尤其是端口,更需要勤加练习汇编语言与微机原理的结合,课程设计受益颇多.参考书目:1、戴梅萼,史嘉权编著.微型计算机技术及应用(第三版). 北京:清华大学出版社,20032、李顺增,吴国东,赵河明等.微机原理及接口技术.北京:机械工业出版社,20063、杨立新.微型计算机原理和应用[米].北京:科学技术文献出版社,1986.114、眭碧霞.微型计算机原理与组成[米].人民邮电出版社,2003.8。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.1 要求
设计类结构,模拟电子时钟的行走,在屏幕上显示一个活动时钟。
2.2 任务
(1)显示日期的格式:XXXX 年 XX 月 XX 日 (2)显示时间的格式:XX:XX:XX。 (3)添加显示星期的格式:星期 X
2.3 运行环境
(1)WINDOWS2000/XP 系统 (2)Visual C++ 6.0 编译环境或 DEV C++ 5.0 编译环境
视图类实现时钟的主要功能,在该类的 OnDraw 函数里面对时间日期进行显示输 出。向窗口输出信息时,为了保证高刷新率下绘图不闪烁,使用内存绘图的方法,在 内存中创建一个与屏幕绘图区域一致的对象,使得重绘视图时可以大大提高运行速 度。为了使计时能够达到几乎无误差,使用了一个获取系统两秒间隔作为计时间隔的 方法,使得计时间隔和系统时间间隔一致。每次重绘视图的时候都重新获取系统时间, 当该两次获得的秒不一致时,就对时间加一秒。通过一个计时器消息,使视图 50ms 刷新一次,以保证时间的准确性。
1
关的属性和方法即可完成模拟电子时钟的功能。 文档类定义时钟的相关属性,包括 int 类型的 year、month、day、hour、minute、
second,和包括 CString 类型的 str_year、str_month、str_day、str_hour、str_minute、 str_second 等信息。int 类型的时间日期属性用以计算,CSrting 类型的时间日期属性 用以显示,通过 CString 类中的成员函数 Formart 可以把 int 型的数据转成 CString 型 的。
CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1;
}
5
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); ShowControlBar(&m_wndToolBar,FALSE,FALSE); //隐藏工具栏 return 0; } BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) )
1 前言
时钟在人们日常生活中必不可少,时钟的原理是怎么样的呢,本程序将模拟一个 电子时钟。为了使程序更加美观,本程序是使用 Visual C++编写一个可视化的模拟电 子时钟程序。电子时钟的关键在于延时,为了达到延时的准确性,不受程序执行时间 的影响,采用了系统两秒之间的间隔进行延时。该程序还加入了显示星期功能,在知 道 1901 年每月 1 号是星期几的情况下,再根据年、月、日即可算出星期几。
4
#endif
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_WM_CREATE()
END_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR,
return FALSE; cs.style=WS_OVERLAPPED|WS_SYSMENU; //禁止调整窗口大小 cs.style=WS_OVERLAPPED|WS_SYSMENU|WS_MINIMIZEBOX; return TRUE; } #ifdef _DEBUG void CMainFrame::AssertValid() const { CFrameWnd::AssertValid(); } void CMainFrame::Dump(CDumpContext& dc) const { CFrameWnd::Dump(dc); } #endif //_DEBUG
图 3.2 OnDraw 函数流程图
3
4 具体代码实现
// MainFrm.h 文件,负责主窗口框架的显示 class CMainFrame : public CFrameWnd { protected: // create from serialization only
CMainFrame(); DECLARE_DYNCREATE(CMainFrame) public: virtual BOOL PreCreateWindow(CREATESTRUCT& cs); public: virtual ~CMainFrame(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // control bar embedded members CStatusBar m_wndStatusBar; CToolBar m_wndToolBar; protected: afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); DECLARE_MESSAGE_MAP() }; #endif // MainFrm.cpp 文件 #include "stdafx.h" #include "DateTime.h" #include "MainFrm.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__;
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD |
WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY |
在这个程序中,还使用了一个对话框类,使用对话框来对时间日期的设置。在菜 单栏里添加一个“设置时间”的选项和一个菜单消息,当点击这个选项就会弹出设置 时间日期的对话框,对话框中编辑控件设定了每个值的取值范围,从而对输入错误进 行排除。
2
3.2 主要类图
3.3 函数流程图
图 3.1 主要类图
OnDraw 函数流程图如图 3.2 所示:
2.4 开发工具
C++语言
3 分析和设计
+3.1 系统分析及设计思路
为了使程序的显示更加美观,该程序使用了 C++可视化程序设计方法进行设计。 在可视化程序设计中,建立了一个 MFC 单文档应用程序工程,该工程包括了视图类、 文档类对话框类和主框架类。在主框架类中修改窗口等属性,使整个时间的显示更加 协调。模拟电子时钟是一个显示和计时的小程序,因此只要在视图类和文档类添加相
目录
1 前言................................................................................................................ 1 2 需求分析........................................................................................................ 1
在视图类中需要添加几个方法:用于计算时间的方法 RunTime()、计算星期的方 法 Week()、int 型转 CString 型的方法 Change()、获取系统时间的方法 GetDateTime()、 重获系统时间方法 OnReset()和计时器消息。
在计算时间日期的时候,每达到 1 秒的时候对 second 进行加 1,然后判断是否达 到 60 秒,达到的话 minute 就加 1,同样的方法对 hour、day、month 和 year 进行计算, 在对 day 计数时,考虑到大小月和闰年,对 day 进行加 1 时,判断是哪一月和是否为 闰年。在确定年、月、日之后,使用函数 Week()进行对星期几的计算,根据 1901 年 每月 1 号是星期几可以得出现在是星期几。
2.1 要求....................................................................................................... 1 2.2 任务....................................................................................................... 1 2.3 运行环境............................................................................................... 1 2.4 开发工具............................................................................................... 1 3 分析和设计.................................................................................................... 1 3.1 系统分析及设计思路........................................................................... 1 3.2 主要类图............................................................................................... 3 3.3 函数流程图........................................................................................... 3 4 具体代码实现................................................................................................ 4 5 课程设计总结.............................................................................................. 26 5.1 程序运行结果或预期运行结果.........................................................26 5.2 设计结论............................................................................................. 27 参考文献.......................................................................................................... 27 致 谢.............................................................................................................. 27