2369353531 发表于 2018-6-20 08:47:04

3- 从左到右的流水灯《单片机C语言程序设计实训100例—基于8051+Proteus仿真》



*/#include<reg51.h>#include<intrins.h>//移动函数头文件#define uchar unsigned char#define uint unsigned int//延时void DelayMS(uint x){      uchar i;      while(x--)      {                for(i=0;i<120;i++);      }}//主程序void main(){      P0=0xfe;      while(1)      {                P0=_crol_(P0,1); //P0的值向左循环移动,_crol_左移函数                DelayMS(150);      }}

苏州装配工 发表于 2018-6-20 08:53:11

是不是外接个上拉会更好

2369353531 发表于 2018-6-20 08:56:59

苏州装配工 发表于 2018-6-20 08:53
是不是外接个上拉会更好

P0是开漏输出,接上拉好些:lol谢谢提醒

DianGongN 发表于 2018-6-20 09:57:28

驱动led没有必要接上拉电阻。
开漏输出关断led没有问题。

受不了了 发表于 2018-6-20 11:15:09

限流电阻太小

2369353531 发表于 2018-6-20 12:06:54

受不了了 发表于 2018-6-20 11:15
限流电阻太小

基本差不多二极管压降一伏多,允许电流二十毫安,算下基本两百多电阻

受不了了 发表于 2018-6-20 12:42:40

2369353531 发表于 2018-6-20 12:06
基本差不多二极管压降一伏多,允许电流二十毫安,算下基本两百多电阻

5毫安就能很亮了,所以我从来不让发光二极管电流太大,这又不是照明用,哪怕高速光耦136137之类需要稍大点的电流才能保证速度,我也就给10毫安,关键是你这是灌电流,8个灯加起来160毫安,你去看51的参数呢

2369353531 发表于 2018-6-20 13:06:45

受不了了 发表于 2018-6-20 12:42
5毫安就能很亮了,所以我从来不让发光二极管电流太大,这又不是照明用,哪怕高速光耦136137之类需要稍大 ...

确实,用三极管来驱动会好些,多谢

苏州装配工 发表于 2018-6-20 14:12:28

受不了了 发表于 2018-6-20 12:42
5毫安就能很亮了,所以我从来不让发光二极管电流太大,这又不是照明用,哪怕高速光耦136137之类需要稍大 ...

所以用灌电流

受不了了 发表于 2018-6-20 15:40:41

苏州装配工 发表于 2018-6-20 14:12
所以用灌电流

灌不动的
页: [1] 2
查看完整版本: 3- 从左到右的流水灯《单片机C语言程序设计实训100例—基于8051+Proteus仿真》