嵌入式系统试卷A(07).doc_第1页
嵌入式系统试卷A(07).doc_第2页
嵌入式系统试卷A(07).doc_第3页
嵌入式系统试卷A(07).doc_第4页
嵌入式系统试卷A(07).doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京工业大学 嵌入式系统设计 试题(A)卷(闭) 2010-2011 学年第 一 学期 使用班级 测控0701-02班级 学号 姓名题号一(20分)二(20分)三(60分)总分得分一、 选择题(每题2分,共20分)1. 下列说法正确的是:( )ALPC2131是8位的单片机。BLPC2131是16位的单片机。CLPC2131基于ARM7,使用了三级流水线结构。DLPC2131基于ARM10,使用了五级流水线结构。2. 下列说法正确的是:( )ALPC2131的串行口含有FIFO。BLPC2131没有串行口。CLPC2131的任何引脚均可以作为串行口。DLPC2131的任何IO口均可以作为串行口。3. LPC2131中断优先级别最高的是( )。AFIQ B向量IRQC非向量IRQ D串行中断4. 以下哪个操作系统不能移植在LPC2131中。( )AuC/OS-I BuC/OS-II CuC/Linux Dwin20005. 在C51编程环境下,“unsigned int temp ;” 语句定义了一个16位无符号变量,而在MDK(ARM)编程环境下,该语句定义的是: ( )。A32位无符号变量 B32位有符号变量 C32位浮点变量 D仍然是16位无符号变量6. 下面哪种设备对于LPC2131来说是输出设备。( )A气体检测器 B 温度传感器 C键盘 D发光二极管7. LPC2131共有( )个通用IO引脚。 A2 B47 C100 D655368. 以下哪种操作模式不能直接修改程序状态寄存器( )。A管理模式 B中断模式 C用户模式 D系统模式9. 为保证键扫描的正确,需要进行去抖动处理,当采用软件去抖动时,通常采用的延时时间为( )。 A1030毫秒 B 13秒 C1030秒 D13分钟10. LPC2131的主频最大为( )A11.0592MHz B60MHz C32.768KHz D3.4GHz 二、 程序分析题(每空1分,共40分)1. 以下是LPC2131在ucos操作系统下实现可调时电子钟功能主程序代码。(ucos代码忽略),请补充完整。#include includes.h_#defineFOSC 12000000 _TaskStkLengh60 OS_EVENT *sem;INT8U error = OS_NO_ERR;enum KEY_NONOKEY, KEY_UP, KEY_DOWN,KEY_ENTER,KeyNo; _ SHOW_STATE SHOW_NORMAL, SHOW_SEC_ADJ, SHOW_MIN_ADJ, _,ShowState;enum LED_GOOUT = 10,; _ Task0Stk _;OS_STKTaskKeyStk TaskStkLengh;OS_STKTaskShowStk TaskStkLengh; OS_STK_ TaskStkLengh;INT8U Hour = 0;INT8U Minute = 0;INT8U _ = 0;INT8U LEDBuffer6 = 0,0,0,0,0,0;const _ LEDMAP = _,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,;void Timer0_Init(void);void Task0(void *pdata);void TaskKey(void *pdata); void TaskShow(void *pdata); void TaskDisplay(_); INT8U GetKey(void);void ShowNormal(void);void ShowSecondAdj(void);void ShowMinuteAdj(void);void ShowHourAdj(void);extern void Timer0_Handler(void); int _ (void)OSInit ();sem = OSSemCreate(0); OSTaskCreate (Task0,(void *)0, &Task0StkTaskStkLengh - 1, 3);OSStart ();return 0;void Task0(void *pdata)Timer0_Init();OSTaskCreate (_,(void *)0, &TaskKeyStkTaskStkLengh - 1, 4);_ (TaskShow,(void *)0, &TaskShowStkTaskStkLengh - 1, 5);OSTaskCreate (TaskDisplay,(void *)0, &TaskDisplayStkTaskStkLengh - 1, 6);ShowNormal();_ = SHOW_NORMAL; while (1)_ (100);if(ShowState = SHOW_NORMAL)_+;if(Second = 60)Second = 0;Minute+;if(Minute = 60)Minute = 0;Hour+;if(Hour = 24)_ = 0;ShowNormal(); void TaskShow(void *pdata) while(1)OSSemPend(sem, 0, &error);if(KeyNo)_ (ShowState)case _:if(KeyNo = KEY_ENTER)ShowState = SHOW_SEC_ADJ;ShowSecondAdj(); break;case SHOW_SEC_ADJ:switch(KeyNo)case _:ShowState = SHOW_MIN_ADJ;ShowMinuteAdj();break;case KEY_UP:Second+;if(60 = Second)Second = 0;ShowSecondAdj();break;case KEY_DOWN:if(0 = Second)Second = _;elseSecond-; ShowSecondAdj();break;break;case _:switch(KeyNo)case KEY_ENTER:ShowState = SHOW_HOUR_ADJ;ShowHourAdj();break;case KEY_UP:Minute+;if(60 = Minute)Minute = 0;ShowMinuteAdj();_;case KEY_DOWN:if(0 = Minute)Minute = 59;elseMinute-;ShowMinuteAdj();break;break;case SHOW_HOUR_ADJ:switch(KeyNo)case KEY_ENTER:ShowState = SHOW_NORMAL;_;break;case _:Hour+;if(24 = Hour)Hour = 0;ShowHourAdj();break;case KEY_DOWN:if(0 = Hour)Hour = 23;elseHour-;ShowHourAdj();_;break; void TaskDisplay(void *pdata)INT8U i;INT16U j;INT32U outbit;_ = 0x00003fff;/设置GPIO的方向while (1)outbit = 1;for(i=0;i6;i+)IO0CLR = 0x0000ff00;IO0SET = LEDMAPLEDBufferi;IO0CLR = _ LEDBufferi;_ = outbit 8;IO0CLR = (outbit 8) & 0x00ff00;for(j=0;j5000;j+);_ = 1;void TaskKey(void *pdata) INT8U _;while(1)getkey = _ ();if(getkey)KeyNo = getkey;OSSemPost(sem);OSTimeDly(1); void Timer0_Init(void) OS_ENTER_CRITICAL(); VICIntEnClr = 0xffffffff; T0TC = 0; T0PR = 0; T0MCR = 0X03; T0MR0 = FOSC * 5 / 4 / OS_TICKS_PER_SEC; T0TCR = 0x01; VICVectCntl0 = 0x20 | 0x04;VICVectAddr0 = (unsigned int) Timer0_Handler;VICIntEnable = 1 0x04; _ (); void Timer0_Exception(void) T0IR = 0x01; VICVectAddr = 0; OSTimeTick(); INT8U GetKey(void)INT8U key;if( IO0PIN & (7 16)OSTimeDly(2);if( IO0PIN & (1 16)key = 1;else if( IO0PIN & (_)key = 2;else if( IO0PIN & (1 18)key = 3;elsereturn(0);while(IO0PIN & (7 16)OSTimeDly(1); return(key);_ (0); void ShowNormal(void) _ 5 = Second % 10;LEDBuffer4 = Second / 10;LEDBuffer3 = Minute % 10;LEDBuffer2 = Minute / 10;LEDBuffer1 = Hour % 10;LEDBuffer0 = Hour / 10;void ShowSecondAdj(void) LEDBuffer_ = Second % 10;LEDBuffer4 = Second / 10;LEDBuffer3 = LED_GOOUT;LEDBuffer2 = LED_GOOUT;LEDBuffer1 = LED_GOOUT;LEDBuffer0 = LED_GOOUT;void ShowMinuteAdj(void)LEDBuffer5 = _;LEDBuffer4 = LED_GOOUT;LEDBuffer3 = Minute % 10;LEDBuffer2 = Minute / 10;LEDBuffer1 = LED_GOOUT;LEDBuffer0 = LED_GOOUT; void ShowHourAdj(void)LEDBuffer5 = LED_GOOUT;LEDBuffer4 = LED_GOOUT;LEDBuffer3 = LED_GOOUT;LEDBuffe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论