单片机实验二

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档