《单片机系统设计》复习题2015-11 下载本文

《单片机系统设计》复习题

2015~2016学年度第一学期

一、填空题(每小题1分,共10分)

1. 将十进制数30(40、50、60、70、80、90、100、110、120)转换为对应的十六进制数可表示为0x__________。

2. 将CPU、存储器、I/O口和实时控制器件集成在一个芯片上称为单片微型计算机,简称单片机。

3. 单片机具有价格低、功能强、功耗低等特点(优势)。 4. MCS-51系列单片机中都有一个_______位CPU。

5. MCS-51单片机应用系统中时钟电路接入12MHz的晶振,则系统的时钟周期T____________μS。

6. 在MCS-51单片机中一个机器周期包括________个振荡周期。

7. 当51系列单片机的复位引脚RST为_______(高/低)电平时才能使单片机复位。 8. 为了解决单片机在运行过程中出现死机等问题,可以在上电复位电路的基础上增加_________复位方式。

9. 51系列单片机必须有_______复位电路才能使单片机在开机时复位引脚RST为高电平时产生复位功能。

10. 当51系列单片机的复位引脚RST为24个以上振荡周期的高电平时才能使单片机_______。

11. 51系列单片机最小系统中_________________电路主要是让单片机从主函数的第一条语句开始执行。

12. MCS-51单片机的P0口作为通用的I/O端口功能时,必须外接上拉电阻。 13. 8051单片机片内有4个8位的I/O口为_______。 14. 51单片机的P__________口只有I/O功能。

15. MCS-51单片机的P2口除了作为通用的I/O端口功能外,还可作为高8位的_________总线使用。

16. MCS-51型单片机4个____________位的并行I/O口(P0、P1、P2、P3)。 17. 单片机最小系统由单片机、电源电路、时钟电路和复位电路组成。 18. 在结构化程序设计中__________结构的程序部分指令可能反复被执行。 19. 在结构化程序设计中__________结构的程序全部指令被逐一依次执行。 20. 在结构化程序设计中__________结构的程序部分指令可能不会被执行。 21. 单片机在进行应用系统软件设计时必须有________函数。

22. 当需要定义一个变量sj保存-100到100的数据,在变量sj在定义时最好定义为

- 1 -

___________类型。

23. 当需要定义一个变量kk保存0到200的数据,在变量kk在定义时最好定义为___________类型。

24. 当需要定义一个变量bb保存数据仅为0或1,在变量bb在定义时最好定义为___________类型。

25. 当需要定义一个变量num保存0到30000的数据,在变量num在定义时最好定义为___________类型。

26. 定义的变量为“unsigned int”的数据类型时其取值范围为________________。 27. 51系列单片机中定时/计数器的工作方式0(1、2)为13(16、8)位计数器结构。 28. 51系列单片机中定时/计数器T1工作在工作方式2时如需计数次数为100,则TL1的值为_______。

29. 51系列单片机的定时/计数器T0作为计数器时外部计数脉冲信号从单片机引脚_____________接入。

30. 51系列单片机的定时/计数器T1作为计数器时外部计数脉冲信号从单片机引脚_____________接入。

31. 51系列单片机中定时/计数器的工作方式0时,可实现的最大计数次数为_______。 32. 51系列单片机中定时/计数器T0工作在工作方式1时如需计数次数为65536,则TH0和TL0的值为_______。

33. 51系列单片机中定时/计数器T1工作在工作方式1时如需计数次数为65500,则TL1的值为_______。

34. 51系列单片机中定时/计数器T0工作在工作方式1时如需计数次数为65512,则TL0的值为_______。

35. 在AT89S51单片机中外部中断有____________个。

36. 51系列单片机外部中断信号INT1从单片机引脚_________________输入。 37. 51系列单片机的外部中断信号INT0从单片机引脚_____________接入。

38. 51系列单片机中要响应外部中断源????对应的中断服务函数应将对应的源允许EX0应设置为___________。

39. 51系列单片机中要响应外部中断源???1对应的中断服务函数应将对应的源允许EX1应

设置为___________。

40. 51系列单片机中要响应定时器T1对应的中断应将对应的源允许位___________应设置为1。

41. 51系列单片机在多个中断源中要改变自然排队顺序可使用寄存器__________实现。 42. 51系列单片机程序中使用IP=0x02时,设置__________为高优先级功能。

43. 单片机SCT89C52的定时/计数器T1中断服务程序中对应中断编号为___________。 44. 单片机SCT89C52的外部中断INT0中断服务程序中对应中断编号为___________。

- 2 -

45. 在MCS-51单片机中使用时外部中断INT1其对应的中断服务程序的编号为____________。

46. 单片机SCT89C52的定时/计数器T0中断服务程序中对应中断编号为___________。 47. 要将51单片机中的外部中断信号INT1中断先于外部中断信号INT0执行,则可通过将控制位_______设置为1来实现。

48. 单片机应用系统中常用的显示器件有显示运行状态的发光二极管、显示数值大小的数码管和可显示图形的LCD显示器。

49. 已知有一只数码管显示器其公共端接低电平时才能显示字符,则说明该数码管为共_______数码管。

50. 已知1只共阴极数码管显示器,其中a笔段为字形代码的最低位,若需显示数字0(7),它的字形代码应为0x_______。

51. 已知一只共阳极数码管显示器,其中a笔段为字形代码的最低位,若需显示数字2(3、5、6、7、8、9),它的字形代码应为0x_______。

52. 在51系列单片机应用系统设计中当显示数据位数较多时为了节省单片机I/O口最好采用____________数码管连接方式。

53. 在51系列单片机应用系统设计中为为保证可靠性常采用去抖动措施是用软件____________方式实现。

54. 判断按键是否按下是通过判断按键接到单片机引脚的_______有无变化进行的。 55. 在单片机应用系统中当按键只需要两个,则最好采用____________式键盘结构。 56. 在51系列单片机应用系统设计中当按键数量较多时为了节省单片机I/O口最好采用____________式结构的键盘。

57. 行*列为3*4的矩阵键盘最多可接入按键数量为_________个。

58. 在单片机应用系统中使用P1端口的8个引脚作为矩阵键盘的信号线则最多可接_____个按键。

59. 在矩阵键盘中常用的两种键位的识别方法为行扫描法和线反转法。

60. STC89C52单片机引脚直接能识别的是_________________式的传感器信号。

61. 单片机在进行应用系统设计时包括硬件设计和软件设计。

62. 单片机在进行应用系统设计时如要将*.hex目标程序下载到单片机的程序存储器中,可使用__________实现。

63. 单片机应用系统在进行程序时加上必要的注释可以提高程序的_____________。 64. 单片机应用系统在进行程序编写前最好先绘制_____________,可以提高软件设计的总体效率。

65. 在单片机应用系统中如需要将传感器测量得到的模拟信号送单片机处理需要对信号进行________转换。

66. 单片机系统设计时包括提出方案、方案确定、硬件设计、软件设计和系统的可靠性设计

