找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7296|回复: 2
打印 上一主题 下一主题
收起左侧

基于51单片机的数字频率计设计报告与汇编语言源程序

[复制链接]
跳转到指定楼层
楼主
ID:290170 发表于 2018-9-17 10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目录
第1节 引言 2
数字频率计概述2
频率测量仪的设计思路与频率的计算2
基本设计原理3
第2节 数字频率计(低频)的硬件结构设计4
   2.1系统硬件的构成4
2.2系统工作原理图4
2.3AT89C51单片机及其引脚说明 5
2.4信号调理及放大整形模块7
2.5时基信号产生电路7
2.6显示模块8
第3节 软件设计12
3.1 定时计数 12
3.2 量程转换 12
3.3 BCD转换12
3.4 LCD显示12
第4节 结束语  13
参考文献 14
附录 汇编源程序代码15

1 引言
本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。
1.1数字频率计概述
数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。
本数字频率计将采用定时、计数的方法测量频率,采用一个1602A LCD显示器动态显示6位数。测量范围从1Hz—10kHz的正弦波、方波、三角波,时基宽度为1us,10us,100us,1ms。用单片机实现自动测量功能。
基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。
1.2频率测量仪的设计思路与频率的计算
频率测量仪的设计思路主要是:对信号分频,测量一个或几个被测量信号周期中已知标准频率信号的周期个数,进而测量出该信号频率的大小,其原理如右图1所示。

若被测量信号的周期为,分频数m1,分频后信号的周期为T,则:T=m1Tx 。由图可知: T=NTo   
(注:To为标准信号的周期,所以T为分频后信号的周期,则可以算出被测量信号的频率f。)
由于单片机系统的标准频率比较稳定,而是系统标准信号频率的误差,通常情况下很小;而系统的量化误差小于1,所以由式T=NTo可知,频率测量的误差主要取决于N值的大小,N值越大,误差越小,测量的精度越高。
1.3 基本设计原理

基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。

所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时闸门关闭,计数器停止计数。由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率fx=NHz。


第2节 数字频率计(低频)的硬件结构设计
2.1 系统硬件的构成
    本频率计的数据采集系统主要元器件是单片机AT89C51,由它完成对待测信号频率的计数和结果显示等功能,外部还要有分频器、显示器等器件。可分为以下几个模块:放大整形模块、秒脉冲产生模块、换档模拟转换模块、单片机系统、LCD显示模块。各模块关系图如图2所示:

              
图2  数字频率计功能模块

2.2 系统工作原理图

该系统工作的总原理图如图3所示:

图3 数字频率计系统工作原理图
2.3AT89C51单片机及其引脚说明
89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口,  片上震荡器和时钟电路。
引脚说明:
·VCC:电源电压
·GND:地
·P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。
当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。
在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。
·P1口:P1口是一带有内部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。
·P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL逻辑门电路。当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。
P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX @ DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX @R1),P2口输出特殊功能寄存器的内容。
当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。
·P3口:P3是一带有内部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。
P3口同时具有AT89C51的多种特殊功能,具体如下表1所示:
端口引脚
第二功能
P3.0
RXD (串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0)
P3.5
T1(定时器1)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器都选通)
表1  P3口的第二功能

·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。
·ALE/:当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在Flash编程时还可以作为编程脉冲输出()。
一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。
·:程序存储允许时外部程序存储器的读选通信号。当AT89C52执行外部程序存储器的指令时,每个机器周期两次有效,除了当访问外部数据存储器时,将跳过两个信号。
·/VPP:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,必须同GND相连接。需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。
当执行内部编程指令时,应该接到VCC端。
·XTAL1:振荡器反相放大器以及内部时钟电路的输入端。
·XTAL2:振荡器反相放大器的输出端。
在本次设计中,采用89C51作为CPU处理器,充分利用其硬件资源,结合D触发器CD4013,分频器CD4060,模拟转换开关CD4051,计数器74LS90等数字处理芯片,主要控制两大硬件模块,量程切换以及显示模块。下面还将详细说明。
2.4 信号调理及放大整形模块
放大整形系统包括衰减器、跟随器、放大器、施密特触发器。它将正弦输入信号Vx整形成同频率方波Vo,幅值过大的被测信号经过分压器分压送入后级放大器,以避免波形失真。由运算放大器构成的射级跟随器起阻抗变换作用,使输入阻抗提高。同相输入的运算放大器的放大倍数为(R1+R2)/R1,改变R1的大小可以改变放大倍数。系统的整形电路由施密特触发器组成,整形后的方波送到闸门以便计数。

