基于51单片机的语音计算器设计

北京联合大学 毕业设计

按键电路如图4.6所示:

图4.6 按键电路

19

北京联合大学 毕业设计

5 软件设计

本设计是硬件电路和软件编程相结合的设计方案,选择合适的编程语言是一个重要的环节。在单片机的应用系统程序设计时,常用的是汇编语言和C语言。汇编语言程序可读性和可移植性比较差。而C语言虽然执行效率没有汇编语言高,但语言简洁,使用方便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计自由度大,有很好的可重用性,可移植性等特点。

由于现在单片机的发展已经达到了很高的水平,内部的各种资源相当的丰富,CPU的处理速度非常的快。用C语言来控制单片机无疑是一个理想的选择。所以在本设计中采用C语言编写软件程序。

5.1 AT89C51单片机中断允许控制

IE:中断允许控制寄存器如表5.1所示: 寄存器地址A8H,位寻址AFH~A8H。 位地址 位符号 AF EA AE / AD ET2 表5.1 AC AB ES ET1 AA EX1 A9 ET0 A8 EX0 EA:中断允许总控制位 当EA=0时,中断总禁止。

当EA=1时,中断总允许后中断的禁止与允许由各中断源的中断允许控制位进行设置。

EX0( EX1):外部中断允许控制位 当EX0( EX1)=0 禁止外中断 当EX0( EX1)=1 允许外中断 ET0(EX1):定时/计数中断允许控制位 当ET0(ET1)=0 禁止定时(或计数)中断 当ET0(ET1)=1 允许定时(或计数)中断

ET2:定时器2中断允许控制位,在AT89S52、AT89C52中 ES:串行中断允许控制位 当ES=0 禁止串行中断 当ES=1 允许串行中断

5.2 LCD1602控制

5.2.1 LCD1602字符发生存储器(CGROM)

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵

20

北京联合大学 毕业设计

字符图形,如表5.3所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” 。

表5.2 LCD1602字符码显示图

5.2.2 LCD1602显示数据寄存器(DDRAM) 1.清屏指令

功能:清除液晶显示器,即清屏操作数为0x01。 2.进入模式设置指令

21

北京联合大学 毕业设计

功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。此设计规定光标右移、显示屏不移动,及操作数为0x06。参数设定的情况如下所示: 位名 设置

I/D 0=写入新数据后光标左移 1=写入新数据后光标右移

S 0=写入新数据后显示屏不移动 1=写入新数据后显示屏整体右移1个字符 3.显示开关控制指令

功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。此设计规定显示功能开、无光标、光标 不闪烁,操作数为0x0c。参数设定的情况如下: 位名 设置

D 0=显示功能关 1=显示功能开 C 0=无光标 1=有光标 B 0=光标闪烁 1=光标不闪烁 4.功能设定指令

功能:设定数据总线位数、显示的行数及字型。此设计规定数据总线为8位、显示2行,操作数为0x38。参数设定的情况如下: 位名 设置

DL 0=数据总线为4位 1=数据总线为8位 N 0=显示1行 1=显示2行 F 0=5×7点阵/每字符 1=5×10点阵/每字符 5.液晶屏显示位置

22

联系客服:779662525#qq.com(#替换为@)