- 3 -

以及最后的仿真调试与定型等过程。

二、单项选择题(每小题1分,共10分)

( )1.十六进制数0x50其对应的十进制可表示为()。

A.32 B.50 C.80 D.100

( )2.十六进制数( )其可表示为对应的十进制60。

A.0x16 B.0x50 C.0x51 D.0x80

( )3.二进制数00111001其对应的十六进制可表示为( )。

A.0x39 B.0x57 C.0x71 D.0xe2

( )4.二进制数01010011其对应的十六进制可表示为( )。

A.0x83 B.0x123 C.0x52 D.0x53 ( )5.二进制数1110110其对应的十六进制可表示为( )。

A.0x36 B.0x76 C.0xec D.0xe6

( )6.二进制数00110010其对应的十六进制可表示为( )。

A.0x190 B.0x32 C.0x50 D.0x80

( )7.二进制数11110010其对应的十六进制可表示为( )。

A.0xf2 B.0x1e2 C.0x257 D.0x362( )8.二进制数01000000其对应的十六进制可表示为( )。 A.0x12 B.0x28 C.0x50 D.0x80 ( )9.二进制数01001000其对应的十六进制可表示为( )。

A.0x30 B.0x32 C.0x48 D.0x80

( )10.二进制数1010000其对应的十进制为()。

A.32 B.50 C.80 D.100

( )11.单片机8051的XTAL1和XTAL2引脚是( )引脚。 A.外接定时器 B.外接串行口 C.外接中断( )12. 单片机RST引脚外接的是( )电路。

A.时钟 B.复位 C.中断 D.显示

( )13.单片机AT89S52的9号引脚RST是外接( )引脚。 A.计数脉冲信号 B.复位电路 C.中断信号( )14. STC89C52单片机的Vcc(40)引脚是( )引脚。

- 4 -

D.外接晶振D.时钟电路

A.主电源+5V B.接地 C.备用电源 D.访问片外存贮器

( )15. MCS-51单片机复位操作的功能是把P0~P3初始化为( )。

A.00H B.11H C.0FFH D.不能确定

( )16. 单片机P3.2引脚可外接( )信号。

A.时钟 B.计数脉冲 C.中断 D.定时

( )17.下面单片机中( )比其它三只单片机在存储器容量要小。

A.AT89S51 B.STC89C52 C.AT89S52 D.AT89C52

( )18. 51系列单片机芯片中不包括( )。

A.CPU B.存储器 C.I/O端口 D.显示器

( )19.单片机应用程序一般存放在( )中。

A.RAM B.ROM C.寄存器 D.CPU

( )20. MCS-51单片机采用fosc=12MHz的晶振,则系统的机器周期为( )μS。

A.1 B.2 C.12 D.1000

( )21. 当51系列单片机系统的机器周期为1μS,则系统中的晶振频率为( )MHz。

A.2 B.6 C.12 D.24

( )22. 51系列单片机的RST复位引脚应该至少保持( )个时钟周期的高电平才能使单片机复位。

A.2 B.8 C.12 D.24

( )23. 单片机RST引脚外接的是( )电路。

A.时钟 B.复位 C.中断 D.显示

( )24. MCS-51单片机的复位信号是( )有效。

A.高电平 B.低电平 C.脉冲 D.下降沿

( )25.单片机最小系统中可以不需要的电路为( )。

A.单片机 B.数码管显示电路 C.复位电路 D.时钟电路

( )26. 在MCS-51单片机中,( )口只能作为I/O端口使用。

A.P0 B.P1 C.P2 D.P3

( )27.在单片机C语句中,用“bit”定义数据表示的范围为()。

A.0~1 B.-128~127 C.0~255 D.0~65535

( )28.在单片机C语句中,用“int”定义数据表示的范围为()。

- 5 -

A.0~255 B.-128~127 C.0~65535 D.-32768~32767

( )29.在单片机C语句中,用“unsigned int”定义后数据不能为( )。

A.-5 B.0 C.222 D.10000

( )30.在单片机C语句中,用“unsigned int”定义数据表示的范围为()。

A.0~255 B.-128~127 C.0~65535 D.-32768~32767

( )31.在单片机C语句中,用类型( )定义数据表示的范围为0~255。

A.unsigned char B.char C.unsigned int D.int

( )32. 单片机C语句中,用“unsigned char”定义后数据不能为( )。

A.-15 B.0 C.80 D.250

( )33.在单片机C语句中,用“unsigned char”定义数据表示的范围为()。

A.0~255 B.-128~127 C.0~65535 D.-32768~32767

( )34.在单片机C语句中,用“char”定义变量最大值为()。

A.255 B.127 C.65535 D. 32767

( )35.在单片机C语句中,用“int”定义后数据不能为( )。

A.-200 B.0 C.257 D.50000

( )36. 在单片机C语句中,用数据23.50可保存在以下的( )变量中。

A.bit B.char C.float D.int

( )37.已知字符变量num2=20,在下面指令中能实现num2值为40的是( )。

A.num2++; B.num2--; C.num2=num2*2; D.num2=num2+2;

( )38.已知字符变量count=23,在下面指令中不能实现将count最低位清零的是( )。

A.count++; B.count--; C.count=count-3; D.count=count+2;

( )39.下列指令中能能使变量num低4位不变,高4位置1的是( )。

A.num=num&0x0f B.num=num&0x0f0 C.num=num|0x0f D.num=num|0x0f0

( )40.下列指令中保持字符变量jj低4位不变的是( )。

A.jj=jj&0x0f B.jj=jj&0x0f0 C.jj=jj|0x0f D.jj=jj|0x0f1

( )41.下列指令中能能使变量kk高4位不变,低4位清0的是( )。

A.kk=kk&0x0f B.kk=kk&0x0f0

- 6 -

C.kk=kk|0x0f D.kk=kk|0x0f0

( )42.下列指令中能能使变量a低4位不变,高4位置1的是( )。

A.a=a&0x0f B.a=a&0xf0 C.a=a|0x0f D.a=a|0xf0

( )43.下列指令中不能让变量kk的值由2变为4的是( )。

A.kk=kk+2 B.kk=+2

C.kk=kk*2 D.kk=(kk+1)*2

( )44.下列指令中不能使变量time加1的指令是( )。

A.time++ B.time-- C.++time D.time=time+1

( )45.当变量m=1时,下列指令中能使m结果变为0的是( )。

A.m=m|0x00; B.m--; C.m++; D.m=m+2;

( )46.启动定时器0开始计数的指令是使TCON的( )。

A.TF0位置1 B.TR0位置1 C.TR0位置0 D.TR1位置0

( )47.用8031的定时器T1作计数方式,用模式2,则工作方式控制字TMOD值为( )。

A.0x60 B.0x02 C.0x06 D.0x20

( )48.MCS—51单片机的TMOD模式控制寄存器是一个专用寄存器,用于控制T1和T0的操作模式及工作方式,其中C/T表示的是( )。

