LCD显示倒计时程序.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LCD显示倒计时程序

简介:第一行显示,距离系统爆炸时间 第二行显示,还剩 第三行显示,00时,00分,00秒 第四行显示, 周林 按下旋钮开关,开始设定秒,秒编辑位闪动。左右旋转设定数值, 在按下开关,秒确定,设定分,分编辑位闪动左右调数值, 再按下,分确定,小时位闪动。左右转调小时,再按一下。时间确定,开始倒计时。到达定时时间后停止,并闪动。 #include reg52.h #include intrins.h /********************* 定义 ********************************/ #define LCD_data P0 //数据口 sbit LCD_RS = P2 ^ 0; //寄存器选择输入 sbit LCD_RW = P2 ^ 1; //液晶读/写控制 sbit LCD_EN = P2 ^ 2; //液晶使能控制 sbit LCD_PSB = P2 ^ 3; //串/并方式控制 sbit LCD_RST = P2 ^ 5; //液晶复位端口 sbit sset=P3^4;//设置按钮 sbit spk=P1^4; sbit sadd=P2^7; sbit sdel=P2^6; signed char second=0,minute=0,hour=0,count=0,keycount=0; signed char key=0; unsigned char code DIS1[] = { 距离系统爆炸时间 }; unsigned char code DIS2[] = { 还剩: }; unsigned char code DIS31[] = { 时 }; unsigned char code DIS32[] = { 分 }; unsigned char code DIS33[] = { 秒 }; unsigned char code DIS4[] = { 周林 }; unsigned char code table2[]=0123456789; char code reserve[3]_at_ 0x3b; //保留0x3b开始的3个字节 /*********************延时子函数**************************/ void delayNOP()//us延时子函数 (4.34us) { _nop_(); _nop_(); _nop_(); _nop_(); } void delayms(unsigned int ms)//ms延时子函数 { unsigned char y; while (ms--) { for (y = 0; y 114; y++) ; } } //******************检查LCD忙状态************************** bit lcd_busy()//检查LCD忙状态 1忙,0闲 { bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0 0x80); LCD_EN = 0; return (result); } //***********************写指令数据*********************** void lcd_wcmd(unsigned char cmd)//写指令数据到LCD { while (lcd_busy()) { ; } LCD_RS = 0; LCD_RW = 0; LCD_EN = 1; P0 = cmd; delayNOP(); LCD_EN = 0; } void lcd_wdat(unsigned char dat)//写显示数据到LCD { while (lcd_busy()) ; LCD_RS = 1; LCD_RW = 0; LCD_EN = 1; P0 = dat; delayNOP(); LCD_EN = 0; } void writesmh(unsigned char add,unsigned char date)//显示个位和十位数据 { unsigned char shi,ge; shi=date/10; ge=date%10; lcd_wcmd(0x80+add); delayms(5); lcd_wdat(table2[shi]); delayms(5); lcd_wdat(table2[ge]); del

文档评论(0)

docman126 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档