1、从外部RAM20H单元开始,有30个带符号数,试编一个程序,把其中正数、负数分别送到片内RAM的51H和71H开始的存储单元,并分别记下其中正数和负数的个数送到片内RAMD的50H和70H单元。(画出程序流程图亦可得5分)
2、根据流程图编程,将片内RAM40H~4FH单元的内容传送至片外RAM3000H~300FH对应的单元中。
3、试编制一个循环闪烁灯程序。有8个发光二极管,其中一个闪烁点亮8次后转移到下一个闪烁8次,循环不止。(设8个发光二极管接在P1口)
4、试编写一个延时80ms的延时子程序(已知晶振频率12MHz)。(10分)
5试编写程序:用单片机控制P1口外部连接的8个LED按下列要求动作:先点亮P1.0至P1.3四个LED,同时P1.4至P1.7熄灭;然后点亮P1.4至P1.7四个LED, 同时P1.0至P1.3熄灭。最后循环前面两种状态。(假设高电平点亮)(14分)
6、编制一个循环闪烁灯程序。有8个发光二极管,依次点亮8个发光二极管,每次点亮的时间保持一段时间。(设8个发光二极管接在P1口)(10分)
7、P3.2和P3.3两个引脚控制P1口的LED,当P3.2接低电平时,8个LED全点亮,当P3.3接低电平的时候,8个LED全部熄灭。(10分)
8、设MCS-51单片机系统晶振频率为12MHz,请采用中断方式编出利用定时/计数器T0在P2.0引脚上产生周期为1s的方波信号的程序。(提示:15536=3CB0H)(11分)
9、将外部RAM的100H单元中内容送入外部RAM的200H单元中。(8分)10、设1067H存在于R1R0中,30A0H存在于R3R2中,计算R1R0+R3R2,结果存于R5R4中。(14分)
11、编写一个跑马灯的程序,P0口接8个发光二极管的的阴极(18分)。1
2、设置IP寄存器的初始值,使得MCS-51的片内中断为低优先级,片外中断为高优先级。(8分)
13、设有16位二进制数存放在内部RAM的50H及51H单元中,要求将其算术左移一位(即原数各位均向左移1位,最低位移入0)后仍存放在原单元。试编制相应的程序。(14分)
14、P3.2和P3.3口各接有一只按键,要求它们分别按下时(P3.2=0或P3.3=0),分别使P1口为0或FFH(18分)15、若允许片内2个定时/计数器中断,禁止其它中断源的中断请求,试编写出设置IE的相应程序。(8分)
16、将A累加器的低四位取反四次、高四位不变。每变换一次,从P1输出(14分)。
17、设8031单片机使用12MHz晶振(机器周期T为lµs),试设计延迟100ms的延时程序。(18分)
1、从外部RAM20H单元开始,有30个带符号数,试编一个程序,把其中正数、负数分别送到片内RAM的51H和71H开始的存储单元,并分别记下其中正数和负数的个数送到片内RAMD的50H和70H单元。
程序如下:
ZHENG DATA 50H
FU DATA 70H
ORG 0000H
LJMP MAIN
ORG 0050H
MAIN:MOV ZHENG,#00H ;计数初始为零
MOV FU,#00H ;计数初始为零
MOV R7,#30 ;30个数
MOV R0,#1FH ;第一个数的前一个地址
MOV R1,#51H ;整数存的首地址
MOV SP,#70H ;负数的首地址
LOOP:INC R0 ;指向第一个数
MOV A,@R0 ;给a
MOV C,ACC.7 ;符号位给c
JC NEXT ;势负数则next
MOV @R1,A
INC R1 ;正数就保存在正的
INC ZHENG ;计数加一
NEXT:PUSH FU ;负数存
INC FU ;计数加一
DJNZ R7,LOOP ;未到30就继续判断
END ;结束
第一题
第一题:
MOV R0 , #51H
MOV R1 , #71H
MOV R5 , #0 ;正数的个数
MOV R6 , #0 ;负数的个数
MOV R7 , 30 ;循环的次数
MOV DPTR , #20H ;取片外20H的内容
MOV A , @DPTR
LOOP : JB ACC.7 , LOOP1 ;判断正负号,负数跳转LOOP1
MOV @R0 , A
INC R0
INC R5 ;正数个数加1
AJMP LOOP2
LOOP1 : MOV @R1 , A
INC R1
INC R6 ;负数个数加1
LOOP2 : INC DPTR
DJNZ R7 , LOOP ;判断循环次数
MOV 50H , R5
MOV 70H , R6
END
不知道有错没
RG 0000HAJMP MAINORG 0030HMAIN: MOV R0,#40H MOV DPTR #3000H MOV R2,#10 P: MOV A, @R0 MOV @DPTR ,A INC R0 INC DPTR DJNZ R2,P RET END2、根据流程图编程,将片内RAM40H~4FH单元的内容传送至片外RAM3000H~300FH对应的单元中。
程序如下:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV R0,#40H
MOV DPTR #3000H
MOV R2,#10
P: MOV A, @R0
MOV @DPTR ,A
INC R0
INC DPTR
DJNZ R2,P
RET
END