A.门控位 B.操作模式控制位 C.功能选择位 D.启动位

( )49.MCS-51单片机定时/计数器工作( )为2个8位计数器结构。 A.方式0 B.方式1 C.方式2 D.方式3

( )50.当单片机定时器T0工作在方式1,初值存放在寄存器( )中。

A.TL0 B.TH0 C.TL1 D.TL0和TH0

( )51.用8031的定时器T1用模式2计数200次,则TL1的初值为( )。

A.200 B.100 C.56 D.65336

( )52. 用AT89S51的定时器T1作定时方式,用模式1,则初始化指令为( )。

A.TMOD=0x01 B.TMOD=0x50 C.TMOD=0x10 D.TCON=0x02

( )53.用51单片机的定时器T1作计数功能用方式1,则方式控制字TMOD值为( )。

A.0x05 B.0x50 C.0x06 D.0x60

( )54.在51系列单片机系统中使用定时/计数器进行定时时,如果晶振频率fosc=12MHz,

- 7 -

___

则最大定时时间为( )μS。

A.2 B.256 C.8192 D.65536

( )55.在51系列单片机系统中使用定时/计数器工作于方式1时,可以完成的最大计数

次数为( )。

A.2 B.256 C.8192 D.65536

( )56.用8031的定时器T0工作于方式2时计数100次时,则TL0的初值为( )。

A.100 B.156 C.256 D.65436

( )57.51系列单片机中采用计数器T0完成计数50000次,应选择T0工作于工作方式( )。

A.0 B.1 C.2 D.3

( )58.51系列单片机中定时/计数器T1不能工作于工作方式( )。

A.0 B.1 C.2 D.3

( )59. MCS~51单片机定时/计数器工作方式3是指的( )计数器结构。

A.2个8位 B. 自动重装的8位 C.13位 D.16位

( )60. 8031单片机的定时器T1用作计数方式时计数脉冲是( )。

A.外部计数脉冲由T1(P3.5)输入 B.外部计数脉冲由内部时钟频率提供 C.外部计数脉冲由T0(P3.4)输入 D.由外部计数脉冲计数

( )61. 用8031的定时器T0作计数工作于方式1(16位),则工作方式控制字TMOD为( )。

A.0x01 B.0x02 C.0x04 D.0x05

( )62.在51系列单片机系统中使用定时/计数器进行计数时,可以完成的最大计数次数

为( )。

A.2 B.256 C.8192 D.65536

( )63. MCS-51单片机定时/计数器T1产生的中断信号为( )。 A.TF0 B.TF1 C.TR0 D.TR1

( )64.当单片机定时器T0发出中断请求后,中断响应的条件是( )。

A.ET0=1 B. EX0=1 C.IE=0x82 D.IE=0x61

( )65. 在51系列单片机中,要实现中断功能必需将( )设置为1。

- 8 -

A.EX0 B.ET0 C.EA D.ES

( )66.MCS-51单片机各中断允许的设定是利用寄存器( )。

A. IE B.IP C. SCON D. TMOD

( )67.MCS-51单片机各中断源的优先级别设定是利用寄存器( )。

A.TMOD

B.IP C.PCON D.SCON

( )68. 在51系列单片机中,要实现外部中断INT1的中断,IE应为( )。

A.0x80 B.0x81 C.0x84 D.0x88

( )69. 在51系列单片机中,要实现外部中断INT0的中断,IE应为( )。

A.0x01 B.0x04 C.0x81 D.0x84

( )70. 在51系列单片机中,要实现定时/计数器T0的中断,IE应为( )。

A.0x01 B.0x81 C.0x82 D.0x88

( )71.当单片机定时器T1发出中断请求后,中断响应的条件是( )。

A.EA=1 B. EX1=1 C.IE=0x64 D.IE=0x84

( )72.MCS-51单片机允许外部中断源INT1的设定是利用控制位( )进行设置。

A. EA B. EX0 C. EX1 D. EA和EX1

( )73.在单片机系统中将外部中断INT1信号引入单片机,应通过单片机引脚( )引入。

A.P3.2 B.P3.3 C.P3.4 D.P3.5

( )74.51系列单片机中定时/计数器T1中断信号为高优先级的指令为( )。

A.PX0=1 B.PX1=1 C.PT0=1 D.PT1=1

( )75.能设置外部中断信号INT1的中断触发方式为跳变触发的指令是( )。

A.EA=1 B.EX1=1 C.ET1=1 D.IT1=1

( )76.已知1只共阳极数码管显示器,其中a笔段为字形代码的最低位,若需显示数字

2,它的字形代码应为()。

A. 0x99 B. 0xa4 C. 0xb0 D. 0xf9

( )77.已知1只共阳极数码管显示器的a笔段为字形代码最低位,若需显示数字4,它

的字形代码应为( )。

A.0x06 B.0x4f C.0x66 D.0x99

( )78.已知1只共阴极数码管显示器,其中a笔段为字形代码的最低位,若需显示数字

4,它的字形代码应为( )。

A.0x06 B.0x66 C.0x6d D.0x6f

- 9 -

( )79.已知共阴极数码管显示器,其中a笔段为字形代码的最低位,若需显示数字2,

它的字形代码应为( )。

A.0x06 B.0x5b C.0x4f D.0xf9

( )80.已知1只共阴极数码管显示器,其中a笔段为字形代码的最低位,若需显示数字

1,它的字形代码应为( )。

A.0x06 B.0x30 C.0x3F D.0xF9

( )81. 已知1只共阴极数码管显示器,其中a笔段为字形代码的最低位,若需显示数

字6,它的字形代码应为( )。

A.0x06 B.0x6d C.0x7d D.0x07

( )82.已知1只共阴极数码管显示器,其中a笔段为字形代码的最低位,若需显示数字

7,它的字形代码应为()。

A.0x06 B.0x07 C.0x7d D.0x7f

( )83.已知1只共阴极数码管显示器,其中a笔段为字形代码的最低位,若需显示数字

5,它的字形代码应为()。

A.0x07 B.0x3f C.0x6d D.0x82

( )84.已知1只共阴极数码管显示器,其中a笔段为字形代码的最低位,若需显示数字

3,它的字形代码应为( )。

A.0x4f B.0x66 C.0x6d D.0x99

( )85.已知1只共阴极数码管显示器,其中a笔段为字形代码的最低位,若需显示数字

9,它的字形代码应为( )。

A.0x07 B.0x6d C.0x6f D.0x7f

( )86.在单片机系统中使用非编码式的键盘识别时可用延时( )ms进行去抖动以增强

读取的可靠性。

A.5 B.15 C.100 D.200

( )87.在单片机系统中使用按钮开关时,为保证可靠性常采用措施是用软件( )方式

实现的。

A.看门狗 B.延时 C.定时 D.中断

( )88.在单片机系统中使用非编码式的矩阵键盘时如需要11个按键,则最少需要用单

