嵌入式系统-期末考试_第1页
嵌入式系统-期末考试_第2页
嵌入式系统-期末考试_第3页
嵌入式系统-期末考试_第4页
嵌入式系统-期末考试_第5页
已阅读5页,还剩7页未读, 继续免费阅读

下载本文档

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

文档简介

1、 电子信息工程 学院 专业 0 级 学号 姓名 中国石油大学大学2014 -2015 学年第 1 学期期末考试试卷课程名称:嵌入式系统(电赛)试卷类型: 共12页考试形式: 开卷考试一、 设计一个键盘和点阵LED的广告演示程序。要求:1、 至少有8中闪烁方式。2、 设计多个键盘完成:启动、停止、暂停、闪烁方式切换等功能。3、 写出功能描述、功能实现方法、流程图及代码。功能描述:当按键1时LED点阵左右滚动显示,当按键2时LED点阵上下滚动,当按键3时LED点阵扫描显示0123456789,当按键4时状态暂停,当按键5时状态恢复。流程图:程序代码:#include<reg51.h>s

2、bit k1=P10;sbit k2=P11;sbit k3=P12;sbit k4=P32;sbit k5=P33;unsigned char i;unsigned char j;unsigned char code ta=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char code tb=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;void delay(int m)int n;for(;m>0;m-) for(n=110;n>0;n-);unsigned char tc108=0x00,

3、0x00,0x3e,0x41,0x41,0x41,0x3e,0x00, 0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00, 0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00, 0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00, 0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00, 0x00,0x00,0x40,0x40,

4、0x40,0x4f,0x70,0x00, 0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00, ;void main() EA=1; EX0=1; EX1=1; IT0=0; IT1=0; while(1) if(k1=0) delay(100); if(k1=0) for(j=0;j<3;j+) for(i=0;i<8;i+) P2=tai; P0=0xff; delay(80); for(j=0;j<3;j+) for(i=0;i<8;i+) P2=ta7-i

5、; P0=0xff; delay(80); if(k2=0) delay(100); if(k2=0) for(j=0;j<3;j+) for(i=0;i<8;i+) P2=0x00; P0=tb7-i; delay(80); for(j=0;j<3;j+) for(i=0;i<8;i+) P2=0x00; P0=tbi; delay(80); if(k3=0) delay(100); if(k3=0) for(j=0;j<=9;j+) for(i=0;i<8;i+) P2=tai; P0=tcji; delay(20); delay(500); void

6、int0() interrupt 0 PCON=0x02;void int2() interrupt 2 PCON=0x00;二、 采用CPLD或FPGA为平台,设计一个识别3*4矩阵键盘的方案。要求:1、选择扫描或反转的方式识别键盘并写出实现方法。2、给出仿真结果(仿真结果中要求有各种输入情况下的输出结果)。3、给出Verilog代码。三、 以普中单片机开发板为平台,查阅资料,设计一个小数的存储、加减运算方案并在开发板上实现。要求:1、 给出小数显示、存储及运算方案,说明能处理的小数大小范围。2、 功能要求:1) 将键盘分为0-7数字键以及“+”、“-”、“=”、“.” 以及“复位”等功能键

7、,并画出按键布局。2) 能够在数码管上显示一个小数。3) 能够完成加、减运算并显示结果。4) (选做)能够处理结果为负数的情况。5) (选做)当输入的数据超过了程序能处理的数据范围时,蜂鸣器报警。 3、 画出方案中各功能的流程图,给出代码。功能实现说明:可进行简单的整数加减运算并显示结果,可实现77以内的整数运算,能够处理结果为负数的情况,当输入的数据超出程序能处理的数据范围时蜂鸣器报警。流程图:程序代码:#include <reg52.h>sbit beep=P15;unsigned char n1=0,n2=0,add=0,n3=0,k=0,r=0,j=0;unsigned c

8、har t=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf;unsigned char bits=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;void show();void delay(uchar s);char getkey(); void main() unsigned char key1;P2=0xff;P0=0x00;delay(100);while(1) k1=getkey();switch(key1)case 1: if(add=0) n1=n1*10+1; if(add=1) n2

9、=n2*10+1; break;case 2: if(add=0) n1=n1*10+2; if(add=1) n2=n2*10+2; break;case 3: if(add=0) n1=n1*10+3; if(add=1) n2=n2*10+3; break;case 4: if(add=0) n1=n1*10+4; if(add=1) n2=n2*10+4; break;case 5: if(add=0) n1=n1*10+5; if(add=1) n2=n2*10+5; break;case 6: if(add=0) n1=n1*10+6; if(add=1) n2=n2*10+6;

