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

news2024/10/7 12:25:18

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

  • 一、使用keil新建工程
  • 二、项目设置
    • 1. 点击魔术棒,钩选Output-Create Hex File
    • 2. 设置仿真器
  • 三、编写代码
    • 1. 尝试编译代码
    • 2. 点亮LED的代码
    • 3. GPIO引脚介绍
    • 4. GPIO内部结构
      • P0端口:
      • P1 端口
  • 四、软件仿真

在这里插入图片描述

一、使用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)填写晶振频率
在这里插入图片描述
点击菜单仿真按钮即可运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/46820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

aws cloudformation 理解自定义资源的使用

资料 AWS::CloudFormation::CustomResourcecfn-response module 自定义资源的逻辑 cloudformation只能对aws service进行部署和配置,但是用户可能需要使用第三方产品,此时需要通过自定义资源将其纳入到cloudformation的管理中。通过编写自定义逻辑&am…

为什么我们提供了新的公共镜像库

众所周知,建木在项目初期就已经完成了“自举”,就是使用建木完成自身的全部CI/CD/CO等自动化流程。 另外,由于建木本身和官方支持的节点都是打包为镜像发布到Docker Hub上,结果最近半年我们频繁碰到如下场景。 场景一 “CI服务的…

flink程序执行管理-1.13

1. 版本说明 本文档内容基于 flink-1.13.x,其他版本的整理,请查看本人博客的 flink 专栏其他文章。 2. 执行配置 StreamExecutionEnvironment 包含 ExecutionConfig 对象,该对象允许程序指定运行时的配置值。改变默认值可以影响所有的任务…

【Nginx 原理】进程模型、HTTP 连接建立和请求处理过程、高性能、高并发、事件处理模型、模块化体系结构

Nginx 原理 Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx进程模型 Nginx 是一个多进程的模型,主要分为一个 Master 进程、多个 Worker 进程。 Master 进程: 管理 Worker 进程。 对外…

TKE 超级节点,Serverless 落地的最佳形态

陈冰心,腾讯云产品经理,负责超级节点迭代与客户拓展,专注于 TKE Serverless 产品演进。 背景 让人又爱又恨的 Serverless Serverless 炙手可热,被称为云原生未来发展的方向。信通院报告显示:在核心业务中使用 Server…

[oeasy]python0022_ python虚拟机_反编译_cpu架构_二进制字节码_汇编语言

程序本质 回忆上次内容 ​python3​​ 的程序是一个 5.3M 的可执行文件 我们通过which命令找到这个python3.8的位置将这个python3.8复制到我们的用户目录下这个文件还是能够执行的 将这个文件转化为字节形态 确实可以转化但是这个文件我们看不懂啊!!&a…

【应用多元统计分析】上机四五——主成分分析因子分析

目录 一、主成分分析 1.princomp命令 2.screeplot命令 3.【例7.3.3】对【例6.3.3】中的数据从相关矩阵出发进行主成分分析 ​编辑(1)代码 (2)碎石图 (3)散点图 二、因子分析 1.载荷矩阵求解 &…

考CISAW的N个理由!

随着信息科技的飞速发展,互联网的普及,面对信息安全的严峻局势,网络信息安全显得尤为重要,同时近些年来,国家也相继出台一些政策,并推出一些国家认证的资格证书,CISAW认证就是专门针对信息安全保…

深入理解java虚拟机:虚拟机字节码执行引擎(3)

文章目录4. 基于栈的字节码解释执行引擎4.1 解释执行4.2 基于栈的指令集与基于寄存器的指令集4.3 基于栈的解释器执行过程4. 基于栈的字节码解释执行引擎 关于虚拟机是如何调用方法已经讲解完毕,从本节开始,我们来探讨虚拟机是如何执行方法里面的字节码…

【千瓜行研】2022年11.11小红书保健品行业数据研报

2022年双十一营销盛会已落下帷幕,小红书平台保健品行业流量连续3年持续走高,热度破亿! 本期「千瓜行研」重磅推出《2022年11.11保健品行业数据研报(小红书平台)》(文末附完整版下载)&#xff0c…

实再高度为设备高度的100%布局

要实DIV的高度为设备高度的100%&#xff0c;在设置div的高度时需要使用vh单位。效果如下&#xff1a; html代码如下&#xff1a; ------------------------------------------------------------------- <!doctype html> <html> <head> <meta charset&qu…

7个实用有效的营销策略帮助推动跨境电商DTC品牌业务

关键词&#xff1a;DTC品牌、跨境电商 总的来说&#xff0c;直接面向消费者 (DTC) 是消费品中增长最快的渠道。DTC 带来了明显的好处&#xff0c;例如更高的毛利率&#xff0c;能够在受控的品牌自有空间中试用新产品&#xff0c;当然&#xff0c;还可以为您的客户提供他们可能期…

【语音编码】基于matlab ADPCM编解码(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

修改nginx返回的默认的server信息

文章目录1、修改请求响应头中的server信息2、修改nginx返回的默认页面中的server信息通过修改nginx源码来修改nginx返回的默认的server信息。 1、修改请求响应头中的server信息 修改前的代码和响应头中的server信息&#xff1a; 代码文件路径&#xff1a;nginx-1.21.4\src\htt…

APS排程软件与某一知名APS软件整体对比

APS排程软件作为高级计划与排程系统。主要是解决小批量、多品种的复杂生产要求。客户的要求交期越来越准。由于成本不断攀升&#xff0c;所以高产出和低成本也是重要的考量因素。 下面我们就安达发APS软件与某一知名APS做一下整体对比&#xff1a; 1.功能实用性 安达发APS排程…

5G无线技术基础自学系列 | MIMO原理

素材来源&#xff1a;《5G无线网络规划与优化》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 对于5G TDD系统&#xff0c; MIMO大幅提…

新手入门:Web安全测试大盘点

随着互联网时代的蓬勃发展&#xff0c;基于Web环境下的应用系统、应用软件也得到了越来越广泛的使用。 目前&#xff0c;很多企业的业务发展都依赖于互联网&#xff0c;比如&#xff0c;网上银行、网络购物、网络游戏等。但&#xff0c;由于很多恶意攻击者想通过截获他人信息去…

经典文献阅读之--PON

0. 简介 作为Transformer在机器视觉领域的爆火&#xff0c;在自动驾驶领域目前很多工作都集中在前视转鸟瞰图的方法中&#xff0c;这里我们来讲2020年一篇经典的论文《Predicting Semantic Map Representations from Images using Pyramid Occupancy Networks》&#xff0c;其…

手把手教你写嵌入式Linux中的Makefile(一)

一、Makefile的引入及规则 使用keil, mdk,avr等工具开发程序时点击鼠标就可以编译了&#xff0c;它的内部机制是什么&#xff1f;它怎么组织管理程序&#xff1f;怎么决定编译哪一个文件&#xff1f; 答&#xff1a;实际上windows工具管理程序的内部机制&#xff0c;也是Make…

【c++基础】第一章 C到C++过度阶段

第一章 C到C过度阶段第一个C程序&#xff1a;使用namespace名字using关键字bool类型string字符串结构体struct结构体成员函数指针的获取方式const关键字&#xff1a;内联函数函数缺省值&#xff1a;函数重载&#xff1a;引用&#xff08;quote)开辟空间第一个C程序&#xff1a;…