收藏 分销(赏)

微机原理与接口技术期末试卷.doc

上传人:丰**** 文档编号:3260192 上传时间:2024-06-27 格式:DOC 页数:28 大小:214.04KB
下载 相关 举报
微机原理与接口技术期末试卷.doc_第1页
第1页 / 共28页
微机原理与接口技术期末试卷.doc_第2页
第2页 / 共28页
微机原理与接口技术期末试卷.doc_第3页
第3页 / 共28页
微机原理与接口技术期末试卷.doc_第4页
第4页 / 共28页
微机原理与接口技术期末试卷.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、考生信息栏 院(系) 班级 姓名 学号 装订线2007 2008学年 第 2 学期物理与机电工程学院 05级 电子信息(本)专业微机原理与接口技术期末试卷(B)试卷类别:开卷( )闭卷( )考试用时: 120 分钟考试时间:2008 年 7 月 1 日 下 午考试地点: 文203 题号分数一二三四五注意事项1、学生的院(系)别、专业、班级、姓名、学号必须填写在考生信息栏内指定的位置。2、学生在考试之前必须填写考试时间和地点。3、答题字迹要清楚,并保持卷面清洁。总分评卷人复核人考生考试诚信承诺书在我填写考生信息后,表示我已阅读和理解龙岩学院考试纪律与违纪处分办法的有关规定,承诺在考试中自觉遵规守

2、纪,如有违反将接受处理;我保证在本科目考试中,本人所提供的个人信息是真实、准确的。考生签名: 考生信息栏 院(系) 班级 姓名 学号 装订线一、 填空题(每空1分,共20分)1、程序控制下的数据传送,通过CPU执行程序中的I/O指令来完成数据传送,分为 、 和中断传送 。2、通用微型计算机的硬件是由中央处理器(CPU)、 、 存储器 、输入输出设备及 其组成的。3、设异步传输时的波特率为115200bps,若每个字符对应一位起始位,七位有效数据位,一位偶校验位,一位停止位,则每秒钟传输的最大字符数是 。 4、中断系统的作用实现 操作、处理异常事故、 。5、计算机基本接口部件主要有 、 、 、串

3、行通信等。二、简答题(共10分)1、为个么要进行按键消除抖动的处理,在软件上通常采用什么样方法消除抖动?(5分)2、在LPC2138中属于串行通信的部件有哪些?说明它们各自的主要用途。(5分)二、 设计与应用(共10题,每题10分,任选题目,满分50分)(部分子程序被省略)1、请对下面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。#include config.h/* LED8LED1 8个LED分别由P1.25P1.18控制P125:18控制LED8LED1,低电平点亮*/const uint32 LEDS8 = (0

