课程设计——DS1302数码管显示数字钟的设计1(3)

2019-03-29 08:29

××大学××学院××系××课程设计报告

按键调整时间 开始 按键设置闹钟 开始 K2=0 NO K2=0 NO YES 从DS1302中获取的小时值加1 YES 当前小时值加1 并保存 K3=0 NO K3=0 NO YES 从DS1302中获取的分钟值加1 YES 当前分钟值加1 并保存 NO 返回 K1=0 YES 时钟启动

图11 键盘调时流程图

4.设计总结

在这学期的课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,受益匪浅。要面对社会的挑战,只有不断的

7

××大学××学院××系××课程设计报告

学习、实践。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。在此感谢××,××, ××老师,他们一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪。同时,对给过我帮助的所有同学和各位指导老师表示忠心的感谢!

5.参考文献

[1]楼然苗,李光飞.51系列单片机设计实例[M].北京:北京航空航天大学出版社,2003.88-100 [2]李群芳,黄建.单片机微型计算机与接口技术[M].北京:电子工业出版社,2001.70-82 [3]李朝青.单片机原理接口技术(第三版)[M].北京:北京航空航天大学出版社,2005,1-320 [4]赵嘉蔚.单片机原理与接口技术[M].北京:清华大学出版社,2010.2-26 [5]赵小安.MCS-51单片机原理及应用[M].天津:天津大学出版社,2001.3-35

[6]欧伟明,周春临,翟遂春.电子信息系统设计[M].西安:西安电子科技大学出版,2005,54

8

××大学××学院××系××课程设计报告

附录:程序代码

#include #include

#define uchar unsigned char #define uint unsigned int

sbit K1 = P3^0; sbit K2 = P3^1; sbit K3 = P3^2; sbit K4 = P3^3;

sbit P2_5 = P2^5; sbit P2_6 = P2^6; sbit P2_7 = P2^7;

sbit RST = P1^7; sbit IO = P2^3; sbit SCLK = P1^3; bit K1_FLAG = 0; 未按下时,该位为0 bit flag;

uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; uchar disp_buf[8]; uchar time_buf[7];

期、年

//定义K1键 //定义K2键 //定义K3键 //定义K4键

//定义按键标志位,当按下K1键时,该位置1,K1键

//定义显示缓冲区

//DS1302时间缓冲区,存放秒、分、时、日、月、星

9

××大学××学院××系××课程设计报告

uchar time_hour[10]; uchar time_min[10]; uchar temp[2]; uchar t0;

//用来存放设置时的小时、分钟的中间值

//定时器标志变量

/***********************函数声明********************************/ void dula(void); void wela(void);

//段选 //位选

//打开蜂鸣器

//关闭蜂鸣器

void ON_Buzzer(void); void OFF_Buzzer(void); void ON_Relay(void); void OFF_Relay(void); void Delay(uchar i);

//打开继电器 //关闭继电器

//延时

void Write_byte(uchar inbyte); //写一个字节 uchar Read_byte(void);

//读一个字节

//向DS1302写入地址和数据

void Write_ds1302(uchar address, uchar indata);

uchar Read_ds1302(uchar addr); //根据给定的地址读数据 void init_ds1302(void); void init_timer0(void); void Key_Process(void); void Key_Clock(void); void get_time(void);

//DS1302初始化 //定时器初始化

//按键检测并作出响应

//按键设置闹钟时间

//获取时间(进制转换)

//时间显示 //日历显示

void Time_Display(void);

void Date_Display(void);

/***************************主函数************************************/ void main() {

uint i = 0; uint j; P0 = 0;

P2 = 0; init_ds1302();

10

//设置闹钟数

××大学××学院××系××课程设计报告

init_timer0(); while(1) { get_time(); //读取当前时间 if(K1 == 0)

//若K1键按下

{ Delay(5); //延时10ms去抖

if(K1 == 0) { while(!K1); //等待K1键释放

K1_FLAG = 1;

//K1键标志位置1,以便进行时钟调整 }

}

if(K1_FLAG == 1) Key_Process(); //若K1_FLAG为1,则进行走时调整 Time_Display(); if(K4 == 0) { Delay(5); if(K4 == 0) { while( !K4); Key_Clock();

time_hour[i] = temp[0]; time_min[i] = temp[1]; i++; if(K4 == 0) { Delay(5); if(K4 == 0)

{

11


课程设计——DS1302数码管显示数字钟的设计1(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:巴林左旗处置危险化学品事故应急预案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: