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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机C51编程考证.docx

1、单片机C51编程考证1.10 习题一、填空题1最早的单片机是 4 位的。5如果某个特殊功能寄存器 能被8整除 ,那么这个特殊功能寄存器便可以进行位寻址。6单片机的时钟模式包括 片内时钟模式 和 片外时钟模式 两种。二、选择题751系列单片机可以寻址( A )的程序存储空间。A64KB B32KBC8KB D4KB8算术逻辑部件(ALU)不可以执行如下哪个操作( D )。A加法 B减法C逻辑运算 D傅立叶变换2.4 习题一、填空题2AT89S51具有 32 个通用I/O引脚, 6 个中断源, 2 个定时器/计数器。3Keil Vision3集成开发环境中,编译当前文件的快捷键为 Ctrl+F7

2、。二、选择题1AT89S51是( A )公司的产品。AAtmel BCypressCMaxim DFreescale3.9 习题一、填空题4多分支结构一般采用 JMP 来实现。二、选择题3在下面程序运行后,RAM存储单元20H24H中数值分别变为( A )。01 ORG 0000H02 JMP START03 ORG 1000H04 START: MOV A,#04H ;累加器A赋值05 MOV 20H,#20H ;RAM的20H单元赋值06 XCH A,20H ;直接寻址整字节交换指令07 MOV R2,#05H ;寄存器R2赋值08 XCH A,R2 ;寄存器寻址整字节交换指令09 MOV

3、 21H,A ;保存数据05H到RAM的21H单元10 MOV 10H,#06H ;RAM单元赋值11 MOV R0,#10H ;寄存器R0赋值12 XCH A,R0 ;寄存器间接寻址整字节交换指令13 MOV 22H,A ;保存数据06H到RAM的22H单元14 MOV A,#00H ;累加器A赋值15 MOV 11H,#0FH ;RAM单元赋值16 MOV R1,#11H ;寄存器R1赋值17 XCHD A,R1 ;半字节交换指令18 MOV 23H,A ;保存数据到RAM的23H单元,数据应该为0FH19 MOV A,#0FH ;累加器A赋值20 SWAP A ;累加器高低字节交换指令2

4、1 MOV 24H,A ;保存数据到RAM的23H单元,数据应该为F0H22 RET23 ENDA0x04H、0x05H、0x06H、0x0FH和0xF0HB0x01H、0x05H、0x01H、0x0FH和0xF0HC0x04H、0x05H、0x02H、0x0FH和0xF0HD0x04H、0x05H、0x06H、0x0FH和0xFFH4.11 习题二、选择题4下面这段程序的运行结果为( A )。01 #include /头文件02 void main() /主函数03 04 int a,b,c,d,e; /声明变量05 float f1,f2;06 a=7; /变量赋值07 b=9;08 c=

5、!a; /计算逻辑表达式09 d=a|b;10 f1=2.3;11 f2=5.7;12 e=(f1!=f2);13 printf(c=%d,d=%d,e=%dn,c,d,e); /输出结果14 Ac=0,d=1,e=1 Bc=1,d=1,e=1Cc=0,d=1,e=0 Dc=1,d=0,e=0四、编程题编写一个成绩等级的程序。要求输入学生的成绩范围为0100,当为90100时,输出字符A;当为8090时,输出字符B;当为6080时,输出字符C。当小于60时,输出字符D。答:#include /头文件void main( ) /主函数 float score=92; if(score=90) p

6、rintf(“A”); else if(score=80) printf(“B”); else if(score60) printf(“C”); else printf(“D”);5.13 习题一、填空题1在C51语言的程序中,循环语句一般采用 for 、 do-while 和 while 来实现。2字符在C51语言的程序中,跳转语句一般采用 goto 、 break 和 continue 来实现。二、选择题2break语句不能应用于那个语句内部( A )。Aif BforCwhile Ddo-while3下面这段程序的运行结果为( A )。01 #include /头文件02 void ma

7、in() /主程序03 04 char ch;05 ch=a; /赋值06 switch(ch) /开关语句07 08 case a: /如果为a,则输出A09 printf(ch的大写字符为A);10 break;11 case b: /如果为b,则输出B12 printf(ch的大写字符为B);13 break;14 default: /否则输出这里15 printf(Not a and b);16 break;17 18 Ach的大写字符为A Bch的大写字符为BCNot a and b D都不是四、编程题编写一个子函数来实现如下函数的计算,其中,x为整数,并计算x=5时的函数值。01

8、#include /头文件02 int Fun(int x)03 04 int i,y;05 if(x0) /判断x的值06 07 y=1;08 for(i=1;i=x;i+) /阶乘运算09 10 y=y*(i+1);11 11 y=y-1;12 13 else14 15 y=3*x*x+2*x+1; /计算数学表达式16 17 return y; /返回语句18 19 void main() /主函数20 21 int x=5,y;22 y=Fun(x); /函数调用23 printf(y=%dn,y); /打印输出结果24 6.8 习题一、填空题3在程序中声明 字符串数组 时,其长度必须

