完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
本文介绍的是内容是利用单片机作为硬件,采用c语言编程,实现功能详述如下:选择正转按钮,电机会顺时针持续转动8s;选择反转按钮,电机会逆时针持续转动10是s,每选择正转一次,显示正转次数会增加1,每选择反转一次,显示反转次数会减小1,初始时数码管显示次数为0。
电机档位显示设置: uchar code LED[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x02,0xf8,0x00,0x10}; //数码管显示0~9档 /********************************************************** 数码管显示函数led 输入P0 **********************************************************/ void led(int k) { P0=LED[k]; } 延时设置: /*****************延时函数,延时10ms************************* ***若想设置其他延时,可通过更改循环设置(搜索延时与循环的关系)即可****/ void Delay_10ms() { uchar a,b,c; for(c=1;c>0;c--) for(b=38;b>0;b--) for(a=130;a>0;a--); } main函数通过不同的延时与数字的搭配,实现数码管对电机档位的显示 void main() { uint n=0; led(0); while(1) { if(k2!=1) { Delay_10ms(); if(k2!=1) { n=n+1; led(n); P2=0x7f; Delay_8s(); } if(k2!=1) { n=n+1; led(n); P2=0x7f; Delay_8s(); } while(k2!=1) { led(n); P2=0x7f; Delay_8s(); } } if(k2==1) { Delay_10ms(); if(k2==1) { P2=0xff; } } if(k1!=1) { Delay_10ms(); if(k1!=1) { n=n-1; led(n); P2=0xfd; Delay_10s(); } if(k1!=1) { n=n-1; led(n); P2=0xfd; Delay_10s(); } while(k1!=1) { led(n); P2=0xfd; Delay_10s(); } } if(k1==1) { Delay_10ms(); if(k1==1) { P2=0xff; } } } } 完整代码如下: #include #define uint unsigned int #define uchar unsigned char ***it k1=P1^2; ***it k2=P3^5; uchar code LED[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x02,0xf8,0x00,0x10}; //数码管显示0~9档 /********************************************************** 数码管显示函数led 输入P0 **********************************************************/ void led(int k) { P0=LED[k]; } /********************************************************** 延时函数 延时10ms **********************************************************/ void Delay_10ms() { uchar a,b,c; for(c=1;c>0;c--) for(b=38;b>0;b--) for(a=130;a>0;a--); } /********************************************************** 延时函数 延时1s **********************************************************/ void Delay_1s() { uchar a,b,c,d; for(c=5;c>0;c--) for(b=4;b>0;b--) for(a=116;a>0;a--) for(d=116;d>0;d--); } /********************************************************** 延时函数 延时8s **********************************************************/ void Delay_10s() { uchar e; for(e=20;e>0;e--) { Delay_1s(); } } /********************************************************** 延时函数 延时10s **********************************************************/ void Delay_8s() { uchar e; for(e=16;e>0;e--) { Delay_1s(); } } /******主函数*********************/ void main() { uint n=0; led(0); while(1) { if(k2!=1) { Delay_10ms(); if(k2!=1) { n=n+1; led(n); P2=0x7f; Delay_8s(); } if(k2!=1) { n=n+1; led(n); P2=0x7f; Delay_8s(); } while(k2!=1) { led(n); P2=0x7f; Delay_8s(); } } if(k2==1) { Delay_10ms(); if(k2==1) { P2=0xff; } } if(k1!=1) { Delay_10ms(); if(k1!=1) { n=n-1; led(n); P2=0xfd; Delay_10s(); } if(k1!=1) { n=n-1; led(n); P2=0xfd; Delay_10s(); } while(k1!=1) { led(n); P2=0xfd; Delay_10s(); } } if(k1==1) { Delay_10ms(); if(k1==1) { P2=0xff; } } } } |
|
|
|
只有小组成员才能发言,加入小组>>
2168 浏览 0 评论
7853 浏览 4 评论
35689 浏览 18 评论
4779 浏览 0 评论
23255 浏览 34 评论
916浏览 2评论
1165浏览 1评论
1390浏览 1评论
1013浏览 0评论
1460浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-17 06:16 , Processed in 1.069184 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191