点灯大师
00_51单片机 - 点灯大师
一、前情提要
软件设备
破解Keil5
复制软件CID
复制激活码
stc-isp
连接开发板,安装驱动程序
ch341ser
二、单片机及开发板介绍
单片机介绍
- 单片机,英文Micro Controller Unit,简称MCU。
- 内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能。
- 单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(例如电机,LED等)的控制。
- 单片机跟计算机相比,单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。
- 但在性能上,与计算机相差甚远,但单片机成本低、体积小、结构简单,在生活和工业控制领域大有所用。
- 同时,学习使用单片机是了解计算机原理与结构的最佳选择。
STC89C52单片机
单片机命名规则
单片机内部拆解
单片机内部结构图
单片机管脚图
单片机最小系统
开发板原理图
- HC6800-ES V2.0.pdf
- (D:MCU-workspace51单片机开发板原理图)
LED模块原理图
三、点亮一个LED灯
LED介绍
- 中文名:发光二极管
- 外文名:Light Emitting Diode
- 简称:LED
- 用途:照明、广告灯、指引灯、屏幕
进制转换
keil新建工程项目
选择AT89C52
添加C语言程序文件
测试 - 编译
#include <REGX52.H>
void main()
{
P2 = 0xFE; //1111 1110
}
在STC-ISP中选择STC89C52
- 修改:有些开发板为STC89C52RC
打开程序代码文件
点击下载/编程
- 如果不行,请重启开发板,进行冷启动。
点亮一个LED灯
代码改进
#include <REGX52.H>
void main()
{
P2 = 0xFE; //1111 1110
while(1)
{
}
}
代码改进or
#include <REGX52.H>
void main()
{
//P2 = 0xFE; //1111 1110
P2 = 0x55; //0101 0101
while(1)
{
}
}
四、LED闪烁
延时计算代码
- 可在STC-ISP中自动生成
- 注意系统频率和8051指令集
代码
#include <REGX52.H>
#include <INTRINS.H>
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2 = 0xFE; //1111 1110
Delay500ms();
P2 = 0xFF; //1111 1110
Delay500ms();
}
}
测试
五、LED流水灯
前提知识
C51数据类型
代码
#include <REGX52.H>
void Delay1ms(unsigned int xms); //@12.000MHz
void main()
{
while(1)
{
P2=0xFE;//1111 1110
Delay1ms(1000);
P2=0xFD;//1111 1101
Delay1ms(1000);
P2=0xFB;//1111 1011
Delay1ms(100);
P2=0xF7;//1111 0111
Delay1ms(100);
P2=0xEF;//1110 1111
Delay1ms(100);
P2=0xDF;//1101 1111
Delay1ms(100);
P2=0xBF;//1011 1111
Delay1ms(100);
P2=0x7F;//0111 1111
Delay1ms(100);
}
}
void Delay1ms(unsigned int xms) //@12.000MHz
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
Comments | NOTHING