单片机实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌航空大学实验报告
二0一一年 9月28 日
课程名称:单片微型机实验名称:实验一软件实验9、10
班级: 080611 姓名:吴智丽学号: 08061103
指导教师评定:签名:
一、实验目的
1、熟悉8031定时/计数功能,掌握定时/计数初始化编程方法。
2、熟悉MCS—51定时器、串行口和中断初始化编程方法,了解定时器应用在实时控制中程序的设计技巧。
二、实验内容
1、对定时器0外部输入的脉冲进行计数,并送显示器显示。
2、编写程序,从DVCC系列单片机实验仪键盘上输入时间初值,用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。
三、实验步骤
脉冲计数
1、实验程序框图
2 、实验操作
(1)把8032CPU的P3.4插孔接T0—T7任一根信号线或单脉冲输出空“SP”。
(2)用连续方式从起始地址02A0H开始运行程序(按02A0后按EXEC键)。
(3)观察数码管显示的内容应为脉冲个数。
(4)脉冲计数程序
CONT: MOV SP,#53H
MOV TMOD,#05H
;初始化定时/计数器
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
;允许定时/计数中断
CONT1: MOV R2,TH0
;取计数值
MOV R3,TL0
LCALL CONT2
;调二转十进制子程序
MOV R0,#79H
MOV A,R6
LCALL PWOR
MOV A,R5
LCALL PWOR
MOV A,R4
LCALL PWOR
LCALL DISP
;调显示子程序
SJMP CONT1
;循环
CONT2: CLR A
;清R4、R5、R6
MOV R4,A
MOV R5,A
MOV R6,A
MOV R7,#10H
CONT3: CLR C
;R2、R3左移,移出的位送CY
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV A,R6
ADDC A,R6
;R4、R5、R6×2 + CY送R4、R5、R6 DA A
MOV R6,A
;十进制调整
MOV A,R5
ADDC A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
DJNZ R7,CONT3
;循环16次
RET
PWOR: MOV R1,A ;
;拆送显示缓冲区
LCALL PWOR1
MOV A,R1
SWAP A
PWOR1: ANL A,#0FH
MOV @R0,A
INC R0
RET
DISP: SETB 0D4H
;显示子程序
MOV R1,#7EH
MOV R2,#20H
MOV R3,#00H
DISP1: MOV DPTR,#0FF21H
MOV A,R2
MOVX @DPTR,A
MOV DPTR,#CDATA
MOV A,@R1
MOVC A,@A+DPTR
MOV DPTR,#0FF22H
MOVX @DPTR,A
DISP2: DJNZ R3,DISP2
DEC R1
CLR C
MOV A,R2
RRC A
MOV R2,A
JNZ DISP1
MOV A,#0FFH
MOV DPTR,#0FF22H
MOVX @DPTR,A
CLR 0D4H
RET
CDATA: DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H, 90H
DB
88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0D EH
电脑时钟
1、实验程序框图
2、实验操作
(1) 用连续方式从起始地址0340H开始执行程序(输入0340后按EXEC键)。
(2) 连续运行程序,在键盘上输入时间初值。如果输入时分秒初值超范围,则显示000000后
要求重新设置初值,初值的默认值为000000。
(3) 再次按EXEC键时钟开始工作,数码管上实时显示时间值。
3、电脑时钟程序
ORG 000BH
LJMP TINTRUP ORG 0340h
CLOCK0: MOV SP,#50H
MOV R0,#7EH
;清显示缓冲区
MOV R4,#06H
CLR A CLOCK1:MOV @R0,A
DEC R0
DJNZ R4,CLOCK1
MOV A,#7EH
MOV DPTR,#1FFFH
MOVX @DPTR,A
MOV 76H,#00H
;初始化定时/计数器
MOV 77H,#00H
LCALL KEYDISP0
;调显示键扫子程序
LCALL DISDA0
;调显示缓冲区放数程序
MOV TMOD,#01H
ORL IE,#82H
MOV TL0,#0B7H
MOV TH0,#3CH
MOV 23H,#00H
SETB TR0 ;开定时中断CLOCK2: LCALL DISP
;调显示子程序
LCALL DISDA0
;调显示缓冲区放数子程序
SJMP CLOCK2 ;循环DISDA0: MOV R0,#79H ;显示缓冲区放数子程序
MOV A,22H
ACALL DISDA
MOV A,21H
ACALL DISDA