基于80c51单片机的led动态显示实例.pdfVIP

  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文档。上传文档
查看更多
基于 80c51 单片机的 led 动态显示实例 单片机 80c51 接线图如图 1 所示。 图 1 中,4 位显示管用共阳极。 运 用动态显示, 采用循环导通或循环截止各位显示器的做法。 当循环显 示时间间隔较小时, 由于人眼的暂留特性, 就将看不出数码管的闪烁 现象。 图 1 单片机 80c51 接线图 控制系统设计 程序框图 图 2 程序框图 程序清单 程序写入 80c51 芯片 , 如下 #include sbit p1_0=p1^0; sbit p1_1=p1^1; sbit p1_2=p1^2; sbit p1_3=p1^3; sbit p1_4=p1^4; sbit p1_7=p1^7; // 共阳极数码管显示 0~9 的段码 unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x9 2,0x82,0xf8,0x80,0x90}; unsigned int count=0; // 定义计数器 unsigned int weight=0; // 称重变量 void delay(unsigned int time); // 延时 void display(unsigned int n); // 数码管显示 void main(void) { while(1){ int i=0; unsigned int a; if((p10x1f)==0x1f) ; // 没按按键不动作 else if(p1_0==0) {count=count+100;while(p1_0==0);} //whi le(p1!=0xff) 为等待按键松开 else if(p1_1==0) {count=count+10; while(p1_1==0);} else if(p1_2==0) {count=count+1; while(p1_2==0);} else if(p1_3==0) {count=0; while(p1_3==0);}// 计算清零 else if(p1_4==0) break; // 确认开始称量 p1_7=0; if(count255) count=0; // 计数器范围 0~255g 出后自动清零 a=count; display(a); // 调用显示函数 } while(1){ weight=p3; // 从 p3 口获取称重数据 if(weight else p1_7=0; //p1.7 置低位停止电机 display(weight*5); if(p1_3==0) { while(p1_3==0);break;} // 计算清零 , 并结束本 次称量 } } void delay(unsigned int time){ unsigned int j=0; for(;time0;time--) for(j=0;j125;j++); } void display(unsigned int n){ p2=1; //p2=1 选择千位 p0=table[n/1000]; // 千位取整后显示 delay(10); n=n%1000; // 千位取余 p2=2; //p2=2 选百位 p0=table[n/100]; delay(10); n=n%100; p2=4; //p2=4 选十位 p0=table[n/10]; n=n%10; delay(10); p2=8; //p2=8 选个位 p0=table[n]

文档评论(0)

138****5910 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档