脉冲频率测量程序清单

频率测量实际上就是在1s内对脉冲个数进展计数,计数值就是信号频率。利用已有的电路可以实现脉冲信号的频率测量。令定时器T0工作在方式1,得到50ms的定时间隔,在进展软件计数20次,形成一个1s的测量闸门信号,在测量闸门信号期间响应INT0中断,对脉冲信号加1计数来完成对输入信号的频率计数,计数值存入COUNT和COUNT+1单元,计数值通过6位动态数码管显示出来。
程序如下:
;频率计程序清单
ORG 0000H
LJMP START
ORG 0003H
LJMP PINT0 ;INT0中断入口
ORG 000BH ; T0中断入口
LJMP T0INT
ORG 0040H
COUNT EQU 40H ; 定义计数单元
;COUNT , COUNT+1 对脉冲个数计数,高位在前
限流熔断器;COUNT+2 为秒计数单元
START ; MOV SP , #40H ; 主程序
AGAIN ; MOV COUNT, #00H ; 计数单元清0
MOV COUNT+1,#00H
MOV COUNT+2 , #00H
MOV TMOD , #01H ; 初始化T0
MOV TH0,#3CH ; 计数初值,50ms的定时间隔
MOV TL0 , #0B0H
SETB TR0 ; 启动T0
SETB ET0 ; 允许T0中断
SETB EX0
SETB IT0 ; INT0 为负沿触发方式
SETB EA
WAIT: JNB F0,W AIT ; 不到1s那么等待
LCALL WDISBUF ; 将双字节计数值转换成6位非压
缩型BCD码
LCALL DISPLAY
LCALL DISPLAY
LJMP AGAIN
;
写WDISBUF子程序
HEX EQU 40H
DISBUF EQU 70H
WDISBUF: CLR    A ; 压缩BCD码初始化
MOV R3 , A ; R3R4R5暂存压缩BCD码
MOV R4 , A
MOV R5 , A
MOV R2 , #16
四川卫生厅
HB1: MOV R6 , HEX ; 数据高字节暂存于R6 中
MOV R7 , HEX+1 ; 数据低字节暂存于R7 中
HB2:MOV    A , R7 ; 从高端移出待转换的一位到CY中RLC    A
MOV R7 , A
MOV    A , R6
安全责任 重在落实RLC    A
MOV R6 , A
MOV    A , R5 ; BCD 码带进位自身相加,相当于乘2
ADDC    A , R5
DA    A ; 十进制调整
MOV R5 , A
MOV    A , R4
ADDC    A , R4
DA    A
MOV R4 , A
MOV    A , R3
ADDC    A , R3
MOV R3 , A ; 双字节十六进制数的万位数不超过
6,不用调整
DJNZ R2 , HB1 ; 处理完十六位
MOV R0 , DISBUF+5 ; 转换成别离BCD码存于70H~75H
单元中
MOV A, #00H
MOV @R0 , A
MOV    A , R3 : R3不超过6,不用转换
DEC R0
MOV @R0 , A
MOV    A , R4
SWAP    A
ANL    A ,#0FH
DEC R0
MOV @R0 , A
MOV    A , R4
SW AP    A
ANL    A , #0FH
DEC R0
MOV @R0 , A
MOV    A ,R4
ANL    A , #0FH
DEC R0
MOV @R0 , A福建江夏学院学报
MOV    A , R5
ANL    A ,#0FH
DEC R0
MOV @R0 , A
RET
;DISPLAY显示子程序
DISPLAY : MOV R0 , #70H ; R0 指向DISBUF 首地址
MOV R3 , #01H ;右起第一个LED 的选择字NEXT: MOV    A , #00H ; 取位选控制字为全灭
MOV P1 , A ; 瞬时关显示器
MOV A, @R0 ; 从DISBUF中取出字符
MOV DPTR , #DSEG ; 取段码表首地址
MOVC    A , @A+DPTR ; 查表,取对应的字形码
MOV P0 , A ; 输出字形码
MOV    A , R3 ; 取当前位选控制字
MOV P1 , A ; 点亮当前LED显示位
LCALL DELAY ; DELAY 延时1ms
INC R0 ; R0 N指向下一个字符
JB ACC.5 , EXIT ; 诺当前显示位是第六位那么完毕
RL    A ; 下一个LED 的选择字
MOV R3 , A
SJMP NEXT
EXIT: RET ; 返回
;定时器T0中断效劳程序
T01NT: PUSH    A
MOV TH0,#3CH ; 再次启动计数器
MOV TL0,#0B0H
INC COUNT+2 ; 秒计数单元加1
MOV A, COUNT+2
博兴实验中学
CLR    C
SUBB A, #20
JC EXIT
SETB F0 ; 闸门时间到
硅油乳膏CLR EA ; 关中断
POP    A
EXIT: RETI
; INT0中断效劳程序
PINT0:PUSH    A
MOV A, COUNT+1
ADD    A , #01H ; 计数值+1
MOV COUNT+1 , A
MOV    A ,COUNT
ADDC    A ,#00H ;高字节
MOV COUNT,A
POP    A
RETI

本文发布于:2024-09-24 00:28:15,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/158319.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:计数   信号   数值   脉冲   中断   方式
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议