plc定时器的使用和编程方法

发布时间:2018-07-01 16:39:38   来源:文档文库   
字号:

一、实验目的:

1、进一步掌握定时器的使用和编程方法。

2、了解七段数码显示数字的原理。

3、掌握用一个段锁存器,一个位锁存器同时显示多位数字的技术。

二、实验设备:

EL-8051-III型单片机实验箱

三、实验原理:

本试验采用动态显示。动态显示就是一位一位地轮流点亮显示器的各个位(扫描)。将8031CPUP1口当作一个锁存器使用,74LS273作为段锁存器。

四、实验题目 利用定时器1定时中断,控制电子钟走时,利用实验箱上的六个数码管显示分、秒,做成一个电子钟。显示格式为: 定时时间常数计算方法为: 定时器1工作于方式1,晶振频率为6MHZ,故预置值Tx为: 2e+16-Txx12x1/6x10e+6=0.1s Tx=15535D=3CAFH,TH1=3CHTL1=AFH

五、实验电路:

六、实验接线:

P1口的P1.0P1.5与数码管的输入LED6LED1相连,74LS273O0O7LEDALEDDp相连,片选信号CS273CS0相连。去掉短路子连接。

七、程序框图:T9.ASM

八、参考程序:T9.ASM

;P1口的P1.0P1.5LED8LED3相连,74LS273SO0SO7ADp相连,片选信号

;CS273CS0相连。去掉短路子连接。

NAME T9 ;数码显示实验

PORT EQU 0CFA0H

BUF EQU 23H ;存放计数值

SBF EQU 22H ;存放秒值

MBF EQU 21H ;存放分值

CSEG AT 0000H

LJMP START

CSEG AT 401BH

LJMP CLOCK

CSEG AT 4100H

START: MOV R0,#40H ;40H-45H是显示缓冲区,依次存放

MOV A,#00H ;分高位、分低位,0A0A(横线)

MOV @R0,A ;以及秒高位、秒底位

INC R0

MOV @R0,A

INC R0

MOV A,#0AH

MOV @R0,A

INC R0

MOV @R0,A

INC R0

MOV A,#00H

MOV @R0,A

INC R0

MOV @R0,A



MOV TMOD,#10H ;定时器1初始化为方式1

MOV TH1,#38H ;置时间常数,延时0.1

MOV TL1,#00H



MOV BUF,#00H ;0

MOV SBF,#00H

MOV MBF,#00H



SETB ET1

SETB EA

SETB TR1



DS1: MOV R0,#40H ;置显示缓冲区首址

MOV R2,#20H ;置扫描初值,点亮最左边的LED6

DS2: MOV DPTR,#PORT

MOV A,@R0 ;得到的段显码输出到段数据口

ACALL TABLE

MOVX @DPTR,A



MOV A,R2 ;向位数据口P1输出位显码

CPL A

MOV P1,A



MOV R3,#0FFH ;延时一小段时间

DEL: NOP

DJNZ R3,DEL



INC R0 ;显示缓冲字节加一

CLR C

MOV A,R2

RRC A ;显码右移一位

MOV R2,A ;最末一位是否显示完毕?,如无则

JNZ DS2 ;继续往下显示



MOV R0,#45H

MOV A,SBF ;把秒值分别放于44H,45H

ACALL GET



DEC R0 ;跳过负责显示"-"的两个字节

DEC R0

MOV A,MBF ;把分值分别放入40H,41H



ACALL GET

SJMP DS1 ;DS1从头显示起

TABLE: INC A ;取与数字对应的段码

MOVC A,@A+PC

RET

DB 3FH,06H,5BH,4FH,66H,6DH,7DH, 07H, 7FH,6FH, 40H



GET: MOV R1,A ;把从分或秒字节中取来的值的高

ANL A,#0FH ;位屏蔽掉,并送入缓冲区

MOV @R0,A



DEC R0

MOV A,R1 ;把从分或秒字节中取来的值的低

SWAP A ;位屏蔽掉,并送入缓冲区

ANL A,#0FH

MOV @R0,A

DEC R0 ;R0指针下移一位

RET

CLOCK: MOV TL1,#0AFH ;置时间常数

MOV TH1,#3CH

PUSH PSW

PUSH ACC

INC BUF ;计数加一

MOV A,BUF ;计到10?没有则转到QUIT退出中断

CJNE A,#0AH,QUIT

MOV BUF,#00H ;置初值

MOV A,SBF

INC A ;秒值加一,经十进制调整后放入

DA A ;秒字节

MOV SBF,A

CJNE A,#60H,QUIT ;计到60?没有则转到QUIT退出中断

MOV SBF,#00H ;,秒字节清零

MOV A,MBF

INC A ;分值加一,经十进制调整后放入

DA A ;分字节

MOV MBF,A

CJNE A,#60H,QUIT ;分值为60?不是则退出中断

MOV MBF,#00H ;,清零

QUIT: POP ACC

POP PSW

RETI ;中断返回

END

本文来源:https://www.2haoxitong.net/k/doc/512997f9770bf78a65295415.html

《plc定时器的使用和编程方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式