ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:28.70KB ,
资源ID:4008541      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4008541.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(8051单片机考试试题及答案2.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

8051单片机考试试题及答案2.docx

1、8051单片机考试试题及答案2一、填空题1、 请完成下列数制间的转换:(00100110)B =( )D ;(10011010)B =( )H2、 根据一次传送数据位的多少,单片机传送数据的方式分为两种,即 方式和 方式。3、 假定(A)=22H,(R0)=66H,(66H)=FFH,执行指令:ADD A,R0 后,累加器A的内容为 ,CY内容为 。4、 个人电脑(PC)存储器采用的结构为普林斯顿结构,其特点是数据存储器和程序存储器统一编址,即存放在同一存储器中;而51单片机的存储器结构为结构,其特点是 。5、 单片机中有个并行口,个串行口。6、 单片机能够识别的语言是 ,但该语言记忆非常不方

2、便,因此我们通常编写单片机程序使用的语言是;对编程效率要求很而执行效率要求不高的时候,还可以使用C语言对单片机进行编程。7、 执行指令JZNEXT时,当A等于 时程序发生跳转。8、 单片机上电复位后P3=H,SP= H。9、 某单片机晶振频率为6MHZ时,则该单片机的一个机器周期为 。10、 单片机系统复位后(PSW)=00H,此时内部RAM寄存器区当前寄存器组是第 组,该组寄存器的单元地址范围为至。11、 程序状态寄存器PSW的作用是用来保存程序运行过程中的各种状态信息,其中CY为 标志。二、选择题1、 89C51单片机内部ROM的容量是 ( )A、128B B、4KB C、256B D、6

3、4KB2、 8051单片机的四个并行口P0、P1、P2、P3,用作通用I/O口时,在读数据之前必须进行的操作是: ( )A、写0 B、写1 C、读 D、随便3、 MOV R0,99H 源操作数的寻址方式是 ( )A.位寻址 B.立即数寻址 C.寄存器寻址 D.寄存器间接寻址4、 在中断服务程序中,至少应有一条 ( )A. 加法指令 B. 减法指令 C. 跳转指令 D.中断返回指令5、 下列哪个不属于中断服务程序的入口地址 ( )A、 0003H B、000BH C、0013H D、00020H6、 对程序存储器的读操作,只能使用指令 ( )A、MOVX B、PHSH C、MOV D、MOVC7

4、、 8051单片机的定时/计数器共有四种操作模式,由TMOD寄存器中M1 M0的数值决定,当M1 M0的数值为00 B时,定时/计数器被设定为 ( )A、13位定时/计数器 B、自动重装8位定时/计数器C、16位定时/计数器 D、T0为2个独立的8位定时/计数器8、 下列说法是错误的是 ( )A、PC 是不可寻址的B、单片机的主频越高,其运算速度越快C、在 MCS-51 单片机中,一个机器周期等于 1usD、特殊功能寄存器 SP 内装的是堆栈顶部的地址9、 定时/计数器T0计数满产生溢出后,会向CPU发出中断请求,若此时CPU允许并接受该中断请求,则程序计数器PC的内容将被自动修改为 ( )A

5、、0003H B、000BH C、0013H D、001BH10、 下列有关MCS-51中断优先级控制的叙述中,错误的是 ( )A、同级中断不能相互中断B、低优先级不能中断高优先级,但高优先级可以中断低优先级C、同级中断请求按单片机查询的次序依次响应D、多个同级中断同时申请中断时系统将同时响应11、 8051有四个工作寄存器组,单片机复位后,若执行 SETB RS1 指令,此时单片机使用的工作寄存器组是第几组? ( ) A、0组 B、1组 C、2组 D、3组 12、 在大型程序设计中,通常采用的程序设计的步骤为: ( )A、无所谓B、先画流程图,再划分功能模块,最后写程序C、先划分功能模块,再

6、画各模块的流程图,最后写各模块的程序D、先写程序,再画流程图,最后划分功能模13、 在进行串行通信中,两机可同时发送和接收的工作方式为 ( )A、单工传送 B、半双工传送 C、双工传送 D、全双工传送14、 PC中的内容是 ( )A、当前指令的前一条指令的地址 B、当前正在执行的指令的地址C、下一条将执行指令的首地址 D、控制器中指令寄存器的地址15、 51单片机响应中断时,不一定要满足的条件是 ( )A、TCON或SCON寄存器内的有关中断标志位为1B、中断允许寄存器内对应的中断允许位为1C、中断优先级寄存器内对应的优先级位为1D、执行完毕正在执行的指令三、编程题1、 试编程把8051内部R

7、AM 30H3FH各单元的内容清零。2、 试编程统计片内RAM30H-3FH单元中数据99H的个数。四、解答题1、 简述单片机的组成结构和功能特点。2、 简述89C51与87C51的区别及字母“C”的含义;并简述8051与8031的区别。3、 比较单片机与PC机的优缺点,并举例说明两者在生活生产中的应用范围有何不同。参考答案一、 填空题(每空1分,共20分)1、 38 ,9A ;2、 串行方式 ,并行方式;3、 21H ,1 ;4、 哈佛,数据和程序存储器分开,独立编址;5、 4,1;6、 机器语言 ,汇编语言;7、 0;8、 FFH,07H;9、 1us;10、 0,00H,07H;11、

8、进位借位二、 选择题(每题2分,共30分)15: B B D D D 510: A A CCD1115: C C DD A三、 编程题(每题10分,共20分)1、 解:ORG0000HMOVR0,30HNEXT: MOVR0,00HINCR0CJNER0,40H,NEXTLJMP$END2、解: ORG0000H MOVA,00H MOVR0,30HLOOP: CJNER0,99H,NEXT INCANEXT: INCR0 CJNER0,40H,LOOP LJMP$ END四、 简答题(每小题10分,共30分)1、 答:堆栈的存取规则:存时先SP加1,再存放数据,取时先取数据再SP减14分执行

9、PUSHB:先将SP的内容加1,变为08H,再将B的内容放到08H地址单内。3分执行POPACC:先将SP所指向的地址单元08H的内容取出,并放入寄存器ACC中,然后将SP的内容减1,变为07H3分2、 答:89C51内部ROM为可电擦写的Flash型87C51内部ROM为EPROM型“C”代表该单片机为CHMOS工艺制造,其电平与TTL、CMOS电平兼容8051内部有4KB的掩膜型ROM,而8031内部没有任何ROM3、 答:体积:单片机体积小,安装简单,使用方便,特别是一些控制功能简单的系统中;PC机体积大,只能应用于大型工程项目中。价格:单片机价格便宜,可应用于价格低廉的产品中;PC机价

10、格高很多,在大型工程项目中才具有一定的性价比。速度:单片机运行速度低,只能应用于控制性能要求低,计算量小的场合;PC机处理速度很高,可应用于对处理速度要求很高,数据处理量很大的场合。容量:单片机存储器容量小,程序很小,能实现的功能有限;PC机存储器容量很大,可编写程序大,实现很复杂的控制功能。编程应用:单片机采用汇编语言或C语言编程,速度慢,效率低,能实现的功能简单。PC机可采用高级语言编程,编程效率高,能实现可视化控制。四、编程题编写一个程序,包含三个任务,一个任务监控P0端口,另一个任务向P2端口写数据,第三个任务通过串口输出字符串。答: #include #include #includ

11、e unsigned char ch0; Thread0 () _task_ 0 /任务0 os_create_task(1); /创建任务1 while(1) ch0=P0; / 读P0口 Thread1 () _task_ 1 /任务1 unsigned char ch1; while(1) P2=P2+1; Thread2 () _task_ 2 /任务2 os_create_task(1); /创建任务1 while(1) printf(ch0=%xn,ch0); /输出结果 四、编程题开发一个单片机程序,接收计算机通过串口发送的数据流,将其中的小写字符转换为大写字符,并回送给计算机。

12、答:#include /头文件#include#include void main(void) /主函数char a;char c; SCON=0x50; /串口模式1,允许接收 TMOD|=0x20; /初始化T1为定时功能,模式2 PCON|=0x80; /设置SMOD=1 TL1=0xF4; /波特率4800bit/s,初值 TH1=0xF4; IE|=0x90; /中断 TR1=1; /启动定时器while(1)printf (Enter a charn);scanf (%c, &a); /输入数据c= toupper(a);printf (a=%c,c=%c n,a,c);四、编程题

13、开发一个写I2C总线接口EEPROM的程序,并提供检验功能,当检验失败的时候提供报警。答:利用单片机的P1.0、P1.1作为I2C串行总线的SCL、SDA接口,向AT24C08写入8个字节的数据,然后再将写入的数据读出,并比较。如果读写的数据完全一致,则置P3.7引脚为高电平,发光二极管亮;否则置P3.7引脚为低电平,发光二极管灭。程序代码示例如下:#include /*/#define WriteDeviceAddress 0xa0 /写器件地址#define ReadDviceAddress 0xa1 /读器件地址/*/sbit SCL=P10; /I2C时钟线SCLsbit SDA=P1

14、1; /I2C数据线SDAsbit DOG=P37; /程序运行标志及数 /据读写正确标志/*/*这部分是前面的各个C语言读写子程序,这里省略*/*/void main() unsigned char writeByte8=0xC0,0x34,0x12,0x11,0x22,0x01,0x00,0x00; /需要写的8个字节USB数据ID unsigned char readByte8; /用于存读入的8个字节数据 unsigned char *addw; /写数据指针操作 unsigned char *addr; /读数据指针操作 unsigned char i; unsigned char

15、ok=0; bit write=1; /读写标志 DOG=0; while(1) if(write=1) /当write=1时,执行写和读操作 addw=writeByte; /写地址映射 addr=readByte; /读地址映射 WriteI2C(addw,0x00,8); /写数据 ReadI2C(addr,0x00,8); /读数据 for(i=0;i8;i+) /判断每个字节读写是否一致 if(writeBytei=readBytei) ok+; if(ok=8) DOG=1; /当读写一致时,P3.7输出高电平 else DOG=0; /当读写不一致时,P3.7输出低电平 writ

16、e=0; /置write=0,读写完毕 四、编程题编写一个程序,单片机外接44阵列式按键键盘和蜂鸣器,根据按键键值的不同使蜂鸣器响相应的次数。答:#include /头文件#include /头文件int row; /定义行号int tier; /定义列号int KeyScan(); /子函数声明void Delay();void main() /主函数int Key,i;while(1) /开始循环扫描键盘 Key=KeyScan(); /键盘扫描子函数 for(i=0;i0;i-); /可以根据系统的时钟频率来调整int KeyScan() /键盘扫描子函数P1=0xF0; /列输出全0i

17、f(P1&0xF0)!=0xF0) /扫描行,如果不全为0,则进入 switch(P1) /获得行号 case 0x70: row=1; break; case 0xB0: row=2; break; case 0xD0: row=3; break; case 0xE0: row=4; break; default: break; Delay(); /延时去抖动 P1=0x0F; /行输出全0 if(P1&0x0F)!=0x0F) /扫描列,如果不全为0,则确认按键按下 switch(P1) /获得列号 case 0x07: tier=1; break; case 0x0B: tier=2;

