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

news/2024/3/29 5:35:34/文章来源:https://blog.csdn.net/xundh/article/details/128009420

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.luyixian.cn/news_show_38476.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[附源码]SSM计算机毕业设计校园爱心支愿管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

台积电跪舔美国,日本却醒悟了而选择独立发展芯片产业

近期台积电大举包机10架将精英人才和设备转往美国引发争议,然而这个时候日本却选择了独立发展芯片产业的道路,摆脱美国的限制,显然日本清醒地认识到依赖美国不会有好结果。台积电之前还在左右摇摆,希望既能继续获得美国芯片的订单…

字符串压缩(一)之ZSTD

一、zstd压缩与解压 ZSTD_compress属于ZSTD的Simple API范畴,只有压缩级别可以设置。 ZSTD_compress函数原型如下: size_t ZSTD_compress(void* dst, size_t dstCapacity, const void* src, size_t srcSize, int compressionLevel) ZSTD_decompress函数原…

全网首发克莱斯勒东南大捷龙jeep道奇DIY数码碟盒增加USB和蓝牙播放音乐功能使用原车接口无损改装

文章目录前言碟盒功能1、设计指标3、外观设计4、PCB设计5、程序设计6、调试7、大捷龙车机尾插接口定义公头东南大捷龙车机白色插头模块与白色插头连接方法8、安装方法9、 使用方法9.1 CD车机按钮功能定义11、 联系我前言 ​ 之前写过四篇关于车机增加音频输入的方法。 1、07宝…

水电站下泄生态流量监控解决方案-智能监测生态流量遥测终端-水电站流量监测站

平升电子水电站下泄生态流量监控解决方案-智能监测生态流量遥测终端-水电站流量监测站是一款集人机交互、视频叠加、4G路由、数据采集、逻辑运算与远程传输功能于一体的多媒体智能终端设备。 此款产品为水电站生态流量监测项目的专用产品,便于监管单位及时掌握水电…

农村城镇面板数据集:地级市人均消费与支出2012-2019各省农村数据2013-2019

1、2002-2019年地级市人均消费与支出数据 1、数据来源:wind 2、时间跨度:2012-2019 3、区域范围:287个地级市 4、指标说明: 包含以下四个指标:人均可支配收入(农村)、人均可支配收入&#…

Python中的dump() 、load()和dumps()、loads()使用及示例

Python中的dump() 、load()和dumps()、loads() 结论: 1.不加s的标识对json文件的读写,将内存中值读取写入到json后缀文件,或者将json后缀文件中内容读取到内存 2.加了s的主要是字符串类型和其他数据类型的互转 JSON(JavaScript Object No…

如何用R语言在机器学习中建立集成模型?

介绍 在本文中,我将向您介绍集成建模的基础知识。 另外,为了向您提供有关集成建模的实践经验,我们将使用R进行集成。最近我们被客户要求撰写关于集成模型的研究报告,包括一些图形和统计输出。 1.什么是集成? 通常&am…

初始数据结构

目录 1. 集合的框架 集合框架的重要性 数据结构的介绍 算法的介绍 容器背后对应的数据结构 2. 时间复杂度和空间复杂度 算法效率 时间复杂度 时间复杂度的概念 大O的渐进表示法 常见的时间复杂度的计算 空间复杂度 空间复杂度的概念 从本章开始又要开始新的篇章&a…

【Python实战】“特种兵”们的专属游戏助手,助你吃鸡:极品小助手也是棒呆了~(“大吉大利,今W吃鸡”)

前言 有温度 有深度 有广度 就等你来关注哦~ 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。 “注意左边,左边有人,打他!” “快上车!&#xff0…

idea搭建ssm项目全过程详解:

1&#xff0c;创建maven项目&#xff1a; 然后&#xff0c;点击next 其次 2&#xff0c;在pom.xml导入相关依赖&#xff1a;&#xff08;如果idea没有集成maven需要先集成maven&#xff09; <dependencies><dependency><groupId>org.springframework</gr…

[附源码]计算机毕业设计JAVA同城搬家平台

[附源码]计算机毕业设计JAVA同城搬家平台 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis M…

流利地回答出面试官提出的八股问题,面试官却突然说“背得不错”,该怎么回答?...

面试前背题是大家心照不宣的做法&#xff0c;一般面试官也不会揭穿&#xff0c;但如果遇到一位犀利的面试官&#xff0c;那该怎么办呢&#xff1f;一位网友就遇到了这样的窘境&#xff1a;面试的时候&#xff0c;十分流利地回答出面试官提出的概念原理方面的问题&#xff0c;面…

[附源码]Python计算机毕业设计SSM基于Java的音乐网站(程序+LW)

环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 Maven管理等…

拼多多季报图解:营收355亿同比增65% 研发投入达27亿

雷递网 雷建平 11月28日拼多多今日发布2022年第三季度业绩报告。财报显示&#xff0c;拼多多2022年第三季度营收为355亿元&#xff0c;同比增长65.1%。受到一些项目投入延缓等偶发因素影响&#xff0c;三季度平台运营费用为176.5亿元&#xff0c;占收入的比例从上年同期的59.6&…

IBM MQ MQCSP

一&#xff0c;概念 1.1 用途 用途&#xff1a;MQCSP 结构使授权服务能够验证用户 ID 和密码。您在 MQCONNX 调用上指定 MQCSP 连接安全参数结构。 警告&#xff1a;在某些情况下&#xff0c;客户端应用程序的 MQCSP 结构中的密码将以纯文本形式通过网络发送。要确保客户端应…

[MyBatis]一级缓存/二级缓存/三方缓存

缓存是一种临时存储少量数据至内存或者是磁盘的一种技术.减少数据的加载次数,可以降低工作量,提高程序响应速度 缓存的重要性是不言而喻的。mybatis的缓存将相同查询条件的SQL语句执行一遍后所得到的结果存在内存或者某种缓存介质当中&#xff0c;当下次遇到一模一样的查询SQL时…

【测试沉思录】18.如何测试微信小程序?

作者&#xff1a;雷远缘 编辑&#xff1a;毕小烦 一. 先知道小程序是什么 啥是小程序&#xff1f; “小程序是一种不需要下载安装即可使用的应用&#xff0c;它实现了应用 “触手可及” 的梦想&#xff0c;用户扫一扫或者搜一下即可打开应用。也体现了 “用完即走” 的理念&am…

Nodejs -- Express的安装和定义get、post方法

文章目录Express的基本使用1 安装2 基本使用3 监听GET请求4 监听POST请求5 把内容响应给客户端6 获取URL中携带的查询参数7 获取URL中的动态参数Express的基本使用 1 安装 在项目所处的目录中&#xff0c;运行如下的终端命令&#xff0c;即可将express安装到项目中使用&#…

SPARK数据分析

有了 DataFrame 之后&#xff0c;我们该如何在 DataFrame 之上做数据探索、数据分析&#xff0c;以及各式各样的数据转换呢&#xff1f;在数据处理完毕之后&#xff0c;我们又该如何做数据展示与数据持久化呢&#xff1f;今天这一讲&#xff0c;我们就来解答这些疑问。 为了给开…