
试题标准答案
2010--2011学年第 一 学期 使用班级 测控0701-02
一、 选择题(每题2分,共20分)
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| C | A | A | D | A | D | B | C | A | B |
1.#include 2.#define 3.enum 4.SHOW_HOUR_ADJ 5.OS_STK 6. TaskStkLengh 7.TaskDisplayStk 8.Second 9.unsigned char 10. 0xc0 11.void *pdata 12.main 13.TaskKey 14.OSTaskCreate 15.ShowState 16. Second 17.Hour 18.switch 19.SHOW_NORMAL 20.KEY_ENTER 21.59 22.SHOW_MIN_ADJ 23.break; 24.ShowNormal() 25.KEY_UP 26. break 27.IO0DIR 28.LEDMAP 29.IO0SET 30.outbit 31.getkey 32.OS_EXIT_CRITICAL 33.1 << 17 34.return 35.LEDBuffer 36. 5 37.LED_GOOUT 38.switch 39.SHOW_NORMAL 40.Hour / 10
三、 编程题(共60分)
1.答案要点:
硬件图( 6分)
程序(14分)
#include void Delay(unsigned int t); main() { IO0DIR = 0X00000080; //设置GPIO的方向 while (1) { IO0SET = 0X00000080; //LED灭 1置位;0不变 Delay(50); IO0CLR = 0X00000080; //LED亮 1清零;0不变 Delay(10); } } //------------------------------------------------------------------------------ // 延时函数 //------------------------------------------------------------------------------ void Delay(unsigned int t) { unsigned int i; for ( ; t > 0; t--) for (i = 60000; i > 0; i--); } 2.答案要点: 硬件图( 6分) 程序(14分) #include unsigned char shift; void __irq XInt0(); main(void) { IO0DIR = 1<<7; //将P0_7设为输出口 PINSEL0 = 0x0c; //将引脚P0_1设为外部中断0输入引脚;(见P109表3.51和表3.52) EXTMODE = 0X01; //将外部中断0设为边沿触发;(见userP16表10) VICVectCntl0 = 0x2E; //将14#中断绑定向量IRQ的0通道,并使能0通道 [1]P99 VICVectAddr0 = (unsigned int) XInt0; //绑定0通道的中断服务程序地址 [1]P100 VICIntEnable = 1 << 14; //使能外部中断0 while (1); //当有中断信号时, -1- } //---------------------------------------------------- //IRQ中断函数 //---------------------------------------------------- void __irq XInt0() //需加IRQ标识号(如不加,无法返回) { shift = ~shift; if(shift) IO0SET = 1<<7; //GPIO置“1” else IO0CLR = 1<<7; //GPIO清零 EXTINT = 0X01; //清中断标志;-2- VICVectAddr = 0x00; //执行写操作,更新硬件优先级;P100 } //---------------------------------------------- //LPC2131初始化函数 //---------------------------------------------- void InitLPC2131(void) { //存储器映射方式定义 MEMMAP = 0x1; //用户FLASH模式 -3- //PLL设置 PLLCON = 1; //PLL使能 -5- PLLCFG = 0x24; //5倍频,4分频 -6- PLLFEED = 0xaa; //先送0xaa再送0x55后,PLLCON和PLLCFG更改生效 PLLFEED = 0x55; while((PLLSTAT & (1 << 10)) == 0); //等待PLL频率锁定完成 PLLCON = 3; //PLL使能并连接 -5- PLLFEED = 0xaa; //更改生效 PLLFEED = 0x55; //设置存储器加速模块 MAMCR = 0; //设定MAM前关闭MAM MAMTIM = 3; //MAM取指占有3个处理器时钟 -7- MAMCR = 2; //完全使能MAM }
