《单片机》编程题题库

2019-08-03 14:39

BCD码(高位在前)并存入外部RAM 1000H开始的单元中。

《单片机原理及应用》编程题题库 17、 设有两个长度为16字节的一维数组(数组的每个元素为1个字节),分别存放在外部RAM 0200H

和0300H为首址的存储区域中,试编写程序求其对应项之和(不考虑溢出的情况),结果存放在以0400H六、编程(每题10分)

为首址的外部RAM中。

1、 内部RAM 30H和31H单元中存放着2个0-9的ASCII码(高位字节在前),请将其转换为压缩BCD

18、 编程求内部RAM中40H~4FH共16个单元中的内容的和(结果为2字节),并将和放入50H和

码(高位在前)并存入外部RAM 2300H单元中。

51H单元中(高8位在50H)。

2、 将存放在内部RAM 30H-35H单元的压缩型BCD码转换成相应的ASCII码,依次存放到外部RAM

19、 有一个长度为16字节的ASCII码字符串存放在外部RAM 1000H为首址的存储区域中,字符串

2100H开始的单元区中。

中的每一个字符均不相同,试编写程序查找字符串中是否存在ASCII码“9”。如果在字符串中存在ASCII

3、 内部RAM 20H和30H开始的单元分别存放着16个16进制数,请将对应单元的内容相加(不考

码“9”,则将其存储单元的地址存放到内部RAM 30H和31H单元中(高8位地址在30H单元中),同时将

虑溢出),并将和存入外部RAM 2000H开始的单元中。

OV标志位清零。否则,将30H和31H单元的内容清零,并将OV标志位置“1”。

4、 请编写多字节无符号数减法程序。被减数存放在内部RAM 20H开始的8个单元中,减数存放在内

20、 有两个8字节的16进制数a和b,它们分别存放在内部RAM中30H~37H和40H~47H的单元中

部RAM 30H开始的8个单元,请将差存放到外部RAM 2000H开始的8个单元中,借位存放到OV标志中。

(高位字节在前)。请编程求a-b,并将差存入30H开始的内部RAM单元中(高位字节在前)。若差小于零

注意:所有数据均按照从低字节到高字节的顺序存放。

则将F0标志位置“1”,否则清零。

5、 内部RAM 40H和41H单元中存放着2个0-9的ASCII码(高位字节在前),请将其转换为压缩BCD

21、 若外部RAM的(3000H)=X,(3001H)=Y,编程实现Z=X*X+2Y,并将结果存到片内RAM的40H

码(高位在前)并存入外部RAM 2000H单元中。

