图2 AT89C51引脚图
2.2.2 时钟电路设计
单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得到的时钟信号比较稳定,实际使用中常采用这种方式。
图3 振荡电路图
2.2.3 复位电路设计
单片机在启动运行时,都需要先复位,它的作用是使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51系列单片机本身,一般不能自动进行复位,必须配合相应的外部电路才能实现。复位电路的作用就是使单片机在上电时能够复位或运行出错时进行复位状态。
5
图4 按键与上电复位电路
2.3 AMPIRE128*64简介
本系统采用液晶显示模块AMPIRE128X64,为单色LCD,其外形如图5所示。屏幕分为两半控制,控制引脚为CS1和CS2,数据通过移位寄存器输入。
6
图5 AMPIRE128*64外形图
管脚一共18个。CS1左半屏片选端,CS2右半屏片选端;VCC、GND就是VCC、GND,没啥好说的;V0液晶显示驱动电压,在网上找的仿真实例中有的这个脚就悬空,我是通过一个电位器接到VCC;RS数据指令选择信号,H为数据,L为指令,有的资料上也叫D/I,我估计是DATA和INSTRUCTIONS这两个单词的缩写;R/W读写选择信号,H为读,L为写,这肯定是READ和WRITE的缩写。E为LCD使能端,R/W为L时,E信号下降沿锁存DB7-DB0;R/W为H时,E为H,DDRAM数据读到DB7-DB0,如果只写不读的话可以接地处理。DB0-DB7数据传输端口。RST复位信号,不过还没弄明白是怎么回事,参考一些资料后接VCC处理。 -VOUT估计和V0差不多,液晶显示驱动电压。 2.3.1 点阵LCD的显示原理
在数字电路中,所有的数据都是以0 和1 保存的,对LCD 控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8 位(一字节)即可。而对于中文,常用却有6000 以上,于是我们的DOS 前辈想了一个办法,就是将ASCII 表的高128 个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128 位则留给英文字符使用,即英文的内码。
那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图6 所示:
7
图6 “A”字模图
而中文的“你”在字模中的记载却如图7 所示:
图7 “A”字模图
2.3.2 读操作时序
读操作时序如图8所示:
8
图8 读操作时序图
2.3.3 写操作时序
写操作时序如图9所示:
图9 写操作时序图
2.4 AMPIRE128*64的指令系统
此类液晶显示模块的指令系统比较简单,共有七种。其指令如表2所示。 1.显示开/关指令 代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 形式 0 0 0 0 1 1 1 1 1 D D=1:开显示(DISPLAY ON)意即显示器可以进行各种显示操作 D=0:关显示(DISPLAY OFF)意即不能对显示器可以进行各种显示操作
9