按键控制流水灯程序.docVIP

  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文档。上传文档
查看更多
按键控制流水灯程序

? 最近有很多学弟来问我流水灯该怎么做,程序怎么写,现在在这里统一说下,很多时候没有时间让你们白跑一趟了,O(∩_∩)O~。 ????? 首先就说到单片机了,单片机对于你们来说是个新概念,可能以前都没听说过。我想说的是它不是传统意义上的集成电路,只能按照特定的焊接来能工作,而是一块类似电脑CPU的芯片,对于一块正常的单片机,只要你提供合适的工作电源(4V都5.5V左右)、复位电路 、起振电路它就可以工作了。所有的输入输出口(以P开头的)都是可以灵活配置的,可以根据你焊接的硬件电路写程序,也可以根据你写的程序焊接硬件电路。所以没有必要死板硬套。前天没事写了一下,仿真了一下还可以用。源码贴于下方供入门者参考,高手勿嘲笑,大家都是从流水灯程序写起的 (*^__^*) 嘻嘻…… ????? 再就是我的51开发板不知道是谁借走了,很久没有用过51单片机了,所以下载程序的事就不要来找我了。我把编译过后的代码也贴在下面,如果硬件和我做的一样的同学又不会写程序的就直接复制下面编译过后的代码,在电脑上新建一个文本文档(.txt)命名任意,将复制后的代码粘贴于记事本上,然后重命名,将.txt改为“.hex”,保存,然后通过下载器下载到单片机里面去就可以用了。 ????? 不会的多去?看一下教程。以下仅供参考,不得一味模仿???????? /*************************************************************************************************************** 源码: 51单片机 晶振频率12Mhz 八位数码管采用共阳极接法(所有阳极接一起接Vcc,阴极接P0口) 按键分别接P2.0? P2.1? P2.2(低电平有效) 编译软件采用keil 4 *******************************************************************************************************************************************************/ #include reg52.h #define uint unsigned int #define uchar unsigned char sbit key1 =P2^0; //按键1 sbit key2 =P2^1; //按键2 sbit key3 =P2^2; //按键3 uchar flag1=0,flag2=0,flag3=0; void delay_ms(uint z) { ???? uint i,j; ???? for(i=0;iz;i++) ???? for(j=0;j110;j++); } void O_to_E() //1,3,5,7与2,4,6,8交替闪烁 { ???? P0=0Xaa; ???? delay_ms(200); ???? P0=~0Xaa; ???? delay_ms(200); } void key_scan()??? //键盘扫描 { ???? if(!key1) ???? { ????????? delay_ms(10); //延时消抖 ????????? if(!key1) ????????? flag1=1; ???? } ???? if(!key2) ???? { ????????? delay_ms(10); //延时消抖 ????????? if(!key2) ?????????? flag2=1; ???????? } ???? if(!key3) ???? { ????????? delay_ms(10); //延时消抖 ????????? if(!key3) ?????????? flag3=1; ???? } } void main() { ???? uchar i; ???? while(1) ???? { ??????????? key_scan(); ??????????? if(flag1)?????????????????????????????? //按键一按下????????????????? ??????????? { ?????????????????? for(i=0;i8;i++)??????????? //从左至右亮,每次一盏???????????? ?????????????????? { ??????????????????????????? P0=~(0x80i); ??????????????????????????? delay_ms(100); ??????????????????????????? key_

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档