9、比要存的字符串多一个元素,最后一位元素用来存储 空字符“0” 。5在C51语言中,虽然不能动态分配 数组的大小 ,但是可以动态分配 数组元素的值 。二、选择题3访问多维数组元素的时间要( A )访问一维数组元素的时间。A大于 B等于C小于 D不确定4在下面程序运行结果为( C )。01 #include /头文件02 #include /提供字符串操作的头文件03 void main() /主函数04 05 char a10=a,b; /声明字符串数组,并赋值06 char b=good;07 char s30;08 strcat(a,b); /将字符串b追加到a的末尾09 strcpy(s,

10、a); /将字符串a复制到字符串s10 printf(s=%sn,s); /输出字符串s11 As=ab Bs=goodCs=abgood Ds=abgoodn7.9 习题一、填空题3指针变量的专用运算符包括 & 和 * 。4指针变量可以参与 关系 和 算术 运算。二、选择题3在下面程序可能的运行结果为( A )。01 #include /头文件02 void main() /主程序03 04 int ch34=1,1,3,3,5,6,7,8,9,10,1,2; /定义并初始化二维数组ch05 printf(ch=%d,ch); /输出ch的值06 printf(*ch=%dn,*ch); /

11、输出*ch的值07 Aa=1000,*a=1000 Ba=1000,*a=2000 Ca=2000,*a=1000 Da=1010,*a=2000 8.10 习题二、选择题4下面这段程序的运行结果为( A )。01 #include /头文件02 struct student /声明结构03 04 int num; /学号05 char name20; /姓名06 char sex2; /性别07 int age; /年龄08 float score; /分数09 class15= /声明结构数组并初始化10 100Alice, F, 24, 90.5,11 101,Bob, M , 24,

12、88.0,12 102,Jack, M , 25, 95.5,13 103,Twis, M , 23, 69.5,14 104,Bohm, M , 21, 82.515 ;16 void main() /主函数17 18 int i;19 for(i=0;i=95.0) /判断分数是否大于90,如果大于则输出22 printf(%d %s %s %d %f n, 23 class1i.num,class1i.name, 24 class1i.sex,class1i.age, class1i.score);25 26 A100 Alice F 24 90.500000 B102 Jack M 2

13、5 95.500000C101 Bob M 24 88.000000 D103 Twis M 23 69.5000009.7 习题一、填空题2从 数据存储 角度来说,结构和联合变量的区别主要在于 联合变量的成员 占用同一个内存空间,而 结构变量中的成员 分别独占自己的内存空间,互相不干扰,二、选择题2位域中的一个位段可以存储在( A )。A一个字节 B多个字节C相邻两个字节 D以上都可以10.9 习题一、填空题3在C51语言中,除了 main 函数外,各个函数都是平行的。4函数的调用方式包括 赋值调用 、 引用调用 、 递归调用 和 嵌套调用 。二、选择题2toascii(245)的结果为(

14、A )。Au B245CU D12711.8 习题4在下面程序运行结果为( A )。01 #include /头文件02 #define SCORE 85 /宏定义03 void main() /主函数04 05 #ifdef SCORE /条件编译06 printf(SCORE existed!); /如果宏SCORE存在,则执行该语句07 #else08 printf(No SCORE!); /如果宏SCORE不存在,则执行该语句09 #endif10 #ifndef GREED11 printf(GREED is not defined!); /如果宏GREED存在,则执行该语句12 #

15、else13 printf(GREED is defined!); /如果宏GREED不存在,则执行该语句14 #endif15 ASCORE existed! GREED is not defined!BNo SCORE! GREED is not defined!CSCORE existed! GREED is defined!DNo SCORE! GREED is defined!四、编程题使用嵌套汇编的方法编写一个可以精确控制P2端口引脚电平延时的程序。01 #include /头文件02 void main() /主函数03 04 while(1)05 06 P2=0x00; /P2

16、端口输出07 #pragma asm /嵌入汇编语句08 NOP09 NOP10 SETB P2.0 /置P2.0为高电平11 NOP12 NOP13 #pragma endasm /结束汇编语句嵌入14 P2=0x00; /P2端口输出15 16 12.7 习题一、填空题4在Keil Vision编译系统中,支持的8051系列单片机存储模式共有如下三种 Small模式 、 Compact模式 和 Large模式 。二、选择题2bdata不可用于那个类型的声明( C )。Aint Bshort13.8 习题一、填空题2T0和T1都具有 定时 和 计数 的功能,可以通过特殊功能寄存器来选择。3寄