片机引脚( )个。

A.6 B.7 C.8 D.11

- 10 -

( )89.在单片机系统中使用非编码式的矩阵键盘时如需要12个按键,则最少需要用单

片机引脚( )个。

A.6 B.7 C.8 D.12

( )90.在单片机系统中使用非编码式的矩阵键盘时如需要13个按键,则最少需要用单

片机引脚( )个。

A.7 B.8 C.9 D.13

( )91.在单片机系统中使用非编码式的矩阵键盘时如需要14个按键,则最少需要用单

片机引脚( )个。

A.7 B.8 C.9 D.14

( )92.在单片机系统中使用非编码式的矩阵键盘时如需要15个按键,则最少需要用单

片机引脚( )个。

A.6 B.7 C.8 D.12

( )93.在单片机系统中使用非编码式的矩阵键盘时如需要16个按键,则最少需要用单

片机引脚( )个。

A.6 B.8 C.10 D.16

( )94.在单片机应用系统中解决直流电机驱动能力问题,可使用( )实现。

A.L298 B.LS245 C.定时器 D.中断系统

( )95.在单片机应用系统仿真过程中能将程序导入单片机进行系统软硬件仿真的是软件

( )。

A.portel B.keil C C.proteus D.word

( )96. 下载(烧录)到51系列单片机中的目标程序(*.hex)一般存放在( )中。

A.数据存储器 B.程序存储器 C.I/O端口 D.CPU

( )97. 若AT89S52的P2口控制8个发光二极管LED,P2.0~P2.7分别控制LED1~LED8,如果要LED2亮,则以下那条指令正确( )。

A. P2=0xfd; B. P2=0xfe; C. P2=0x7f; D. P2=0xbf;

( )98. D/ A转换器的作用是( )。

A.TTL电平转换成CMOS电平 B.CMOS电平转换成TTL电平 C.数字量转换成模拟量 D.模拟量转换成数字量

( )99. 单片机能直接运行的程序叫( )。

- 11 -

A.源程序 B.汇编程序 C.目标程序 D.编译程序

三、判断题:在每小题前面的括号中用“√”和“х”判断其表述是否正确(“√”

表示正确,“х”表述不正确)。(每小题1分,共10分) ( )1. 二进制数1010111化成十进制数为67。 ( )2.二进制数01000101化成十进制数为45。 ( )3.二进制数01000110化成十进制数为46。 ( )4.二进制数0010101化成十进制数为15。 ( )5. 二进制数10000110化成十进制数为84。 ( )6.二进制数01010110化成十六进制数为0x45。 ( )7. 十进制数21可转换为二进制数00100001。 ( )8. 十进制数33可转换为二进制数011011。 ( )9. 十进制数45可转换为二进制数01000101。 ( )10. 十进制数18可转换为二进制数110001。 ( )11.单片机的主频越高,其运算速度越快。

( )12.单片机系统中时钟频率fosc越高,CPU执行越慢。 ( )13. 显示较复杂的图形时可以用数码管显示实现。

( )14. 单片机是将CPU、存储器、I/O接口、晶振等多个集成连接在一起并用软件进行控制的系统。

( )15.单片机的晶振频率越高,其运算速度越快。 ( )16.单片机的晶振频率越高,其指令执行速度越快。 ( )17.MCS-51单片机的P1口具有第二功能。

( )18. 51单片机P1口的每个引脚最多可并接3只发光二极管才能保证发光二极管正常发光。

( )19. MCS-51单片机的P0口可作直接为8位的地址总线使用。 ( )20.MCS-51单片机的P1口作为I/O口使用时必需外接上拉电阻。 ( )21.MCS-51单片机的P3口具有第二功能。

( )22. 在进行单片机系统设计时包括硬件系统和软件系统设计两部分。 ( )23.MCS-51单片机程序存储器存放的必须是*.C的源程序。 ( )24. MCS-51单片机是高档32位单片机。

( )25. 如系统的晶振频率为12MHz,则MCS~51单片机的机器周期为2μS。 ( )26. MCS-51单片机的P2口可作直接为8位的数据总线使用。

- 12 -

( )27. 单片机的CPU从功能上看包括运算器和存贮器。 ( )28. MCS-51单片机的仅P1口可作I/O口使用。

( )29. MCS-51单片机的P2口可作直接为8位的数据总线使用。 ( )30. MCS~51单片机中一个机器周期包含24个振荡周期。 ( )31.单片机的复位必须有按钮手动复位。

( )32.单片机系统必须有上电自动复位方式系统才能正常工作。 ( )33. MCS~51单片机系统可以没有复位电路。

( )34. 单片机的复位有上电自动复位和按钮手动复位两种。 ( )35. 51单片机复位后P1口的状态为0xff。

( )36.MCS-51单片机系统必须有按键复位电路系统才能正常工作。 ( )37. STC89C52单片机复位引脚为高电平时才能复位。

( )38. 51系列单片机必须有上电复位电路才能使单片机在开机时复位引脚RST为高电平时产生复位功能。

( )39. 当单片机运行过程中出错或进入死循环时,可按复位键重新启动。 ( )40. 当MCS~51单片机复位后,端口P0为FFH。

( )41. MCS~51单片机中要复位需要将复位引脚设置为高电平。 ( )42. 单片机的复位有上电自动复位和按钮手动复位两种。 ( )43.MCS-51单片机系统可以没有复位电路。

( )44.MCS-51单片机的P0口作为I/O口使用时需接上拉电阻。 ( )45.主函数可以被其它函数调用。

( )46.单片机应用系统的开发实际上就是程序设计。 ( )47.对于循环结构的程序可能有一部分程序段不被执行。

( )48.在51系列单片机中指令“int max”定义的变量max为8位的整型变量。 ( )49.在51系列单片机中指令“char num”定义的变量num为16位的实数型变量。 ( )50.在51系列单片机中指令“char time”定义的变量time为8位的字符型变量。 ( )51.在51系列单片机中指令“int count”定义的变量count为16位的整型变量。 ( )52.在51系列单片机中指令“int max”定义的变量max为8位的整型变量。 ( )53.在51系列单片机中指令“bit bz”定义的变量bz为8位的字符型变量。 ( )54.在单片机中用“char max”定义的变量最大值为255。 ( )55.在51系列单片机中指令可以不用main()函数。 ( )56.对于分支结构的程序总会有一部分程序段被反复执行。 ( )57. 在绘制流程图时可用菱形框来表示判断处理。 ( )58. 在绘制流程图时表示开始和结束用方框表示。

( )59. MCS-51单片机的两个定时/计数器必须同时作为定时功能或计数功能使用。

- 13 -

( )60. 在MCS~51单片机中寄存器TMOD可设置定时/计数器作为定时还是计数功能使用。

( ) 61. MCS-51单片机的定时/计数器T1作为定时器使用时用TF0表示定时时间到。 ( )62. MCS-51单片机的定时/计数器T1可选择工作于方式3。 ( )63.MCS-51单片机的两个定时/计数器只能实现计数功能。 ( )64. STC89C51单片机有5个定时/计数器。

