完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
注意连接A连接P0.5,B连接P0.4,C连接P0.3,D连接P0.2,
步进电机提高显示,步进角5.625,意思是一个脉冲走的角度,没算减速比64:1 视频里把减速器拿下去了,然后88=64个脉冲正好一周,但是下边是算上减速比了 所以for循环里乘以了64/ #include #define uint unsigned int #define uchar unsigned char ***it dula=P2^6; uchar code step_table[8]={ 0xdc,0xcc,0xec,0xe4,0xf4,0xf0,0xf8,0xd8}; uchar code bujinz[]={0xdc,0xcc,0xec,0xe4,0xf4,0xf0,0xf8,0xd8}; uchar code bujinf[]={0xd8,0xf8,0xf0,0xf4,0xe4,0xec,0xcc3,0xdc}; //uchar code step_table[]={ // 0x01, 0x03, 0x02, 0x06, 0x04, 0x0c, 0x08, 0x09}; 00000001 00000010 00000110 00000100 //11111110 11111101 11111001 11111011 //void delay (uint t) //{ // uint x,y; // for(x=0;x //} void delay (uint t) { while(t–); } void main() { uint i,j; P0=00; //关闭数码管显示 delay(500); dula=1; delay(500); dula=0; while(1) { for(j=8*64;j>0;j--) { for(i=0;i<8;i++) //发现i<9,10,20都能转8最好 这里<=可用 { P0=step_table; delay(200); } } for(j=8*64;j>0;j--) { for(i=8;i>0;i--) //这里当i定义成uint 时i>=0不行 因为i=0后再减1就是255table[255]不转了 { P0=step_table;//解决方法就是把uint改为 int i 或者定义uint 正反分开 都是加 delay(100); //8拍少点也可以转 加点其他也可以 但看加多少次没用的 0xff } } while(1); } |
|
|
|
只有小组成员才能发言,加入小组>>
2443 浏览 0 评论
9131 浏览 4 评论
36808 浏览 19 评论
5033 浏览 0 评论
24793 浏览 34 评论
1544浏览 2评论
1763浏览 1评论
2212浏览 1评论
1569浏览 0评论
542浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 11:56 , Processed in 1.980142 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号