欢迎来到天天文库
浏览记录
ID:12369411
大小:301.00 KB
页数:20页
时间:2018-07-16
《电子时钟接口课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、接口技术课程设计报告书专业班级学生姓名指导教师日期201一、设计目的1.融会贯通教材各章的内容,通过知识的综合运用,加深对基本接口芯片的工作原理及与CPU互连的认识,以进一步掌握常见接口的用法。2.学习设计和调试嵌入式系统开发的基本步骤和方法,培养科学研究的独立工作能力,取得工程设计和调试的实践和经验。二、设计环境PC机一台(Windows操作系统并安装ADT2000),JXARM9-2410-1实验箱及配件一套。二、设计任务1)时钟显示功能,能够以十进制显示“时”、“分”、“秒”。2)具有调节时、分、秒的功能。3)整点自动报时
2、,在整点时,便自动发出鸣叫声,时长1s。三、设计内容1.硬件电路原理图一个具有计时、调时、报时、显示等基本功能的数字钟主要由振荡器、分频器、计数器、译码器、显示器、校时电路、报时电路等七部分组成。振荡器产生的信号经过分频器得到秒脉冲,秒脉冲送入计数器计数,计数结果通过“时”、“分”、“秒”译码器译码,并通过显示器显示时间。整体逻辑框图如下:硬件电路图如下:2012012.程序流程图及代码主程序开始定时器初始化是否有调节定时显示时间显示时、分、秒noyes闹铃按1按2按3暂停并调节分暂停并调节时响铃提示暂停并调节秒显示调节后的时间
3、响铃结束正常显示时间201关中断、保护现场秒单元内容加1到1分钟否?秒单元内容清零分单元内容加1分单元内容清零时单元内容加1时单元内容清零恢复现场开中断到1小时否?到24小时否?中断返回程序如下:#include"def.h"#include"2410lib.h"#include"option.h"#include"2410addr.h"#include"interrupt.h"unsignedcharsegtable[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
4、};201voidDelay0(inttime){inti;intdelayLoopCount=1000;for(;time>0;time--);for(i=0;i5、_date;intled_index=0;intext0_count=0;voidrtc_tick_isr(void)__attribute__((interrupt("IRQ")));;voidrtc_int_isr(void)__attribute__((interrupt("IRQ")));;voidrtc_set_date(st_date*p_date){rRTCCON=0x01;rBCDYEAR=p_date->year;rBCDMON=p_date->mon;rBCDDAY=p_date->day;rBCDDATE=6、p_date->week_day;rBCDHOUR=p_date->hour;rBCDMIN=p_date->min;rBCDSEC=p_date->sec;rRTCCON=0x00;}voidrtc_get_date(st_date*p_date){rRTCCON=0x01;p_date->year=rBCDYEAR;p_date->mon=rBCDMON;p_date->day=rBCDDAY;p_date->week_day=rBCDDATE;p_date->hour=rBCDHOUR;p_date->min=rBCDMI7、N;p_date->sec=rBCDSEC;rRTCCON=0x00;}voidrtc_tick_init(chartick){Irq_Request(IRQ_TICK,rtc_tick_isr);rRTCCON=0x0;//Noreset[3],MergeBCDcounters[2],BCDclockselectXTAL[1],RTCControldisable[0]rTICNT=(tick&0x7f)8、0x80;/*TICK中断使能,周期为(1+tick)/128秒*/201Irq_Enable(IRQ_TICK);}voi9、drtc_alarm_set(st_date*p_date,unsignedcharmode){Irq_Request(IRQ_RTC,rtc_int_isr);rRTCCON=0x01;rALMYEAR=p_date->year;rALMMON=p_date-
5、_date;intled_index=0;intext0_count=0;voidrtc_tick_isr(void)__attribute__((interrupt("IRQ")));;voidrtc_int_isr(void)__attribute__((interrupt("IRQ")));;voidrtc_set_date(st_date*p_date){rRTCCON=0x01;rBCDYEAR=p_date->year;rBCDMON=p_date->mon;rBCDDAY=p_date->day;rBCDDATE=
6、p_date->week_day;rBCDHOUR=p_date->hour;rBCDMIN=p_date->min;rBCDSEC=p_date->sec;rRTCCON=0x00;}voidrtc_get_date(st_date*p_date){rRTCCON=0x01;p_date->year=rBCDYEAR;p_date->mon=rBCDMON;p_date->day=rBCDDAY;p_date->week_day=rBCDDATE;p_date->hour=rBCDHOUR;p_date->min=rBCDMI
7、N;p_date->sec=rBCDSEC;rRTCCON=0x00;}voidrtc_tick_init(chartick){Irq_Request(IRQ_TICK,rtc_tick_isr);rRTCCON=0x0;//Noreset[3],MergeBCDcounters[2],BCDclockselectXTAL[1],RTCControldisable[0]rTICNT=(tick&0x7f)
8、0x80;/*TICK中断使能,周期为(1+tick)/128秒*/201Irq_Enable(IRQ_TICK);}voi
9、drtc_alarm_set(st_date*p_date,unsignedcharmode){Irq_Request(IRQ_RTC,rtc_int_isr);rRTCCON=0x01;rALMYEAR=p_date->year;rALMMON=p_date-
此文档下载收益归作者所有