毕业设计 基于AT89S52、LCD12864仪器仪表的键盘显示模拟系统.doc

毕业设计 基于AT89S52、LCD12864仪器仪表的键盘显示模拟系统.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于AT89S52、LCD12864仪器仪表的键盘显示模拟系统.txt生活是过出来的,不是想出来的。放得下的是曾经,放不下的是记忆。无论我在哪里,我离你都只有一转身的距离。//名称:仪器仪表的键盘显示模拟系统 // //晶振:12Mhz // //编写:韦宏谋 // //日期:2011.1.9 // #include<reg52.h> #include<intrins.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;i<count;i++) for(j=0;j<30;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

文档评论(0)

花开半季 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档