实验一电子时钟.ppt

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 课程实验一. 电子时钟 目的: 1.学习常见LCD 驱动程序设计,按键处理等人机对话。 2.学习状态机在监控程序中的应用。 //-----LCD16液晶显示控制引脚定义----- sbit E=0xb6; sbit RS=0xb7; sfr lcd_dat_port=0x80; //lcd数据口 unsigned char lcd_buf[33]; //-------写一个字节到液晶------------- void lcd_write(bit slr,unsigned char write_dat) { RS=slr; lcd_dat_port=write_dat; E=1; delay(2); E=0; } //-------写一个字节到液晶------------- void lcd_write(bit slr,unsigned char write_dat) { RS=slr; lcd_dat_port=write_dat; E=1; delay(2); E=0; } //--------------液晶初始化------------ void ini_lcd() { //RW=0; delay(50); lcd_write(0,0x38); lcd_write(0,0x0F); lcd_write(0,0x06); lcd_write(0,0x01); delay(50); } //-------------------------液晶显示-------------------------- void display() //将显示缓存lcd_buf[16]的内容显示 {unsigned char ii; lcd_write(0,0x80); //第一行显示,LCD地址从00H开始 for(ii=0;ii16;ii++) lcd_write(1,lcd_buf[ii]); //显示缓存内容写入LCD:00-0FH地址 lcd_write(0,0xc0); //第二行显示, LCD地址从40H开始 for(ii=0;ii16;ii++) lcd_write(1,lcd_buf[16+ii]); //显示缓存内容写入LCD:40-4FH地址 } //------按键端口定义--------------------- sfr key_port=0xa0; //P2口接键盘 unsigned char code key_index[16]={0xdb,0xee,0xde,0xbe, //0,1,2,3 0x7e,0xed,0xdd,0xbd, //4,5,6,7 0x7d,0xeb,0xbb,0x7b, //8,9,上,下 0xe7,0xd7,0xb7,0x77}; //左,右,功能,确认 //-------------- 线路反转法按键子程序 ---------------------- unsigned char get_key() {unsigned char key1,key2,ii; key_port=0xf0; if (key_port!=0xf0) { key1=key_port; delay(100); //10ms消抖动 if(key1==key_port) //延时10ms后键不变 { key_port=0x0f; //高低4位0,1反转 key2=key_port; key1=key1|key2; for(ii=0;ii16;ii++) {if(key1==key_index[ii]) { key_port=0xf0; //等待释放按键 while(key_port!=0xf0); delay(100); while

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档