单片机光控计数器.pptVIP

  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文档。上传文档
查看更多
步骤 ··设计原理 ··程序设计 ··程序代码 ··调试 设计原理 利用光电三极管接收红外发光二极管射来的红外光线当有物体通过两者之间时,红外线被挡住,启动中断 利用AT89S51单片机来制作一个计数器 用单片机的接口连接一个共阴数码管,作为计数器的显示 设计仿真电路图 程序设计 单片机的识别过程处理 对单次识别进行计数,计数满时,又从零开始计数 单片机对识别计数的数值进行数码显示 计数是十进制数,含有十位和个位 把十位和个位拆开分别送出十位和个位数值到对应的数码管上显示 如何拆开十位和个位:我们可以把所计得的数值对10求余,即可个位数字,对10整除,即可得到十位数字了。 通过查表方式,分别显示出个位和十位数字。 编写主函数 void main(void) { while(1) { P3_2=0; P3_3=0; if(P3_2!=0) ADD (); else if(P3_3!=0) DEC(); DISP(); } } 编写延时函数 void Delay(int num) { while( --num ); } void Delay1(int num1) { unsigned int i,j; for(i=0;inum1;i++) { for(j=0;j60;j++) {;} } } 编写加减函数 void ADD(void) { Delay1(10); if(P3_2!=0) {Delay1(10); if(P3_2!=0) {Count++; if(Count==20) { Count=0; P0_0=0 ; } } } while(P3_2!=0); } void DEC(void) { Delay1(10); if(P3_3!=0) { Delay1(10); if(P3_3!=0) {if(Count0) { Count--; } else if(Count==0) { Count=0; } } } while(P3_3!=0) ; } 编写显示函数 DISP() { Delay(100); P1=0xfd ; P2=table[Count%10]; //个位 Delay(100); P1=0xfe; P2=table[Count/10] ; //十位 Delay(100); } 调试 使用计算机对电路进行模拟 查找实现错误时可以根据模拟的结果进行对照调试,或由电路的因果关系确定故障的位置。 * * AT98S51单片机 光电耦合器 LED显示 *

文档评论(0)

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

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档