单片机入门到精通实战系列一 (点亮LED二)
1、这是stc90的电路图。还有stc15f2k60s2的电路图(较新的,可以看看,也可以用这单片机作为你的第一块启蒙板。还有IAR在线仿真系列,stc系列),新版本的stc15的系统,你会发现缺少时钟电路(内部集成了)等,而且VCC和GND的引脚也变了。所以使用的时候注意引脚区别(stc新板本引脚有区别)。





2、可以焊接一个这样的电路板去学习(stc15芯片),stc15的芯片的引脚可以连接普中开发板,也可以自己焊接外围电路。



3、这一节详解led灯的外围电路。用proteus绘制一个模拟仿真的电路图。即最小电路外加led灯。led灯的相关参数是10ma电流,1.5V电压,proteus仿真,分压电阻(及P0口接VCC那个电阻如果分压超过3.5V的话,led排灯是不会亮 的,而且电流小于10ma也是不会亮的,现实生活中的元器件会有一定的误差)。很多电路使用P0口时需要外接上拉电阻(相关原理会在单片机原理中解释)。P1,P2,P3则不需要。



4、灌电流和拉电流这么理解:当负载(这里指led,led是二极管,二极管的特性,只允许电流单一流过)的输入端外接VCC(+5v)而单片机的引脚置为低电平时,此时构成的电路,属于灌电流(可以理解为外部电压高,往单片机内部
灌)(图片上P0端口)
拉电流:单片机内部置高电平,外部接地,此时构成电路,属于拉电流。(图片P3端口),实际情况,很少用高电平驱动(这里p3口的led灯用作演示,实际 电路不这么干),因为P1,P2,P3在电流原件下,驱动能力较弱(当然,这也是有解决方法的)。



5、编写程序实现led灯闪灭。用P1.0接一个开关,用开关控制P0端口的led灯的亮灭。
/**
关于led灯的灌电流和拉电流
*/
//#include <reg52.h> 大家可以比较一下这两个头文件的区别
#include <STC89C5xRC.H>
main(){
P10=0; //初始化P1.0口为低电压
P3=0xff; //初始化P3口(默认都为高电平)
while(1)
{
if(P10==1) //判断按键
{
P00=1; //因为头文件有此定义,才可以直接用P00表示P0.0端口
P01=0;
P02=1;
P03=0;
P04=1;
P05=0;
P06=1;
P07=0;
}
//也可以写成十六进制的
//P0=0x55; //端口反向渡读,从P07到P00,二进制转十六进制数 0101010 //1转化为0x55。
if(P10==0)
{
P0=0xaa;
}
//也可以写二进制
//
/*
P00=0;
P01=1;
P02=0;
P03=1;
P04=0;
P05=1;
P06=0;
P07=1;
*/
}
}

6、视频演示代码。