简易6位数显频率计报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简易6位数显频率计

一、任务分析

(1)用51单片机的定时计数器功能设计一个带6位数显的简易频率计。

(2)参数要求:

a、输入信号为矩形波,幅度>4.5V,信号频率范围为1-250kHz,误差为±1Hz;

b、测得的频率结果用6位数码管显示出来,显示方式自定;

c、51单片机晶振频率为12MHz。

二、实现方案

采用12MHz的晶体震荡器的情况下,一秒的定时已经超过了定时器可提供的最大定时值。为了实现一秒的定时,采用定时和计数相结合的方法实现。选用定时计数器TO做定时器,工作于方式1产生50ms的定时器,再用软件计数的方式对他计数20次,就可得到一秒的定时。另外,此处对外部事件计数脉冲的占空比(即脉冲的持续宽度)无特殊要求,但必须保证所给出的高电平在其改变之前至少被采样1次,即至少保持1个完整的机器周期。由此可见,从T1口输入脉冲信号,T1可以实现对脉冲个数的计数。采用中断来实现每一秒钟算一次频率,时时显示频率。采用移位除法把十六位的二进转换成十进制的数。

三、程序流程图

四、硬件电路图

五、程序列表

DATE0 EQU 22H

DATE1 EQU 23H

DATE2 EQU 24H

DATE3 EQU 25H

DATE4 EQU 26H

LL6 EQU 27H

LL5 EQU 28H

LL4 EQU 29H

LL3 EQU 30H

LL2 EQU 31H

LL1 EQU 32H

M EQU 33H

N EQU 34H

V ALUEH EQU 35H ;暂存TH1的值V ALUEL EQU 36H ;暂存TL1的值AS EQU 37H

ORG 0000H

LJMP START

ORG 000BH

LJMP INT00

ORG 001BH

LJMP INT11

START: MOV SP,#60H

MOV P0,#0C0H

MOV P2,#00H

MOV 22H,#00H

MOV 23H,#00H

MOV 24H,#00H

MOV 25H,#00H

MOV 26H,#00H

MOV LL6,#0

MOV LL5,#0

MOV LL4,#0

MOV LL3,#0

MOV LL2,#0

MOV LL1,#0

MOV N,#0

MOV M,#1

MOV TMOD,#15H ;T1定时

5ms,T0计数MOV TH1,#0ECH

MOV TL1,#81H

MOV TH0,#0

MOV TL0,#0

MOV IE,#8AH

SETB TR0

SETB TR1

MOV DPTR,#TABLE DETACH: MOV A,LL1 ;显示计数值MOVC A,@A+DPTR

MOV P0,#0FFH

MOV P2,#80H

MOV P0,A

MOV A,LL2

MOVC A,@A+DPTR

MOV P0,#0FFH

MOV P2,#40H

MOV P0,A

MOV A,LL3

MOVC A,@A+DPTR

MOV P0,#0FFH

MOV P2,#20H

MOV P0,A

MOV A,LL4

MOVC A,@A+DPTR

MOV P0,#0FFH

MOV P2,#10H

MOV P0,A

MOV A,LL5

MOVC A,@A+DPTR

MOV P0,#0FFH

MOV P2,#08H

MOV P0,A

MOV A,LL6

MOVC A,@A+DPTR

MOV P0,#0FFH

MOV P2,#04H

MOV P0,A

LJMP DETACH

INT11: MOV AS,A

MOV TH1,#0ECH

MOV TL1,#81H

INC N

MOV A,N

CJNE A,#200,OVER;是否计满1秒

MOV V ALUEL,TL0 ;存放计数值

MOV V ALUEH,TH0

LCALL HTOD

MOV LL1,DATE4

MOV LL2,DATE3

MOV LL3,DATE2

MOV LL4,DATE1

MOV LL5,DATE0

MOV LL6,#0

LCALL CHANGE

MOV N,#0

MOV M,#1

CLR TR0 ;关闭计数器

MOV TH0,#0

MOV TL0,#0

SETB TR0

CLR TR1 ;关闭定时器

MOV TH1,#0ECH

MOV TL1,#81H

SETB TR1

MOV A,AS

OVER: RETI

INT00: INC M

MOV TH0,#0

MOV TL0,#0

RETI

CHANGE: DJNZ M,NEXT

RET

NEXT: MOV V ALUEH,#0FFH

MOV V ALUEL,#0FFH

LCALL HTOD

MOV B,#10

MOV A,LL1

ADD A,DATE4

DIV AB

MOV LL1,B

MOV B,#10

ADD A,LL2

ADD A,DATE3

DIV AB

MOV LL2,B

MOV B,#10

ADD A,LL3

ADD A,DATE2

DIV AB

MOV LL3,B

MOV B,#10

ADD A,LL4

ADD A,DATE1

DIV AB

MOV LL4,B

MOV B,#10

ADD A,LL5

ADD A,DATE0

DIV AB

MOV LL5,B

相关文档
最新文档