( )65.MCS-51单片机的定时/计数器T1不能实现计数功能。 ( )66. 启动定时器T1工作,可使用“TR1=1”启动。

( )67.MCS-51单片机的两个定时/计数器中T0为定时功能,T1为计数功能。 ( )68.MCS-51单片机的定时/计数器T0工作在方式2时,TH0与TL0的初值相同。 ( )69. MCS-51单片机的两个定时/计数器只能实现计数功能。 ( )70. 51系列单片机只有2个中断源。

( )71. 单片机中断系统包括硬件系统和软件系统两部分。 ( )72.51系列单片机中定时/计数器T1的中断源为INT1。 ( )73.51系列单片机只有1个外部中断源。

( )74.51系列单片机中定时/计数器T1的中断源为TF0。 ( )75.中断可以提高CPU的工作效率。

( )76. 51系列单片机中5个中断源不能同时使用。 ( )77.MCS-51单片机的外部中断信号可以从P2口输入。 ( )78. AT89S51系列单片机只有2个外部中断源。

( )79. 在MCS~51单片机中当需要定时/计数器中断响应时EA位必须为高电平。 ( )80.51单片机的串行口通信方式为全双工异步通信方式。

( )81.51单片机系统设计时,显示的数据位数较多和采用静态连接方式实现。 ( )82.数码管的位数只有1位时应采用动态显示控制方式。

( )83.单片机系统设计按键电路时,必需保证按键压下前后有电平的变化。 ( )84.单片机系统中需要8个按键时,必需选择独立式键盘结构形式。 ( )85.单片机系统中需要8个按键时,必需选择独立式键盘结构形式。 ( )86. 单片机系统中只需要3个按键时可选择独立式键盘结构形式。 ( )87.单片机系统中需要2个按键时可选择独立式键盘结构形式。 ( )88.单片机系统中需要9个按键时,必需选择矩阵式键盘结构形式。 ( )89.单片机系统中需要4个按键时,最好选择独立式键盘结构形式。 ( )90. 51单片机可以直接识别所有类型的传感器输出的信号。 ( )91.51单片机只能直接识别输出为数字式的传感器信号。

- 14 -

( )92. 单片机应用系统由单片机和必要的外围电路组成。 ( )93.51单片机的端口只能识别模拟信号。 ( )94.在进行单片机系统设计实际上就是程序设计。 ( )95.功耗大是液晶显示器的缺点之一。

四、分析题(每题10分,共20分)

1.在STC89C52单片机应用电路中的P2.6和P2.7依次连接有一发光二极管D1和D2,当单片机的引脚P2.6和P2.7为低电平时发光二极管能被正常点亮,下列主函数执行后,变量x的值为_________,y的值为_________,z的值为_________,发光二极管D1_________(亮或不亮),发光二极管D2_________(亮或不亮)。(每空2分)

#include “reg52.h”

sbit D1=P2^6; sbit D2=P2^7; main( ) {

char x=8,y=3,z; y--; z=x-y; P2=0xff;

if(z!=6) D1=0; else D2=0; }

2.在STC89C52单片机应用电路中的P1.0和P1.1依次连接有一发光二极管D1和D2,当单片机的引脚P1.0和P1.1为低电平时发光二极管能被正常点亮,下列主函数执行后,变量a的值为_________,b的值为_________,c的值为_________,发光二极管D1_________(亮或不亮),发光二极管D2_________(亮或不亮)。(每空2分)

#include “reg52.h”

sbit L1=P1^0; sbit L2=P1^1; main( ) {

int a,b,c; a=5; b=6; b++; c=a+b; P1=0xff;

if(c= =10) L1=0; else L2=0;

- 15 -

}

3.在STC89C52单片机应用电路中的P3.6和P3.7依次连接有一发光二极管L1和L2,当单片机的引脚P3.6和P3.7为低电平时发光二极管能被正常点亮,下列主函数执行后,变量m1的值为_________,m2的值为_________,m3的值为_________,发光二极管L1_________(亮或不亮),发光二极管L2_________(亮或不亮)。(每空2分) #include “reg52.h”

sbit L1=P3^6; sbit L2=P3^7; main( ) {

int m1,m2,m3; m1=3; m2=2; m2++;

m3=m1+m2; P3=0xff;

if(m3= =6) L1=0; else L2=0; }

4.在STC89C52单片机应用电路中的P3.0、P3.1和P3.2依次连接有一发光二极管D1、D2和D3,当单片机的引脚P3.0、P3.1和P3.2为低电平时发光二极管能被正常点亮,下列主函数执行后,变量i的值为_________,j的值为_________,发光二极管D1_________(亮或不亮),发光二极管D2_________(亮或不亮),发光二极管D3_________(亮或不亮)。(每空2分)

#include “reg52.h” sbit D1=P3^0; sbit D2=P3^1; sbit D3=P3^2; main( ) {

char i=2,j=5; i=i+2; j--;

P3=0xff;

if(i!=j) D1=0; else D2=0; D3=0; }

5. 阅读程序,在横线上将空缺的语句补充完整,使该程序实现功能为点亮P1.0所接的第一个发光二极管被点亮,关闭P1.7所接的第一个发光二极管。

- 16 -

#____________ //52系列单片机头文件 sbit ______________ sbit ______________ void main() {

_____=0x0f;

//将P1口低4位发光二极管关闭,高4位发光二极管点亮 //点亮第一个发光二极管

//声明单片机P1口的第一位为led1 //声明单片机P1口的第八位为led8

//主函数

led1=0;

led8=_______; //关闭第八个发光二极管 }

6.在STC89C52单片机应用电路中的P1.2和P1.3依次连接有一发光二极管D1和D2,当单片机的引脚P1.2和P1.3为低电平时发光二极管能被正常点亮,下列主函数执行后,变量x的值为_________,y的值为_________,z的值为_________,发光二极管D1_________(亮或不亮),发光二极管D2_________(亮或不亮)。(每空2分) #include “reg52.h”

sbit D1=P1^2; sbit D2=P1^3; main( ) {

char x=8,y=3,z; y--; z=x-y; P2=0xff;

if(z!=6) D1=0; else D2=0; }

7. 阅读程序,在横线上将空缺的语句补充完整,实现注释语句的功能。 ______________________ #define uint unsigned int

//52系列单片机头文件 //宏定义

//声明单片机P1口的第一位

______ led1=P1^0; uint i,j; void main() {

while(1) {

//主函数

//大循环

- 17 -

}

}

led1=_____;

//点亮第一个发光二极管 //延时

for(i=1;i>0;i--)

for(j=110;j>0;j--);

//关闭第一个发光二极管 //延时

led1=_______;

for(i=1000;i>0;i--)

for(j=110;j>0;________);

