四川航天学院电子工程系课程设计——基于51单片机的数字频率计
4 5 6 7 | 14
RS R/W E DB0 | DB7 寄存器选择信号 读/写信号 片选信号 数据线 H:数据寄存器 L:指令寄存器 H:读 L:写 下降沿触发,锁存数据 数据传输 4.2)寄存器选择功能表 RS R/W 0 0 0 1 1 0 1 1 操 作 指令寄存器(IR)写入 忙标志和地址计数器读出 数据寄存器(DR)写入 数据寄存器读出 (注:忙标志为\时,表明正在进行内部操作,此时不能输入指令或数据,要等内部操作结束,即忙标志为\时。) 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 第 一 行 00 01 02 03 04 ..????.. 27 地 址(HEX) 第 二 行 40 41 42 43 44 ?????.. 67 6)、初始化方法
用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示,下面介绍两种初始化方法;
- 10 -
四川航天学院电子工程系课程设计——基于51单片机的数字频率计
6.1利用内部复位电路进行初始化 下面指令是在初始化过程中执行的。 (1)清屏(DISPLAY CLEAR); (2)功能设置(FUNCTION SET);
DL = 1: 8Bit 接口数据;
N = 0: 1行显示; F = 0:537dot字形; (3)显示开/关控制(DISPLAY ON/OFF CONTROL)
D = 0: 显示关; C = 0: 光标关; B = 0: 消隐关 (4)输入方式设置(ENTRY MODE SET )
I/D = 1:(增量): S = 0: 无移位:
6.2) 软件复位
如果电路电源不能满足复位电路的要求的话,那么初始化就要用软件来实现,过程如下:
八位接口初始化流程图
电 源 开
↓ VDD 上升到4.5V后等待>15
↓ RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 × × × × RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
↓等待>4.1ms ↓等待>100us 0 0 0 0 1 1 × × × × RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
↓检查忙标志或延时40us 0 0 0 0 1 1 × × × × RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 N F × ×
↓检查忙标志或延时40us
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 1 0 × × - 11 -
四川航天学院电子工程系课程设计——基于51单片机的数字频率计
↓检查忙标志或延时40 us ↓检查忙标志或延时1.64
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 0 0 1 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 1 I/D S 初 始 化 结 束
↓检查忙标志或延时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,
- 12 -
四川航天学院电子工程系课程设计——基于51单片机的数字频率计
当GATE=0时,反相器输出为1,或门输出为1,打开与门,使定时器的启动仅受TRO端信号电平的控制。
在此种情况下,INT0引脚的电平变化对或门不起作用。TRO=1时接通控制开关,计数脉冲加到计数器上,每来一个计数脉冲,计数器加1,只有当TRO=0时,控制开关断开,计数器停止计数。
当GATA=0时,若TRO=1,或门、与门全部打开,外部信号电平通过INTO引脚直接控制定时器的启动和关闭。输人高电平时允许计数,否则停止计数。
根据定时器的结构原理,若我们将GATE位、TR0均设为‘1’,INT0端输人被测频率信号,当被测信号的高电平到来时,开始计数;当被测信号的低电平到来时,计数器停止计数,此时TL0、TH0的数据就是相应的N值。
- 13 -
四川航天学院电子工程系课程设计——基于51单片机的数字频率计
#include
dispcode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char a=0,b=0,c=0,d=0; unsigned int pinlv=0;
- 14 -