10、break;case 7: if(add=0) n1=n1*10+7; if(add=1) n2=n2*10+7; break;case 8: if(add=0) n1=n1*10; if(add=1) n2=n2*10; break;case 9: add=1;break;case 11: add=2;k1=1; if(rem=0) n3=n1+n2; if(rem=1) if(n1>=n2)n3=n1-n2; if(n1<n2) n3=n2-n1;j=1; break;case 12: add=0;n1=0;n2=0;n3=0;k1=0;r=0;j=0;break;case 1

11、0: add=1;r=1;break;if(n1>=77) beep=beep;if(n2>=77) beep=beep;show(); char getkey() unsigned char key,temp,result; P3=0xf0;if(P3!=0xf0)delay(800);temp=P3;if(P3!=0xf0) P3=0x0f;result=temp|P3;switch(result)case 0xed: key=1; break;case 0xdd: key=2; break;case 0xbd: key=3; break;case 0x7d: key=4; b

12、reak;case 0xeb: key=5; break;case 0xdb: key=6; break;case 0xbb: key=7; break;case 0x7b: key=8; break;case 0xe7: key=9; break;case 0xd7: key=10; break;case 0xb7: key=11; break;case 0x77: key=12; break; return key; void show() int a,b,c,d,e,f,g,i; a=n1/10;b=n1%10;c=n2/10;d=n2%10; e=n3/100;f=n3%100/10;

13、g=n3%10; for(i=0;i<50;i+) if(add=0) P2=bits7; P0=ta; delay(10); P2=bits6; P0=tb; delay(10); if(add=1) P2=bits7; P0=ta; delay(10); P2=bits6; P0=tb; delay(10); P2=bits5; P0=tc; delay(10); P2=bits4; P0=td; delay(10); if(k1=1) P2=bits7; P0=ta; delay(10); P2=bits6; P0=tb; delay(10); P2=bits5; P0=tc; d

14、elay(10); P2=bits4; P0=td; delay(10); if(j=0)P2=bits2; P0=te; delay(10); P2=bits1; P0=tf; delay(10); P2=bits0; P0=tg; delay(10); if(j=1)P2=bits3;P0=t16;delay(10);P2=bits2; P0=te; delay(10); P2=bits1; P0=tf; delay(10); P2=bits0; P0=tg; delay(10); void delay(int i) char ,j;for(;i>0;i-)for(j=110;j&g

15、t;0;j-); 四、 (选做)自学单片机的中断、定时器原理和编程方法。完成:1. 通过定时器实现静态数码管延时自动加1。2. 通过一个按键接外部中断实现静态数码管加1。定时器中断#include < reg51.h >unsigned char s= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;unsigned char i,j;void main() TMOD=0x01; 1 TH0=0x4C; TL0=0x00; EA=1; ET0=1; TR0=1; while(1) if(j=20) j=0; P0=si; i+;

16、if(i=10) i=0; void time0(void) interrupt 1 / using 0 TH0=0x4c; TL0=0x00; j+; 外部中断#include < reg51.h >sbit k=P32;unsigned int i;void delay(unsigned int i);unsigned char s=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void main() EA=1; EX0=1; IT0=0; while(1) P0=si; void int0() interrupt 0 de

17、lay(800); i+; if(i=10) i=0;void delay(unsigned int i)char j;for(;i>0;i-) for(j=110;j>0;j-); 五、 (选做)结合自己在生活中碰到的问题,设计一个小发明解决之。六、 收集资料,谈谈FPGA和通用处理器的特点以及各自的优缺点。 答:FPGA片内有大量的逻辑门和触发器,多为查找表结构,实现工艺多为SRAM,规模大,集成度高,处理速度快,执行效率高,能完成较为复杂的时序逻辑设计,且灵活,方便,简单,可多次重复编程,许多FPGA可无限重复编程。利用重新配置可减少硬件的开销。适合用于小批量系统,提高系统的

18、可靠性和集成度。缺点是:掉电后一般会丢失原有逻辑配置,时序难规划,不能处理多事件,不适合条件操作。通用处理器重视强大的运算功能,对不同软件的兼容性、可扩展性,通用微处理器的工作负载以非数值、不规则标量应用为主(这种负载也是目前事务处理和Web服务类服务器的工作负载特征),实现高性能的方法主要是开发指令级并行性。以Intel x86为代表的CISC体系结构以超流水结构为提高性能的主要手段给人们留下了深刻的印象,这种结构将指令流水线划分成更简单的流水级以提高时钟速率。七、 结合对本课程的学习,谈谈你选该课程的初衷并总结个人的收获(300字左右)。答: 自从大一时对电赛有了一定的了解之后,就一心想着有一天能够参加电赛。所以,学院开这门课时,我毫不犹豫地就选了这门课。上这门课,开始的时候舒老师讲仿真,觉得还挺容易,课下多练习一下Quartus软件。后来,老师讲单片机,前面容易的还好。后面的动态数码

温馨提示

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

评论

0/150

提交评论