8. 阅读程序,在横线上将空缺的语句补充完整,使该程序实现功能为点亮P1.0所接的第一个发光二极管被点亮,关闭P1.7所接的第一个发光二极管。 #________ sbit __________ sbit __________ void main() {

_____=0x0f; led1=0;

//将P1口低4位发光二极管关闭,高4位发光二极管点亮 //点亮第一个发光二极管 //关闭第八个发光二极管

//52系列单片机头文件

//声明单片机P1口的第一位为led1 //声明单片机P1口的第八位为led8 //主函数

led8=_______; }

9.在STC89C52单片机应用电路中的P2.3和P2.4依次连接有一发光二极管D1和D2,当单片机的引脚P2.3和P2.4为低电平时发光二极管能被正常点亮,下列主函数执行后,变量x1的值为_________,x2的值为_________,x3的值为_________,发光二极管D1_________(亮或不亮),发光二极管D2_________(亮或不亮)。(每空2分)

#include “reg52.h”

sbit D1=P2^3; sbit D2=P2^4; main( ) {

int x1,x2,x3; x1=12; x2=7; x2--;

x3=x1-x2*2; P2=0xff;

if(x3= =0) D1=0;

- 18 -

else D2=0;

}

10.在STC89C52单片机应用电路中的P3.0、P3.1和P3.2依次连接有一发光二极管D1、D2和D3,当单片机的引脚P3.0、P3.1和P3.2为低电平时发光二极管能被正常点亮,下列主函数执行后,变量y1的值为_________,y2的值为_________,发光二极管D1_________(亮或不亮),发光二极管D2_________(亮或不亮),发光二极管D3_________(亮或不亮)。(每空2分)

#include “reg52.h”

sbit LED1=P3^0; sbit LED2=P3^1; sbit LED3=P3^2; main( ) {

char y1,y2; y1=10; y1--;

y2=y1*2-3; P3=0xff;

if(y2<=13) LED1=0; if(y2==15) LED2=0; else LED3=0; }

11.根据提供的电路图和程序分析单片机系统,将正确答案填在空格处(每空2分)。 其单片机应用系统的电路图为:

其程序为:

#include “reg51.h”

- 19 -

if((K1= =0)&&(K2= =0))

sbit K1=P1^0; sbit K2=P1^1; sbit K3=P1^2; sbit K4=P1^3; void main( ) {

P0=0xff; P2=0xff; while(1) {

}

{

P0=0xf9; P2=0x92;

}

else if((K3= =0)||(K4= =0)) {

P0=0xc0; P2=0xc0; } }

(1)电路中单片机的时钟电路是由元件_______________(填元件编号)组成; (2)电路中C1、R2两个元件组成的是单片机的____________电路; (3)在程序中语句“P2=0xff;”完成的是_____________________功能;

(4)在程序中语句“if((K1= =0)&&(K2= =0))”的作用是___________________________; (5)当K3压下时,在函数main()后的实现功能是___________________________。

12.根据提供的电路图和程序分析单片机系统,将正确答案填在空格处(每空2分)。 其单片机应用系统的电路图为:

其程序为:

#include “reg52.h” sbit D1=P2^0; void main( ) {

EA=1;

- 20 -

}

void int_int1()interrupt 2 {

D1=~D1; }

EX1=1; IT1=1;

while(1);

(1)电路中单片机的时钟电路是由元件_______________(填元件编号)组成; (2)电路中C3、R01两个元件组成的是单片机的____________电路; (3)在程序中指令“EA=1”完成的是_____________________功能; (4)在程序中语句“IT1=1”的作用是___________________________;

(5)在中断服务函数int_int1()的实现功能是______________________________。

13.根据提供的电路图和程序分析单片机系统,将正确答案填在空格处(每空2分)。 其单片机应用系统的电路图为:

(1)电路中单片机的时钟电路是由元件_______________(填元件编号)组成; (2)电路中C1、R2两个元件组成的是单片机的____________电路; (3)在P1口所接的键盘为_____________________结构;

(4)P0口所接的数码管根据连接方式可知数码管极性为共____________极数码管; (5)如果要在数码管上显示出字符“4”,其指令为P0=0x__________________。

14.已知电路图中为四位一体共阳数码管,根据提供的电路图和程序分析单片机系统,将正确答案填在空格处(每空2分)。

其单片机应用系统的电路图为:

- 21 -

其程序为:

#include “reg52.h” sbit K1=P1^0;

char tab[ ]={0xc0,0xf9,0xa4,0xb0}; int i=0;

void main( ) {

EA=1; EX0=1; IT0=1;

while(1)

{

P0=tab[i]; P2=0x01; }

}

void int_int0()interrupt 0 {

i++;

if(i==4) i=0; }

(1)电路中单片机的时钟电路是由元件_______________(填元件编号)组成; (2)电路中C1、R2两个元件组成的是单片机的____________电路;

(3)在程序中中断服务函数int_int0()响应的_____________________中断信号; (4)在程序中语句“EX0=1;”的作用是___________________________;

(5)在主函数main()的实现功能是_____________________________________________。

15.根据提供的电路图和程序分析单片机系统,将正确答案填在空格处(每空2分)。 其单片机应用系统的电路图为:

- 22 -

其程序为:

#include “reg52.h” sbit K1=P1^0; sbit K2=P1^1; sbit D1=P2^0; sbit D2=P2^1; void ys2( ) {

unsigned int i; for(i=0;i<20000;i++) ; }

void main( ) {

while(1) {

P2=0xff;

if((K1= =0)&&(K2= =0)) {

D1=0; D2=1; ys2( ); } else {

D1=1; D2=0; ys2( ); } } }

(1)电路中单片机的时钟电路是由元件_______________(填元件编号)组成; (2)电路中C3、R01两个元件组成的是单片机的____________电路; (3)在程序中函数ys2( )完成的是_____________________功能;

(4)在程序中语句“P2=0xff;”的作用是___________________________;

(5)在主函数main()的实现功能是_____________________________________________。

16.根据提供的电路图和程序分析单片机系统,将正确答案填在空格处(每空2分)。 其单片机应用系统的电路图为:

- 23 -

其程序为:

#include “reg51.h” sbit K1=P2^0; void main( ) {

unsigned char count=0; P1=0xff; K1=1; while(1) {

if (K1= =0) {

while(K1= =0); count++;

(1)电路中单片机的时钟电路是由元件_______________(填元件编号)组成; (2)电路中C3、R1两个元件组成的是单片机的____________电路;

(3)在主函数中语句“while(K1= =0);”的主要目的是_____________________; (4)在程序中的表达式“count%3”的功能是___________________________; (5)当按键按下第2次时发光二极管____________(填元件编号)被点亮。

17.根据提供的电路图和程序分析单片机系统,将正确答案填在空格处(每空2分)。 其单片机应用系统的电路图为:

switch(count%3)

{

case 0:P1=0xfe;

break;

case 1:P1=0xfd;

break;

case 2:P1=0xfb; } } } }

- 24 -

其程序为:

