完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
***it ADDR0 = P1^0; ***it ADDR1 = P1^1; ***it ADDR2 = P1^2; ***it ADDR3 = P1^3; ***it ENLED = P1^4; void main() { unsigned char cnt = 0; unsigned int i=0; ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; while(1) { P0 = ~(0x01 < for(i=0; i<30000; i++); cnt++; if(cnt>=8) { cnt = 0; } } } 注释:此板子是P0口控制LED 问题一、加粗部分是什么含义? 问题二、怎样实现LED向左再向右循环移动? |
|
相关推荐
11个回答
|
|
希望有大神回复一下,谢谢!
|
|
|
|
|
|
|
|
楼主可以悬赏求助啊,问题会解决的更快,更深入
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
楼主问题解决了没?
|
|
|
|
***it ADDR0 = P1^0;
***it ADDR1 = P1^1; ***it ADDR2 = P1^2; ***it ADDR3 = P1^3; ***it ENLED = P1^4; 是给寄存器定义变量名 便于写程序 ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; 是给给寄存器赋初值 cnt=0 p0=1110 cnt=1 p0=1101 cnt=2 p0=1011 cnt=3 p0=0111 不是就四位吗 那while(1) { P0 = ~(0x01 < for(i=0; i<30000; i++); cnt++; if(cnt>=4) { cnt --; } } } 不就行了吗 |
|
|
|
一个流水灯的程序,你网上谁便一艘就有,手机不方便搜了,自己搜吧,你先弄明白往哪移,移动几位,还有你这样移的话,每次都要从0x01开始移动不好!
|
|
|
|
在while循环中,右移完成后,再写个左移函数就行了啊注意中间的延时
|
|
|
|
前面那部分加粗是对引脚名定义,后面那部分就是赋值
|
|
|
|
只有小组成员才能发言,加入小组>>
695 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
655浏览 9评论
651浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
783浏览 6评论
630浏览 5评论
670浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 02:16 , Processed in 1.277039 second(s), Total 101, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号