一、51单片机介绍
-
内部集成了CPU、ARM、ROM、定时器、中断系统、通讯接口等一系列的电脑常用硬件功能
-
单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备的控制(如电机、LED等)
-
单片机算是一个袖珍版计算机,但性能上相差甚远。成本低,结构简单,体积小。
-
学习使用单片机是了解计算机原理与结构的最佳选择。
1、STC89C52单片机
位数:八位
RAM:512字节 内存条,相当于运存
ROM:8k(Flash) 硬盘,相当于内存
工作频率:12MHz(本开发板使用)
2、数电基础(待补充)
进制转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7hw7tkC9-1666702137381)(C:\Users\大江\AppData\Roaming\Typora\typora-user-images\image-20221025202826372.png)]
二、点亮一个LED
LED介绍
LED原理图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6MWw7RPC-1666702137382)(C:\Users\大江\AppData\Roaming\Typora\typora-user-images\image-20221025200451931.png)]
CPU控制 寄存器(八个分为一组),每个通过驱动器控制IO口输出高低电平。进而控制硬件电路。
1、点亮一个LED
void main()
{
P2=0xFE;//P2=1111 1110;
while(1){//在这里不断兜圈子,相当于停下来了
}
}
调用P2这组寄存器前,需要在主函数前添加头文件。
2、LED闪烁
void main()
{
/*P2=0xFE;
P2=0xFF;*/
//单片机的执行频率单位是MHz,执行速度非常快,这样就达不到闪烁的目的,肉眼看不清。
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
//利用STC-ISP软件延时器生成延时代码
while(1)
{
P2=0xfe;
Delay500ms();
P2=0XFF;
Delay500ms();
}
}
3、LED流水灯
void main()
{
while(1)
{
P2=0xFE;
Delay500ms();
P2=0xFD;
Delay500ms();
P2=0xFB;
Delay500ms();
P2=0xF7;
Delay500ms();
P2=0xef;
Delay500ms();
P2=0xdf;
Delay500ms();
P2=0xbf;
Delay500ms();
P2=0x7f;
Delay500ms();
}
}
//自己封装好函数,可以写入参数来表示想要时间的延迟
void Delay1ms(unsigned int xms) //@11.0592MHz
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
xms--;
}
}
4、流水灯PLUS
void main()
{
while(1)
{
P2=0xFE;
Delay1ms(1000);
P2=0xFD;
Delay1ms(1000);
P2=0xFB;
Delay1ms(1000);
P2=0xF7;
Delay1ms(100);
P2=0xef;
Delay1ms(100);
P2=0xdf;
Delay1ms(100);
P2=0xbf;
Delay1ms(100);
P2=0x7f;
Delay1ms(100);
}
}