#include “reg51.h” sbit D1=P2^0; sbit D2=P2^1; sbit D3=P2^2; sbit K1=P2^3; void delay( ) {

unsigned int i; for(i=0;i<20000;i++) ; }

void main( ) {

while(1) {

P2=0xff;

if(K1= =0) {

D1=0; D2=1; D3=0; delay( ); } else {

D1=1; D2=0; D3=0 delay( ); } } }

(1)电路中单片机的时钟电路是由元件_______________(填元件编号)组成; (2)电路中C3、R1两个元件组成的是单片机的____________电路; (3)在程序中函数delay( )完成的是_____________________功能; (4)在程序中语句“P1=0xff;”的作用是___________________________;

(5)在按键K1闭合时发光二极管____________(填元器件编号)熄灭、发光二极管_____________(填元器件编号)被点亮。

18.根据提供的电路图和程序分析单片机系统,将正确答案填在空格处(每空2分)。 其单片机应用系统的电路图为:

- 25 -

其程序为:

#include “reg52.h” sbit D1=P2^0; sbit D2=P2^1; sbit D3=P2^2; void main( ) {

char k; P2=0xff; while(1) {

k=P2;

(1)电路中单片机的时钟电路是由元件_______________(填元件编号)组成; (2)电路中C3、R1两个元件组成的是单片机的____________电路; (3)在主函数中语句“k&0x18”的主要目的是_____________________; (4)在程序中的表达式“P2=0xff;”的功能是___________________________; (5)当按键K2按下时发光二极管____________(填元件编号)被点亮。

19.根据提供的电路图和程序分析单片机系统,将正确答案填在空格处(每空2分)。 其单片机应用系统的电路图为:

switch(k&0x18)

{

case 0x18:D1=0;break; case 0x08:

case 0x10:D2=0;break; case 0x00:D3=0;break; } } }

- 26 -

其程序为:

#include “reg51.h” sbit K1=P1^0; sbit K2=P1^1; sbit D1=P1^2; sbit D2=P1^3; void delay2( ) {

unsigned int i; for(i=0;i<20000;i++) ; }

void main( ) {

while(1) {

P1=0xff;

if((K1= =0)&&(K2= =0)) {

D1=0; D2=1; delay2( ); } else {

D1=1; D2=0; delay2( ); } } }

(1)电路中单片机的时钟电路是由元件_______________(填元件编号)组成; (2)电路中C3、R1两个元件组成的是单片机的____________电路; (3)在程序中函数delay2( )完成的是_____________________功能; (4)在程序中语句“P1=0xff;”的作用是___________________________;

(5)在主函数main()的实现功能是_____________________________________________。

20.根据提供的电路图和程序分析单片机系统,将正确答案填在空格处(每空2分)。 其单片机应用系统的电路图为:

- 27 -

其程序为:

#include “reg51.h” sbit SP1=P3^7; void main( ) {

unsigned char k=0; P1=0xff; while(1) {

if (SP1= =0) {

while(SP1= =0); k++;

}

(1)电路中单片机的时钟电路是由元件_______________(填元件编号)组成; (2)电路中C3、R1两个元件组成的是单片机的____________电路;

(3)在主函数中语句“while(SP1= =0);”的主要目的是_____________________; (4)在程序中的表达式“k%4”的功能是___________________________; (5)当按键按下第六次时发光二极管____________(填元件编号)被点亮。

switch(k%4)

{

case 0:P1=0xfe;

break;

case 1:P1=0xfd;

break;

case 2:P1=0xfb;

break;

case 3:P1=0xf7; } } }

- 28 -

五、设计题(每小题25分,共50分)

1、硬件电路设计(25分)

根据下面提供的主要元器件,补充完整电路图,使其单片机下载下面程序后接入电源就能实现当按下按键K1时实现小车前进,按下K2按键时小车后退,其它情况小车停止的功能。

#include “reg52.h”

sbit M11=P2^0; sbit M12=P2^1; sbit M21=P2^2; sbit M22=P2^3; sbit K1=P1^2; sbit K2=P1^3; void qj( ) {

M11=1;M12=0; M21=1;M22=0; }

void ht( ) {

M11=0;M12=1; M21=0;M22=1; }

void stop( ) {

M11=0;M12=0; M21=0;M22=0; }

void main( ) {

P2=0; while(1) {

P1=0xff;

if((K1= =0)&&(K2= =1))

qj( );

else if((K1= =1)&&(K2= =0))

ht( ); else stop( ); } }

- 29 -

2、硬件电路设计(25分)

根据下面提供的主要元器件,补充完整电路图,使其单片机下载下面程序后接入电源就能实现在数码管DS1~DS4上依次显示出数字5、6、7、8的功能。

#include “reg52.h”

#define uint unsigned int sbit DS1=P2^0; sbit DS2=P2^1; sbit DS3=P2^2; sbit DS4=P2^3; void delay(uint m) {

uint j,k;

for(j=m;j>0;j--)

for(k=110;k>0;k--); }

void main( ) {

while(1) {

P2=0xfe;P0=0x92;delay(20); P2=0xfd;P0=0x82;delay(20); P2=0xfb;P0=0xf8;delay(20); P2=0xf7;P0=0x80;delay(20);

- 30 -

}

}

3、硬件电路设计(25分)

根据下面单片机STC89C52和主要元器件,补充完整电路图,使其按下面编写的程序,使其实现当系统开机后循环实现显示出60~00的功能(每秒钟后数值减1),并在共阳数码管DS1、DS2上显示出来。

#include “reg52.h”

#define uint unsigned int char num=60;

