多功能电脑时钟设计报告含正确C语言程序96分

上传人:桔**** 文档编号:487001868 上传时间:2022-07-24 格式:DOC 页数:36 大小:278.50KB
返回 下载 相关 举报
多功能电脑时钟设计报告含正确C语言程序96分_第1页
第1页 / 共36页
多功能电脑时钟设计报告含正确C语言程序96分_第2页
第2页 / 共36页
多功能电脑时钟设计报告含正确C语言程序96分_第3页
第3页 / 共36页
多功能电脑时钟设计报告含正确C语言程序96分_第4页
第4页 / 共36页
多功能电脑时钟设计报告含正确C语言程序96分_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《多功能电脑时钟设计报告含正确C语言程序96分》由会员分享,可在线阅读,更多相关《多功能电脑时钟设计报告含正确C语言程序96分(36页珍藏版)》请在金锄头文库上搜索。

1、2828XXXXX高校单片机系统综合训练课程设计报告多功能电脑时钟设计报告一、实训目的意义及任务要求1.1目的意义在如今,单片机的运用领域已非常广泛,它在智能仪器仪表、实时工控、通讯设备、导航系统、家用电器等均有很广泛的应用。单片机又称单片微限制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机作为一门专业学科,对学生的要求也较高,要求对C语言有较好的驾驭,还要与单片机的硬件工作原理相结合,也是理论与实践相结合的一大体现。多功能电脑时钟有效地检验了单片机中对数码管,蜂鸣器,LED灯的限制,同时提高了学生的工程系统设计实力。通过此次单片机系统综合训练,不仅要让学生相

2、识了解它,而且增加学生学科主动性。2.2任务要求通过对硬件和软件的设计要求设计的电脑时钟完成以下功能:1.基本功能实时显示当前时间(4位数码管显示,2位显示小时,2位显示分钟,第2位小数点0.5秒亮,0.5秒灭)。能用一按键依次切换显示年及月日。能修改当前时钟。具有秒表功能,显示秒和百分秒。2. 扩展功能单片机与PC机的通讯(可选);可设定初值的倒计时功能(可选)闹钟及报时功能(可选); 显示星期(可选)。3. 设计参数显示时间时,4位数码管显示,2位显示小时,2位显示分钟,第2位小数点0.5秒亮,0.5秒灭;蜂鸣器报时时间以每生学号最末位确定。二.实习任务的方案2.1 任务进度布置任务、分析

3、任务、学习单片机的C51功能程序设计(3天)方案设计、运用Protel设计和绘制硬件原理图(1.5天)程序设计和调试(4.5天)设计验收、撰写报告(1天)2.2 系统分析依据系统功能要求,可将系统组成结构分成四大部分:DS1302时钟芯片读数据写数据模块;数码管显示模块;按键设置调整时间模块;秒表功能模块。硬件电路接线图如附录一,本系统采纳DS1302时钟芯片,四位数码管用来显示年月日,星期,时分,以及秒和百分秒。其中年月日,时分秒和星期采纳DS1302的数据显示,秒表采纳单片机定时中断实现。本系统共用到四个按键,且均为独立对地按键,分别用于显示切换,修改切换,修改加一,修改减一,秒表启动暂停

4、和数据清零。2.3 器件选择选用STC89C51芯片,频率为11.0592MHz,由于系统要求显示年月日小时和分钟,采纳四位LED数码管显示即可。按键是用来设置时间或闹钟时间或启动秒表等功能的,设置三个按键:显示切换模式键(key3)、修改数据键(key0)、加一键(key1)、减一键(key2)。常见的LED显示具有清楚光明的特点。是显示接口也是绝大多数单片机应用系统必备的部件之一。发光二极管组成的显示器是单片机应用产品中最常用的廉价输出设备。它由若干个发光二极管按肯定的规律排列而成。当某一个发光二极管导通时,相应的一个点或一笔画被点亮,限制不同组合的二极管导通,就能显出各种字符。常用的7段

5、显示器的结构如图所示,发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的成为共阴显示器。1位显示器由8个发光二极管组成,其中7个发光二极管ag限制7个笔画的亮或暗,另一个限制一个小数点的亮和暗,这种笔画的七段显示器能显示的字符较少,字符的形态有些失真,但失控简洁,运用便利。三、系统硬件设计3.1 单片机的最小系统单片机功能系统图见附录 1,。单片机最小系统由STC89C51单片机、复位电路、晶振电路组成。如图3.1所示图3.1 单片机最小系统图 3.2 数码管、独立按键及DS1302时钟芯片电路的设计在电子钟的输入部分,设置相应的置数功能,通过外部设备的输入,如按键,实现时间的切换。除

6、此之外,调整日期等时间也须要按键进行输入。在选用输入端口时,将P0引脚与按键相连进行输入。K1、K2、K3、K4分别表示设置切换键、数值加一键、数值减一、显示月和日键。系统仿真电路图系统仿真电路图DS1302与单片机连线图3.3 其他附属电路设计按键设计,电频转换芯片的硬件电路如下图所示:RS232串口通信及电源电路等设计,如图3.3所示图3.3 附属电路设计图四、软件设计4.1 主程序设计运用定时器0来定时,定时5ms,运用定时器的中断来实现这些功能,显示是用的数码管的动态扫描,每5ms扫描一位数码管,20ms循环一次。设置一些标记位,实时时间显示的标记位,星期显示的标记位,闹铃时间显示的标

