(华)课程设计
4.2)寄存器选择功能表 RS 0 0 1 1 R/W 0 1 0 1 操 作 指令寄存器(IR)写入 忙标志和地址计数器读出 数据寄存器(DR)写入 数据寄存器读出 (注:忙标志为\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 地址的对应关系
显 示 位 序 号 DD RAM 地址(HEX) 第 一 行 第 二 行 1 2 3 4 5 …………… 40 00 01 02 03 04 ..………….. 27 40 41 42 43 44 …………… 67 6)、初始化方法
用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示,下面介绍两种初始化方法;
6.1)利用内部复位电路进行初始化
下面指令是在初始化过程中执行的。 (1)清屏(DISPLAY CLEAR); (2)功能设置(FUNCTION SET);
DL = 1: 8Bit 接口数据;
N = 0: 1行显示; F = 0:5×7dot字形;
(3)显示开/关控制(DISPLAY ON/OFF CONTROL)
D = 0: 显示关; C = 0: 光标关; B = 0: 消隐关
(4)输入方式设置(ENTRY MODE SET )
I/D = 1:(增量): S = 0: 无移位:
6.2) 软件复位
如果电路电源不能满足复位电路的要求的话,那么初始化就要用软件来实现,过
11
(华)课程设计
程如下:
八位接口初始化流程图:
电 源 开
↓ VDD 上升到4.5V后等待>15
↓ RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 1 × × × × ↓等待>4.1ms
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 1 × × × × ↓等待>100us
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 × × × × ↓检查忙标志或延时40us
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 × × ↓检查忙标志或延时40 us
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 0 0 1 ↓检查忙标志或延时1.64us
↓检查忙标志或延时40us
初 始 化 结 束
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 1 I/D S
12
(华)课程设计
3软件设计
3.1量程转换
从计数器采集到的频率数据是十六进制的,如果直接把这些数据送给数码管显示显然很不直观,因此需要把这些数据向十进制转换。
3.2 BCD转换
这种测量方法是先通过F/V变换,把频率信号转换成电压信号;然后再通过A/D转换把电压信号转换成数字信号,在对数字信号进行计数,从而得到测量信号的频率。
根据性能与技术指标的要求,首先需要确定能满足这些指标的频率测量方法,根据上述频率测量原理与方法的讨论,本设计采用测频法。由于测频法的测量误差与信号频率成反比:信号频率越低,测量误差越大,信号频率越高,测量误差越小。用测频发所获得的测量数据,在闸门时间为1S时,不需要进行任何换算,计数器所计数据就是信号频率,另外,在信号频率较低时,可以通过增大闸门时间来提高测量精。
3.3 LCD显示的功能
单片机当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值。
13
(华)课程设计
4模块电路仿真
PROTEUS软件自带编辑器,可以实现对汇编程序的编译,其操作步骤是: 1) 新建源文件:点菜单Source→Add/Remove source Files在出现的对话框中,
选择ASEM51编辑器,新建JIE.asm 源文件。
2) 程序设计:点菜单Source→JIE.asm打开源文件编辑器,将将附录程序输入到
文本中。
3) 源程序编译:点菜单Source→Build ALL编译汇编源程序,生成目标代码文件
PMD.HEX,若编译失败,可对程序进行修改调试直至编译成功。
4) 目标代码加载:在PROTEUS编辑环境双击AT89C51,弹出如图4.6所示的
对话框,在PROGRAM FILE一栏中单击打开按钮,选中JIE.HEX文件。在
CLOCK FREQUENCY栏中设置系统工作频率为12MHz,单击OK完成目
标代码加载。
图4.1 程序代码加载
14
(华)课程设计
最后,点击运行按钮,启动系统仿真,启动前图中输入信号、LCD处于初始化状态。仿真结果如图4.2所示。
图4.2 仿真结果
15