微机原理与接口技术期末试卷.doc
《微机原理与接口技术期末试卷.doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术期末试卷.doc(28页珍藏版)》请在咨信网上搜索。
考 生 信息 栏 院(系) 班级 姓名 学号 ………………………………………………装……………………订……………………线…………………………………… 2007 — 2008学年 第 2 学期 物理与机电工程学院 05级 电子信息(本)专业 《微机原理与接口技术》期末试卷(B) 试卷类别:开卷( )闭卷( √ ) 考试用时: 120 分钟 考试时间:2008 年 7 月 1 日 下 午 考试地点: 文203 题号 分数 一 二 三 四 五 注意事项 1、学生的院(系)别、专业、班级、姓名、学号必须填写在考生信息栏内指定的位置。 2、学生在考试之前必须填写考试时间和地点。 3、答题字迹要清楚,并保持卷面清洁。 总分 评卷人 复核人 考生考试诚信承诺书 在我填写考生信息后,表示我已阅读和理解《龙岩学院考试纪律与违纪处分办法》的有关规定,承诺在考试中自觉遵规守纪,如有违反将接受处理;我保证在本科目考试中,本人所提供的个人信息是真实、准确的。 考生签名: 考 生 信息 栏 院(系) 班级 姓名 学号 ………………………………………………装……………………订……………………线…………………………………… 一、 填空题(每空1分,共20分) 1、程序控制下的数据传送,通过CPU执行程序中的I/O指令来完成数据传送,分为 、 和中断传送 。 2、通用微型计算机的硬件是由中央处理器(CPU)、 、 存储器 、输入输出设备及 其组成的。 3、设异步传输时的波特率为115200bps,若每个字符对应一位起始位,七位有效数据位,一位偶校验位,一位停止位,则每秒钟传输的最大字符数是 。 4、中断系统的作用实现 操作、处理异常事故、 。 5、计算机基本接口部件主要有 、 、 、串行通信等。 二、简答题(共10分) 1、为个么要进行按键消除抖动的处理,在软件上通常采用什么样方法消除抖动?(5分) 2、在LPC2138中属于串行通信的部件有哪些?说明它们各自的主要用途。(5分) 二、 设计与应用(共10题,每题10分,任选题目,满分50分)(部分子程序被省略) 1、请对下面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。 #include "config.h" /* LED8~LED1 8个LED分别由P1.25~P1.18控制P1[25:18]控制LED8~LED1,低电平点亮*/ const uint32 LEDS8 = (0xFF << 18); void DelayNS (uint32 dly) { uint32 i; for ( ; dly>0; dly--) for (i=0; i<50000; i++); } int main (void) { uint8 i; PINSEL2 = PINSEL2 & (~0x08); IO1DIR = LEDS8; while (1) { for (i=0; i<8; i++) { IO1SET = ~(LEDS8 & (7 << (18+i))); DelayNS(20); IO1CLR = LEDS8 & (7 << (18+i)); DelayNS(20); } } return 0;} 考 生 信息 栏 院(系) 班级 姓名 学号 ………………………………………………装……………………订……………………线…………………………………… 2、请对下面程序添加注释(3分),说明其程序功能(3分),画出程序流程图(4分)。 #include "config.h" uint8 rcv_buf[8]; // UART0数据接收缓冲区 volatile uint8 rcv_new; // 接收新数据标志 void __irq IRQ_UART0 (void) { uint8 i; if ((U0IIR & 0x0F) == 0x04) rcv_new = 1; for (i=0; i<8; i++) { rcv_buf[i] = U0RBR; } VICVectAddr = 0x00; } int main (void) { UARTMODE set; set.datab = 8; set.stopb = 1; set.parity = 0; rcv_new = 0; PINSEL0 = 0x00000005; // 设置I/O连接到UART0 UART0_Init(115200, set); U0FCR = 0x81; // 使能FIFO,并设置触发点为8字节 U0IER = 0x01; // 允许RBR中断,即接收中断 IRQEnable(); VICIntSelect = 0x00000000; // 设置所有的通道为IRQ中断 VICVectCntl0 = 0x20 | 0x06; // UART0分配到IRQ slot0 VICVectAddr0 = (uint32)IRQ_UART0; VICIntEnable = 1 << 0x06; while (1) { if (rcv_new == 1) { rcv_new =0; UART0_SendBuf(); } } return 0; } 3、请对下面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。 #include "config.h" #define CAT1025 0xA0 /* CAT1025器件从机地址 */ #define BEEP 1 << 7 /* 蜂鸣器BEEP控制口,P0.7,低电平蜂鸣 */ int main (void) { uint8 i; uint8 data_buf[32]; PINSEL0 = 0x00000000; PINSEL1 = 0x00000000; IO0DIR = BEEP; IO0SET = BEEP; IRQEnable(); I2C1Init(100000);// I2C初始化,100K for (i=0; i<10; i++) data_buf[i] = i + '0'; /* 往起始地址0x00开始写入10个数据 */ I2C_WriteNByte(CAT1025, ONE_BYTE_SUBA, 0x00, data_buf, 10); //I2C_WriteNByte(CAT1025, 0, 0x00, &i, 1); DelayNS(10); for (i=0; i<10; i++) data_buf[i] = 0; /* 读回刚才写入的数据 */ I2C_ReadNByte(CAT1025, ONE_BYTE_SUBA, 0x00, data_buf, 10); for (i=0; i<10; i++) {if (data_buf[i] != (i + '0')) { while (1) { IO0SET = BEEP; DelayNS(20); IO0CLR = BEEP; DelayNS(20); } } } IO0CLR = BEEP; DelayNS(50); IO0SET = BEEP; while (1); return 0; } 4、面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。 #include "config.h" #define HC595_CS (1 << 29) // P0.29口为74HC595的片选 uint8 MSPI_SendData(uint8 data) { //略 } /* 此表为LED0~F以及L、P的字模 */ uint8 const DISP_TAB[19] = { // 0 1 2 3 4 5 6 7 8 9 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90, // A b C d E F 0x88, 0x83, 0xC6, 0xA1,0x86, 0x8E, // L P C 0xC7, 0x8C,0xC6 }; /* 此表为LPC2131字模 */ // L P C 2 1 3 1 uint8 const LPC2131[7] = { 0xC7, 0x8C, 0xC6, 0xA4, 0xF9, 0xB0, 0xF9}; uint8 rcv_data; int main (void) { uint8 i; PINSEL0 = 0x00005500; // 设置SPI管脚连接 PINSEL1 = 0x00000000; IODIR = HC595_CS; MSPI_Init(); // 初始化SPI接口 while(1) { for(i=0; i<16; i++) { rcv_data = MSPI_SendData(DISP_TAB[i]); // 发送显示数据 DelayNS(80); // 延时 } for(i=0; i<7; i++) { rcv_data = MSPI_SendData(LPC2131[i]); // 发送显示数据 DelayNS(80); // 延时 } } return 0; } 5、下面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。 #include "config.h" int main (void) { PINSEL0 = 2 << 24; // P0.12连接匹配1.0 T1PR = 99; // 分频 T1MCR = 0x02; // 设置T1MR0匹配后将T1TC复位 T1EMR = 0x30; // T1MR0匹配后MAT1.0输出翻转 T1MR0 = 110592/10; // 输出频率周期控制 T1TCR = 0x03; // 启动并复位T1TC T1TCR = 0x01; while (1); return 0; } 6、下面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。 #include "config.h" #include "music.h" /* 歌曲曲谱 - 虹彩妹妹*/ const uint32 HCMM[] = {//略 }; /* 歌曲节拍 */ const uint32 HCMM_L[] = {//略 }; int main (void) { uint8 i; PINSEL0 = 0x02 << 14; // P0.7选择PWM2功能 PWMPR = 0x00; // 不分频,计数频率为Fpclk PWMMCR = 0x02; // 设置PWMMR0匹配时复位PWMTC PWMPCR = 0x0400; // 允许PWM2输出,单边PWM PWMMR0 = Fpclk / 1000; PWMMR2 = PWMMR0 / 2; // 50%占空比 PWMLER = 0x05; // PWM0和PWM2匹配锁存 PWMTCR = 0x02; // 复位PWMTC PWMTCR = 0x09; // 启动PWM输出 while(1) { for(i = 0; i < sizeof(HCMM); i++) { PWMMR0 = Fpclk / HCMM[i]; // 设置输出频率 PWMLER = 0x05; // 更新匹配值后,必须锁存 Delay(HCMM_L[i]); // 延时,控制播放速度 } } return 0; } 7、下面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。 #include "config.h" int main (void) { uint32 ADC_Data; char str[20]; PINSEL0 = 0x00000005; // 管脚连接串口 PINSEL1 = 1 << 28; // P0.30连接到AD0.3 UART0_Init(); /* 进行ADC模块设置 */ AD0CR = (1 << 3) | // SEL=8,选择通道3 ((Fpclk / 1000000 - 1) << 8) | // CLKDIV=Fpclk/1000000-1,转换时钟为1MHz (0 << 16) | // BURST=0,软件控制转换操作 (0 << 17) | // CLKS=0, 使用11clock转换 (1 << 21) | // PDN=1,正常工作模式 (0 << 22) | // TEST1:0=00,正常工作模式 (1 << 24) | // START=1,直接启动ADC转换 (0 << 27); // 直接启动ADC转换时,此位无效 DelayNS(10); ADC_Data = AD0DR; // 读取ADC结果,并清除DONE标志位 while (1) { AD0CR |= 1 << 24; // 进行第一次转换 while ((ADDR & 0x80000000) == 0); // 等待转换结束 AD0CR |= 1 << 24; while ((AD0DR & 0x80000000) == 0); ADC_Data = AD0DR; ADC_Data = (ADC_Data >> 6) & 0x3ff; ADC_Data = ADC_Data * 2480; // 参考电压经过3/4分压 ADC_Data = ADC_Data / 1024; sprintf(str, "%4d mV VIN3", ADC_Data); ISendStr(0,0,0x30,str); } return 0; } 8、下面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。 #include "config.h" #define BEEP 1 << 7 // P0.7控制蜂鸣器 void __irq RTC_Int(void) { if((IO0SET & BEEP) == 0) IO0SET = BEEP; else IO0CLR = BEEP; ILR = 0x01; // 清除RTC增量中断标志 VICVectAddr = 0; // 向量中断结束 } int main (void) { IO0DIR = BEEP; IO0SET = BEEP; IRQEnable(); /* RTC初始化 */ PREINT = Fpclk / 32768 - 1; // 设置基准时钟分频器 PREFRAC = Fpclk - (Fpclk / 32768) * 32768; CIIR = 0x01; // 设置秒值的增量产生一次中断 ILR = 0x03; // 清除RTC增量和报警中断标志 CCR = 0x01; // 启动RTC VICIntSelect = 0x00; // 设置所有中断连接IRQ中断 VICVectCntl0 = 0x20 | 13; // 分配通道0 VICVectAddr0 = (int)RTC_Int; // 设置中断服务程序地址 VICIntEnable = (1 << 13); // 使能RTC中断 while(1); // 等待中断 return 0; } 9、下面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。 #include "config.h" #define LED1 1 << 18 // P0.18控制LED1 #define KEY1 1 << 16 // P0.16 #define KEY2 1 << 17 // P0.17 #define BEEP 1 << 7 // P0.7控制蜂鸣器 int main(void) { uint32 i,j; PINSEL0 = 0x00000000; PINSEL2 = PINSEL2 & (~0x08); // P1[25:16]连接GPIO IO0DIR = BEEP; IO1DIR = LED1; IO0SET = BEEP; while(( WDMOD & 0x04 ) == 0x04) // 判断看门狗超时标志 { for(j = 0; j < 0xFFFFF; j++); if((IO0SET & BEEP) == 0) { IO0SET = BEEP; if((IO0PIN & KEY2) == 0) WDMOD = 0x00; // 如果KEY2按下,则软件清零看门狗超时标志位 } else IO0CLR = BEEP; // 蜂鸣器鸣叫 } /* 如果没有发生看门狗复位或者看门狗超时标志已经清除,则初始化看门狗 */ WDTC = 0xff000; // 设置看门狗定时器参数 WDMOD = 0x03; // 设置看门狗模式:中断且复位 WDFEED = 0xAA; // 第一次喂狗启动WDT WDFEED = 0x55; /* 正常情况下,闪烁LED1 */ while(1) { /* 用按键模拟导致无法周期性喂狗的意外情况 */ while((IO0PIN & KEY1) == 0); // 如果按键1按下,就停止喂狗 for(j = 0; j < 0xFF; j++) // LED1闪烁周期 { for(i = 0; i < 0x0FFF; i++); // 喂狗周期 WDFEED = 0xAA; // 喂狗时序 WDFEED = 0x55; } /* 闪烁LED1 */ if((IO1SET & LED1) == 0) IO1SET = LED1; else IO1CLR = LED1; } return 0; } 10、下面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。 #include "config.h" #define BEEP 1 << 7 // P0.7控制蜂鸣器 /* ********************************************************************************************************* ** 函数名称 :main() ** 函数功能 :演示外部中断唤醒掉电的CPU,但不产生中断 ** 入口参数 :无 ** 出口参数 :无 ********************************************************************************************************* */ int main (void) { PINSEL0 = 0x00000000; // 管脚连接GPIO PINSEL1 = 0x00000001; // P0.16连接EINT0 IO0DIR = BEEP; // 设置BEEP控制口为输出,其余输入 EXTWAKE = 0x01; // 外部中断0唤醒芯片 EXTINT = 0x01; // 清除EINT0中断标志 IO0SET = BEEP; while (1) { PCONP = 0x00; // 关闭定时器、RTC、UART等功能部件 PCON = 0x02; // 系统进入掉电模式 /* 当系统被唤醒后,取反BEEP控制 */ if ((IO0SET & BEEP) == 0) IO0SET = BEEP; else IO0CLR = BEEP; EXTINT = 0x01; // 清除EINT0中断标志 } return (0); } 三、 综合设计(满分30分) 要求:1、在该综合设计项目中必需包含3种以上接口部件,项目由自己确定。 评分:方案设计(含必要的电路图)10分,流程图10分,程序10分。 4、考 生 信息 栏 院(系) 班级 姓名 学号 ………………………………………………装……………………订……………………线……………………………………- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 期末试卷
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文