基于单片机测量脉冲频率 下载本文

内容发布更新时间 : 2024/5/7 0:15:50星期一 下面是文章的全部内容请认真阅读。

(二)程序功能描述

s1 EQU 30H

s2 EQU 31H s3 EQU 32H s4 EQU 33H

;第一个数码管显示的数值 ;第二个数码管显示的数值 ;第三个数码管显示的数值 ;第四个数码管显示的数值

ORG 0000H

AJMP MAIN ORG 0003H AJMP CHULI

ORG 0033H MAIN: MOV SP,#60H

MOV TMOD,#09H

;计数器T0工作在方式1 门控信号为1

;外部中断低电平触发处理

MOV TH0,#00H

MOV TL0,#00H ;计数器TO清零

MOV IE,#81H ;开放定时器中断 开总中断 外部中断0

MOV TCON,#11H ;T0允许计数且当外部中断输入为高时计数

外部中断0为边沿触发方式 下降沿有效

MOV R5,#50H

LOOP: ACALL BCD ;十六位二进制转十进制

ACALL UBCD ;压缩BCD码,转非压缩BCD码 ACALL DISP ;显示程序

ACALL DELAY ACALL DISP ACALL DELAY

;显示程序

ACALL DISP ACALL DELAY ACALL DISP ACALL DELAY

;显示程序

;显示程序

ACALL DISP ACALL DELAY ACALL DISP ACALL DELAY ACALL DISP

XX: ACALL DELAY

ACALL DISP ACALL DELAY

ACALL DISP ACALL DELAY ACALL DISP DJNZ R5,XX AJMP LOOP CHULI: MOV 41H,TH0

MOV 40H,TL0 MOV TH0,#00H MOV TL0,#00H TT: RETI BCD: CLR A

MOV 38H,41H MOV 37H,40H MOV 34H,A MOV 35H,A MOV 36H,A MOV R7,#16 LOOP1: CLR C MOV A,37H RLC A

;显示程序

;显示程序

;显示程序

;显示程序 ;显示程序 ;显示程序

;循环处理显示计数器T0采集得数

;将计数器T0中的数转移到40H,41H中 ;重新将定时器T0清零

;将41H 40H中的数值转换成BCD码分别按高低存储在34H 35H 36H中

MOV 37H,A MOV A,38H RLC A MOV 38H,A MOV A,36H ADDC A,36H DA A MOV 36H,A MOV A,35H ADDC A,35H DA A MOV 35H,A MOV A,34H ADDC A,34H DA A MOV 34H,A DJNZ R7,LOOP1 RET UBCD: MOV A,34H

CJNE A,#00H,QUSHU MOV R1,#35H MOV R0,#36H MOV A,#00H

XCHD A,@R0 MOV 30H,A MOV A,@R0 SWAP A MOV 31H,A

;判断第五位数值是否为0 为零则按四位

有效值处理 不为零按5位有效值处理

;当有4位有效效值时取后四位显示小数

点加在第一位