基于单片机的电子频率计的设计毕业设计.doc

上传人:文库蛋蛋多 文档编号:4148714 上传时间:2023-04-07 格式:DOC 页数:34 大小:629KB
返回 下载 相关 举报
基于单片机的电子频率计的设计毕业设计.doc_第1页
第1页 / 共34页
基于单片机的电子频率计的设计毕业设计.doc_第2页
第2页 / 共34页
基于单片机的电子频率计的设计毕业设计.doc_第3页
第3页 / 共34页
基于单片机的电子频率计的设计毕业设计.doc_第4页
第4页 / 共34页
基于单片机的电子频率计的设计毕业设计.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《基于单片机的电子频率计的设计毕业设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子频率计的设计毕业设计.doc(34页珍藏版)》请在三一办公上搜索。

1、 毕业设计(论文) 题目: 基于单片机的电子频率计的设计 专业: 应用电子技术 班级: 09223 学号: 姓名: 指导老师: 成都工业学院二一二年五月 论文摘要 本文介绍了一种基于单片机的电子频率计的设计方法。此电子频率计以AT89C51单片机为控制核心,可将外部的频率脉冲信号通过单片机计数端输入,由定时器/计数器T0负责定时,定时器/计数器T1负责对被测信号计数,一旦T0定时时间到,立刻终止T1的计数,此时T1的计数值便是单位时间内的脉冲个数,我们将T0的定时时间设为1s,当T0定时满1s后,立即停止T1计数,此时T1的计数值即为被测信号的频率。该频率计的测量范围为1Hz65534Hz,被

2、测脉冲信号的频率可以随时进行调整,通过LCD液晶显示模块对被测信号的频率进行实时显示。该系统包括被测频率脉冲信号、单片机晶振电路、以AT89C51单片机为核心的频率测量模块、LCD液晶显示模块。关键词:频率计;AT89C51;脉冲信号;LCD显示模块 AbstractThis article tells the story of a kind of based on SCM electronic frequency meter design method.The electronic frequency plan to AT89C51 as control core, But will the

3、 frequency of the external pulse signal through the single-chip microcomputer count the input ,The timer/counter T0 prearcing responsible for timing,The timer/counter T1 is responsible to the measured signal count,Once the prearcing time to time ,Immediately terminate the T1 count ,At this time the

4、count value T1 unit of time is the number of the pulse ,We will regularly to set a time of the prearcing 1 s , When prearcing time full 1 s , Stop immediately T1 count ,At this time the count value which is T1 tested the frequency of the signal. The frequency of measurement of the indicator a range

5、of 1 Hz 65534 Hz, tested pulse the frequency of the signal can be adjusted at any time, through the LCD display modules to be measured the frequency of the signal for real-time display. The system includes tested frequency pulse signal and single-chip microcomputer crystals circuit, AT89C51 frequenc

6、y measurement modules, LCD module. Key Words:The frequency meter;AT89C51; pulse signal;LCD display module 目录论文摘要IAbstractII第1章 引言11.1频率计的概述11.2频率计的基本原理21.3频率计的应用范围21.4本频率计设计任务的主要内容3第2章 系统的总体方案设计42.1测频的原理42.2总体思路42.3具体模块5第3章 硬件电路设计63.1 AT89C51主控制器模块63.2 晶振电路103.3 频率脉冲信号113.4 LCD液晶显示模块11第4章 系统的软件设计154

7、.1 频率测量模块154.2 液晶显示模块18第5章 频率计的系统调试与仿真215.1 KEIL中对程序的调试215.2 Protues中对系统的仿真21总结25参考文献26附录1 硬件电路27附录2 系统程序28第1章 引言 频率测量是电子学测量中最为基本的测量之一。由于频率信号抗干扰性强,易于传输,因此可以获得较高的测量精度。随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,测频原理和测量方法的研究正受到越来越多的关注。1.1频率计的概述图 1-1 多用频率计 频率计又称为频率计数器,是一种专门对被测信号频率进行测量的电子测量仪器。频率计主要由四个部分构成:时基(T)电路、输入电路

8、、计数显示电路以及控制电路。频率计也是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号、方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。单片机对频率量有两种测量方法:测量频率法和测量周期法。测量频率法是在单位定时时间内,对被测信号脉冲进行计数;测量周期法是在被测信号周期时间内,对某一基准脉冲进行计数。本次设计采用测量频率法对被测脉冲信号进行频率测量,并且通过LCD液晶显示模块进行实时显示。1.2