7、记位,秒表显示的标记位,在不同的模式下,我们要使该模式下的标记位有效,从而进行此模式的显示,通过按键进行不同的操作。每个标记位有效时,数码管显示的内容就不一样。闹钟的实现是用一个子函数,每5ms调用一次函数,并把北京时间与设定的闹铃时间比较,假如相等就使蜂鸣器有效。闹铃时间的长短可以用一个变量对秒计数,当计数值小于我们设定的值时,就是蜂鸣器有效,当大于等于设定的值时就关闭蜂鸣器。整点报时或半点报时很好实现,在中断函数里,当分钟等于60时,蜂鸣器对应鸣叫相应点数,并且小时要自增1,当分钟等于30时,蜂鸣器鸣一次,分钟自增1,要使蜂鸣器有效,可用一个变量对秒计数,当秒等于我们设定的值时,就关闭蜂鸣

8、器。4.2 系统操作功能设计依据系统功能描述,可以分为:北京时间功能、整点报时、闹铃功能、日期显示及秒表功能功能。我们通过对K_Mode键按下的次数计数,用Mode计数,Mode的次数就代表了不同的模式,每个模式都有与之相对应的指示灯,每个模式的功能如下:Mode 0:按键每按下时显示北京时间模式,此时,四个指示灯全灭,显示格式为:小时.分钟(如:07.35,为7点35分),按K_UP或者K_DN键对系统没影响,每到整点或半点时时,要进行相应点数的间隔蜂鸣报时(半点短鸣一次)。Mode 1:按键按下一次时,进入修改北京时间的小时模式,四个指示灯依次为“亮灭灭灭”,按K_UP或者K_DN键对小时

9、进行修改。Mode 2:按键按下两次时,进入修改北京时间的分钟模式,四个指示灯依次为“灭亮灭灭”,按K_UP或者K_DN键对分钟进行修改。Mode 3:按键按下三次时,进入修改闹铃时间的小时模式,四个指示灯依次为“灭灭亮灭”,按K_UP或者K_DN键对闹铃小时进行修改。Mode 4:按键按下四次时,进入修改闹铃时间的分钟模式,四个指示灯依次为灭灭灭亮,按K_UP或者K_DN键对闹铃分钟进行修改。Mode 5:按键按下五次时,进入年显示模式,四个指示灯依次为“亮亮灭灭”,显示格式为:四位年(如20.12为当前年份为公元2012年),在此种模式下,按K_UP或者K_DN键对系统没影响。Mode 6

10、:按键按下六次时,进入月日显示模式,四个指示灯依次为“亮灭亮灭”,显示格式为:月日(如07.05为当前日期为7月5日),在此种模式下,按K_UP或者K_DN键对系统没影响。Mode 7:按键按下七次时,进入秒表模式,四个指示灯依次为“亮灭灭亮”,显示格式为:秒百分秒(如05.90为当前秒表计时到5秒900毫秒),在此种模式下,K_UP键设为用来启动/暂停秒表、K_DN键设为用来对秒表进行清零。Mode 8:按键按下八次时,进入闹钟选择模式,四个指示灯依次为“亮亮亮灭”,显示格式为:CL01/00,CL.00表示贪睡闹铃功能关闭,CL.01表示贪睡闹铃功能开启,按UP或DN键可在00或01间循环

11、选择;在贪睡闹铃功能关闭时,可按随意键停止当前闹钟,或不按键,则闹钟1分钟,以后再不响。在贪睡闹铃功能开启时,如按下除UP键外的随意键,停止当前闹钟,如不按键,则闹钟1分钟;当过5分钟后,闹钟又会重新响起,如此循环,只有按下UP键时,才能停止闹钟以后再不响。在此种模式下,K_UP键设为用来启动/暂停秒表、K_DN键设为用来对秒表进行清零。Mode 9:按键按下九次时,进入整点报时选择模式,四个指示灯依次为“亮亮亮亮”,显示格式为:BS01/00,BS.00表示整点报时功能关闭,01表示报时功能开启,按UP或DN键可在00或01间循环选择。4.3主程序void main()图4.1 主程序功能流

12、程图4.4主程序设计主程序采纳定时器0对程序进行扫描执行。分别执行DS1302芯片初始化子程序,写数据子程序,将最初的值写入芯片中,采纳while循环循环执行键盘扫描子程序。main() TMOD=0x01; /运用模式1,16位定时器 TH0=(65536-10000)/256; /给定初值 TL0=(65536-10000)%256; EA=1; /总中断打开 ET0=1; /定时器中断打开 TR0=1; /定时器开关打开Ds1302_Init(); Ds1302_Write_Time();while(1) keyscan(); if(Btread=0) Btread=1; Ds1302_

13、Read_Time(); display(); 4.5 DS1302子程序设计此子程序分为初始化程序,读数据程序,写数据程序,一些数据程序为例;void Ds1302_Write_Byte(unsigned char addr, unsigned char d) CE=0;_nop_(); SCLK=0; _nop_(); CE=1; _nop_(); Write1302(addr); Write1302(d); CE=0; _nop_(); IO=1; SCLK=1; 4.6时间调整子程序时间调整子程序采纳的是对key1按的次数不同来进行对年月日时分及星期的设置。void zongshi(v

14、oid)if(!key) if(btx=0) if(!key) btx=1;k+; elsebtx=0; k=1时,调整年份,key1为加,key2为减void keyscan() k=2时,调整月份,key1为加,key2为减 k=3时,调整日份,key1为加,key2为减 display(); k=4时,调整星期,key1为加,key2为减 if(!key) if(btx=0) if(!key) btx=1; k+; 4.7 按键切换子程序void tiaoshidisplay() if(z=15) z=0; switch(k) case 1:bt1=bt1;break; /年 case 2:bt2=bt2;bt1=0;break; /月 case 3:bt3=bt3;bt1=0;break; /日 case 4:bt1=bt1;bt

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号