自行车里程表的设计(5)

2019-04-09 20:19

第4章 软件的设计

图4-2 校准时间流程图

程序代码如下:

while(1) {if(ag==1)

{if ((K1|K2)==0) //初始化 {Delay5Ms(); if ((K1|K2)==0) Set1302(inittime); }

if (K3==0) // 设置和选择项目键 {Delay5Ms(); if(K3==0) { id++; if(id>7) id=0;} while(K3==0);} switch(id) { case 0: sec=0; Disp_line1(); Disp_line2(); break; case 1://年 year=1; Disp_line1();

Disp_line2(); id_case1_key(); break;

16

第4章 软件的设计 case 2://月 year=0; mon=1; Disp_line1();

Disp_line2(); id_case1_key(); break; case 3://日 mon=0; day=1; Disp_line1(); Disp_line2(); id_case1_key(); break; case 4://星期 day=0; weekk=1; Disp_line1();

Disp_line2(); id_case1_key();

4.1.3 LCD1602液晶显示模块

LCD1602液晶显示器属于字符型液晶显示器,其内部自带有字符库,所以只要向显示器输送字符的ASCII码,就可以显示该字符了。对于1602显示程序的编写最主要的是掌握好1602的读写操作的时序。1602显示器的控制端分别为RS、RW和E,当写指令时RS为低电平,RW为低电平,E首先为高电平,然后将数据送出,在延时一定时间后E变为低电平。这样就把命令写到了1602中。当写数据时RS为高电平,RW为低电平,E首先为高电平,然后将数据送出,在延时一定的时间后E变为低电平。这样就把数据写到了1602中。在实际应用1602时,要先将显示器初始化,初始化的内容包括清屏、设置显示模式,首字

17

华北理工大学继续教育学院 符的位置、光标的有无和闪烁等,然后才能显示具体内容。

开始 进行LCD的初始化 进行数据的处理 调用写指令子函数 调用写数据子函数 显示

图4-3 LCD显示程序流程图

该函数的作用是对LCD进行检测,看LCD是否处于忙的状态.当bflag=1时表示忙,此时不可以向LCD进行读写操作.而当busy=0时,表示可以向它读写数据. 程序代码:

void wait() {P2=0xff;

RW=1; RS=0; do{E=0;E=1;}while(busy==1); }

void dispone(dat) 写数据,并显示出来

第4章 软件的设计 {P2=dat;

RW=0; RS=1; E=0; E=1; wait(); }

void wrcom(com) 向LCD写入控制字 {P2=com;

RW=0; RS=0; E=0; E=1; wait(); }

void init_LCD() 初始化LCD

{wrcom(0x01); 显示清零,数据指针清零 wrcom(0x06); 写一个字后指针加一

wrcom(0x38); 设置16*2显示,5*7点阵,8位数据接口 wrcom(0x0c); 设置开显示,不显示光标 }

void dispmore(line,row,uchar dat[],i) //格式为dispmore(第几行,第几列,开始要显示的字符地址,显示几个字符); {uchar com; s=dat;

if(line==1)

{com=0x80+row-1; // 第一行第一列对应的RAM的地址位为0x80H wrcom(com);

while((i--)!=0&&com<=0x8f) {dispone(*s); com++; s++; } }

19

华北理工大学继续教育学院 else

{com=0xc0+row-1; wrcom(com);

while((i--)!=0&&com<=0xcf) {dispone(*s); com++; s++; } } }


自行车里程表的设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:用递归与非递归方式求Hermite多项式的值

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: