完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
|
相关推荐
67 个讨论
|
|
|
#include
#include #define uint unsigned int #define uchar unsigned char unsigned char code WE0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80}; unsigned char temp[3]; ***it RX=P3^2; // ***it TX=P2^5; // ***it led1=P2^0; ***it led2=P2^1; ***it led3=P2^2; bit flag=0; uint time=0; uint s=0; void delay(int xms)//延时大概x毫秒 { int i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void start() //给至少10us的高电平,启动模块 { uint n; n=10; while(n--) TX=~TX; } uchar count() { time=TH0*256+TL0; TH0=0; TL0=0; //清零 s=(time*1.72)/100;//厘米 return s; } void dispros()//数据分割 { temp[0]=s%1000/100;//百位 temp[1]=s%1000%100/10; //十位 temp[2]=s%100%100%10; //个位 } void display() //显示函数 { led1=1;led2=0;led3=0; P0= ~WE0[temp[0]]; delay(2); led1=0;led2=1;led3=0; P0= ~WE0[temp[1]]; delay(2); led1=0;led2=0;led3=1; P0= ~WE0[temp[2]]; delay(2); led1=0;led2=0;led3=0; } void main() { TMOD=0X01; //定时器工作方式0 TH0=0; TL0=0; EA=1; //开总中断 ET0=1;//开定时器中断 TX=1; while(1) { start();//启动模块 while(!RX); //当RX为零时等待 TR0=1; //启动计数 while(RX); //当RX为1时计数并等待 TR0=0; //关闭计数器 count(); //计数 dispros(); //处理,分割数据 display(); //显示 delay(2); } } void t0() interrupt 0 { flag=1; //溢出标志 } |
|
|
|
|
|
|
|
749 浏览 0 评论
595 浏览 0 评论
647 浏览 0 评论
890 浏览 0 评论
980 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17098 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-17 19:34 , Processed in 0.614466 second(s), Total 48, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2856