单元(设Z<256 ?。

6、 将存放在内部RAM 20H-2FH单元的压缩型BCD码(高位在前)转换成相应的ASCII码,依次存放

22、 设外部RAM 2000H单元为数据块的起始地址,数据块长度为10,试编程求数据块中的最小值,

到外部RAM 1000H开始的单元区中。

存入内部RAM 30H单元。

7、 内部RAM 30H和38H开始的单元分别存放着8个压缩BCD码,请将对应单元的内容相加(不考

23、 若外部RAM的(1000H)=X,(1001H)=Y,请编程实现Z=2X+Y*Y+5(设Z<65536),并将结果保

虑溢出),并将和存入外部RAM 1000H开始的单元中。

存到片内RAM的30H和31H单元(31H单元存放结果的高8位,30H单元存放结果的低8位)。

8、 请编写多字节无符号数加法程序。被加数存放在内部RAM 20H开始的8个单元中,加数存放在内

24、 设外部RAM 1000H单元为数据块的起始地址,数据块长度为60字节,试编程求数据块中所有

部RAM 30H开始的8个单元,请将和存放到外部RAM 2000H开始的8个单元中,进位存放到F0标志中。

数据的和,并将其存入内部RAM 30H和31H单元(30H单元存放和的低8位,31H单元存放和的高8位)。

注意:所有数据均按照从低字节到高字节的顺序存放。

25、 若外部RAM的(1000H)=X,内部RAM(30H)=Y,请编程实现Z=X*X+3Y+18(设Z<65536),并

9、 两个8字节压缩BCD码分别存放在内部RAM 30H和40H开始的连续单元中(低位字节在前),请

将结果保存到片内RAM的40H和41H单元(41H单元存放结果的高8位,40H单元存放结果的低8位)。

将二者求和(不考虑溢出情况),并将和存入外部RAM 1000H开始的单元中。 2

26、 若外部RAM的(1000H)=X,请编程实现Y=X+2X+1(设Y<65536),并将结果保存到片内RAM的

10、 将存放在内部RAM 20H-2FH单元的十六进制数转换成ASCII码,依次存放到外部RAM 2000H

30H和31H单元(31H单元存放结果的高8位,30H单元存放结果的低8位)。

开始的单元中。

27、 设外部RAM 2000H单元为数据块的起始地址,数据块长度为100字节。假设在数据块中存在

11、 内部RAM 30H和外部RAM 2200H开始的单元分别存放着两个8字节十六进制数(低位字节存

唯一的一个ASCII字符“A”,试编程找到它,并将其在外部RAM的存放地址存入内部RAM 30H和31H单元

放在前),请将二者相加(不考虑溢出情况),并将和存入内部RAM 40H开始的单元中。

中(30H单元存放地址的高8位,31H单元存放地址的低8位)。

12、 请编写多字节无符号数减法程序。被减数存放在内部RAM 30H开始的8个单元中,减数存放在22

28、 若内部RAM的(20H)=a,外部RAM(1300H)=b,请编程实现y=a+b+5(设y<65536),并将结

内部RAM 38H开始的8个单元,请将差存放到外部RAM 1000H开始的8个单元中,借位存放到F0标志中。

果保存到片内RAM的30H和31H单元(31H单元存放结果的高8位,30H单元存放结果的低8位)。

注意:所有数据均按照从低字节到高字节的顺序存放。 2

29、 若内部RAM的(30H)=X,(31H)=Y,请编程实现Z=X+5Y(设Z<65536),并将结果保存到片外

13、 请编写多字节无符号数减法程序。被减数存放在内部RAM 20H开始的16个单元中,减数存放

RAM的1000H和1001H单元(1001H单元存放结果的高8位,1000H单元存放结果的低8位)。

在内部RAM 30H开始的16个单元,请将差存放到外部RAM 2000H开始的16个单元中,借位存放到OV标

30、 设内部RAM 20H单元为数据块的起始地址,数据块长度为32字节。请将整个数据块求和(共

志中。注意:所有数据均按照从低字节到高字节的顺序存放。

32字节的数据求和,设和小于65536),并把和存入外部RAM 1000H和1001H的单元中(和的高8位存入

14、 将存放在内部RAM 20H-3FH单元的压缩BCD码转换成ASCII码,依次存放到外部RAM 2300H

1001H单元)。

开始的单元中。(注:每个单元均先转换高四位) 22

31、 若内部RAM的(20H)=a,(21H)=b,请编程实现y=a+b(设y<65536),并将结果保存到片外

15、 将存放在内部RAM 30H-35H单元的十六进制数转换成相应的ASCII码,依次存放到外部RAM RAM的2000H和2001H单元(2001H单元存放结果的高8位,2000H单元存放结果的低8位)。

1100H开始的单元区中。(注:每个字节转换时先转换高四位)

32、 将内部RAM 40H为起始地址的32个连续单元中的十六进制数转换成ASCⅡ码存入外部RAM

16、 内部RAM 30H开始的单元中存放着16个0-9的ASCII码(高位字节在前),请将其转换为压缩

3000H开始的存储单元中。

第1页 共3页

33、 设内部RAM 20H单元为数据块的起始地址,数据块长度为10H,数据为8位无符号数,试编程找出数据块中的最小值,并将其存入40H单元。

34、 比较两个等长ASCII码字符串是否相等。字符串长度存放在内部RAM 2FH单元,两字符串分别存放在内部RAM 30H和40H开始的单元中。如果两个字符串相等,则CY=1,否则,CY=0。

35、 将MCS51内部RAM 60H~65H单元存放的12个16进制数变为ASCII码,存放到0100H单元开始的外部RAM中。

36、 将片外数据存储器的2500H单元与2501H单元中的数据作十进制加法运算,和送入2503H和2502H单元中,即(2500H)+(2501H)→(2503H)(2502H)。

37、 设单片机的晶体震荡频率为12MHz,利用定时器T0编程由P1.2输出周期为10ms的方波。(要求:T0工作在方式1下,采用中断方式工作)

38、 已知8051单片机应用系统的晶体振荡频率为12MHz,请利用定时器T0实现在P1.0引脚上输出周期为100ms的方波。(要求:采用中断方式,T0工作在方式1下)

39、 设8031单片机应用系统的晶振频率为12MHz,请利用T0在P1.0和P1.1引脚上输出频率为20Hz、互补(两个波形互为反相)的方波。要求:采用中断方式,T0工作在方式1。

40、 8031单片机应用系统的晶体振荡器频率为12MHz,请利用定时器T0编程实现在P1.7引脚输出频率为20Hz的方波。要求:采用中断方式,T0工作在方式1下。

41、 设单片机的晶体振荡频率为12MHz,利用定时器T0编程由P1.0和P1.1输出周期为10ms、互补(互为反相)的方波。(要求:T0工作在方式1下,采用中断方式工作)

42、 已知8051单片机应用系统的晶体振荡频率为12MHz,请利用定时器T1实现在P1.0和P1.1引脚上输出互补(互为反相)的周期为100ms的方波。(要求:采用中断方式,T1工作在方式1下)

43、 设8031单片机应用系统的晶振频率为12MHz,请利用T0在P1.0引脚上输出频率为20Hz的方波。要求:采用中断方式,T0工作在方式1。

44、 8031单片机应用系统的晶体振荡器频率为12MHz,请利用定时器T1编程实现在P1.6和P1.7引脚输出互补(互为反相)的、频率为20Hz的方波。要求:采用中断方式,T1工作在方式1下。

45、 设单片机的晶体振荡频率为6MHz,利用定时器T1编程由P1.6和P1.7输出周期为500μs 、互补(互为反相)的方波。(要求:T1工作在方式2下,采用中断方式工作)

46、 已知8051单片机应用系统的晶体振荡频率为12MHz,请利用定时器T1实现在P1.0和P1.1引脚上输出互补(互为反相)的周期为2ms的方波。(要求:采用中断方式,T1工作在方式2下)

47、 设8031单片机应用系统的晶振频率为12MHz,请利用T1在P1.0引脚上输出频率为1Hz的方波。要求:采用中断方式,T1工作在方式1。

48、 8051单片机应用系统的晶体振荡器频率为6MHz,请利用定时器T1编程实现在P1.0和P1.1引脚输出互补(互为反相)的、频率为20Hz的方波。要求:采用中断方式,T1工作在方式2下。

49、 8751单片机应用系统的晶体振荡器频率为12MHz,请利用定时器T0编程实现在P1.7引脚输出频率为20Hz的方波。要求:采用中断方式,T0工作在方式1下。

50、 设8051单片机应用系统的晶振频率为12MHz,请利用T1在P1.0和P1.1引脚上输出频率为20Hz、互补(两个波形互为反相)的方波。要求:采用中断方式,T1工作在方式1。

51、 已知8051单片机应用系统的晶体振荡频率为12MHz,请利用定时器T0实现在P1.0引脚上输出频率为2kHz的方波。(要求:采用中断方式,T0工作在方式2下)

52、 设单片机的晶体振荡频率为12MHz,利用定时器T0编程由P1.0输出周期为1秒的方波。(要求:T0工作在方式1下,采用中断方式工作)

53、 设单片机的晶体振荡频率为6MHz,利用定时器T0编程由P1.0和P1.1输出周期为1s、互补(互为反相)的方波。(要求:T0工作在方式1下,采用中断方式工作)

54、 8031单片机应用系统的晶体振荡器频率为6MHz,请利用定时器T0编程实现在P1.0引脚输出频率为0.1Hz的方波。要求:采用中断方式,T0工作在方式1下。

55、 设单片机的晶体振荡频率为3MHz,利用定时器T0编程由P1.6和P1.7输出周期为10s、互补(互为反相)的方波。(要求:T0工作在方式1下,采用中断方式工作)

56、 89C51单片机应用系统的晶体振荡器频率为12MHz,请利用定时器T1编程实现在P1.0引脚输出频率为2Hz的方波。要求:T1采用中断方式工作,工作在方式1下。

57、 设单片机的晶体振荡频率为12MHz,P1.0接有一个共阴极驱动方式连接的发光二极管。现要求利用定时器T1编程使该发光二极管每10秒钟点亮一次,每次点亮时间为1秒。(要求:T1工作在方式1下,采用中断方式工作,在中断服务程序中控制发光二极管的亮与灭)

58、 89C51单片机应用系统的晶体振荡器频率为6MHz,单片机的P1.7引脚接有一个共阳极驱动方式连接的发光二极管,请利用定时器T0编程实现使该发光二极管点亮1秒钟,熄灭1秒钟的循环。(要求:T0采用中断方式工作,工作在方式1下,在中断服务程序中控制发光二极管的亮与灭。)

59、 已知89C51单片机的晶体振荡频率为3MHz,请编程从P1.0和P1.1口输出互补的(即互为反相)、周期为2秒的方波。(要求:T0工作在方式1下,采用中断方式工作,在中断服务程序中控制P1.0和P1.1的输出)

60、 89C51单片机应用系统的晶体振荡器频率为6MHz,单片机的P1.0引脚接有一个共阴极驱动方式连接的发光二极管,请利用定时器T1编程实现使该发光二极管点亮2秒钟,熄灭3秒钟的循环。(要求:T1采用中断方式工作,工作在方式1下,在中断服务程序中控制发光二极管的亮与灭。)

61、 已知89C51单片机的晶体振荡频率为24MHz,请编程从P1.6和P1.7口输出互补的(即互为反相)、频率为500Hz的方波。(要求:T1工作在方式1下,采用中断方式工作,在中断服务程序中控制P1.6和P1.7的输出)

62、 已知89C51单片机的晶体振荡频率为12MHz,请编程从P1.0口输出频率为50Hz的方波。(要求:T0工作在方式2下,采用中断方式工作,在中断服务程序中控制P1.0的输出)

63、 89C51单片机应用系统的晶体振荡器频率为3MHz,请编程实现从单片机的P1.0引脚输出25Hz方波。(要求:T1采用中断方式工作,工作在方式2下,在中断服务程序中控制P1.0的输出。)

64、 已知89C51单片机的晶体振荡频率为24MHz,请编程从P1.0和P1.1口输出互补的(即互为反相)、频率为100Hz的方波。(要求:T1工作在方式2下,采用中断方式工作,在中断服务程序中控制P1.0和P1.1的输出)

65、 已知89C51单片机的晶体振荡频率为24MHz,请编程从P1.0口输出频率为2Hz的方波。(要求:T0工作在方式1下,采用中断方式工作,在中断服务程序中控制P1.0的输出)

66、 89C51单片机应用系统的晶体振荡器频率为24MHz,请编程实现从单片机的P1.3引脚输出100Hz方波。(要求:T1采用中断方式工作,工作在方式2下,在中断服务程序中控制P1.3的输出。)

67、 已知89C52单片机的晶体振荡频率为12MHz,请编程从P1.6和P1.7口输出互补的(即互为反相)、频率为4Hz的方波。(要求:T1工作在方式1下,采用中断方式工作,在中断服务程序中控制P1.6和P1.7的输出)

68、 已知89C52单片机的晶体振荡频率为24MHz,请编程从P1.5输出频率为10Hz、占空比为10%

第2页 共3页

(即高电平持续时间为信号周期的10%,低电平持续时间为信号周期的90%)的矩形波。(要求:T1工作在方式1下,采用中断方式工作,在中断服务程序中控制P1.5的输出)

69、 已知8051单片机的晶体振荡频率为6MHz,请编程从P1.3和P1.2口输出互补的(即互为反相)、频率为20Hz的方波。(要求:T0工作在方式2下,采用中断方式工作,在中断服务程序中控制P1.3和P1.2的输出)。

70、 已知8051单片机系统时钟频率fosc=12MHz,试编写程序,使P1.0输出如下的矩形脉冲(要求利用中断技术,使用定时器0,并且其工作在方式2下)。

P1.0 → 40μs ←-- 1ms --→

71、 已知MCS-51单片机应用系统的晶振频率为12MHz,现要求在P1.0上输出周期为200ms、占空

比为1:1的方波,输出500个方波后停止输出,请编程实现。要求:使用T0,并工作在方式1、中断方式下,在中断服务程序中实现对P1.0输出方波进行控制。

72、 已知AT89C51单片机系统晶振频率fosc=24MHz,试编写程序,使P1.1输出频率为500Hz的方波信号(要求在中断服务程序中控制P1.1的输出,使用定时器1,并且其工作在方式2下)。

第3页共3页


《单片机》编程题题库.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浙江大学医学免疫学免疫习题2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: