STC15F104E

这就是我见过的最小的单片机,只有八个脚,如下图:

这小单片机只有芯片大小,但是该有的功能还是有的,可以用C语言编程,不需要外接晶振就能实现准确的时钟.

那么这就是它的最小系统,其实就是在VCC和GND之间加了5V,然后加了两个电容滤波,无需晶振.

然后就可以实现一些简单的功能,比如串口的收发,IO口的控制,PWM输出等,甚至可以通过电容充电时间来实现ADC,也可以模拟各种通信协议来实现传感器的扩展,比如I2C模拟等.

下面是对PWM的模拟,非常简单. 程序如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

#include <REG2051.H>
void delay (unsigned char h)
{
int i;
while(h--)for(i=0;i<148;i++);
}
int liangdu=0,f=1;
void main(void)
{
int i;
for(i=0;i<255;i++)
{
if(i<liangdu)P3=0XFF;else P3=0x00;
delay(500);
}
liangdu+=f;
if(liangdu==255|liangdu==0)f=-f;
}