江西财经大学软件与通信工程学院初始化.pptVIP

江西财经大学软件与通信工程学院初始化.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
江西财经大学软件与通信工程学院初始化

参考程序: #include reg51.H sbit P3_7=P3^7; unsigned int count,tmp; unsigned char i; unsigned char BitTab[]={0x01,0x02,0x04,0x08}; //LED位驱动码 unsigned char DispTab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80, 0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};//LED字形码 unsigned char DispBuf[4]; //显示缓冲区 void delay(unsigned int time){ unsigned int j = 0; for(;time0;time--) for(j=0;j125;j++); } void Display(){ for (i=0;i4;i++){ P1=DispTab[DispBuf[i]]; //P1口输出显示字形 P2=BitTab[i]; //P2口输出显示位码 delay(2); P2=0x00;}} void main(void) { count=0; //计数器赋初值 P1=DispTab[0]; //P1口显示初值 P2=0x0f; //P2口显示初值 while(1) { //进入无限循环 if(P3_7==0){ //软件消抖,检测按键是否压下 delay(10); if(P3_7==0) { //若按键压下 count++; //计数器增1 if(count==10000) //判断循环是否超限 count=0; tmp=count; DispBuf[3]=tmp%10; tmp=tmp/10; DispBuf[2]=tmp%10; tmp/=10; DispBuf[1]=tmp%10; tmp/=10; DispBuf[0]=tmp%10; Display(); while(P3_7==0); //等待按键松开,防止连续计数 } } } } 5.4 行列式键盘原理与编程 独立式键盘的电路简单,易于编程,但占用的I/O口线较多,当需要较多按键时可能产生I/O资源紧张问题。 独立式键盘电路 1. 独立式键盘 行列式键盘——将I/O口分为行线和列线,按键跨接在行线和列线上,列线通过上拉电阻接正电源。 4×4行列式键盘 7407——六高压输出缓冲器/驱动器 行列式键盘的特点:占用I/O口线少,但软件过程复杂。 2. 行列式键盘 ① 键盘扫描 同时将各行电平置1,分别将各列电平置0。 扫描码:key_scan[] = {0xef, 0xdf, 0xbf, 0x7f}; 写P3: P3=key_scan[i]; 键盘扫描原理(以P3口接4×4键盘为例) 第一次 1110 1111B 第二次 1101 1111B 第三次 1011 1111B 第四次 0111 1111B = 0xef = 0xdf = 0xbf = 0x7f (P3 0x0f) = 0x0f →无键压下 (P3 0x0f)≠0x0f →有键压下 ② 按键闭合状态判断 0#: 1110 1110B——0xee 1#: 1101 1110B——0xde F#: 0111 0111B——0x77 按键闭合前后,所在行线端口电平反转; 读P3后,若发现其低4位为f,说明无键压下;反之则相反。 键值——按键闭合时从引脚读出的数值。 ③ 查找闭合键键号 for (j = 0 ; j 16 ;j++) { if (P3== key_buf [j]) return j; } 键值数组 key_

文档评论(0)

ailuojue + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档