9、频率计的基本原理 频率计最基本的工作原理为:当被测信号在特定时间段T内的周期个数为N时,则被测信号的频率f=N/T(如图1-2所示)。在一个测量周期过程中,被测周期信号在输入电路中经过放大、整形、微分操作之后形成特定周期的窄脉冲,送到主门的一个输入端。主门的另外一个输入端为时基电路产生电路产生的闸门脉冲。在闸门脉冲开启主门的期间,特定周期的窄脉冲才能通过主门,从而进入计数器进行计数,计数器的显示电路则用来显示被测信号的频率值,内部控制电路则用来完成各种测量功能之间的切换并实现测量设置。 图 1-2 频率测量基本原理1.3频率计的应用范围在传统的电子测量仪器中,示波器在进行频率测量时测量精度较低

10、,误差较大。频谱仪可以准确的测量频率并显示被测信号的频谱,但测量速度较慢,无法实时快速的跟踪捕捉到被测信号频率的变化。正是由于频率计能够快速准确的捕捉到被测信号频率的变化,因此,频率计拥有非常广泛的应用范围。 在传统的生产制造企业中,频率计被广泛的应用在产线的生产测试中。频率计能够快速的捕捉到晶体振荡器输出频率的变化,用户通过使用频率计能够迅速的发现有故障的晶振产品,确保产品质量。 在计量实验室中,频率计被用来对各种电子测量设备的本地振荡器进行校准。 在无线通讯测试中,频率计既可以被用来对无线通讯基站的主时钟进行校准,还可以被用来对无线电台的跳频信号和频率调制信号进行分析。 1.4本频率计设计

11、任务的主要内容 利用频率脉冲信号、单片机、单片机晶振电路、LCD液晶显示等模块设计一个简易的频率计能够粗略的测量出被测信号的频率。 参数要求如下:1. 测量范围 1Hz65534Hz;2. 被测脉冲信号的频率可随时调节3. 用LCD液晶显示模块实时显示测量值4. 用单片机实现自动测量功能第2章 系统的总体方案设计2.1测频的原理 所谓“频率”就是周期性信号在单位时间(1s)内变化的次数,测频的原理归结成一句话,就是“在单位时间内对被测信号进行计数”。我们将被测的频率脉冲信号直接送到单片机的计数输入端,由定时器/计数器T0负责定时,定时器/计数器T1负责对被测信号计数,一旦T0定时时间到,立刻终

12、止T1的计数,此时T1的计数值便是单位时间内的脉冲个数。若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。我们将T0的定时时间设为1s,当T0定时满1s后,立即停止T1计数,此时T1的计数值即为被测信号的频率。定时 待测信号 丢失 T 丢失 图2-1 频率测量原理图 在计数时会出现图2-1所示的丢失脉冲的情况。第一个丢失的脉冲是由于开始检测时脉冲宽度已小于机器周期T;第二个丢失的脉冲的负跳变在定时之外。定时时间内出现脉冲丢失,将引起测量精度降低。脉冲频率越低,这种误差越大。显然对于较低频率的脉冲测量不适合采用测量频率法。而我们本次设计就是采用这种测量频率法对被

13、测脉冲信号进行频率测量,为解决图一中脉冲的丢失这个问题,我们在程序设计中实现了计数开始与脉冲上升沿的同步控制。2.2总体思路频率计是一种专门对被测信号频率进行测量的电子测量仪器,是我们经常会用到的实验仪器之一,频率的测量实际上就是在单位时间内对脉冲信号进行计数,计数值就是信号频率。本文介绍了一种基于单片机的电子频率计的设计方法,此电子频率以AT89C51单片机为控制核心,可将外部的频率脉冲信号通过单片机计数端输入,由定时器/计数器T0负责定时,定时器/计数器T1负责对被测信号计数,一旦T0定时时间到,立刻终止T1的计数,此时T1的计数值便是单位时间内的脉冲个数,我们将T0的定时时间设为1s,当

14、T0定时满1s后,立即停止T1计数,此时T1的计数值即为被测信号的频率。该频率计的测量范围为1Hz65534Hz,被测脉冲信号的频率可以随时进行调整,通过LCD液晶显示模块对被测信号的频率进行实时显示。2.3具体模块根据上述系统分析,该系统包括被测频率脉冲信号、单片机晶振电路、以AT89C51单片机为核心的频率测量模块、LCD液晶显示模块。各模块作用如下:1. 脉冲信号:就是被测信号,可以随时调整其频率,以便于单片机测量。2. 单片机晶振电路:由于单片机的内部时钟方式是用芯片内部振荡电路,精 度不高,温飘也较大,外部时钟,分RC振荡和石英晶振,RC精度不高, 成本低,石英晶振,精度高,稳定性好

