完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
这是程序:
#include"reg51.h" #include"stdio.h" ***it sound=p1^7; ***it ST=P2^0; ***it EOC=p2^1; ***it OE=p2^2; ***it ADDA=p2^3; ***it ADDB=p2^4; ***it blue=p2^5; ***it yellow=p2^6; ***it red=p2^7; ***it bit1=p3^2; ***it bit2=p3^3; ***it bit3=p3^4; ***it bit4=p3^5; ***it bit5=p3^6; ***it bit6=p3^7; int DATA[3]; char ch[4]; int chardata; int right; char led; int xia=10,shang=40; void display(); void delay_1ms(int); int wendu(int); void AD(); void baojing(int); void Sound(); void init_serialcom(); void baojing(int d); { if(d } void Sound(); { int m=10; While(m--) { delay_1ms(1);sound=1; delay_1ms(1);sound=0; } } Void AD() { inti=0; for(i=0;i<5;i++) { ST=0; ADDA=0;ADDB=0; delay_1ms(10); ST=1; Delay_1ms(10); ST=0; while(EOC==0); OE=1; DATA[0]=P0; OE=0; } } void delay_1ms(int i) { int j; while(i--) {for(j=125;j>0;j--);} } /********************************/ Void display() {int discod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00} int tab[]={0,1,2,3,4,5,6,7,8,9}; int di***it[]={5,4,3,2,1}; int dis[6],i,j; int getdata; for(i=0,j=0;i<3,j<6;i++) { getdata=DATA[i]; dis[j]=getdata/10; dis[j+1]=getdata%10; j+=2; } for(i=0;i<6;i++) { P3=0x0ff; switch(di***it[1]) { case0:bit1=0;break; case1:bit2=0;break; case2:bit3=0;break; case3:bit4=0;break; case4:bit5=0;break; case5:bit6=0;break; } P1=discode[tab[dis[i]]]; } } /************************************/ int wd(int d) { float k=0.42735,b=6.4957; int f1; if(d<199){f1=k*d-b;returnf1;} if(d>=199&d<200){return80;} if(d>=200&d<201){return85;} if(d>=201&d<202){return88;} if(d>=202) {return98;} } /*********************************************/ void init_serialcom() { SCON=0x50; TMOD=0x20; PCON=0x00; TH1=0xFD; TL1=0XFD; IE=0x90; TR1=1; TI=1; } /**************************************************/ void rec_int()interrupt 4 { if(RI) { RI=0; ch[0]=SBUF; if(ch[0]==’0’) { while(RI==0){}RI=0;ch[1]=SBUF; if(ch[1]==’r’){right=1;} else { if(ch[1]=='t'){right=0;} else { while(RI==0){}RI=0;ch[2]=SBUF; while(RI==0){}RI=0;ch[3]=SBUF; chardata=(ch[2]-48)*10+ch[3]-48; if(ch[1]==’x’){xia=chardata;} if(ch[1]==’s’){shang=chardata;} } } } } } /***********************************************************/ void main() { int j; init_serialcom(); while(1) { AD(); if(led!=0&right==1){putchar(led);putchar(led);} else { putchar(‘0’); putchar(‘0’); } for(j=0;j<3;j++) { DATA[j]=wd(DATA[j]); if(right==1) { switch(DATA[j]) { case 80:printf(“80”);break; case 85:printf(“85”);break; case 88:printf(“87”);break; case 98:printf(“95”);break; default:printf(“%d”,DATA[j]);break; } } } if(right==1);{printf(“%d%d”,xia,shang);} display(); baojing(DATA[0]); } }
|
|
相关推荐
14个回答
|
|
OE接低电平,LE接高电平。
|
|
|
|
我的OE是接地啊,LE是接入单片机中,用单片机的给他供电。还必须要要单独给给加高电平嘛? |
|
|
|
在细看,LE前面加个非门!注意这个时候引脚就和以前是两个反向状态。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
我看到我的也是接入了ADC0808转换器,但是还是无法,全是8,没有任何的反应 |
|
|
|
pt100应该可以仿真,我见过的!在试试,不行我在试试! |
|
|
|
PT100有反应,但是那个ADC0808似乎一直输出的是低电平。导致我的数码管要嘛全亮,要嘛就是一点都不亮 |
|
|
|
武力戡乱 发表于 2015-5-1 13:14 谢谢了。对了,我想再问下。在proteus中ADC0832无法进行仿真怎么办? |
|
|
|
客气啦! ADC0832这个可以仿真的! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
4452 浏览 3 评论
5742 浏览 1 评论
6016 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
7750 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1222 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 03:20 , Processed in 0.794528 second(s), Total 103, Slave 85 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号