- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
09智能综合设计报告正文(钟一洋马毅涛陈凡)3
附录2
#includezimo.h
#include reg52.h //头文件
//液晶信号控制引脚定义
sbit DI=P2^2; // 数据\指令 选择
sbit RW=P2^1; // 读\写 选择
sbit E=P2^0; // 读\写使能
sbit CS1=P2^4; // 片选1
sbit CS2=P2^3; // 片选2
//以下是外面是数组说明
extern unsigned char code ziku[];
extern uchar code picture[][64];
extern uchar code Hzk[][32];
unsigned int number=0,mstcnt=0;
//自己定义函数说明
void delay(uint ms);
//以下为基本操作程序
////*******************************//
//液晶判忙函数********************//
//*******************************//
void checkstate() //判断液晶是否忙
{
unsigned char dat;
DI=0; //指令模式
RW=1; //读控制器
do
{
P1=0x00;
E=1;
dat=P1;
E=0;
dat=0x80 dat; //仅当第7位为0时才可操作(判别busy信号)
}while(!(dat==0x00));
}
//**********************************//
// I/O口向液晶控制器写命令函数*******//
//***********************************//
void writecommand(unsigned char command) //写命令
{
checkstate();
RW=0;
P1=command;
E=1; //要注意这个些数据或者命令写入液晶控制器都是下降延的
E=0;
}
//************************************************//
//******I/O口向液晶控制器写数据函数****//
//***********************************************//
void writedate(unsigned char date) //写数据
{
checkstate();
DI=1; RW=0;
P1=date;
E=1; E=0;
}
//*********************************
//***清屏幕************
///*******************************
void cleanscreen() //清屏
{
unsigned char page,i;
for(page=0xb8;page0xc0;page++) //一共写8页
{
writecommand(page);
writecommand(0x40); //将控制器指针拉回到第0列
for(i=0;i64;i++) //写64列数据,每列为一个字节
{writedate(0x00);//(8个位纵向组成一个页)
//delay(10);
}
}
}
//*************************//
//*****液晶片选函数******//
//***********************//
void choosescreen(unsigned char NO) //选择屏幕
{
switch (NO)
{
case 0: //选择2片(左右两片)
CS1=0;
CS2=0;
break;
case 1://选择左片液晶
CS1=0;
CS2=1;
break;
case 2:
CS1=1;//选择右片液晶
CS2=0;
break;
default:
break;
}
}
//*********************//
//******初始化函数**** //
//********************//
void lce_init(void)
{
writecommand(0xc0); //显示起始为0页
writecommand(0x3f); //开启液晶
}
//********************************
文档评论(0)