15、,故我们采用单片机的晶振电路提 供时钟信号。3. AT89C51频率测量模块:主要负责对脉冲信号的计数,并且驱动LCD显示 模块实时显示测量值。4. LCD液晶显示模块:对单片机测量的频率进行实时显示。综上所述频率计的系统设计由被测频率脉冲信号、单片机晶振电路、以AT89C51单片机为核心的频率测量模块、LCD液晶显示模块等组成,频率计的总体设计框图如图2-2所示。AT89C51单片机单片机晶振电路 LCD液晶显示模块 被测频率脉冲信号图2-2 频率计总体设计框图第3章 硬件电路设计3.1 AT89C51主控制器模块 电子频率计以AT89C51单片机为控制核心,可将外部的频率脉冲信号通过单片机

16、计数端输入,由定时器/计数器T0负责定时,定时器/计数器T1(P3.5)负责对被测信号计数,一旦T0定时时间到,立刻终止T1的计数,此时T1的计数值便是单位时间内的脉冲个数,我们将T0的定时时间设为1s,当T0定时满1s后,立即停止T1计数,此时T1的计数值即为被测信号的频率。图 3-1 AT89C51主控模块AT89C51单片机简介 图3-2 几种单片机的展示图 AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一

17、种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 图3-3 AT89C51单片机1.主要特性 与MCS-51 兼容;4K字节可编程FLASH存储器;寿命:1000写/擦循环;数据保留时间:10年;全静态工作:0Hz-24MHz;三级程序存储器锁定;

18、1288位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。特性概述:AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬

19、件复位。2. 管脚说明 VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低

20、八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口

21、写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如表3-1所示:表3-1 AT89C51的一些特殊功能口 P3.0 RXD串行输入线 P3.1 TXD串行输出线P3.2 外部中断0输入线P3.3 外部中断1输入线 P3.4 T0定时器0外部输入线 P3.5 T1定时器1外部输入线P3.6 片外RAM写选通信号 P3.7 片外RAM读选通信号 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/:当访问外部存储器时,地址锁存允许的输出

22、电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 : 外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次有效。但在访问外部数据存储 器时,这两次有效的信号将不出现。 /VPP: 当保持低

23、电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,将内部锁定为RESET;当端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高

24、低电平要求的宽度。3.2 晶振电路 由于单片机的内部时钟方式是用芯片内部振荡电路,精度不高,温飘也较大,外部时钟,分RC振荡和石英晶振,RC精度不高,成本低,石英晶振,精度高,稳定性好,故我们采用单片机的晶振电路提供时钟信号。图3-4 晶振电路3.3 频率脉冲信号 频率脉冲信号就是被测信号,可以随时调整其频率,以便于单片机测量,直接在protues左侧工具条内的一个Generator Mode工具中选择DCLOCK放置频率脉冲信号(如图3-5)。图3-5 频率脉冲信号3.4 LCD液晶显示模块 LCD液晶显示器是一种被动式的显示器,与LED不同,液晶本身并不发光,而是利用液晶在电压作用下,能改

25、变光线通过方向的特性而达到显示白底黑字或黑底白字的目的。液晶显示器具有微功耗、体积小、重量轻、超薄型等诸多其他显示器件所无法比拟的优点,在袖珍式仪表和低功耗系统中,得到越来越广泛的应用,目前市场上液晶显示器种类繁多,按排列形状可分为字段型、点阵字符型、点阵图形型,在单片机应用系统中,常使用点阵字符型LCD显示器。字符型液晶显示模块是专门用于显示字母、数字、符号等的点阵型液晶显示模块,分4位和8位数据传输方式;提供“57点阵+光标”和“510点阵+光标”的显示模式;提供显示数据缓冲区DDRAM、字符发生器CGROM和字符发生器CGRAM,可以使用CGRAM来存储自己定义的最多8个58点阵的图形字

26、符的字模数据;提供丰富的指令设置:清显示、光标回到原点、显示开/关、光标开/光、显示字符闪烁、光标移位等;提供内部上电自动复位电路,当外加电源电压超过+4.5V时,自动对模块进行初始化操作,将模块设置为默认的显示工作状态。 字符型液晶显示模块组件内部主要由LCD显示屏(LCD Panel)、控制器(Controller)、驱动器(Driver)、少量阻容原件、结构件等装配在PCB上构成,如图3-6所示 控制驱动 主电路字符型液晶显示屏SEGMENT DRIVERDB7 COM16 DB0 ESEG40R/WSEG40 RSVEEVCCVSS 图3-6 字符型液晶显示模块 字符型液晶显示模块目前

