单片机编程题练习 联系客服

发布时间 : 星期六 文章单片机编程题练习更新完毕开始阅读2006b4acdd3383c4bb4cd262

63、试用位操作指令实现下列逻辑操作。要求不得改变未涉及的位的内容。 (1)使ACC.0置位; (2)清除累加器高4位;

(3)清除ACC.3,ACC.4,ACC.5,ACC.6。

64、试编写程序段实现外部RAM 2000H单元的内容传送到内部RAM 20H中的操作。 65、试编写程序段实现外部RAM 2000H单元的内容传送到外部RAM 3000H中的操作。

66、试编写程序段,将内部RAM的20H、21H、22H三个连续单元的内容依次存入2FH、2EH和2DH单元。

67、试编写程序段,完成两个16位数的减法:7F4DH-2B4EH,结果存入内部RAM的30H和31H单元,31H单元存差的高8位,30H单元存差的低8位。 68、试编写程序段,将R1中的低4位数与R2中的高4位数合并成一个8位数,并将其存放在R1中。

69、试编写程序段,将内部RAM的20H、21H单元的两个无符号数相乘,结果存放在R2、R3中,R2中存放高8位,R3中存放低8位。

70、在内部RAM 的21H单元开始存有一组单字节不带符号数,数据长度为30H,要求找出最大数存入BIG单元。

71、编写程序,把累加器A中的二进制数变换成3位BCD码,并将百、十、个位数分别存放在内部RAM的50H、51H、52H中。

72、编写程序,求内部RAM中50H~59H十个单元内容的平均值,并存放在5AH单元。

73、设有100个无符号数,连续存放在外部RAM 1000H地址开始的区域,编程统计其中的正数、负数和0的个数,并分别存放在内部RAM的20H、21H、22H单元中。

74、编程分别将外部RAM的0000H~0000FH、1030H~1050H、2050H~3000H地址单元清零。

75、试编程对8255初始化,使其A口按方式0输入,B口按方式1输出,C口上半部分按方式0输出,下半部分按方式1输出。

76、编写子程序,将R1中的2个十六进制数转换为ASCII码后存放在R3和R4中。

77、已知系统的连接如图所示,试编写程序实现下列功能: (1)编写显示程序,显示“123456”。

(2)编写主程序,功能为:当有键按下(0~7号)时,都显示键号; 无键按下,保持原有显示状态。

78、试设计MCS-51与DAC0832的接口电路,并编制程序,输出图所示波形。

79、设计并编程,完成单片机的双机通信程序,将甲机片外RAM的1000H~100FH的数据块通过串行口传送到乙机的20H~2FH单元。

80.片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和<256 =.

81.试编程对8155进行初始化,设A口为选通输出,B口为选通输入,C口作为控制联络口,并启动定时器/记数器按方式1工作,工作时间为10ms,定时器计数脉冲频率为单片机的时钟频率24分频,fosc=12MHz。

82.试将8031单片机外接一片2716 EPROM和一片6116 RAM组成一个应用系统,请画出硬件连线图,并指出扩展存储器的地址范围。

83、利用定时/计数器T0产生定时时钟,由P1口控制8个指示灯。编一个程序,使8个指示灯依次一个一个闪动,闪动频率为1次/秒(8个灯依次亮一遍为一个周期)。

84、应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。

请(1)计算时间常数X,应用公式X=216-t(f/12) (2)写出程序清单

85.片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中.

86.设计一个2×2行列式键盘电路并编写键盘扫描子程序。

87. 编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。

88.编制一个循环闪烁灯的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。

89.将31H、32H单元与41 H、40H单元的双字节十进制无符号数相加,结果存入32H,31H,30H单元。即(31H)(30H)+(41H)(40H) 32H、31H、30H。 输入程序 参考程序 MOV R0,#30H MOV R1,#40H MOV R2,#02H CLR C L1: MOV A,@R0 ADDC A,@R1 DA A MOV @R0,A INC R0

INC R1 DJNZ R2,L1 CLR A MOV ACC.0,C MOV @R0,A

在31H、30H单元存入加数如3018,在41H,40H单元存入被加数如8975。 输入程序首地址,(从处为2000H),然后开始单步或断点运行该段程序。 运行过程中检查数据的变化,并在最后检查(32H)= ,(31H)= , (30H)= 。

90. 编程实现逻辑运算:Q=(U *(V+W))+X.Y)+Z。设U~Z的位地址为00H~05H.Q的位地址为07H。《实际中U~Z可以是外部输入端口信号或软件设定的一些控制位》。

91. 编程将片内RAM 30H单元开始的15B的数据传送到片外RAM 3000H开始的单元中去。

92. 片内RAM 30H开始的单元中有10B的二进制数,请编程求它们之和(和<256=。

93. 编一个程序,将累加器中的一个字符从串行接口发送出去。 94. 用查表法编一子程序,将R3中的BCD码转换成ASCII码。

95. 片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中。

96. 编一子程序,从串行接口接受一个字符。

97. 利用调子程序的方法,进行两个无符号数相加。请编主程序及子程序。 98. 若图数据块是有符号数,求正数个数。编程并注释。

99.编制一个循环闪烁灯的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。

100.8225A控制字地址为300FH,请按:A口方式0输入,B口方式1输出,C口高位输出,C口低位输入,确定8225A控制字并编初始化程序.