嵌入式系统原理及应用课程设计Word文档格式.docx
- 文档编号:15959363
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:14
- 大小:173.46KB
嵌入式系统原理及应用课程设计Word文档格式.docx
《嵌入式系统原理及应用课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《嵌入式系统原理及应用课程设计Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
优良中及格不及格
2012年2月25日
•课程设计目的
通过该课程设计将嵌入式系统原理及应用课程中所学的处理器和接口等技术应用于实际设计中。
通过中断、PWM定时器、串口、SIO、GPIO等技术在实验平台上进行综合设计,在理论和实验的基础上进一步提高综合设计能力。
二.课程设计内容及功能要求
1.通过一个PWM定时计数器,采用定时中断的功能,设计能够在LED上进行时分秒显示的时钟;
2.通过键盘实现对钟的功能;
3.实现闹钟的功能,闹钟的时间由键盘输入进行设定;
4.将时钟在超级终端上显示;
时间的设定可以通过超级终端实现;
三•功能实现
1.总体功能框图
开始
设置中断
2.详细设计:
(将所设计的各部分的功能程序框图及相关程序代码进行
详细的描述)
1.
#include"
uhal.h"
#include"
myuart.h"
KeyBoard.h"
Timer.h"
lsr.h"
44b.h"
#include"
Zlg7289.h"
def.h"
#include"
lcd320.h"
intTimer3INTCount=0;
inthour=0;
intminute=0;
#pragmaimport__use_no_semihosting_swi)//ensurenofunctionsthatusesemihostingintmain(void)
{
intclock_h=23;
intclock_m=59;
intclock_s=0;
intkey;
intval=0;
ARMTargetInit();
//开发版初始化
Zlg7289_Reset();
Init_Timer3(100,16,40000,20000);
INTS_OFF();
//DisableinterruptinPSR
SetlSR」nterrupt(INT_TIMER3_OFFSET,Timer3_ISR,0);
Open_INT_GLOBAL();
Open_INT(BIT_TIMER3);
INTS_ON();
//EnableinterruptinPSR
Start_Timer3();
Uart_Printf("
\n"
);
LCD」nit();
LCD_ChangeMode(DspTxtMode);
//转换LCD显示模式为文本显示模式
while
(1)
//延时让数码管频率显示可见。
Delay(1000);
Timer3INTCount=Timer3INTCount+1;
if(Timer3INTCount>
59)
Timer3INTCount=0;
}
if(key==10)//秒设置,键盘2按下时扫描值为10
//延时让数码管频率显示可见。
//分钟加一
〃分钟大于59时清零
//秒清零
//原理同分钟
minute=minute+1;
if(minute>
59)minute=0;
//Timer3INTCount=0;
}
if(key==2)
hour=hour+1;
if(hour>
23)
hour=0;
Delay(IOOO);
LED_Display(Timer3INTCount,minute,hour);
//在数码管显示时分
秒
%d:
%d\n"
hour,minute,Timer3INTCount);
〃在超级终端显示时
分秒
闹钟设^置***************
〃原理参照对钟设置
//闹钟设^置*************闹钟设^置****************
elseif(key==1key==9|key==17)
if(key==1)
clock_h=clock_h+1;
if(clock_h>
clock_h=0;
if(key==9)
clock_m=clock_m+1;
if(clock_m>
59)
clock_m=0;
if(key==17)
LED_Display(clock_s,clock_m,clock_h);
hour,minute,Timer3INTCount);
else;
//Start_Timer3();
while(hour==clock_h&
minute==clock_m&
key!
=1&
key!
=9&
=17&
=2&
=10&
=18)//闹钟时间到且闹钟启动时,进入下面的
闹钟显示
//Uart_Printf("
timeisover!
getingupnow!
!
\n"
LCD_printf("
getingupnow!
//Uart_Printf("
\r%d"
rTCNTO3);
Delay(1000);
2.
#inelude"
ZLG7289.h"
externTimer3INTCount,hour,minute;
voidInit_Timer3(U8prescaler1,U8divider3,U16countb3,U16compb3){U8div;
switch(divider3)
{case2:
div=0x00;
break;
case4:
div=0x01;
case8:
div=0x02;
case16:
div=0x03;
default:
〃prescaler1isfortimer2&
3〃Fre(Timer)=MCLK/(prescaler+1)/dividerrTCFGO&
=~(0xff<
<
8);
rTCFG0|=(prescaler1<
//Allinterrupt,selectMUXinputforTimerNrTCFG1&
=~(0x0f<
24|0x0f<
12);
rTCFG1|=(div<
rTCMPB3=compb3;
rTCNTB3=countb3;
rTCON|=(0x01<
19);
//Autoreload
voidStart_Timer3(void)
{rTCON|=(OxO1<
17);
//ManualUpdate
rTCON&
=~(0x01<
18);
//lnverteroffrTCON|=(OxO1<
16);
//StartTimer3
//MustclearManualupdatebit}
voidStop_Timer3(void)
{rTCON&
//StopTimer3
voidTimer3_ISR(void)
Timer3INTCount++;
if(Timer3INTCount>
59)//秒累加到59时清零
Timer3INTCount=O;
minute=minute+1;
if(minute>
59)//分钟累加到59时清零
minute=0;
if(hour>
23)〃小时累加到23时清零
hour=0;
//LED_Display(Timer3INTCount,minute,hour);
Timer3INTCount);
3.
zlg7289.h"
intZlg7289SIOBand;
intZlg7289SIOCtrl;
voidZlg7289_Reset()
ZLG7289_ENABLE();
WriteSDIO(ZLG7289_CMD_RST);
ZLG7289_DISABLE();
Delay(20);
unsignedintZlg7289_ReadKey()
unsigned
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 原理 应用 课程设计