char code smg[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay(uint ys) {

uint i;

while(ys--)

for(i=0;i<=110;i++); }

void main( ) {

char i,shi,ge; while(1) {

- 31 -

for(i=60;i>=0;i--) {

shi=i/10; ge=i; P1=smg[shi]; P2=smg[ge]; delay(1000); } } }

4、硬件电路设计(25分)

根据下面提供的主要元器件,补充完整电路图,使其单片机下载下面程序后实现在单片机系统开机时数码管DS1显示倒数10显示功能(9?8?7????0,每种数字显示状态保持1秒左右的时间),同时当数码管上显示数字N小于8时,此时发光二极管从D1开始对应的N个发光二极管被点亮;当数码管上显示数字大于等于8时,此时发光二极管D1~D8全部被点亮。

#include “reg52.h”

#define uint unsigned int char num=9;

char code smg[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; char code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00}

- 32 -

void delay(uint m) {

uint j,k;

for(j=m;j>0;j--)

for(k=110;k>0;k--); }

void main( ) {

for(;num<0;num--) {

P2=smg[num]; P1=table[num]; delay(1000); } }

5、硬件电路设计(25分)

根据下面提供的主要元器件,补充完整电路图,使其单片机下载下面程序后接入电源就能实现在数码管DS1~DS4上依次显示出数字8、7、6的功能。

#include “reg52.h”

#define uint unsigned int sbit DS1=P2^0; sbit DS2=P2^1; sbit DS3=P2^2; void delay(uint m)

- 33 -

{

uint j,k;

for(j=m;j>0;j--)

for(k=110;k>0;k--); }

void main( ) {

while(1) {

P2=0xfe;P0=0x80;delay(20); P2=0xfd;P0=0xf8;delay(20); P2=0xfb;P0=0x82; delay(20); } }

6、硬件电路设计(25分)

根据下面提供的主要元器件,补充完整电路图,使其单片机下载下面程序后接入电源就能实现当按下按键K1时实现小车前进,按下K2按键时小车后退,其它情况小车停止的功能。

#include “reg51.h”

sbit M11=P1^0; sbit M12=P1^1; sbit M21=P1^2; sbit M22=P1^3; sbit K1=P2^2; sbit K2=P2^3;

- 34 -

void go( ) {

M11=1;M12=0; M21=1;M22=0; }

void back( ) {

M11=0;M12=1; M21=0;M22=1; }

void stop( ) {

M11=0;M12=0; M21=0;M22=0; }

void main( ) {

P1=0; while(1) {

P2=0xff;

if((K1= =0)&&(K2= =1)) go( );

else if((K1= =1)&&(K2= =0)) back( ); else stop( ); } }

7、硬件电路设计(25分)

根据下面提供的主要元器件,补充完整电路图,使其单片机下载下面程序后接入电源就能实现在数码管smg1~smg4上依次显示出数字2、0、0、8的功能。

- 35 -

#include “reg51.h”

#define uint unsigned int sbit smg1=P1^0; sbit smg2=P1^1; sbit smg3=P1^2; sbit smg4=P1^3; void delay(uint m) {

uint j,k;

for(j=m;j>0;j--)

for(k=110;k>0;k--); }

void main( ) {

while(1) {

P1=0xfe;P2=0xa4;delay(20); P1=0xfd;P2=0xc0;delay(20); P1=0xfb;P2=0xc0;delay(20); P1=0xf7;P2=0x80;delay(20); }

}

8、硬件电路设计(25分)

- 36 -

根据下面单片机STC89C52和主要元器件,补充完整电路图,使其按下面编写的程序,使其实现当系统开机后循环实现显示出300~000的功能(大约每秒钟后数值减1),并在共阳数码管DS1、DS2、DS3上显示出来。

#include “reg52.h”

#define uint unsigned int char num=300;

char code smg[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay(uint ys) {

uint i;

while(ys--)

for(i=0;i<=110;i++); }

void main( ) {

char k,bai,shi,ge; while(1) {

for(k=300;k>=0;k--) {

bai=k/100; shi=k/10; ge=k; P2=smg[bai]; P3=smg[shi]; P1=smg[ge]; delay(1000); } } }

- 37 -

9、硬件电路设计(25分)

根据下面提供的主要元器件,补充完整电路图,使其单片机下载下面程序后实现在单片机系统开机时数码管DS1显示0到6显示功能(0?1?2????6,每种数字显示状态保持1秒左右的时间),此时发光二极管从D1开始对应的显示数字N个发光二极管被点亮。

#include “reg51.h”

#define uint unsigned int char num=0;

char code smg[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82}; char code table[]={0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00} void delay(uint m) {

uint j,k;

for(j=m;j>0;j--)

for(k=110;k>0;k--); }

void main( ) {

for(num=0;num<7;num++) {

P1=smg[num]; P0=table[num]; delay(1000); } }

- 38 -

10、硬件电路设计(25分)

根据下面提供的主要元器件,补充完整电路图,使其单片机下载下面程序后接入电源就能实现在数码管DS1~DS3上依次显示出数字U、1、2的功能。

#include “reg51.h”

#define uint unsigned int sbit DS1=P1^0; sbit DS2=P1^1; sbit DS3=P1^2; void delay(uint m) {

uint j,k; for(j=m;j>0;j--) for(k=110;k>0;k--); }

void main( ) {

while(1) {

P1=0xfe;P2=0xc1;delay(20);

- 39 -

P1=0xfd;P2=0xf9;delay(20); P1=0xfb;P2=0xa4;delay(20); } }

11、软件电路设计(25分)

根据硬件电路编写出控制程序实现AT89S52的P2口控制8个发光二极管LED,LED1-LED4为一组,LED5-LED8为一组,使二组每隔1秒左右交替发亮一次,周而复始。

- 40 -

12、软件电路设计(25分)

原理图如下,编写一个完整的程序,使4个数码管初始显示0000,当每按下一次KEY1,显示的内容就加1。

13、软件电路设计(25分)

原理图如下图示,编写单片机程序,当按下KEY1,D1亮,当按下KEY2,D2亮??当按下KEY8,D8亮。

- 41 -

14、软件电路设计(25分)

原理图如下图示,编写数码管显示程序,当按下KEY1,显示内容加1,当按下KEY2,显示内容减1,按下KEY3,显示内容为00。

15、软件电路设计(25分)

原理图如下,P2.0控制红灯闪亮,按键KEY1接中断0,每按一次KEY1,P2.0控制红灯改变一次显示状态。

- 42 -

16、软件电路设计(25分)

完善下面已有的程序段,使其使用STC89C52单片机构成的应用系统(fosc=12MHz)上能实现:在单片机系统开机时,单片机引脚P1.7所接的发光二极管每隔半秒钟亮灭状态变化一次的功能。

#include “reg52.h” sbit D1=_________; int num1=0;

void TT1() interrupt {

TF0=_________;

TH1=(65536-50000)/256; TL1=(65536-50000)%6; num1++;

if(num1= = ) {

D1=~D1;

num1=___________; } }

void main( ) {

_ =0x01; EA=1;

_ =1;

TH0=(65536-50000)/__________;

- 43 -

TL0=(________-50000)%6; TR0= ; while(1); }

17、软件电路设计(25分)

根据下面单片机应用系统的电路图编写出对应程序,使其单片机下载下面程序后接入电源就能实现在数码管DS1~DS4上依次显示出数字5、6、7、8的功能。

18、软件电路设计(25分)

根据下面提供的单片机应用系统电路图,编写程序能实现当按下按键K1时实现小车前进,按下K2按键时小车后退,其它情况小车停止的功能。

- 44 -

19、软件电路设计(25分)

根据下面单片机应用系统的电路图编写出对应程序,使其实现在单片机系统开机时数码管DS1显示倒数10显示功能(9?8?7????0,每种数字显示状态保持1秒时间),同时当数码管上显示数字N小于8时,此时发光二极管从D1开始对应的N个发光二极管被点亮;当数码管上显示数字大于等于8时,此时发光二极管D1~D8全部被点亮。

20、软件电路设计(25分)

- 45 -

根据下面单片机应用系统的电路图编写出对应程序,使其实现当系统开机后循环实现59~00的倒计时功能(每间隔1秒钟其数值减1),并在数码管DS1、DS2上显示出来。

- 46 -