完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
这两天刚做的基于51单片机的调速、测速与显示,我也是刚学,边借鉴边做,仿真没仿出来,知道肯定有问题,但感觉方向应该是对的,具体问题求大触挑几个有代表性的指点一二,下面附电路图、仿真程序与软件部分代码,感谢!!
************************************** ************************************** #include typedef unsigned int uint; typedef unsigned char uchar; uint num; uchar code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; ***it LSA=P2^0; ***it LSB=P2^1; ***it LSC=P2^2; ***it shujia=P3^3; ***it shujian=P3^4; void start() { TMOD=0X15; IT0=1; TH0=0x00; TL0=0X00; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; } void display(uchar shu) { uchar ge,shi,bai,qian,i,a; qian=shu/1000; bai=(shu%1000)/100; shi=(shu%100)/10; ge=shu%10; for(i=0;i<4;i++) { switch(i) { case 0: LSA=0,LSB=0,LSC=0; P1=smg[ge]; break; case 1: LSA=1,LSB=0,LSC=0; P1=smg[shi]; break; case 2: LSA=0,LSB=1,LSC=0; P1=smg[bai]; break; case 3: LSA=1,LSB=1,LSC=0; P1=smg[qian]; break; } a=10; while(a--); P1=0x00; } } void delay10ms() { uchar i,j; for(i=10;i>0;i--) for(j=110;j>0;j--); } uchar jianpan() { while(1) { P2=0xe0; if(P2!=0xe0) { delay10ms(); if(P2!=0xe0) { switch(P2) { case 0xc0: while(P2==0xc0); delay10ms(); return 1; break; case 0xa0: while(P2==0xa0); delay10ms(); return 2; break; case 0x60: while(P2==0x60); delay10ms(); return 3; break; } } } P2=0xd0; if(P2!=0xd0) { delay10ms(); if(P2!=0xd0) { switch(P2) { case 0xc0: while(P2==0xc0); delay10ms(); return 4; break; case 0x90: while(P2==0x90); delay10ms(); return 5; break; case 0x50: while(P2==0x50); delay10ms(); return 6; break; } } } P2=0xb0; if(P2!=0xb0) { delay10ms(); if(P2!=0xb0) { switch(P2) { case 0xa0: while(P2==0xa0); delay10ms(); return 7; break; case 0x90: while(P2==0x90); delay10ms(); return 8; break; case 0x30: while(P2==0x30); delay10ms(); return 9; break; } } } P2=0x70; if(P2!=0x70) { delay10ms(); if(P2!=0x70) { switch(P2) { case 0x60: while(P2==0x60); delay10ms(); return 0; break; } } } } } void delay50ms() { uchar i,j; for(i=50;i>0;i--) for(j=110;j>0;j--); } void main() { uchar shu,pge,pshi,pbai,aa; pbai=jianpan(); pshi=jianpan(); pge=jianpan(); aa=pbai*100+pshi*10+pge; P0=aa; start(); while(1) { if(num==20) { num=0; shu=TH0; TH0=0; } display(shu); if(shujia==0) { delay10ms(); while(shujia==0) { if(aa!=255) { delay50ms(); aa++; } P0=aa; } } if(shujian==0) { delay10ms(); while(shujian==0) { if(aa!=0) { delay50ms(); aa--; } P0=aa; } } } } void ser() interrupt 3 { TH1=(65536-50000)/256; TL1=(65536-50000)%256; num++; }
|
|
相关推荐
3 个讨论
|
|
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
140 浏览 0 评论
483 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
815 浏览 0 评论
1346 浏览 2 评论
804 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16904 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 20:19 , Processed in 0.688210 second(s), Total 70, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1981