51单片机入门点亮LED灯

51单片机C语言版 点亮LED灯

仿真软件 proteus + keil

在这里插入图片描述

单片机c语言基本知识:

sfr:特殊功能寄存器声明
eg: sfr 堆栈名=地址
这里一般不需要自己定义,特殊功能寄存器在reg51.h这个头文件里已经定义好了。
sbit:特殊功能位声明
eg: sbit 变量名=地址名
在给某个引脚取名的时候会用到
bit:位变量声明
例: sfr SCON=0x89;
sbit LED =P0^2; //表示将LED灯接在P0.2引脚上
C51中常用到的一些预处理命令:
#define
#define A P0(注意后面不加分号)
#typedef
typedef unsigned char uint;(此处后面要加分号)
下图为C51的基本数据类型在这里插入图片描述
用typedf是因为有时关键字比较长,因此重新定义。
#ifndef…#endif :条件编译
常用于头文件的定义还有一些程序条件编译
运算符
==测试等于
!=测试不等于
&&逻辑与
||逻辑或
!逻辑非
---------------------------------------------------------------------------------------
点亮LED仿真

keil:

1.新建一个文件夹,打开keil软件,新建一个工程,保存到刚才新建的文件夹中,此处命名为LED,在Atmel中选择自己所用的AT89C51单片机,点击确定;
在这里插入图片描述
2.选择文件新建一张白纸,保存,保存时要将扩展名写成.c的形式,因为这里是要写主函数,此处命名为main.c。双击源组将这张白纸添加到工程里,此时可写代码。
在这里插入图片描述

代码如下:
//实现一个LED灯
#include<reg51.h>    //头文件包含所需的库
//#define  led P1    //定义整个P1IO口寄存器
sbit led1=P1^0;   //sbit (置位)注意此处P应该大写
sbit led2=P1.1;
sbit led3=P1.2;
sbit led4=P1.3;
sbit led5=P1.4;
sbit led6=P1.5;
sbit led7=P1.6;
sbit led8=P1.7;
void main()
{
     while(1)   //设置一个while死循环,让程序永远执行下面代码
    {
   //led1=0xfe;     //1111  1110
   led1=0;     //对每一位进行设置,可设置任意的LED灯
   led2=1;
   led3=0;
   led4=1;
   led5=0;
   led6=1;
   led7=0;
   led8=1;
     }
 }

3.编译成功后,如下图点击,之后选择output,勾选creat HEX file.产生HEX文件。
在这里插入图片描述

proteus:

如下图所示,选择放置器件单片机和LED灯,并连接好电路。
在这里插入图片描述
双击单片机芯片,在program file中添加刚才所产生的HEX文件,添加成功后进行编译。
编译后:
在这里插入图片描述

发布了16 篇原创文章 · 获赞 11 · 访问量 648

猜你喜欢

转载自blog.csdn.net/qq_44981039/article/details/103898313