微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 新手求解,关于郭天祥单片机第二课控制二极管闪烁的程序

新手求解,关于郭天祥单片机第二课控制二极管闪烁的程序

时间:10-02 整理:3721RD 点击:
下面上图

这个为什么定义两次a=50000


谁能给我讲讲,这个程序还有他没有用大括号有点看不懂

这个50000的赋值是一个软件延时。是为了让LED达到足够的亮度。

因为第一个while(a--)把a的值减到了0,需要再给a赋成50000,然后第二个while语句再减,while(a--)是一个延时的作用

while(a--);只是为了把a减少到零起到一个延时作用是吧,第一个while是让他亮了之后延时,第二个while是让它灭,都持续一段时间啊,呵呵,懂了,和C语言不太一样,以前做C时后面都加{},运行{}里面的程序,

懂了,不知道后面讲没有将同时点亮多个二极管,那样程序应该怎样编,他之前讲的有个用16进制点亮的,那样点亮两个不冲突吗?不知道我这样说你听懂听不懂

如果用这个方法怎么点亮多个,


0xfe是用十六进制表达的  0xfe=1111 1110  第一个点亮  同理给任意位赋值0可以点亮任意一个.
郭天祥是视频我也在看  我学到串口通信了  一起加油~

谢谢,

可以啊。因为P1口的8个口线是分别独立的,而两位16进制数刚好是8位2进制位。如果LED是共阳极接法的话,直接输出0x00(P1=0x00;),所有的灯都会同时亮起来。

控制单个的话延时就行了,要是控制流水灯什么的,循环移位,你写的是基本的高低电平加延时,提现闪的感觉

是起到了延时的作用,while(a--)后面加了一个分号,是一个语句,只要a不等于0,一直执行词语句,相当于等待,单片机“什么也没有干”,直到a自减到0,跳出此语句。建议小编还是要打好c语言基础。

这个我能看懂,我就是不会用16进制点亮两个,点亮两个不就冲突了吗?不知道用什么方法解答,嗯,也刚看

嗯,谢谢,C语言学的确实不怎么样,学的不精,只是为了应付二级考试

比如你要点亮前面两个,那么这两个就是低电平 1111 1100=0xfc   输入P0=0xfc  两个灯同时亮  不冲突的

呵呵,对了,刚才脑子糊涂了,可以控制多个的谢谢

让p0-0延时

最好的办法是用位运算,如果共阳接法,可以用P0 &=~(1《 N),N表示任意一位的灯。

我也是在学习他的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top