51单片机学习笔记4 新建工程及点亮LED实战

Posted 编程圈子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机学习笔记4 新建工程及点亮LED实战相关的知识,希望对你有一定的参考价值。

51单片机学习笔记4 新建工程及点亮LED实战


一、使用keil新建工程

点击菜单: Project-Create New Project

这里选择AT89C52芯片:

提示是否使用8051启动代码,选择否:

点击File-New, 创建新文件,这里命名为main.c

在Source Group1上右键,选择刚创建的 main.c 文件。

二、项目设置

1. 点击魔术棒,钩选Output-Create Hex File

2. 设置仿真器

点击Debug,选择Use PZ51Tracker Driver, 钩选 Run to main()

点击Settings,如下图填写选项:

点击Utilities,选择PZ51Tracker Driver仿真器。

三、编写代码

1. 尝试编译代码

// 包含8051头文件
#include "reg52.h"
void main()
	while(1)
	

这里写一个死循环,然后就可以编译代码,生成Hex文件。

2. 点亮LED的代码

#include "reg52.h"

sbit LED1 = P2^0;
sbit LED2 = P2^1;
void delay_10us(int ten_us)
 	while(ten_us--);

void main()
    while(1)
		LED1=0;
		delay_10us(1000*1000);
		LED1=1;
		delay_10us(1000*1000);
		LED2=0;
		delay_10us(1000*1000);
		LED2=1;
		delay_10us(1000*1000);
	


sbit 在前一节说过,是8051定义的位类型, LED1指向P2的0位,LED2指定P2的1位。
delay_10us是模拟延迟。
编译后使用前文方法烧写到开发板即可运行。

3. GPIO引脚介绍

GPIO是General purpose input output的简称,中文为通用输入输出端口。
51单片机的引脚大致分为:

  1. 电源引脚
  2. 晶振引脚
  3. 复位引脚
  4. 下载引脚
  5. GPIO引脚

    图上P1.n, P0.n, P2.n都是GPIO引脚,共4*8=32个。

4. GPIO内部结构

P0端口:

  • 读锁存器接三态门(高电平、低电平、高阻态),三态门作为输入缓冲器。
  • D触发器构成锁存器,用来保持一位二进制数据, D端是数据输入端,CLK是时序控制信号,Q是锁存器输出端,!Q是反向输出端。
  • 多路开关,确定端口作为输入输出使用,还是作为地址/数据使用;对于8051的I/O端口作为地址/数据模式一般是用不到的。
  • VT1、VT2 场效应管,组成推拉式结构,两个不能同时导通,是MOS管的输出电路。

P0口作为I/O输出时,数据流向: 内部总线 => 锁存器 => !Q => 多路开关 => V2栅极 => V2 漏极 。 这时漏极开路,外部需要上拉电阻
P0口作为I/O输入时,内部读引脚是打开的, 数据流向:通过输入缓冲器到达内部总线。

P1 端口


P1 内部有上拉电阻(比较弱)。

其它端口不再详细介绍,要注意的是P3端口有第二功能。

四、软件仿真

点击魔法棒属性设置,选择Debug、Use Simulator

在Target Xtal(Mhz)填写晶振频率

点击菜单仿真按钮即可运行。

以上是关于51单片机学习笔记4 新建工程及点亮LED实战的主要内容,如果未能解决你的问题,请参考以下文章

使用Keil4新建一个51单片机工程,将第一个LED灯点亮。

STM32学习笔记——点亮一个LED

51单片机学习笔记2 -- 单灯控制及流水灯

51单片机学习笔记2 -- 单灯控制及流水灯

proteus学习笔记一:点亮LED

proteus学习笔记一:点亮LED