四川大学网络教育学院 计算机综合实践报告(全部5个实验)(4)

2019-01-26 21:43

四川大学网络教育学院计算机综合实践报告 2012年秋电气专业罗欢潮

学习使用LPC2148的内部定时器以及RTC模块;自行编程实现利用RTC模块在串口调试助手上显示当前时间,自行编程实现利用定时器模块在串口调试助手上显示9-0的倒计时,间隔1S 三、实验原理:

1、定时器模块:对TOTC设置,即设置定时器的值,TOPR,设置预分频值,TOMCR设置匹配模式,复位并中断,TOMR,设置匹配值,TOTCR,启动寄存器。

2、RTC模块。设置RTC基准时钟分频器。初始化RTC时钟值,如year,month。报警中断设置,如CIIR,AMR等。启动RTC,即CCR的CLKKEN位置位。读取完整时间寄存器值或等待中断。 四、实验步骤:

1.在D:\\ARM7_Tool\\Debug_Tool\\R340安装RTC驱动; 2.打开对应的IAR工作空间RS232_SMG;

3.修改主程序使其达到实验内容的要求并仿真直至程序无误; 4.将程序烧入试验箱中,运行;

5.打开D:\\ARM7_Tool\\Debug_Tool\\串口调试助手V2.2

6.我的电脑-管理-设备管理器-端口(com和lpt)-观测串口号com4,修改串口调试助手对应的串口号,选择十六进制发送,手动发送。 五、实验程序: RTC实时时钟:

#include\#include #include

四川大学网络教育学院计算机综合实践报告 2012年秋电气专业罗欢潮

#define UART_BPS 9600

uint8 strymd[16]=\ uint8 strhms[16]=\void DelayNS(uint32 dly){ uint32 i;

for(;dly>0;dly--); for(i=0;i<5000;i++); }

void UART0_Ini(void){ U0LCR = 0x83; U0DLM = 0x00; U0DLL = 0x14; U0LCR = 0x03; }

void UART0_SendByte(uint8 data) {

U0THR = data;

while((U0LSR & 0x40) == 0); }

uint8 UART0_RcvByte(viod){ uint8 rcv_data; while((U0LSR&0x01)==0); rcv_data = U0RBR;

四川大学网络教育学院计算机综合实践报告 2012年秋电气专业罗欢潮

return rcv_data; }

void UART0_SendStr(uint8 const *str){ while(1){

if(*str == '\\0')break; UART0_SendByte(*str++); } }

void RTCIni(void){ PREINT = 95; PREFRAC = 0; YEAR = 2005; MONTH = 6; DOM = 10; HOUR = 8; MIN = 30; SEC = 0; CIIR = 0x01; CCR = 0x01; }

struct DATE{ uint16 year; uint8 mon;

uint8 day; // uint8 dow;

四川大学网络教育学院计算机综合实践报告 2012年秋电气专业罗欢潮

};

struct TIME{ uint8 hour; uint8 min; uint8 sec; } ;

void GetTime(struct DATE *d,struct TIME *t){ d->year = YEAR; d->mon = MONTH; d->day = DOM; t->hour = HOUR; t->min = MIN; t->sec = SEC; }

void timefuz(struct DATE *d,struct TIME *t){ strymd[0]=d->year/1000+'0'; strymd[1]=d->year/100+'0'; strymd[2]=d->year/10+'0'; strymd[3]=d->year+'0'; strymd[5]=d->mon/10+'0'; strymd[6]=d->mon+'0'; strymd[8]=d->day/10+'0'; strymd[9]=d->day+'0';

四川大学网络教育学院计算机综合实践报告 2012年秋电气专业罗欢潮

strhms[0]=t->hour/10+'0'; strhms[1]=t->hour+'0'; strhms[3]=t->min/10+'0'; strhms[4]=t->min+'0'; strhms[6]=t->sec/10+'0'; strhms[7]=t->sec+'0';} int main(void){ RTCIni(); struct DATE *d; struct TIME *t ;

d = (struct DATE*)malloc(sizeof(struct DATE)); t = (struct TIME*)malloc(sizeof(struct TIME)); while(1){

while((T0IR & 0x01) == 0); T0IR = 0x01; GetTime(d,t); timefuz(d,t);

UART0_SendStr(strymd); UART0_SendStr(strhms); } free(d); free(t); return 0;} TIMR 显示0-10秒


四川大学网络教育学院 计算机综合实践报告(全部5个实验)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:职业教育教师演讲稿

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

马上注册会员

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