- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于AT89S52、LCD12864仪器仪表的键盘显示模拟系统.txt生活是过出来的,不是想出来的。放得下的是曾经,放不下的是记忆。无论我在哪里,我离你都只有一转身的距离。//名称:仪器仪表的键盘显示模拟系统 //
//晶振:12Mhz //
//编写:韦宏谋 //
//日期:2011.1.9 //
#includereg52.h
#includeintrins.h
#define uc unsigned char
#define ui unsigned int
#define nop() _nop_()
#define DB P0 //12864D0-D7输出I/O口
bit clr_flag=0; //清屏标志1
bit clr_flag2=0; //清屏标志2
sbit RS=P2^7;
sbit RW=P2^6;
sbit EN=P2^5;
sbit PSB=P2^4;
sbit RST=P2^2;
sbit seg_on=P2^0; //数码管状态控制
char week=0; //星期变量
char hour=0,min=0,sec=0,date=1,month=1,year=11;//预置的时间和日期
uc key_flag=0; //键盘标志
uc key=0; //键盘变量
uc deda=0; //时钟变量
uc string[]=0123456789;
uc aa=0x80,bb=0x90,cc=0x88,dd=0x98; //12864的DDRAM地址
uc code bmp[],bmp1[],bmp2[],zk[],seg_code[];//图片、字符
void conv(); //时钟走时单元函数声明
//------------------------------------------//
// 延时函数1 //
//------------------------------------------//
void delay(ui t)
{ uc i,j;
do {j=2;
do {(i=165);
do { nop();//n个nop
}while(--i);
}while(--j);
}while(--t);
}//可精确到1ms,计算公式:t总={[3j+(n+2)ij+3]t+5}T,T为晶振周期
//------------------------------------------//
// 延时函数2 //
//------------------------------------------//
void delay1(ui count)
{ uc i,j;
for(i=0;icount;i++) for(j=0;j30;j++);
}
//------------------------------------------//
// 定时器T0初始化 //
//------------------------------------------//
void init_timer()
{ TMOD=0x01;
TH0=(65536-50000)/256; //加载高位
TL0=(65536-50000)%256; //加载低位
IE=0x82; //启用定时器T0中断产生
TR0=1; //启动定时器T0开始计时
}
//------------------------------------------//
// 5ms定时中断程序 //
//------------------------------------------//
void T0_srv(void) interrupt 1 using 1
{ TH0=(65536-50000)/256;//定时器计时初始值
TL0=(65536-50000)%256;
deda++; //计数单元递增
conv();
}
//------------------------------------------//
// 各月份天数计算函数 //
//------------------------------------------//
void inter_month()
{ switch(month)
{ case 1: case 3: case 5: case 7:
case 8: case 10:
case 12:{ if(da
文档评论(0)