17、存器TMOD的 C/ 位又称为 工作方式选择位 ,可以选择定时功能或者计数功能。二、选择题1T1不可以工作如下那个模式( D )。A工作模式0 B工作模式1C工作模式2 D工作模式32以下哪个寄存器可以位寻址( B )。ATMOD BTCONCTH0 DTL03以下哪个工作模式为16位计数器方式( B )。A工作模式0 B工作模式1C工作模式2 D工作模式3451系列单片机最多可以使用( B )个定时器/计数器。A2 B3C1 D414.10 习题一、填空题151系列单片机提供了三类中断源,即 外部中断源 、 串行中断源 和 定时中断源 。2单片机外部中断源,分别为 外部中断0 和 外部中断1

18、 。二、选择题451系列单片机对中断的查询次序为( C )。A外部中断1T0外部中断0T1串行中断B外部中断0T1外部中断1T0串行中断C外部中断0T0外部中断1T1串行中断D外部中断1T1外部中断0T0串行中断15.9 习题2 SM0 和 SM1 是串行通信接口工作方式选择位。二、选择题3如下那个寄存器可位寻址( A )。ASCON BPCONCSBUF D以上都可以4波特率= fosc2SMOD/64是如下那个串口工作模式的波特率公式( C )。A模式0 B模式1C模式2 D模式316.7 习题一、填空题3中断法是将键盘扫描程序放置在单片机的 中断服务例程 中的方法。只有当按键按下的时候,

19、才触发 中断 ,进而 扫描键值 。4 阵列式按键键盘 是将各个开关排列成行和列的阵列结构,其中,单片机的I/O接口一部分作为 行 ,一部分作为 列 ,按键布置在行线和列线的 上。5直接式按键键盘就是采用 单独的按键开关 ,直接连接到一个单片机的输入引脚上,每个按键占用 一个单片机的I/O接口 。四、编程题编写一个程序,单片机外接44阵列式按键键盘和蜂鸣器,根据按键键值的不同使蜂鸣器响相应的次数。答:#include /头文件#include /头文件int row; /定义行号int tier; /定义列号int KeyScan(); /子函数声明void Delay();void main(

20、) /主函数int Key,i;while(1) /开始循环扫描键盘 Key=KeyScan(); /键盘扫描子函数 for(i=0;i0;i-); /可以根据系统的时钟频率来调整int KeyScan() /键盘扫描子函数P1=0xF0; /列输出全0if(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

21、(); /延时去抖动 P1=0x0F; /行输出全0 if(P1&0x0F)!=0x0F) /扫描列,如果不全为0,则确认按键按下 switch(P1) /获得列号 case 0x07: tier=1; break; case 0x0B: tier=2; break; case 0x0D: tier=3; break; case 0x0E: tier=4; break; default: break; return 4*(row-1)+tier; /扫描到按键,返回键值 else return 0; /未扫描到按键按下,返回017.7 习题一、填空题17段共阳极LED数码管,其中包括了7个 条

22、形发光二极管 和一个 小数点位 。7个发光二极管构成 字形“8” ,可以用来显示数字,另一个发光二极管构成 小数点 。2共阴极7段LED数码管有发光二极管的 阴极 为公共端,接 GND 。如果发光二极管的阳极为 高电平 的时候,发光二极管导通,该字段发光;反之,如果发光二极管的阳极为 低电平 的时候,发光二极管截止,该字段不发光。5LED驱动器MAX7219片内具有14个内部 数字 和 控制 寄存器。二、选择题17段共阳极LED数码管显示字符“A”的段码为( A )。A88H B77HC66H D99H27段共阴极LED数码管显示字符“0”的段码为( B )。AC0H B3FHC00H DAA

23、H3下列哪个不是MAX7219的特点( D )。A可以级联 B驱动8个7段共阴极LED显示器C采用三线串行方式 D高速率4静态驱动多个LED数码管有哪些(多选)( ABD )。A直接驱动 B串行接口扩展I/O接口驱动C动态扫描 D使用外部扩展RAM地址来驱动18.8 习题一、填空题1I2C总线全称为 芯片间总线(Inter Integrate Circuit BUS) ,其是Philips公司推出的一种 双向二线制 总线。3 引脚地址 是由I2C总线外围器件的地址引脚 (A2,A1,A0) 决定,根据其在电路中接电源正极、接地或悬空的不同,形成不同的地址代码。4I2C总线上的数据是伴随着 时钟

24、脉冲 ,一位一位地传送的,每位数据占一个时钟脉冲。在I2C总线启动后或应答信号后的 第18个时钟脉冲 ,对应于要传送字节的8位数据,数据位由 低 到 高 传送。5AT24C08是Atmel公司典型的 I2C串行 总线的EEPROM,其具有 10248 位的存储容量,工作于 从器件模式 模式。四、编程题开发一个写I2C总线接口EEPROM的程序,并提供检验功能,当检验失败的时候提供报警。答:利用单片机的P1.0、P1.1作为I2C串行总线的SCL、SDA接口,向AT24C08写入8个字节的数据,然后再将写入的数据读出,并比较。如果读写的数据完全一致,则置P3.7引脚为高电平,发光二极管亮;否则置P3.7引脚为低电平,发光二极管灭。程序代码示例如下:#include /*

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2