由于输入的信号幅度是不确定、可能很大也有可能很小,这样对于输入信号的测量就不方便了,过大可能会把器件烧毁,过小可能器件检测不到,所以在设计中采用了这个信号调理电路对输入的波形进行阻抗变换、放大限幅和整形,信号调理部分电路具体实现电路原理图和参数如下图4所示:
                                    图4
2.5 时基信号产生电路:
CD4013------双上升沿D触发器 ,引脚及功能见如下图5:


CD4013 由两个相同的、相互独立的数据型触发器构成。每个触发器有独立的数据置位复位时钟输入和 Q及Q非输出。此器件可用作移位寄存器,且通过将Q非输出连接到数据输入,可用作计数器和触发器。在时钟上升沿触发时,加在D 输入端的逻辑电平传送到Q输出端。置位和复位或复位线上的高电平完成。
图5  CD4013芯片引脚用功能图                  
CD4060------14位二进制串行计数器,引脚及功能见如下图6:
CD4060 由一震荡器和14极二进制串行计数器位组成,震荡器的结构可以是RC或晶振电路。CR为高电平时,计数器清零且振荡器使用无效,所有的计数器位均为主从触发器 CP1非(和 CP0)的下降沿计数器以二进制进行计数,在时钟脉冲线上使用施密特触发器对时钟上升和下降时间无限制。
            
              图6  CD4060芯片引脚用功能图
时基信号的产生原理:
本电路采用32768HZ晶体震荡器,利用CD4060芯片经过14级分频得到2HZ的信号(32768/214),在经过CD4013双D触发器经过二分频得到0.5HZ的方波,即输出秒脉冲信号使单片机进行计数。


图七 秒脉冲产生电路原理图



    • 显示模块
1602基本技术:
1)、主要功能
A、 40通道点阵LCD 驱动;
B、 可选择当作行驱动或列驱动;
C、 输入/输出信号:输出,能产生20×2个LCD驱动波形;输入,接受控制器送出的串行数据和控制信号,偏压(V1∽V6);
D、 通过单片机控制将所测的频率信号读数显示出来。

2)、技术参数

2.1)极限参数表
名 称
符 号
标  准  值
单 位
MIN
TYPE
MAX
电路电源
VDD - VSS
-0.3

7.0
V
LCD驱动电压
VDD - VEE
VDD - 13.5

VDD + 0.3
V
输入电压
VIN
-0.3

VDD + 0.3
V
静电电压

-
-
100
V
工作温度

-20

+70
°C
储存温度

-30

+80
°C

2.2) 电参数表
名 称
符 号
测 试 条 件
标 准 值
单位
MIN
TYPE
MAX
输入高电平
VIH
-
2.2

VDD
V
输入低电平
VIL
-
-0.3

0.6
V
输出高电平
VOH
IOH = 0.2mA
2.4

-
V
输出低电平
VOL
IOL = 1.2mA
-

0.4
V
工作电流
IDD
VDD = 5.0V

2.0

mA

液晶驱动电压

VDD- VEE
Ta = 0°C

4.9


V
Ta = 25°C

4.7

Ta = 50°C

4.5



3)、时序特性表
项 目
符 号
测试条件
标 准 值
单位
MIN
TYPE
MAX
允许时间周期
TCYCE



5.1a5.1b
1000


ns
允许脉冲宽度,高电平
PWEH
450
--
--
ns
允许上升和下降时间
tEr tEf
--
--
25
ns
地址建立时间
tAS
140
--
--
ns
数据延迟时间
tDDR
--
--
320
ns
数据建立时间
tDSW
195
--
--
ns
数据保持时间
tH
10
--
--
ns
DATA HOLD TIME
tDHR
20
--
--
ns
地址保持时间
tAH
10
--
--
ns


