; 硬件连接:1602LCD 显示000000Hz 短接p1.4--p3.5则显示0000010hz *
;LCD1602显示在不增加外部计数硬件的情况下,本试验软件可测最高频率达到460KHz *
;工作原理: *
;1S 钟内对输入脉冲所计数的次数则为频率值。 *
;16位二进制加法计数器的最大计数值为 65535。 *
;设置定时器 0 工作在定时方式1,定时1S。 *
;设置定时器 1 工作在计数方式1,对输入脉冲进行计数,溢出产生中断。 *
;将定时器 1中断定义为优先。在中断处理程序里对中断次数进行计数。1S到后, *
;将中断次数和计数器里的计数值取出进行综合数据处理,处理后的数据送LCD1602显示? *
;信号来源: *
;1、软件里对 P1.4定时取反,形成输出脉冲,接到 P3.5 可自测。 *
; 显示结果:P1.4 → P3.5 显示: 000010 (Hz) *
;如果有条件的话,可使用专用设备(信号发生器和频率计)进行校正。
;频率计的程序
;包含:外部中断设置,中断服务程序,定时程序,定时服务程序
;以及数据处理,显示,包括 三位十进制数转化为四位BCD码,
;------------------------------------------------------------
BEEP BIT P3.7
LCD_RS BIT P2.0
LCD_RW BIT P2.1
LCD_EN BIT P2.2
LCD_X EQU 3FH ;LCD 地址变量
TIMER_H EQU 30H ;定时器高位字节单元
TIMER_L EQU 31H ;定时器低位字节单元
TIMCOUNT EQU 32H ;时间中断数
INT_G EQU 35H ;中断计数缓冲单元高地址
INT_H EQU 34H ;中断计数缓冲单元中地址
INT_L EQU 33H ;中断计数缓冲单元低地址
T_S EQU 36H ;数据显示低位
T_M EQU 37H ;数据显示中位
T_H EQU 38H ;数据显示高位
T_G EQU 39H ;数据显示最高位
;----------------------------------------------------------
ORG 0000H
JMP MAIN ;主程序开始
ORG 000BH
JMP TIMER_INT ;定时器T0中断服务程序
ORG 001BH ;定时器T1中断服务程序
JMP TIMER1
ORG 0030H
;----------------------------------------------------------
MAIN:
MOV SP,#60H ;设置SP指针
LCALL PRO_SET ;初始化
CALL SET_LCD
LCALL TIM_T0
;-----------------------------------------------------------
;LCD1602是慢速显示器件,故100MS显示一次。
;-----------------------------------------------------------
MAIN1:
MOV R5,40
MAIN2:
ACALL DELAY1 ;3ms
DJNZ R5,MAIN2
ACALL SBIN_SBCD
CALL CONV
JMP MAIN1
本文关键字:暂无联系方式51单片机,单片机-工控设备 - 51单片机