51单片机综合设计.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文档。上传文档
查看更多
51单片机综合设计

#include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int void delay(int); void delay1(uint num); void system_Ini(); //内部中断设置 void Init_DS18B20(void); //传感器初始化 ReadOneChar(void); void WriteOneChar(unsigned char dat); int ReadTemperature(void); void display(int bai,int shi,int ge); int duan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //段码控制,此表为数码管的字模, 共阳极数码管查表的方法控0~9 int wei[4]={0x7F,0xBF,0xDF,0xEF}; //位选控制 查表的方法控制,千位到个位 int wei1[4]; led; sbit s3=P2^0;sbit s4=P2^1;sbit s5=P2^2;sbit s6=P2^3; //按键的位定义 sbit h1=P2^4;sbit h2=P2^5;sbit h3=P2^6;sbit h4=P2^7; int count1=0; unsigned int miao,fen=0; unsigned int LedNumVal,LedOut[4]; unsigned int temp=0; void system_Ini(); unsigned char i; sbit DATA = P3^5; //DS18B20接入口 char bai,shi,ge; //定义变量 main() { { int count=1226,i; //显示学号1226 while(1) { wei1[0]=count/1000; wei1[1]=count/100%10; wei1[2]=count/10%10; wei1[3]=count%10; for(i=0;i4;i++) { P2=wei[i]; P0=duan[wei1[i]]; delay(160); } if(s3==0){h1=1;h2=1;h3=1;h4=1;goto loop1;}//按S3键跳往跑马灯(loop1) if(s4==0)goto loop2; if(s6==0)goto loop3; } } loop1: { led=0xfe; //显示跑马灯 P0=led; delay(6000); while(1) { led=led1; led=led+1; P0=led; delay(6000); if(P0==0xff){led=0xfe;P0=0xfe;delay(6000);} if(s3==0){h1=1;h2=1;h3=1;h4=1;goto loop1;} if(s4==0)goto loop2; if(s6==0)goto loop3; } } loop2:{ //显示秒表 system_Ini(); while(1) { if(s5==0){delay(1);EA=temp=!temp;} LedOut[0]=duan[fen%60/10]; LedOut[1]=duan[fen%10]0x7f; LedOut[2]=duan[miao%60/10]; LedOut[3]=duan[miao%10]; for( i=0; i4; i++) { P0 = LedOut[i]; P2 = wei[i]; //使用查表法进行位选 delay(300); //扫描间隔时间太短数码管会显示不清楚,太长四位数码管分隔明显 } if(s3==0){h1=1;h2=1;h3=1;h4=1;goto loop1;} if(s6==0){EA=0;goto loop3;}//暂停秒表 //if(s6==0){goto loop3;}//显示温度时秒表在后台运行 }

文档评论(0)

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

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

1亿VIP精品文档

相关文档