18、break; case 0x0D: tier=3; break; case 0x0E: tier=4; break; default: break; return 4*(row-1)+tier; /扫描到按键,返回键值 else return 0; /未扫描到按键按下,返回0四、编程题按照图15-16所示,编写一个串口模式0扩展并行输入口的程序。图15-16 扩展并行输入口#include /头文件sbit P_S=P20; /声明P_Svoid main(void) /主函数int i;SCON=0x10; /串行口模式0的初始化,RI清零,并启动接收ES=0; /禁止串行中断P_S=1;

19、/并行数据送入CD4014P_S=0; / CD4014串行数据输出while(RI) /查询RI,等待接收完毕RI=0; /RI清零i=SBUF; /读出数据四、编程题使用定时器/计数器的工作模式0来扩展单片机的外部中断。答:使用定时器/计数器T0扩展外部中断,由P3.4引脚作为外部中断的输入。程序如下:#include /头文件void T0ISR(void) interrupt 1 /定时器T0中断响应TL0=0x1F; /重置计数初值TH0=0x0FF;P1=P1; /反相void main(void) /主函数TMOD=0x04; /设置定时器T0为模式0TL0=0x1F; /初始化

20、TH0=0x0FF;TR0=1;ET0=1;EA=1; /开中断while(1) /主循环四、编程题编写一个和PC串口通信的程序,使用定时器/计数器设置合适的波特率。#include /头文件#include#include void main(void) /主函数unsigned char i; /变量声明char *ch; SCON=0x50; /串口模式1,允许接收 TMOD|=0x20; /初始化T1为定时功能,工作于模式2 PCON|=0x80; /设置SMOD=1 TL1=0xF4; /波特率4800bit/s,初值 TH1=0xF4; IE|=0x90; /中断 TR1=1; /