4、xFF 0; dly-)for (i=0; i50000; i+);int main (void)uint8 i;PINSEL2 = PINSEL2 & (0x08);IO1DIR = LEDS8;while (1)for (i=0; i8; i+)IO1SET = (LEDS8 & (7 (18+i);DelayNS(20);IO1CLR = LEDS8 & (7 (18+i);DelayNS(20); return 0;考生信息栏 院(系) 班级 姓名 学号 装订线2、请对下面程序添加注释(3分),说明其程序功能(3分),画出程序流程图(4分)。#include config.huint8

5、 rcv_buf8;/ UART0数据接收缓冲区volatile uint8 rcv_new;/ 接收新数据标志void _irq IRQ_UART0 (void)uint8 i;if (U0IIR & 0x0F) = 0x04)rcv_new = 1;for (i=0; i8; i+)rcv_bufi = 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

6、UART0_Init(115200, set);U0FCR = 0x81;/ 使能FIFO,并设置触发点为8字节U0IER = 0x01; / 允许RBR中断,即接收中断IRQEnable();VICIntSelect = 0x00000000;/ 设置所有的通道为IRQ中断VICVectCntl0 = 0x20 | 0x06;/ UART0分配到IRQ slot0VICVectAddr0 = (uint32)IRQ_UART0; VICIntEnable = 1 0x06;while (1)if (rcv_new = 1)rcv_new =0;UART0_SendBuf(); return

7、0;3、请对下面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。#include config.h#defineCAT10250xA0/* CAT1025器件从机地址*/#defineBEEP1 7/* 蜂鸣器BEEP控制口,P0.7,低电平蜂鸣*/int main (void)uint8 i;uint8 data_buf32;PINSEL0 = 0x00000000;PINSEL1 = 0x00000000;IO0DIR = BEEP;IO0SET = BEEP;IRQEnable();I2C1Init(100000);

8、/ I2C初始化,100Kfor (i=0; i10; i+)data_bufi = 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; i10; i+)data_bufi = 0;/* 读回刚才写入的数据 */I2C_ReadNByte(CAT1025, ONE_BYTE_SUBA, 0x00, data_buf, 10);for (i=0; i

9、10; i+)if (data_bufi != (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(uint

10、8 data) /略/* 此表为LED0F以及L、P的字模 */uint8 const DISP_TAB19 = / 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 F0x88, 0x83, 0xC6, 0xA1,0x86, 0x8E,/ L P C 0xC7, 0x8C,0xC6 ;/* 此表为LPC2131字模 */L P C 2 1 3 1uint8 const LPC21317 = 0xC7, 0x8C, 0xC6, 0xA4, 0xF9, 0xB0, 0xF9; ui

11、nt8 rcv_data; int main (void) uint8 i; PINSEL0 = 0x00005500;/ 设置SPI管脚连接 PINSEL1 = 0x00000000; IODIR = HC595_CS; MSPI_Init(); / 初始化SPI接口 while(1) for(i=0; i16; i+) rcv_data = MSPI_SendData(DISP_TABi);/ 发送显示数据 DelayNS(80); / 延时 for(i=0; i7; i+) rcv_data = MSPI_SendData(LPC2131i);/ 发送显示数据 DelayNS(80);

12、/ 延时 return 0;5、下面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。#include config.hint main (void)PINSEL0 = 2 24;/ P0.12连接匹配1.0T1PR = 99;/ 分频T1MCR = 0x02;/ 设置T1MR0匹配后将T1TC复位T1EMR = 0x30;/ T1MR0匹配后MAT1.0输出翻转T1MR0 = 110592/10;/ 输出频率周期控制T1TCR = 0x03;/ 启动并复位T1TCT1TCR = 0x01;while (1); return

13、 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

14、 = 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 / HCMMi; / 设置输出频率PWMLER = 0x05; / 更新匹配值后,必须锁存 Delay(HCMM_Li);/ 延时,控制播放速度 return 0;7、下面

15、程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。#include config.hint main (void)uint32 ADC_Data;char str20;PINSEL0 = 0x00000005;/ 管脚连接串口PINSEL1 = 1 28;/ P0.30连接到AD0.3UART0_Init();/* 进行ADC模块设置 */AD0CR = (1 3)|/ SEL=8,选择通道3(Fpclk / 1000000 - 1) 8)|/ CLKDIV=Fpclk/1000000-1,转换时钟为1MHz(0 16)|/

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 6) & 0x3ff;ADC_Data = AD

17、C_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 IO0

18、CLR = 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 VICIntSe

19、lect = 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#de

20、fine KEY2 1 17/ P0.17#define BEEP 1 7/ P0.7控制蜂鸣器int main(void) uint32 i,j; PINSEL0 = 0x00000000;PINSEL2 = PINSEL2 & (0x08);/ P125: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

21、& KEY2) = 0) WDMOD = 0x00;/ 如果KEY2按下,则软件清零看门狗超时标志位 else IO0CLR = BEEP;/ 蜂鸣器鸣叫 /* 如果没有发生看门狗复位或者看门狗超时标志已经清除,则初始化看门狗 */ WDTC = 0xff000; / 设置看门狗定时器参数WDMOD = 0x03; / 设置看门狗模式:中断且复位 WDFEED = 0xAA;/ 第一次喂狗启动WDTWDFEED = 0x55; /* 正常情况下,闪烁LED1 */ while(1) /* 用按键模拟导致无法周期性喂狗的意外情况 */ while(IO0PIN & KEY1) = 0); / 如

22、果按键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; elseIO1CLR = LED1; return 0;10、下面程序添加注释(3分),说明其程序功能(3分),并根据你的想法对程序的功能进行部分修改,说明修改后程序功能的变化(4分)。#include config.h#defineBEEP1 7/ P0.7控制蜂鸣器

23、/* 函数名称 :main()* 函数功能 :演示外部中断唤醒掉电的CPU,但不产生中断* 入口参数 :无* 出口参数 :无*/int main (void)PINSEL0 = 0x00000000;/ 管脚连接GPIOPINSEL1 = 0x00000001;/ P0.16连接EINT0IO0DIR = 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、考生信息栏 院(系) 班级 姓名 学号 装订线

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服