- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#includeAT89X51.H #includeintrins.h /*************************** 数码管为共阴数码管 ***************************/ sbit s0=P2^7;//个位选通 sbit s1=P2^6;//十位选通 sbit s2=P2^5;//百位选通 sbit s3=P2^4;//千位选通 sbit dp=P0^7;//小数点 sbit in=P3^2;//外部中断,接CX20106的脚 sbit csb=P3^3;//40KHz方波输出脚 #define seg P0 //数码管的数据口为P1口 #define uchar unsigned char #define uint unsigned int #define nop _nop_() /****************************/ void init(void);//初始化 void delay_nms(uint n);//延时nms void delay100us();//延时us void display(uint dat);//4位数码管显示函数,只用了位 void tran(void);//超声波测量函数 /***************************/ uint dis,H=100,L=20; uchar flag=0,high_time,low_time,m=0; uchar leddata[]={ 0x3F, //0 0x06, //1 0x5B, //2 0x4F, //3 0x66, //4 0x6D, //5 0x7D, //6 0x07, //7 0x7F, //8 0x6F, //9 0x77, //A 0x7C, //B 0x39, //C 0x5E, //D 0x79, //E 0x71, //F 0x76, //H 0x38, //L 0x37, //n 0x3E, //u 0x73, //P 0x5C, //o 0x40, //- 0x00, //熄灭 0x00 //自定义 }; void delay100us() { uchar i; for(i=0;i50;i++) ; } /********************************** 函数名称:主函数 修改日期: 入口参数:无 返回值: 无 **********************************/ void main(void) { init(); while(1) //循环测量并显示 { tran();//发送超声波信号测距 display(dis);//显示距离 } } /********************************** 函数名称:初始化函数 修改日期: 入口参数:无 返回值: 无 **********************************/ void init(void) { TMOD=0x01;//定时器方式用于计时 TH0=0; TL0=0; /* 设定T0的工作模式为*/ EA=1; IT0=1;//下降沿有效,左传感器 } /********************************** 函数名称:延时函数 修改日期: 入口参数:n 返回值: 无 **********************************/ void delay_nms(uint n) { uchar i; while(n--) { for(i=123;i0;i--); } } /********************************** 函数名称:显示函数 修改日期: 入口参数:data 返回值: 无 **********************************/ void display(uint dat) { uchar i,j,k;//分别为百十个位的缓存 i=dat/100;//百位 j=dat%100/10;//十位 k=dat%100%10;//个位 s3=1;s2=0;s1=1;s0=1; seg=~leddata[i]; dp=0; delay_nms(2); dp=1; s2=1; s3=1;s2=1;s1=0;s0=1; seg=~leddata[j]; delay_nms(2); s1=1; s3=1;s2=1;s1=1;s0=0; seg=~leddata[k]; delay_nms(2); s0=1; } /********************************** 函数名称:超声波测量函数 修改日期: 入口参数:无 返回值:
文档评论(0)