21、启动定时器for(i=0;i128;i+) /循环输出 ch=( islower (i)? YES:NO); /调用islower函数 printf(islower(%c)=%sn,i,ch); /输出结果 四、编程题编写一个单片机硬件加法的程序,从计算机串口输入两个整型数据,在单片机中相加,然后向计算机返回计算结果。#include /头文件#include#include void main(void) /主函数int a;int b;long c; SCON=0x50; /串口模式1,允许接收 TMOD|=0x20; /初始化T1为定时功能,模式2 PCON|=0x80; /设置SMOD

22、=1 TL1=0xF4; /波特率4800bit/s,初值 TH1=0xF4; IE|=0x90; /中断 TR1=1; /启动定时器printf (Enter two numbern);scanf (%d %d, &a, &b); /输入整型数据c=a+b;printf (a=%d,b=%d,c=%ldn,a,b,c);四、编程题编写一个单片机硬件加法的程序,从计算机串口输入两个整型数据,在单片机中相加,然后向计算机返回计算结果。#include /头文件#include#include void main(void) /主函数int a;int b;long c; SCON=0x50; /

23、串口模式1,允许接收 TMOD|=0x20; /初始化T1为定时功能,模式2 PCON|=0x80; /设置SMOD=1 TL1=0xF4; /波特率4800bit/s,初值 TH1=0xF4; IE|=0x90; /中断 TR1=1; /启动定时器printf (Enter two numbern);scanf (%d %d, &a, &b); /输入整型数据c=a+b;printf (a=%d,b=%d,c=%ldn,a,b,c);四、编程题编写一个程序来统计成绩在8090之间的学生,并输出学生信息。#include /头文件struct student /定义结构char *name; /姓名int num; /学号int age; /年龄char *sex; /性别float score; /分数boy5= /声明并初始化结构数组Alice,100,24,F,90.5,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1