第一点:单片机的三大原理
FLASH程序存储器
RAM数据存储空间除
SFR:特殊功能寄存器
总结: 单片机上电运行,读取FLASH里面的程序,进行逻辑运算和算术运算,得到一些数据,将这些数据写入到特殊功能寄存器,实现单片机的控制。
第二点:点亮LED
第一步:单片机最小系统
打开Proteus
建一个工程(不会的上网找攻略吧)
这次用8051
#include <reg51.h>
void delay();
sbit LED = P0^0;
void main()
{
while(1){
LED = 1;
delay();
LED = 0;
delay();
}
}
void delay(){
int i;
for(i=0;i<1000;i++ );
}
第三点:点亮流水灯
#小点:如何产生一秒或者接近一秒的延时呢
可以知道单片机在12MHZ的主频时,执行一条指令是一微秒
所以:
void delay(){
unsigned int i,j,k;
for(i=0;i<167;i++);
for(j=0;j<133;j++);
for(k=0;k<14;k++);
//公式: ((((N1*3+1)+2)*N2+1)+2)*N1+1
//又因为i,j,k 都是正整数而且不超过255、得167,133,14
}
#include <reg51.h>
void main()
{
while(1){
P2 = 0x00; //全部点亮
}
}
#include <reg51.h>
void delay(){
unsigned int i,j,k;
for(i=0;i<167;i++);
for(j=0;j<133;j++);
for(k=0;k<14;k++);
//公式: ((((N1*3+1)+2)*N2+1)+2)*N1+1
//又因为i,j,k 都是正整数而且不超过255、得167,133,14
}
void main()
{
while(1){
// P2 = 0x00; //全部点亮
// P2 = 0x01;
// delay();
// P2 = 0x01<<1;
// delay();
// P2 = 0x01<<2;
// delay();
// P2 = 0x01<<3;
// delay();
// P2 = 0x01<<4;
// delay();
// P2 = 0x01<<5;
// delay();
// P2 = 0x01<<6;
// delay();
// P2 = 0x01<<7;
unsigned int x;
for(x=0;x<8;x++){
P2 = 0x01<<x;
delay();
}
}
}
安装好 CH340 驱动后,我们就可以下载程序了,在下载程序前先确认下开发板上的 USB 转 TTL 串口模块上的 P5 短接片是否短接(P31T 与 URXD 连接,P30R 与 UTXD 连接)