版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课时授课计划课题(章节名称)RTC实时时钟实验时间2011年4月27日星期35,6节、教学目的与要求1、了解RTC实时时钟特性、功能、结构2、了解RTC实时时钟寄存器描述3、了解RTC中断4、完整时间寄存器5、时间计数器组6、报警寄存器7、基准时钟分频教学重点RTC中断、完整时间寄存器教学难点基准时钟分频教学方法练习教学时数2课外作业主要内容时间分配1.例一练习2.例二练习5050课后小结实验一:/********************************************************************************File:Main.c*功能:利用RTC的增量功能进行1s的定时,当定时时间到,取反LED控制*******************************************************************************/#include"config.h"#defineLED1CON0x00000400/*P0.10口为LED1控制器*//*定义Fpclk值,用于设置串口波特率*/#defineFPCLK3686250L/********************************************************************************名称:RTCIni()*功能:初始化实时时钟*******************************************************************************/voidRTCIni(void){PREINT=FPCLK/32768-1;//设置预分频器PREFRAC=FPCLK-(FPCLK/32768)*32768;YEAR=2005;//初始化年MONTH=6;//初始化月DOM=10;//初始化日CIIR=0x01;//设置秒值的增量产生一次中断CCR=0x01;//启动RTC}/********************************************************************************名称:main()*功能:使用RTC的秒增量中断功能控制LED闪动*******************************************************************************/intmain(void){PINSEL0=0x00000000;//引脚连接设置PINSEL1=0x00000000;IODIR=LED1CON;RTCIni();//初始化RTCwhile(1){IOSET=LED1CON;//熄灭LED1while(0==(ILR&0x01));//等待RTC增量中断标志ILR=0x01;//清除中断标志IOCLR=LED1CON;//点亮LED1while(0==(ILR&0x01));ILR=0x01;}return(0);}实验二:向LCD输出计数值/********************************************************************************File:main.c*功能:运行RTC进行计时,并将所计时间值不断地通过串口向上位机发送*******************************************************************************/#include"config.h"#defineLED1CON0x00000400/*P0.10口为LED1控制端*//*定义Fpclk值,用于设置串口波特率*/#defineFPCLK2764800L/*定义串口模式设置数据结构*/typedefstructUartMode{uint8datab;//字长度,5/6/7/8uint8stopb;//停止位,1/2uint8parity;//奇偶校验位,0为无校验,1为奇数校验,2为偶数校验}UARTMODE;uint8send_buf[16];//UART0数据接收缓冲区/********************************************************************************名称:UART0_Ini()*功能:初始化串口0。设置其工作模式及波特率*入口参数:baud波特率*set模式设置(UARTMODE数据结构)*出口参数:返回值为1时表示初始化成功,为0时表示参数出错*******************************************************************************/uint8UART0_Ini(uint32baud,UARTMODEset){uint32bak;/*参数过滤*/if((0==baud)||(baud>115200))return(0);if((set.datab<5)||(set.datab>8))return(0);if((0==set.stopb)||(set.stopb>2))return(0);if(set.parity>4)return(0);/*设置串口波特率*/U0LCR=0x80;//DLAB位置1bak=(FPCLK>>4)/baud;U0DLM=bak>>8;U0DLL=bak&0xff;/*设置串口模式*/bak=set.datab-5;//设置字长度if(2==set.stopb)bak|=0x04;//判断是否为2位停止位if(0!=set.parity){set.parity=set.parity-1;bak|=0x08;}bak|=set.parity<<4;//设置奇偶校验U0LCR=bak;return(1);}/********************************************************************************名称:SendByte()*功能:向串口发送字节数据,并等待发送完毕*******************************************************************************/voidSendByte(uint8data){U0THR=data;//发送数据while((U0LSR&0x20)==0);//等待数据发送}/********************************************************************************名称:ISendBuf()*功能:将缓冲区的数据发送回主机*入口参数:buf数据缓冲区*no发送数据的个数*出口参数:无*******************************************************************************/voidISendBuf(uint8const*buf,uint8no){uint8i;for(i=0;i<no;i++)SendByte(buf[i]);}/********************************************************************************名称:SendTimeRtc()*功能:读取RTC的时间值,并将读出的时分秒值由串口发送到上位机显示*******************************************************************************/voidSendTimeRtc(void){uint8constMESSAGE[]="RTCTimeis:";uint32times;uint8bak;times=CTIME0;//读取完整时钟寄存器0bak=(times>>16)&0x1F;//取得时的值send_buf[0]=bak/10+'0';send_buf[1]=bak%10+'0';send_buf[2]=':';bak=(times>>8)&0x3F;//取得分的值send_buf[3]=bak/10+'0';send_buf[4]=bak%10+'0';send_buf[5]=':';bak=times&0x3F;//取得秒的值send_buf[6]=bak/10+'0';send_buf[7]=bak%10+'0';send_buf[8]='\n';ISendBuf(MESSAGE,14);//发送数据ISendBuf(send_buf,9);}/********************************************************************************名称:RTCIni()*功能:初始化实时时钟*******************************************************************************/voidRTCIni(void){PREINT=FPCLK/32768-1;//设置预分频器PREFRAC=FPCLK-(FPCLK/32768)*32768;YEAR=2005;//初始化年MONTH=6;//初始化月DOM=10;//初始化日HOUR=8;MIN=30;SEC=0;CIIR=0x01;//设置秒值的增量产生一次中断CCR=0x01;//启动RTC}/********************************************************************************名称:main()*功能:读取实时时钟的值,并从串口发送出去*******************************************************************************/intmain(void){UARTMODEuart0_set;PINSEL0=0x00000005;//设置I/O连接到UART0PINSEL1=0x00000000;IODIR=LED1CON;//设置LED1控制口为输出,其它I/O为输入uart0_set.datab=8;//8位数据位uart0_set.stopb=1;//1位停止位uart0_set.parity=0;//无奇偶校验位UART0_Ini(9600,uart0_set);//初始化串口模式U0FCR=0x01;//使能FIFORTCIni();//
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/SILA 012-2023家居照明光健康规范
- T/SAME 001-2022临床实验室II级生物安全柜管理要求
- T/CES 316-2024光伏电站能量流测试技术规范
- T/CHSA 104-2025咬合板治疗颞下颌关节紊乱病的专家共识
- T/CSTEA 00027-2021大田美人茶
- T/SRMA 40.3-2026基于国际功能、残疾和健康分类的结构化康复病历书写指南 第3部分:帕金森
- 2025~2026学年河北省邢台市任泽区骆庄学区小学联考冀教版三年级上册12月月考数学试卷【附答案】
- 2027届河南省鲁山、舞钢九年级数学第一学期期末学业质量监测模拟试题含解析
- 车间级日常安全管理实务培训
- Photoshop 7.0 试题汇编及详细答案
- 小学道德与法治新部编版六年级上册全册知识点填空练习(2026秋)
- 孕产妇高危五色管理医学培训
- 2026年城区第二小学阳光招生工作专项整治自查报告
- 新版预防未成年人犯罪法知识竞赛题库及答案详解
- 2026年市政工程质量员专业技能考试必考题库与答案
- 2026年医学科研诚信与伦理课件
- 2026年储能系统(充放电控制)试题及答案
- 2026赤峰市妇幼保健院招聘40名控制数专业技术人员笔试模拟试题及答案详解
- 山东省2027综合评价招生《综合素质测评》模拟试卷C卷
- 2025手术室护理质量敏感指标
- 智慧工地项目数据台账管理手册
评论
0/150
提交评论