日历时钟电路与例程
更新时间:2024-01-25 06:34:01 阅读量: 教育文库 文档下载
- 电子日历时钟推荐度:
- 相关推荐
18.5 日历时钟电路与例程
当编程日历时钟时,必须使用频率准确稳定的辅助振荡器,将32.768KHZ的晶体振荡器连接到芯片的SOSCI和SOSCO引脚上,见图18-2所示,不在增加其他的电路。
图18-2: 日历时钟晶体振荡器电路
本节描述了在微芯PIC32MX220F032B型芯片上的日历时钟程序示例。示例中利用实时时钟模块,用中断方式产生半秒中断信号,以此启动LED数码管显示RTCC模块的当前时间。
适用范围:本节所描述的代码适用于PIC32MX220F032B型芯片(28 引脚SOIC封装),对于其他型号或封装的芯片,未经测试,不确定其可用性。
表18-1 SPI引脚选择硬件配置表 序号 功能符号 引脚号 复用端口选择指定功能所用代码 说明 1 2 3 SCK2 SDO2 SLCK 26 17 18 由SPI模块自动选择(SCK2只能选这个引脚) SPI数据时钟 PPSOutput(2, RPB8, SDO2) SPI数据输出 PORTSetPinsDigitalOut(IOPORT_B, BIT_9) 外部移位寄存器数据锁存 七段数码管显示模块如图18-3所示,采用PIC32MX的SPI口传送数据,并通过74HC595芯片驱动七段数码管进行显示。
图18-3:3.3V输出电平转换到5V输入电平的转换电路及LED七段数码管驱动电路
开始系统时钟初始化否SPI初始化报警已使能?是RTCC初始化配置RTCC中断等待时钟源稳定led_flag>0?是否设置RTCC日期时间led_flag=0配置中断模式读RTCC时间使能中断显示时间设置报警时间使能报警
图18-4 主函数流程框图
1、主函数例程(程序流程框图见图18-4所示) int main(void) {
rtccTime tAlrm; // 时间结构体变量 rtccDate dAlrm; // 日期结构体变量 //系统初始化
SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE); SpiInitDevice();
//初始化RTCC模块 RtccInit();
//等待辅助振荡器启动及RTCC时钟源稳定 while (RtccGetClkStat() != RTCC_CLK_ON); //设置时间,日期
//第一个变量为时间:用UINT32表示,由高到低的4个字节依次表示:小时,分钟,秒钟,保留 //其中,保留值必须设置为0.下例中0x0D000000表示:12:00:00
//第二个变量未日期:用UINT32表示,由高到低的4个字节依次表示:年,月,日,星期
//下例中0x0D010102表示:2013-01-01,星期二 RtccOpen(0x0D000000, 0x0D010102, 0); //配置中断模式
INTConfigureSystem(INT_SYSTEM_CONFIG_MULT_VECTOR); //使能中断
INTEnableInterrupts();
//设置报警时间 do {
RtccGetTimeDate(&tm, &dt); } while ((tm.sec & 0xf) > 0x7);
tAlrm.l = tm.l; dAlrm.l = dt.l;
//允许连续报警 RtccChimeEnable(); //报警次数计数器清零 RtccSetAlarmRptCount(0);
//设置报警间隔:每个0.5s
RtccSetAlarmRpt(RTCC_RPT_HALF_SEC); //设置报警时间
RtccSetAlarmTimeDate(tAlrm.l, dAlrm.l); //使能报警
RtccAlarmEnable();
//报警已使能?
if (RtccGetAlarmEnable()) {
//设置RTCC中断、使能中断
INTSetVectorPriority(INT_RTCC_VECTOR, INT_PRIORITY_LEVEL_4);
INTSetVectorSubPriority(INT_RTCC_VECTOR, INT_SUB_PRIORITY_LEVEL_1); INTEnable(INT_RTCC, INT_ENABLED); }
//主循环 while(1) {
if(led_flag > 0) {
led_flag = 0;
RtccGetTimeDate(&tm, &dt); Led(); } }
return 1; }
开始清中断标志翻转秒小数点标志置位数码管输出标志 图18-5 RTCC中断函数流程框图
2、RTCC中断函数例程(程序流程框图见图18-5所示) void __ISR(_RTCC_VECTOR, ipl4) RtccIsr(void) { //清中断标志
INTClearFlag(INT_RTCC);
//翻转秒小数点,用来指示秒钟的变化 point=~point;
//数码管输出计数器:每0.5秒输出一次 led_flag = 1; }
结束
附件:代码
/*
* File: rctt.c
* 实时时钟示例:利用实时时钟模块,实现24小时实时时钟显示 * 程序起始时间为:2013-01-01 00:00:00
* 利用SPI驱动的4个8段数码管显示时间(仅显示分钟:秒钟) */
#include
// Configuration Bit settings
// SYSCLK = 48 MHz (8MHz Crystal / FPLLIDIV * FPLLMUL / FPLLODIV) // PBCLK = 48 MHz (SYSCLK / FPBDIV) // Primary Osc w/PLL (XT+,HS+,EC+PLL) // WDT OFF
#pragma config FPLLMUL = MUL_24, FPLLIDIV = DIV_2, FPLLODIV = DIV_2, FWDTEN = OFF #pragma config POSCMOD = HS, FNOSC = PRIPLL, FPBDIV = DIV_1 #define SYS_FREQ (48000000L)
#pragma config JTAGEN = OFF //JTAG disable
unsigned int led_flag=1,point=0;
rtccTime tm; // 时间结构体变量 rtccDate dt; // 日期结构体变量
//8段LED数码管字库:0~9 0.~9.FSEt-yno
unsigned char Led_lib[] = {0x42, 0xf3, 0x86, 0xa2, 0x33, 0x2a, 0x0a, 0xf2, 0x02, 0x22, 0x40, 0xf1, 0x84, 0xa0, 0x31, 0x28, 0x08, 0xf0, 0x00, 0x20, 0x1e, 0x0e, 0x0f, 0xbf, 0x23, 0x9b, 0x8b}; //小LED字库 /*-------LED段码分布图------ ---0--- | | 7 3 | | ---6--- | | 5 2 | | ---4--- 1 ----------------------------*/ /*
* SPI 初始化函数 */
void SpiInitDevice() {
// SPI标志位
SpiOpenFlags oFlags = SPI_OPEN_MSTEN | SPI_OPEN_CKP_HIGH | SPI_OPEN_MODE8 | SPI_OPEN_ON; //输出锁存信号引脚
正在阅读:
日历时钟电路与例程01-25
《伯牙善鼓琴》导学案09-18
_2009_10_27_云山酒店项目前期策划报告161036131708-15
中国资本市场发展中存在的问题分析知识讲解04-16
三年级下册美术教案-第1课 古老的交通工具|岭南版05-10
第三章劳动合同的履行和变更05-20
电大《农村政策法规》(题库+答案)03-03
Routing Algorithms for IBM SP105-18
2011年辽宁专升本考试真题-C语言部分01-27
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 时钟
- 电路
- 日历
- ORACLE - CMD命令(最全的)
- 人教b版选修2-21.函数y=x2ln x的导数为()
- 律师法与律师实务第二套作业(活动2~3)
- 福建施工图审查机构审查人员名单
- 新编小学六年级第一学期体育与健康课时教案
- 家庭社会学复习题题库
- 文献综述2
- 实验三数字图像分割处理
- 生态文明建设考试题及参考答案
- EDA仿真作业题及要求-201503
- 年改装500台商务房车改装系列产品项目可行性研究报告 - 图文
- 2013年红河州公务员招考考生参考报名指南
- 2019高考物理(人教)一轮编练习题(5)含答案
- 国内21个主要城市29家商场服装品牌销售
- 是美男啊word剧本01
- 2016-2017化工石油专业继续教育考题答案95分
- 板块六 专题二 新闻、访谈 跟踪限时检测
- Internet环境中远程教学系统的网络安全问题研究
- 金丰苹果项目文本
- 开展中职学校教育评估,促进教学管理的科学规范