4)、引脚和指令功能
4.1)模块引脚功能表
引 线 号
符 号
名 称
功 能
1
Vss
接地
0V
2
VDD
电路电源
5V±10%
3
VEE
液晶驱动电压
保证VDD-VEE=4.5∽5V电压差
4
RS
寄存器选择信号
H:数据寄存器 L:指令寄存器
5
R/W
读/写信号
H:读         L:写
6
E
片选信号
下降沿触发,锁存数据
7
|
14
DB0
|
DB7

数据线

数据传输

4.2)寄存器选择功能表
RS
R/W
操  作
0
0
指令寄存器(IR)写入
0
1
忙标志和地址计数器读出
1
0
数据寄存器(DR)写入
1
1
数据寄存器读出
(注:忙标志为"1"时,表明正在进行内部操作,此时不能输入指令或数据,要等内部操作结束,即忙标志为"0"时。)
4.3) 指令功能
    格式:RS  R/W  DB7  DB6  DB5  DB4  DB3  DB2  DB1  DB0
共11种指令:清除,返回,输入方式设置,显示开关,控制,移位,功能设置,CGRAM地址设
置,DDRAM地址设置,读忙标志,写数据到CG/DDRAM,读数据由CG/DDRAM。

5)、显示位与DD RAM 地址的对应关系
        显 示 位 序 号
1    2    3     4    5  ………………  40
  DD RAM
地 址(HEX)
第 一 行
00   01   02   03   04  ..…………..  27
第 二 行
40   41   42   43   44  ……………..  67

6)、初始化方法
用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示,下面介绍两种初始化方法;
6.1利用内部复位电路进行初始化
下面指令是在初始化过程中执行的。
  •           清屏(DISPLAY CLEAR);
  •           功能设置(FUNCTION SET);
DL = 1: 8Bit 接口数据;
N = 0: 1行显示; F = 0:5×7dot字形;
  •           显示开/关控制(DISPLAY ON/OFF CONTROL)
D = 0: 显示关; C = 0: 光标关; B = 0: 消隐关
  •           输入方式设置(ENTRY MODE SET )
I/D = 1:(增量):     S = 0: 无移位:

6.2) 软件复位
      如果电路电源不能满足复位电路的要求的话,那么初始化就要用软件来实现,过程如下:
           八位接口初始化流程图


                                      ↓

                                      ↓
                                 ↓等待>4.1ms


                                 ↓等待>100us

                              ↓检查忙标志或延时40us

                        ↓检查忙标志或延时40us

↓检查忙标志或延时40 us

↓检查忙标志或延时1.64

↓检查忙标志或延时40




3节   软件设计

主要能过编写软件来控制硬件完成以下各模块的功能:

3.1定时读数

3.2量程转换

3.3 BCD转换

3.4LCD显示的功能

单片机当C/T=1时为计数方式,多路开关与定时器的外部引脚连通,外部计数脉冲由引脚输入。当外部信号由1至0跳变时,计数器加1,此时T0成为外部事件的计数器。由于确认一次由1至0的跳变要用24个振荡器周期,所以计数器的计数频率为单片机内部计数器频率的1/24。
当C/T=0时为定时方式,对单片机内部计数器进行m2分频后,计数器的实际计数频率为单片机内部频率凡的1/m2,
当GATE=0时,反相器输出为1,或门输出为1,打开与门,使定时器的启动仅受TRO端信号电平的控制。
在此种情况下,INT0引脚的电平变化对或门不起作用。TRO=1时接通控制开关,计数脉冲加到计数器上,每来一个计数脉冲,计数器加1,只有当TRO=0时,控制开关断开,计数器停止计数。
当GATA=0时,若TRO=1,或门、与门全部打开,外部信号电平通过INTO引脚直接控制定时器的启动和关闭。输人高电平时允许计数,否则停止计数。

