单片机原理与C51程序设计基础教程 教学课件 作者 978 7 302 23075 5 第11章.docVIP

单片机原理与C51程序设计基础教程 教学课件 作者 978 7 302 23075 5 第11章.doc

  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文档。上传文档
查看更多
填空题 1. 触点式开关按键 无触点式开关按键 2.中断扫描 3.硬件消抖 软件消抖 4.10ms 延时 5. 既要保证CPU能及时响应按键操作,又不要过多占用CPU的工作时间。 选择题 1.A 2.D 3.B 4.C 5.B 上机题 1. #include reg51.h #define SEG p0 unsigned char code TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff}; void debouncer(); sbit PB1=P2^0; sbit PB2=P2^1; main() { unsigned char i=0; PB1=PB2=1; while(1) { SEG=TAB[i]; if(PB1==0) { debouncer(); if(PB1==0) { debouncer(); i=(i9)?i+1:0; } if(PB@==0) { debouncer(); i=(i0)?i-1:9; } } } } void debouncer(void) { int i; for(i=0;i2400;i++); } 2. #include reg51.h sbit speaker=P0^0 ; unsigned char keys; unsigned char tone[]={108,102,91,86,77,68,61,57}; void delay8us(unsigned char x) { unsigned char i,j; for(i=0;ix;i++) for(j=0;j100;j++); } void sound (unsigned char x) { char i; for(i=0;i60;i++) { speaker=1; delay8us(tone[x]); speaker=0; delay8us(tone[x]); } } main() { P2=0xff; while(1) { keys=~P2; switch (keys) { case 0x01: sound(0);break; case 0x02: sound(1);break; case 0x04: sound(2);break; case 0x08: sound(3);break; case 0x10: sound(4);break; case 0x20: sound(5);break; case 0x40: sound(6);break; case 0x80: sound(7);break; } } } 3. #include reg51.h sbit output=P0^0 ; sbit s1=P2^0; sbit s2=P2^1; sbit s3=P2^2; sbit s4=P2^3; sbit s5=P2^4; sbit s6=P2^5; sbit s7=P2^6; sbit s8=P2^7; unsigned int count=0; #define TH_M1(65536-count)/256 #define TL_M1(65536-count)%256 main() { IE=0x82; TMOD=0X01; output=1; P2=0xff; while(1) { if(s1==0) count=5; else if(s2==0) count=10; else if(s3==0) count=50; else if(s4==0) count=100; else if(s5==0) count=500; else if(s6==0) count=1000; else if(s7==0) count=5000; else if(s8==0) count=10000; TH0=TH_M1; TL0=TL_M1; TR0=1; while(TF0==0); TF0=0; output=~output; } }

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档