99数字跑表单片机实训报告

99数字跑表单片机实训报告
实训课题:99数字跑表
实训目的:通过实验掌握显示的接口电路及程序设计,熟悉各种操作指令,子程序的调用以及中断知识和计数器的计数
实训原理:通过把设计好的程序利用软件将编译得到HEX格式文件加载到单片机芯片中,实现仿真电路,得到仿真电路结果。
实验仪器:电脑,Keil软件,Proteus软件
实训要求:(1)四位LED数码管动态显示,显示最小时间为0.01秒,最多显示时间99秒;
(2)由按键控制,第一次按下键,开始计时,第二次按下键,停止计时,第三次按下键,清零。
在Keil软件中,新建一个项目,命名为跑表,然后根据程序流程图和仿真电路图编写程序。
调试程序,检查程序是否有误,保存。得程序如下:
编写程序
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP L1
ORG 0030H
/*开始程序*/
MAIN: SETB IT0
SETB P1.0 ;至高电频
SETB EA ;开中断控制位
SETB EX0 ;开外部中断0
MOV DPTR,#TAB ;将TAB所代表的地址送入DPTR
MOV 30H,#0
MOV 40H,#0
MOV R1,#0
/*判断R1,然后进行判断*/
L4: JB P1.0,L14 ;P1.0的值为1,则转移至L14
INC R1 ;R1加1
SETB P1.0
L14: MOV R3,#2
/*使时间达到0.01秒*/
L9: ACALL L3 ;绝对调用L3程序
ACALL L2
DEC R3 ;寄存器减1
CJNE R3,#0,L9
/*当按一次开关时进行跑秒*/
CJNE R1,#1,L5 ;寄存器R1中的值不为1,则转移到L5
MOV A,30H
ADD A,#1
DA A
CJNE A,#99H,L6
ACALL L7
CLR A
L6: MOV 30H,A
/*当再一次按键时,暂停*/
L5: CJNE R1,#2,L10
SJMP L4 ;转移到L4
/*当继续按键时,清零*/
L10: CJNE R1,#3,L11
MOV 30H,#0
MOV 40H,#0
MOV R1,#0
L11: SJMP L4
/*跑秒显示后两位*/
L2:
CLR P2.3
MOV A,30H
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
LCALL L3
SETB P2.3
CLR P2.2
MOV A,30H
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
LCALL L3
SETB P2.2
/*跑秒显示前两位*/
CLR P2.1
MOV A,40H
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
LCALL L3
SETB P2.1
CLR P2.0
MOV A,20H
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
LCALL L3
SETB P2.0
RET
/*显示用的时间*/
l3:MOV R7,#250
J0:NOP ;延迟一个机器周期的时间
NOP
DJNZ R6,J0 ;寄存器减1不为0,转移到J0
RET
/*终端打开*/
L1:CLR EA
CLR P1.0
SETB EA
RETI
/*秒位显示*/
L7:MOV A,40H
ADD A,#1
DA A
CJNE A,#99H,L8
CLR A
L8:MOV 40H,A
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
四:检查程序是否有误,然后修改,并将无误的程序保存编译为HEX格式文件,然后加载到单片机芯片中,查看电路,观看仿真电路结果.得到课题要求的结果。
五、实训小结
1) 通过实训,我们自己动手分析设计程序加深了对知识的理解和对指令的运用。
2)通过对程序的编译和电路的仿真,使我们能够更直观得看到程序运行的结果。
3)通过实训与所学知识的结合,提高我们动手的能力和对技能的熟悉。强化了我们得专业技能,能更好的运用所学知识
Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有