根据定时器的结构原理,若我们将GATE位、TR0均设为‘1’,INT0端输人被测频率信号,当被测信号的高电平到来时,开始计数;当被测信号的低电平到来时,计数器停止计数,此时TL0、TH0的数据就是相应的N值。




数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。
通过本次课程的设计,不但加深我对在课程上所学到的单片机理论知识的认识和理解,重新让自己认识到了这门学科的在应用方面的广阔前景,并且通过知识与应用于实践的结合更加丰富了自己的知识。扩展了知识面,不但掌握了本专业的相关知识,而且对其他专业的知识也有所了解,而且较系统的掌握单片机应用系统的开发过程,因而自身的综合素质有了全面的提高 。
经过这次一个较完整的产品设计和制作过程,对于认识到自己在知识方面存在的不足,明确今后的学习方向是非常有益的,为将来的的就业提前打了下坚实的基础。在设计过程中,得到了我的指导老师的悉心指导与帮助,还有其他老师和同学的大力支持和协助,在此一并表示衷心的感谢。

  1. RS     BIT     P2.0  ;P3.4脚接RS端
  2.         RW     BIT     P2.1  ;P3.5脚接R_W端
  3.         E      BIT     P2.2   ;P3.3脚接E端
  4.         ORG 0000H

  5.         LJMP MAIN
  6.         ORG 002BH
  7.         LJMP IT1
  8. MAIN:
  9.          MOV    P0,#01H    ;清除屏幕
  10.          ACALL  ENABLE
  11.          MOV    P0,#01H    ;清除屏幕
  12.          ACALL  ENABLE
  13.          MOV    P0,#01H    ;清除屏幕
  14.          ACALL  ENABLE
  15.          MOV    P0,#38H    ;8位点阵方式
  16.          ACALL  ENABLE
  17.          MOV    P0,#0cH    ;开显示
  18.          ACALL  ENABLE
  19.          MOV    P0,#06H    ;移动光标
  20.          ACALL  ENABLE
  21.          MOV    P0,#80H    ;显示位置
  22.          ACALL  ENABLE
  23.          mov    p0,#80h   ;第一行的位置
  24.          call   enable
  25.          mov    dptr,#date
  26.          call   write3
  27.          mov    p0,#0c0h  ;第二行的位置
  28.          call   enable
  29.        MOV SP,#7FH
  30.        CLR CY
  31.        mov r6,#00
  32.        mov r2,#00
  33.        MOV R3,#00
  34.        MOV TMOD,#15H
  35.        MOV TL0,#00H
  36.        MOV TH0,#00H
  37.        mov th1,#high(65536-50000)
  38.        mov tl1,#low(65536-50000)                        ;setb ET1
  39. cha1:  SETB TR1                                           ;LCALL XIANSHI
  40.        SETB TR0
  41.        mov  27h,#00h
  42.        CLR  C
  43.        MOV  C,P1.6
  44.        MOV  27H.0,C
  45.        CLR  C
  46.        MOV  C,P1.7
  47.        MOV  27H.1,C
  48.        mov  a,27h
  49.        ANL  A,#03H
  50.        MOV  17H,A
  51. CHA:   JBC  TF1,JINWEI    ;益处进位
  52.        JMP  CHA
  53. JINWEI:CLR TR1
  54.        mov th1,#high(65536-50000)
  55.        mov tl1,#low(65536-50000)
  56.        SETB TR1
  57.        INC R3
  58.        MOV A,R3                                          ;JNB P3.2,$
  59.        CJNE A,#20,CHA
  60.        CLR TR0
  61.        CLR TR1
  62.        MOV R3,#00
  63.        MOV R2,TH0
  64.        MOV R6,TL0
  65.        lcall zhuan
  66.        LCALL write1
  67.        MOV TL0,#00H
  68.        MOV TH0,#00H
  69.        jmp  cha1
  70. ZHUAN:
  71. MOV A,R2
  72. CLR C
  73. MOV 20H,#00H
  74. MOV 21H,#00H
  75. MOV 22H,#00H
  76. MOV 24H,#00H
  77. MOV 25H,#00H
  78. MOV R3,#10H
  79. NEXT: RLC A
  80. MOV R2,A
  81. MOV A,20H
  82. ADDC A,20H
  83. DA A
  84. MOV 20H,A
  85. MOV A,21H
  86. ADDC A,21H
  87. DA A
  88. MOV 21H,A
  89. MOV A,22H
  90. ADDC A,22H
  91. DA A
  92. MOV 22H,A
  93. MOV A,R2
  94. DJNZ R3,NEXT
  95. MOV A,R6
  96. clr c
  97. MOV R3,#08H
  98. NEXT1: RLC A
  99. MOV R6,A
  100. MOV A,24H
  101. ADDC A,24H
  102. DA A
  103. MOV 24H,A
  104. MOV A,25H
  105. ADDC A,25H
  106. DA A
  107. MOV 25H,A
  108. mov a,r6
  109. DJNZ R3,NEXT1
  110. clr c
  111. mov a,24h
  112. addc a,20h
  113. da a
  114. mov 20h,a
  115. mov a,25h
  116. addc a,21h
  117. da a
  118. mov 21h,a
  119. mov a,22h
  120. addc a,#00h
  121. da a
  122. mov 22h,a
  123. mov a,22h
  124. anl a,#0fh
  125. mov 31h,a
  126. mov a,22h
  127. anl a,#0f0h
  128. swap a
  129. mov 30h,a
  130. mov a,21h
  131. anl a,#0f0h
  132. swap a
  133. mov 32h,a
  134. mov a,21h
  135. anl a,#0fh
  136. mov 33h,a
  137. mov a,20h
  138. anl a,#0f0h
  139. swap a
  140. mov 34h,a
  141. mov a,20h
  142. anl a,#0fh
  143. mov 35h,a
  144. ret
  145. ;**************
  146. ;LCD显示
  147. ;**************

  148.    ENABLE:
  149.          CLR     RS
  150.          CLR     RW
  151.          CLR     E
  152.          ACALL   DELAY
  153.          SETB    E
  154.          RET

  155.    write1:                 ;写数据
  156.        MOV    10H,#00H
  157.        MOV    11H,#00H
  158.        MOV    12H,#00H
  159.        MOV    13H,#00H
  160.        MOV    14H,#00H
  161.        MOV    15H,#00H
  162.        MOV    16H,#00H     
  163.        mov    p0,#0ch
  164.        call   enable
  165.        mov    p0,#0c0h  ;第二行的位置
  166.        call    enable
  167.        MOV     A,17H
  168.        XRL     A,#02H
  169.        JNZ      XIAN1
  170.        MOV     40H,#00H
  171.        MOV     41H,#00H
  172.        MOV     42H,#00H
  173.        MOV     43H,30H
  174.        MOV     44H,31H
  175.        MOV     45H,32H
  176.        JMP     XIAN

  177. XIAN1:MOV     A,17H
  178.        XRL     A,#01H
  179.        JNZ      XIAN2
  180.        MOV     40H,#00H
  181.        MOV     41H,#00H
  182.        MOV     42H,30H
  183.        MOV     43H,31H
  184.        MOV     44H,32H
  185.        MOV     45H,33H
  186.        JMP     XIAN

  187. XIAN2:MOV     A,17H
  188.        XRL     A,#00H
  189.        JNZ      XIAN3
  190.        MOV     40H,#00H
  191.        MOV     41H,30H
  192.        MOV     42H,31H
  193.        MOV     43H,32H
  194.        MOV     44H,33H
  195.        MOV     45H,34H
  196.        JMP     XIAN

  197. XIAN3:MOV     A,17H
  198.        XRL     A,#03H
  199.        JNZ      XIAN
  200.        MOV     40H,30H
  201.        MOV     41H,31H
  202.        MOV     42H,32H
  203.        MOV     43H,33H
  204.        MOV     44H,34H
  205.        MOV     45H,35H
  206.   XIAN:mov    r0,#40h
  207.        mov     a,   @r0
  208.        JZ      L20
  209.        MOV     10H,#0FFH
  210.        MOV     15H,#0FFH
  211.        mov     dptr,#date1
  212.        movc    a,@a+dptr
  213.        call    write2

  214.    L20:INC     R0
  215.        MOV     A, 10H
  216.        CJNE    A, #00H,PP
  217.        mov     a,   @r0         
  218.        JZ      L21
  219.    PP: MOV     11H,#0FFH  
  220.        MOV     15H,#0FFH
  221.        mov     a,   @r0
  222.        mov     dptr,#date1
  223.        movc    a,@a+dptr
  224.        call    write2


  225.    L21:INC     R0
  226.        MOV     A, 11H
  227.        CJNE    A, #00H,PP2
  228.        mov     a,   @r0      
  229.        JZ      L22
  230.   PP2: MOV     12H,#0FFH
  231.        MOV     15H,#0FFH
  232.        mov     a,   @r0
  233.        mov     dptr,#date1
  234.        movc    a,@a+dptr
  235.        call    write2
  236.        MOV      A, 15H
  237.        CJNE     A,#0FFH,L22      
  238.        MOV      A,#00H
  239.        mov      dptr,#XIAOSHUDIAN
  240.        movc     a,@a+dptr
  241.        call      write2
  242.    L22:
  243.        INC     R0
  244.        MOV     A, 12H
  245.        CJNE    A, #00H,PP3
  246.        mov     a,   @r0      
  247.        JZ      L23
  248.    PP3: MOV     13H,#0FFH
  249.        mov     a,   @r0     
  250.        mov     dptr,#date1
  251.        movc    a,@a+dptr     
  252.        call    write2

  253.    L23:INC     R0
  254.        MOV     A, 13H
  255.        CJNE    A, #00H,PP4
  256.        mov     a,   @r0      
  257.        JZ      L24
  258.   PP4:  MOV     14H,#0FFH
  259.        mov     a,   @r0   
  260.        mov     dptr,#date1
  261.        movc    a,@a+dptr     
  262.        call    write2

  263.     L24:INC     R0      
  264.         mov     a,   @r0
  265.         mov     dptr,#date1
  266.         movc    a,@a+dptr      
  267.         call    write2      
  268.         MOV     A,15H
  269.         CJNE    A, #00H,KHZ      
  270.         MOV     A,#00H      
  271.         MOV     dptr,#DANWEI1
  272.         JMP     QUSHU
  273.     KHZ:MOV     dptr,#DANWEI2   
  274.    QUSHU:movc    a,@a+dptr      
  275.          call    write3
  276.        mov     r5,#4
  277.     l3:mov     a,#20h
  278.        call    write2
  279.        djnz    r5,l3
  280.        ret

  281.    write2:
  282.            mov    p0,  a
  283.            setb   rs
  284.            CLR    rw
  285.            clr    e
  286.            call   delay
  287.            setb   e
  288.            ret

  289.    write3:  mov     r1,#00h    ;写数据
  290.        a2: mov     a,   r1
  291.            movc    a,   @a+dptr
  292.            call    write2
  293.            inc     r1
  294.            cjne    a,#00h,a2
  295.            ret
  296.     delay:
  297.            mov    r7,    #255
  298.        d1: mov    r6,    #255
  299.        d2: djnz   r6,    d2
  300.            djnz   r7,    d1
  301.            ret

  302.    date:  db "the frequency is",00h
  303.    date1: db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h
  304.    DANWEI1: DB "HZ             ",00h
  305.    DANWEI2: DB "KHZ            ",00h
  306.    XIAOSHUDIAN: DB ".",00h
复制代码

完整的Word格式文档51黑下载地址:
基于51单片机的数字频率计资料.rar (163.52 KB, 下载次数: 54)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:420497 发表于 2018-11-15 11:08 | 只看该作者
感谢分享!很有用!
回复

使用道具 举报

板凳
ID:557519 发表于 2019-11-20 16:15 | 只看该作者
您好,我编译的时候LJMP IT1这行报错说我这句话用了内部关键字编译不出来怎么办呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表