27、在国际上已经规范化,无论显示屏规格如何变化,电特性和接口形式都是统一的,因此只要设计出一种型号的接口电路,在指令设置上稍加改动即可使用各种规格的字符型液晶显示模块。我们本设计采用的是字符型液晶显示模块LM016L。 LM016L模块简介 图3-7 液晶显示模块LM016L1. 引脚说明 VSS(1):电源地。 VDD(2):电源电压,接5V正电压。 VEE(3):液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 RS(4):寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。 RW(5):读写信号线

28、,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可读忙信号,当RS为高电平RW为低电平时可写入数据。 E(6):显示板控制使能端,当E断由高电平跳变成低电平时,液晶模块执行命令。 D0D7(714):8位双向三态I/O口线。2. 指令说明字符型LCD显示板控制器有11条指令。他的读写操作,以及屏幕和光标的操作都是通过指令编程来实现的。LCD控制器的11条指令如表3-1所列。表3-1 LCD控制器指令表指令RSRWD7D6D5D4D3D2D1D0清显示0000000000光标返回000000001*置输入模式0000000

29、1I/DS显示开/关控制000001DCB光标或字符移位000001S/CR/L*置功能00001DLNF*置字符发生存储器地址001字符发生存储器地址(AGG)置数据存储器地址001显示数据存储器地址(ADD)读忙标志或地址01BF计数器地址(AC)写数到CGRAM或DDRAM10要写的数从CGRAM或DDRAM读数11读出的数据下面是指令表中D0D7位所使用字符的说明。I/D=1/0:增量或减量;S=1:全显示屏移动/光标移动;S/C=1/0:显示屏移动/光标移动;R/L=1/0:右移/左移;DL=1/0:8位/4位;N=1/0:2行/1行;F=1/0:510点阵/57点阵;BF=1/0:

30、内部操作正在进行/允许指令操作;*:无关项;下面逐条解释各指令的功能。指令1:清显示,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:读/写方式下的光标和显示模式设置命令。 I/D:表示地址计数器的变化方向,即光标移动的方向。 I/D=1:AC自动加1,光标右移一字符位。 I/D=0:AC自动减1,光标左移一字符位。 S:显示屏上向左向右全部平移的方向。 S=0:无效;S=1:有效。 S=1,I/D=1:显示画面左移; S=1,I/D=0:显示画面右移。指令4:显示开关控制,控制显示、光标和光标闪烁的开关。 D:当D=0时显示关闭,DDRAM中数据保持不变。 C:当C

31、=1时显示光标。 B:当B=1时光标闪烁。指令5:光标或显示移位。DDRAM中内容保持不变。 S/C=1时,移动显示;S/C=0时,移动光标。 R/L=1时,为右移;R/L=0时,为左移。指令6:功能设置命令。 DL=1时,内部总线为4位宽度DB7DB4;DL=0时,内部总线为8位宽度。 N=0时,单行显示;N=1时,双行显示。 F=0时,为显示字形57点阵;F=1时,为显示字形510点阵。指令7:CGRAM地址设置。指令8:DDRAM地址设置。指令9:读状态标志和AC中地址。指令10:写数据。指令11:读数据。第4章 系统的软件设计采用模块化的程序设计方法,将整个程序分为两个模块:频率测量模

32、块和液晶显示模块。4.1 频率测量模块 将定时器T0设置在定时方式2,定时时间为250us,满4000次中断正好是1s,定时器T1工作于计数方式1,计数初值为0。在启动定时器T0开始定时后,随即对送到T1(P3.5)引脚的被测脉冲进行计数,当T0定时满1s后,立即停止T1计数,关闭定时器T0,T1的计数值即为被测信号的频率,程序流程图如图4-1。 开始设置T0定时方式2,T1计数方式1 设置T0定时时间为250us,T0中断4000次设置T1计数初值允许T0中断,开中断等待被测信号变低,等待被测信号变高启动T0定时,T1计数等待1s关闭T0,T1返回计数初值图4-1 频率测量频率测量其中,中断

33、服务子程序流程图如下 进入T0中断中断次数标志减1 否判断是否中断4000次 是设置测量完成标志位中断返回图4-2 中断服务子程序 频率测量主函数中,还进行了数据转换以及调用显示模块进行显示其程序流程框图如下开始调用液晶屏初始化函数将测量结果转化为ASCII码调用显示函数进行显示图4-3 频率测量主函数 频率测量模块源程序 #include #include #define uchar unsigned char #define uint unsigned int void init_lcd(void); void disp_str(uchar x,uchar y,uchar *p); sbi

