一、前言
最近在整理资料的时候,偶然发现了以前大学学习51单片机买的开发板附带的学习资料,开发板早已不知去向,只剩下一些代码,刚好最近也在用Proteus仿真,所幸在用仿真重温一下51单片机。
二、51最小系统
单片机最小系统是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般包括单片机芯片、晶振电路、复位电路。
复位电路:单片机复位电路就好比电脑的重启,当电脑在使用中出现死机,按下重启电脑程序从头开始执行。基本工作原理是通过一个延时元件(通常是电容)和触发电路,将单片机的复位引脚(RESET)保持在高电平状态,从而使单片机进入复位状态。一旦复位条件满足解除,复位电路会将复位引脚的电平变为低电平,使得单片机退出复位状态,开始正常工作。
晶振电路:晶振是给单片机提供工作信号脉冲的,这个脉冲就是单片机的工作速度。例如,12M晶振单片机工作速度就是每秒12M。晶振与单片机的XTAL0脚和脚XTAL1构成的振荡电路中会产生谐波,这个波对电路的影响不大,但会降低电路时钟振荡器的稳定性。为了电路的稳定性起见, ATMEL公司(89C51系列厂商)建议在晶振的两引脚处接入两个10pf-50pf的瓷片电容,并接地来削减谐波对电路稳定性的影响,所以晶振电路的电容在10pf-50pf之间都可以。
三、点亮第一个LED
仿真图
仿真程序
这段程序是用来控制单片机上的一个LED灯,在单片机上将LED灯接在P2.0端口上,并通过程序控制LED灯的亮灭。
其中,sbit led=P2^0;:这行代码使用 sbit 关键字来定义了一个名为 led 的位变量,它对应于单片机的 P2.0 端口。P2^0 表示将 P2 端口的第0位(即 P2.0)与 led 关联起来,这样我们就可以通过对 led 变量的操作来控制 P2.0 端口的状态。
/**************************************************************************************
* 点亮第一个LED实验 *
实现现象:下载程序后D1指示灯点亮
注意事项:无
***************************************************************************************/
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
sbit led=P2^0; //将单片机的P2.0端口定义为led
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
while(1)
{
led=0;<