如图:实际参考实验板上的启动电流是3ma到10ma是比较正常的亮,导通的电流不要超过20ma。用一个1K或者300的排阻就可以了。一般的发光二极管的导通压降为1.7到2.1V。VCC=5V,经验者用5mA去导通,(5V-1.7)/5mA=660 的排阻。
另外:点这发光二极管的电流为透明的是20mA.有颜色的是10mA.当输入这么大的电流是,发光二极管亮度正常.不会发热.
附自己经验:用排阻的话,注意有一个公共端,做板的时候注意一下,不要接反了。
实验板上:正向接VCC=5V,给它一个低电平它就导通了亮了。
程序:
- #include<reg52.h>
- sbit LED1=P1^0;
- void main()
- {
- while(1)
- {
- int I=5000;
- LED1=~LED1;
- while(i--);
- }
- }
还有几个小程序:
1、 a=_crol_(a,1); //将a变量循环左移一位
2、 P1=~a; //按位取反
3、 a=a<<1; //左移一位让多一个灯点亮
- /*******************************************************************/
- /* TX-1C单片机实验板实验例程 */
- /* 2007年8月第二期培训班课后习题详解 */
- /* 作者:郭天祥 */
- /* 邮箱:txmcu@163.com */
- /* 网站:www.txmcu.com(天祥电子) */
- /*【版权】Copyright(C)天祥电子 www.txmcu.com All Rights Reserved */
- /*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */
- /* */
- /*******************************************************************/
- /*
- 8个发光管来回流动,
- 每个管亮100ms,流动时让蜂鸣器发出"滴滴"声。
- */
- /*********************************************************/
- #include<reg52.h> //52单片机头文件
- #include <intrins.h> //包含有左右循环移位子函数的库
- #define uint unsigned int //宏定义
- #define uchar unsigned char //宏定义
- sbit beep=P2^3;
- void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
- { //delay(500);大约延时500ms.
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void main() //主函数
- {
- uchar a,i;
- while(1) //大循环
- {
- a=0xfe; //赋初值
- for(i=0;i<8;i++) //左移
- {
- P1=a; //点亮小灯
- beep=0; //开启蜂鸣器
- delay(50); //延时50毫秒
- beep=1; //关闭蜂鸣器
- delay(50); //再延时50毫秒
- a=_crol_(a,1); //将a变量循环左移一位
- }
- a=0x7f;
- for(i=0;i<8;i++) //右移
- {
- P1=a; //点亮小灯
- beep=0; //开启蜂鸣器
- delay(50); //延时50毫秒
- beep=1; //关闭蜂鸣器
- delay(50); //再延时50毫秒
- a=_cror_(a,1); //将a变量循环右移一位
- }
- }
- }
- /*******************************************************************/
- /* TX-1C单片机实验板实验例程 */
- /* 2007年8月第二期培训班课后习题详解 */
- /* 作者:郭天祥 */
- /* 邮箱:txmcu@163.com */
- /* 网站:www.txmcu.com(天祥电子) */
- /*【版权】Copyright(C)天祥电子 www.txmcu.com All Rights Reserved */
- /*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */
- /* */
- /*******************************************************************/
- /*
- 用8个发光管演示出8位二进制数累加过程。
- */
- /*********************************************************/
- #include<reg52.h> //52单片机头文件
- #include <intrins.h> //包含有左右循环移位子函数的库
- #define uint unsigned int //宏定义
- #define uchar unsigned char //宏定义
- void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
- { //delay(500);大约延时500ms.
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void main() //主函数
- {
- uchar a;
- while(1) //大循环
- {
- a++;
- P1=~a;
- delay(200);
- }
- }
|