34、t FS=P35; /被测信号FS输入端 bit RDY=0; /测量完成标志 uint msn; /定时中断计数 uint count(void)/测量FS的频率 RDY=0; TMOD=0x52;/T0:定时方式2,T1:计数方式1 TH0=TL0=6;/T0定时时间为250us msn=4000;/4000次中断正好1sTH1=TL1=0x00; /T1工作于计数方式,初值为0ET0=1;/允许T0中断EA=1;/开中断while(FS=1); /等待被测信号变低while(FS=0);/等待被测信号变高TR0=1;/T0开始定时TR1=1;/T1开始计数while(RDY=0);/等待

35、1sTR1=0;/关闭T1、T0TR0=0;return(TH1*256+TL1); /返回计数值 void timer0(void) interrupt 1 using 1 msn-; if(msn=0)/如果1s已到 RDY=1;/设置测量完成标志位 void main() uint f; uchar str9=f= Hz;uchar i;init_lcd(); /液晶屏初始化while(1) f=count(); /测量频率 _nop_(); for(i=6;i=2;i-)/测量结果转换为5位ASCII码 stri=f%10+0x30; f=f/10; disp_str(0,3,str)

36、; /显示测量结果 4.2 液晶显示模块液晶显示模块其实是一个显示的子程序,主要供频率测量模块调用,以便在液晶屏上显示出实时的频率测量值,它的编程比较固定,无非就是按照LCD液晶显示屏的参数要求的指令系统来编写程序,其程序流程图4-2。While循环将字符依次发送到液晶屏进行显示液晶显示子程序入口写命令、写数据的初始化液晶初始化写指令送数据地址指针用于选择字符的显示位置延时 图4-4 液晶显示液晶显示模块源程序 #include #include #define uchar unsigned char #define uint unsigned int sbit RS=P20; /数据/命令寄

37、存器选择控制端 sbit RW=P21; /读写控制端 sbit E=P22; /使能控制端 sfr LCD=0x90; /P1口作为总线端口 sbit BF=LCD7; /就绪线BF,低电平有效 void lcd_cmd(uchar cmd) LCD=cmd; RS=0;/选择命令寄存器 RW=0;/执行写数据操作 E=1; _nop_();/延时 E=0;/使能信号有效 while(1) LCD=0xff;/总线变高 RS=0;/选择命令寄存器 RW=1;/读操作 E=0; /使能信号有效 _nop_(); E=1; /撤销使能信号 if(BF=0)break; /如果就绪,返回 void

38、 lcd_dat(uchar dat) LCD=dat;/显示数据总线 RS=1;/选择数据寄存器 RW=0;/执行写数据操作 E=1; _nop_();/延时 E=0;/使能信号有效 while(1) LCD=0xff;/总线变高 RS=0;/选择命令寄存器 RW=1;/读操作 E=0; /使能信号有效 _nop_(); E=1; /撤销使能信号 if(BF=0)break; /如果就绪,返回dat=LCD; void init_lcd(void)/初始化液晶屏 lcd_cmd(0x01); /清屏幕lcd_cmd(0x3c); /设置双行显示,5*10点阵lcd_cmd(0x0c); /开

39、显示,关闭光标 void disp_str(uchar x,uchar y,uchar *p) /在x行、y列显示字符串p if(x=0) /如果在第一行显示 lcd_cmd(0x80+y); /设置写入地址else /如果在第二行显示 lcd_cmd(0xc0+y);/设置写入地址while(*p)/将字符依次发送到液晶屏 lcd_dat(*p+); 第5章 频率计的系统调试与仿真5.1 KEIL中对程序的调试德国的KEIL软件公司提供了一流的8051系列开发工具,将软件开发工具绑定到不同的套件或工具包中。KEIL 8051开发工具套件可用于编译C源程序、汇编源程序,链接和定位目标文件及库,

40、创建HEX文件以及调试目标程序,我们进入到KEIL中的集成开发环境,对所编写的程序进行了调试,使其生成了目标文件(HEX文件),如图5-1所示图5-1 程序的调试5.2 Protues中对系统的仿真 Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路

41、协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译,我们采用Protues软件对系统进行仿真,将KEIL生成的HEX文件下载入单片机中,点击OK开始进行系统的仿真,如图5-2所示图 5-2 Protues中对hex文件的选择在Protues中双击被测频率脉冲信号t1,在Frequency中将其频率设定为6443,如图5-3所示图 5-3 频率的设定点击OK,然后在Prot

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号