智能型充电器的设计 下载本文

潍坊学院本科毕业设计

通过比较再结合本次设计的实际条件,由于Atmega16L芯片没有WR、RD管脚,而且为了使电路简单且方便软件实现,所以最终决定采用间接控制的方式来设计LCD显示电路。

2.2 硬件电路主要芯片

2.2.1 ATmega16L主要引脚

以下是ATmega16L的引脚配置:

图2.3 ATmega16L芯片引脚

2.2.2 Atmega16L的存储器

AVR结构有两个主要的存储空间:数据存储器空间和程序存储器空间,此外,Atmega16L还有一个EEPROM存储器以保存数据。这三个存储器都为线性的平面结构。 (1) Atmega16L具有16K字节的在线编程Flash,用于存储程序指令代码。因为AVR指令为16位或32位,故Flash组织成8K?16的形式。用户程序的安全性要根据Flash程序存储器的两个区:引导(Boot) 程序区和应用程序区,分开来考虑。

Flash存储器至少可以擦写10,000次。Atmega16L的程序存储器为13位,因此可以寻址8K的存储器空间。关于用SPI 或JTAG 接口实现对Flash 的串行下载,将在软件部分作详细的介绍。

9

潍坊学院本科毕业设计

(2) 数据存储器的寻址方式分为5种:直接寻址、带偏移量的间接寻址、间接寻址、带预减量的间接寻址和带后增量的间接寻址。

ATmega16L的全部32个通用寄存器、64个I/O寄存器及1024个字节的内部数据SRAM可以通过所有上述的寻址模式进行访问。

(3) ATmega16L 包含512 字节的EEPROM 数据存储器。它是作为一个独立的数据空间而存在的,可以按字节读写。EEPROM 的寿命至少为100,000 次擦除周期。EEPROM 的访问由地址寄存器、数据寄存器和控制寄存器决定。

2.2.3 Atmega16L的时钟电路

单片机的时钟用于产生工作所需要的时序,其连接电路如图2.4:

图2.4 晶体振荡器连接图

XTAL1 与XTAL2 分别为用作片内振荡器的反向放大器的输入和输出,考虑到其最大频率不超过8MHz,这里选用的晶振为7.3728MHz。

2.2.4 Atmega16L的系统复位

Atmega16L有五个复位源:

(1) 上电复位。电源电压低于上电复位门限Vpot时,MCU复位。如果在单片机加Vcc电

压的同时,保持RESET引脚为低电平,则可延长复位周期。

Vcc Vpot Vpot RESET Vrst Vrst

TIME-OUT INTERINAL tTOUT tTOUT RESET

图2.5 RESET引脚与VCC相连时, 图2.6 RESET引脚由外部控制时, 单片机的复位电平 单片机的复位电平

10

潍坊学院本科毕业设计

(2) 外电复位。引脚RESET上的低电平持续时间大于最小脉冲宽度时MCU复位。 Vcc

RESET Vrst

TIME-OUT tTOUT INTERNAL RESET

图2.7 外部复位时序图

(3) 看门狗复位。看门狗使能并且看门狗定时器溢出时复位发生。看门狗计数器溢出时,

将产生一个晶振的复位脉冲。 Vcc RESET

WDT 1 XTAL Cycle TIME-OUT

RESET tTOUT TIME-OUT INTERNAL RESET

图2.8 看门狗复位时序图

(4) 掉电检测复位。掉电检测复位功能使能,且电源电压低于掉电检测复位门限Vpot

时MCU即复位。

(5) JTAG AVR复位。复位寄存器为1时MCU复位。

2.3 LCD液晶显示

2.3.1 LCD的显示原理

液晶显示器是一种功耗极低的显示器。随着液晶显示技术的发展,LCD显示器的规格众多,其专用驱动芯片也相互配套,使LCD在控制和仪表系统中广泛应用提供了极大的方便。根据LCD显示原理的不同,常见和常用的LCD可以分为字符型LCD和点阵型LCD两种。不同的显示原理使得这两种LCD的指令系统、接口和功能等是不相同的,各有优缺点,但结合到本次设计的实际要求,经过比较还是选用点阵型LCD。现就点阵型LCD的显示原理、模块特点等做一简要介绍。

要想在液晶模块上显示一个汉字或字符,需要3个最基本的控制操作:分别向3个控制器写指令代码、写显示数据和读显示数据。这里要特别引起注意的是完成这3项操

11

潍坊学院本科毕业设计

作的前提条件是KS0108B控制器处于准备好的状态,即BUSY=0,由模块的软件特性知道,当BUSY=1时,系统的接口电路处于被封锁的状态,是不能接受除读状态指令外的任何操作的。因此在访问控制器之前,一定要判断控制器的当前状态。具体到软件设计时,则需设计一判忙程序,在判断BUSY=0后,再往下进行操作。

在本模块中,每个汉字的大小是16×16点阵,而每个字符的大小是8×16点阵,即字符的宽度为汉字的1/2。它们都是以二维数组的格式存放在ROM中。向液晶模块显示一个汉字的过程就是:由液晶屏显示区的指定字符行的指定列开始,连续输出该字符对应的字符库中的16个列数据,如果是显示字符,则输出 8个列数据即可。

上面已经介绍到,MGLS-19264液晶模块中液晶屏显示区为192×64点阵,其中,它们的每8个像素行组成一页,整个显示区共分为8页,每64列为一个区,这样,它就有左、中、右3个区,它的显示区示意图如图2.9所示:

左区 中区 右区 0 1 2 ? 62 63 64 65 ? 127 DB0 ? DB7 ? DB0 ? DB7 128 129 ? 191 图2.9 液晶屏显示区示意图

液晶模块显示字符是从上到下,从左到右进行显示的。假设定义从最左上角开始显示,则先从上到下显示第0页的第一列,依次从左向右开始显示。

MGLS-19264LCM的显示部分为左、中、右3个区,可以由CS片选的取值分别进行控制,其接口的片选定义如表2-1:

表2-1 MGLS的片选定义表

CS1 CS2 0 0 0 1 1 0 1 1 选中区域 左区 中区 右区 未选 有了上面的知识,就可以编写显示界面这一块程序。由于每个汉字或字符在图中

12