点亮一个小灯并使其闪烁 在新建过一个工程后,要学会去看开发板原理图,观察怎样才能点亮一个小灯。
流程如下:
1. 要找到led电路图所在位置 2.观察怎样点亮一个led (1) 首先需要使三极管导通(此处三极管相当于一个总开关), 由于三极管发射极已有5V电压,若要使其导通只需基极的LEDS6引脚是低电平。 可以看到LEDS6引脚是受芯片74HC138控制的,然后去看这个芯片的数据手册 可知若要使LEDS6是低电平则E1,E2,E3引脚需是L,L,H, 结合电路图可知这三个引脚已经预置好。而A0,A1,A2引脚应该设置为L,H,H, 由图可知P20,P21,P22分别对应A0,A1,A2.。再看单片机电路图。 可知只需使P20=0,P21=1,P22=1即可。 (2) 假如点亮最右边LED,只需使DB7为低电平。 DB7引脚受74HC245控制,再看74HC245芯片的数据手册: 若要使DB7为低电平,则OE引脚(ENLED引脚)应设置为低电平,输入引脚An(DB n引脚)设置为低电平。 再看单片机电路图 可知应该设置P1.1引脚(ENLED 引脚)为低电平,P0.7引脚为低电平。 然后开始写程序。 2. 程序: #include<STC12C5A60S2.H> sbitENLED = P1^1; //定义ENLED表示P1.1引脚 voidmain() { ENLED = 0; P20 = 0; P21 = 1; P22 = 1; P07 = 0; while(1); } 3. 使小灯闪烁 要让小灯闪烁需要用到延时,在原先程序中加一个非精确延时就行了。 程序如下: #include<STC12C5A60S2.H> sbitENLED = P1^1; voidmain() { unsigned int i = 0; ENLED= 0; P20 = 0; P21 = 1; P22 = 1; while(1) { P07 = 0; //LED亮 for(i=0;i<60000;i++); //延时 P07 = 1; //LED灭 for(i=0;i<60000;i++); //延时 } }
|