哈工大单片机实验报告(3)

2019-08-03 14:35

MOV R3,#0FFHMOV R2,#0FFH

DL1:MOV R4,#0FFHDL1:MOV R3,#0FFH DL2:NOPDL2:MOV R4,#0FFH NOPDL3:NOP DJNZ R4,DL2NOP DJNZ R3,DL1DJNZ R4,DL3 RETDJNZ R3,DL2

ENDDJNZ R2,DL1

RET

END

若将0字循环改为4字循环只需同时将0字七段码0C0H改为4字七段码99H即可。

六、实验源程序

ORG 0000H LJMP MAIN ORG 0DA0H LJMP SOX0 ORG 0A10H

MAIN: MOV 20H, #03H ;每次实验,这里可以改为0、1、2和3 MOV A, 20H ;取预置数据 MOV DPTR, #LOOP ;散转表起始地址 RL A JMP @A+DPTR LOOP:AJMPLOOP1 AJMPLOOP2 AJMPLOOP3 AJMPLOOP4

LOOP1: MOV 21H, #0C0H ;\字的7段码 SJMPSOX0

LOOP2:MOV 21H, #0F9H SJMPSOX0

LOOP3: MOV 21H, #0A4H SJMPSOX0

LOOP4: MOV 21H, #0B0H SOX0:

;\字的7段码 ;循环显示程序 ;取来7段码 ;显示器段地址 ;显示器位地址 ;将7段码输出 ;\字的7段码 ;\字的7段码 ;A 乘以 2 ;散转指令

MOV A, 21H MOV R0, #0DCH MOV R1, #0DDH MOVX @R0, A

-11-

MOV A, #01H SOX1:

MOVX @R1, A MOV R2, #20H

;最\右\边的位发光

;准备延时

LCALL DELAY ;调用延时子程序 RL A SJMP SOX1 DELAY:

MOV R3,#0FFH DL1:MOV R4,#0FFH DL2:NOP NOP DJNZ R4,DL2 DJNZ R3,DL1 RET

END

;左移显示的位 ;无穷循环

实验十 电脑时钟(定时器、中断器综合实验)

一、实验目的

熟悉MCS-51定时器,串行口和中断初始化编程方法,了解定时器的应用实时程序的设计与调试技巧。

二、实验内容

编写程序,从本实验系统键盘上输入时间初值,用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。

三、程序框图

-12-

四、实验步骤

1、LED环境

⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。

⑵在“P.”状态下键入0030,然后按“EXEC”进入该实验项目的运行。 2、PC环境

在与PC联机状态下,编译、连接、下载PH51\\se10.asm,用连续方式运行该程序。 3、在键盘上输入时间初值,按执行键EXEC执行,数码管上实时显示时间值。

4、按“暂停图标”或实验箱上的“暂停按钮”,系统无条件退出该程序运行返回监控状态。

五、实验分析及结果

如何修改程序使定时器工作方式改变(实现12小时制)

问题回答:因为程序中有十进制调整,所以就将程序中“CJNE A,#24H,DONE ;24小时到吗?”改为“CJNE A,#12H,DONE ;12小时到吗?”

六、实验源程序

;电脑时钟(定时器、中断综合实验) ORG 0000H SJMP CHK00 ORG 000BH LJMP CLOCK;INT_T0 ORG 0030H CHK00: MOV SP,#60H LCALL LEDP

CHK0: LCALL LCK0 ;键扫,显示子程序 LCALL PTDS0 ;显示缓冲区放数子程序 MOV TMOD,#01H

ORL IE,#10000010b ;EA=1, IT0=1 MOV TL0,#0

MOV TH0,#4ch ;定时中断初始化 MOV 23H,#00H

SETB TR0 ;开定时 LOO5: LCALL DIS ;SSEE ;显示

LCALL PTDS0 SJMP LOO5 PTDS0: MOV R0,#79H MOV A,22H ACALL PTDS MOV A,21H ACALL PTDS MOV A,20H

-13-

ACALL PTDS RET

;--------------------------------------- PTDS: MOV R1,A ;拆送显示缓冲区 ACALL PTDS1 MOV A,R1 SWAP A PTDS1: ANL A,#0FH MOV @R0,A INC R0 RET

;--------------------------------------- CLOCK: MOV TL0,#0B7H

MOV TH0,#3CH ;恢复初值 PUSH PSW PUSH ACC

SETB 0D3H ;保护 INC 23H ;0.1秒加1 MOV A,23H

CJNE A,#20,DONE ;1秒到吗? MOV 23H,#00H ;清0.1秒单元 MOV A,22H

INC A ;秒加1 DA A

MOV 22H,A ;十进制调整 CJNE A,#60H,DONE ;60秒到吗? MOV 22H,#00H ;秒单元清零 MOV A,21H INC A

DA A ;分加1.十进制调整 MOV 21H,A

CJNE A,#60H,DONE ;60分到吗? MOV 21H,#00H ;分单元清零 MOV A,20H INC A

DA A ;时加1.十进制调整 MOV 20H,A

CJNE A,#24H,DONE ;24小时到吗?

-14-

MOV 20H,#00H ;时单元清零 DONE: POP ACC ;退栈 POP PSW RETI

;---------------------------------------------- SSEE: SETB RS1 ;换工作区 MOV R5,#05H SSE2: MOV 30H,#20H MOV 31H,#7EH MOV R7,#06H SSE1: MOV R1,#0DDH MOV A,30H

MOVX @R1,A ;字位送入 MOV R0,31H MOV A,@R0 MOV DPTR,#DDFF

MOVC A,@A+DPTR ;取字形代码 MOV R1,#0DCH

MOVX @R1,A ;字形送入 MOV A,30H ;右移 RR A MOV 30H,A DEC 31H MOV A,#0FFH

MOVX @R1,A ;关显示

DJNZ R7,SSE1 ;6位显示完了吗? DJNZ R5,SSE2 ;5次显示完了吗? CLR RS1 RET

;------------------------------------------------------- DDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH ;------------------------------------------------------- X3: MOV R4,A MOV R0,#50H MOV A,@R0 MOV R1,A MOV A,R4

-15-


哈工大单片机实验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:IPRAN几种保护技术

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: