毕业论文基于单片机的IC卡智能水表设计 下载本文

“N”无卡 无 该命令用于从指定序列号中选中一张卡片。如果使用“”,该命令返回所有读写模块有效值范围内的卡片序列号,并用隔开。

4.1.3 IC卡读写电路程序流程图及部分程序

单片机控制卡片读写器H6152,对非接触式IC卡进行读写的程序流程图,如图14所示:

图4.1 非接触式IC卡读写程序流程图

4.2 液晶显示电路软件设计 4.2.1液晶控制驱动器指令集

本设计所选用的液晶显示模块是内含KS0108/HD61202控制器的图形液晶显示模块GXM12864,它是一种采用低功耗CMOS技术实现的点阵图形LCD模块,有8位的微处理器接口,通过内部的128*64位映射DDRAM(Display Data RAM)实现128点*64点大小的平版显示,可以满足一般的显示要求。 要编写正确的液晶显示程序,必须掌握所用的液晶模块指令集。本设计中用的是GXM12864,它所用的控制驱动器时2片KS0108B和一片DS0107B,其中和单片机打交道的是KS0108B。KS0108B的指令集比较简单,共有7种指令。 (1) 显示开/关指令

R/W 0 D/I 0 DB7 0 DB6 0 DB5 1 DB4 1 DB3 1 DB2 1 DB1 1 DB0 0/1 DB0=1时,LCD显示RAM的内容:DB0=0时,关闭显示。 (2)显示其实行(ROW)设置命令

R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1 1 显示起始行(0~63) 该命令设置了对应液晶屏最上一行的显示RAM的行号,有规律地改变显示其实行,可以使LCD实现显示滚屏的效果。 (3)页(PAGE)设置指令

R/W 0 D/I 0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1 0 `1 1 1 页号(0~7)

显示RAM共64行,分8页,每页8行。 (4)列地址(Y Address)设置指令

R/W 0 D/I 0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 1 显示列地址(0~63) 设置了页地址和列地址,就唯一确定了现实RAM中的一个单元,这样CPU就可以用读、写指令读出该单元中的内容或向该单元写进一个字节数据。 (5) 读状态指令

R/W 1 D/I 0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 BUSY 0 ON/OFF RESET 0 0 0 0 该指令用来查询液晶显示模块内部控制器的状态,各参量含义如下。 BUSY:1—内部在工作,0—正常状态; ON/OFF:1—显示关闭,0—显示打开; RESET: 1—复位状态,0—正常状态。

在BUSY和RESET状态时,除读状态指令外,其他指令均不对液晶显示模块产生作于。在对液晶显示模块操作之前要查询BUSY状态,以确定是否可以对液晶显示模块进行操作。

(6)写数据指令

R/W 0 D/I 1 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 写数据 (7)读数据指令

R/W 1 D/I 1 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 读显示数据 读写数据指令每执行一次读、写操作,列地址就自动增 1。必须注意的是,

进行读操作之前,必须又一次空读操作,紧接着再读才会读出所要读的单元中的数据。

4.2.2程序流程图及部分程序

单片机控制液晶显示器件GXM12864,欲显示以用水量和剩余水量的程序流程图如图4.2所示

部分程序:

图4.2 液晶显示流程图