【系列教程之】1、点亮一个LED灯

1、点亮一个LED灯

作者将狼才鲸
创建日期2024-07-23
  • CSDN教程目录地址:【目录】8051汇编与C语言系列教程
  • 本Gitee仓库原始地址:才鲸嵌入式/8051_c51_单片机从汇编到C_从Boot到应用实践教程

  • 本源码包含C语言和汇编工程,能直接在电脑中通过Keil模拟器运行,并在Keil示波器窗口看到 IO 输出的矩形波。

  • 源码及工程链接

    • 汇编效果:img
    • C语言效果:img
  • 汇编源码:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; \brief	让LCD灯闪烁(控制IO输出)
; \details	使用Keil Simulator模拟器,和Debug时的Logic Analyzer示波器窗口查看输出
; \remark	File format: UTF-8,源文件使用UTF-8中文编码
; \note		省略了8051的初始化,使用模拟器时会自动准备好运行环境
; \author	将狼才鲸
; \date		2024-07-18
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 头文件 ;;
;$INCLUDE(at89c51xd2.inc)	; 也可以使用 #include <at89c51xd2.inc>,Keil默认隐藏包含了8051通用寄存器,不用重复包含MAIN:	; 标号或函数名; 请在Debug后通过 View--Analysis Windows--Logic Analyzer--Setup--点击右上角叉叉左边的新建图标--键入P1; --点击选中P1--在Max那里将0xFF改成0x01--在And Mask中将0xFFFFFFFF改成0x00000001--Close 来创建模拟器中示波器的采样引脚;; 把示波器的小窗口向下拉一点,露出波形的显示区域;; 再点击Zoom中的All来显示整个波形(不点击会看不到变化的波形);; 再F10单步运行,一边运行一边看输出的矩形波。CLR		P1.0	; P1_0 IO口置低;P1.0里面的.0是汇编的特殊语法,意思是前面P1寄存器的第0 bit,能位寻址的寄存器都能这样调用SETB	P1.0	; P1_0 IO口拉高LJMP	MAIN	; 跳转到标号END	; 源文件结束
  • C源码:
/******************************************************************************* \brief	让LCD灯闪烁(控制IO输出)* \details	使用Keil Simulator模拟器,和Debug时的Logic Analyzer示波器窗口查看输出* \remark	File format: UTF-8,源文件使用UTF-8中文编码* \note	省略了8051的初始化,使用模拟器时会自动准备好运行环境* \author	将狼才鲸* \date	2024-07-18******************************************************************************//** 头文件 **/
#include <Atmel/at89c51RC2.h>	/* 寄存器定义 *//** 接口函数 **/
int main(void)
{while (1){/**请在Debug后通过 View--Analysis Windows--Logic Analyzer--Setup--点击右上角叉叉左边的新建图标--键入P1_0--Close 来创建模拟器中示波器的采样引脚;把示波器的小窗口向下拉一点,露出波形的显示区域;再点击Zoom中的All来显示整个波形(不点击会看不到变化的波形);再F10单步运行,一边运行一边看输出的矩形波。*/P1_0 = 0;	/* P1_0是头文件中已经定义的寄存器Bit */P1_0 = 1;}
}
  • 参考网址:
    • 2课:单片机引脚介绍 该文章后半部分有C语言原始工程下载链接
    • 4课:第一个单片机小程序 该文章前半部分有汇编原始工程下载链接

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

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

相关文章

【iOS】内存五大分区

目录 堆&#xff08;Heap&#xff09;是什么五大分区栈区堆区全局/静态区常量区&#xff08;即.rodata&#xff09;代码区&#xff08;.text&#xff09; 函数栈堆和栈的区别和联系图解 OC语言是C语言的超集&#xff0c;所以先了解C语言的内存模型的内存管理会有很大帮助。C语言…

常识判断1

1.法律 &#xff08;1&#xff09;行政法 &#xff08;2&#xff09;刑法 3.新公务员法 &#xff08;4&#xff09;宪法 &#xff08;5&#xff09;民法 &#xff08;6&#xff09;监察法 &#xff08;7&#xff09;婚姻法 &#xff08;8&#xff09;反不正当竞争法

二次元手游《交错战线》游戏拆解

交错战线游戏拆解案 游戏亮点即核心趣味 一、关键词&#xff1a; 回合制游戏、二次元、机甲、横板、剧情、养成、异星探索。 二、游戏亮点&#xff1a; 符合目标群体审美的原画。 三、核心趣味&#xff1a; 抽卡、肝或者氪金解锁新皮肤。 核心玩法及系统规则 核心玩法&…

英特尔终于宣布了解决CPU崩溃和不稳定性问题的方法,声称过高的电压是根本原因;补丁预计将于8月中旬推出【更新】

英特尔终于宣布了解决CPU崩溃和不稳定性问题的方法&#xff0c;声称过高的电压是根本原因&#xff1b;补丁预计将于8月中旬推出【更新】 英特尔官方宣布&#xff0c;已找到困扰其CPU的崩溃问题的根本原因&#xff0c;并将于8月中旬前发布微码更新以解决这一问题&#xff0c;从而…

Godot游戏制作 02玩家1.0版

Unity大神&#xff0c;YouTube百万游戏开发者的启蒙老师&#xff0c;Brackeys&#xff0c;携 Godot 新手教程&#xff0c;正式回归。 转自&#xff1a;https://youtu.be/LOhfqjmasi0?si4RguI6-pXHZ2mk9K 资产&#xff1a;https://brackeysgames.itch.io/brackeys-platformer-b…

SpringBoot3整合Druid报错Cannot load driver class: org.h2.Driver

报错显示springboot自带的H2数据库报错&#xff0c;其实是因为druid并未加载进去。如果你其它配置都没问题的话&#xff0c;请检查druid的依赖是什么版本的&#xff0c;因为springboot3刚开始是不支持druid的。 方案一&#xff1a; 即需要手动在resources目录下创建META-INF/s…

java算法day20

java算法day20 701.二叉搜索树中的插入操作450.删除二叉搜索树中的节点108 将有序数组转换为二叉搜索树 本次的题目都是用递归函数的返回值来完成&#xff0c;多熟悉这样的用法&#xff0c;很方便。 其实我感觉&#xff0c;涉及构造二叉树的题目&#xff0c;用递归函数的返回值…

优秀的Linux Shell终端Starship Shell的安装和配置

文章目录 简介安装startship1.安装 starship 二进制文件:2.将初始化脚本添加到您的 shell 的配置文件3、配置4、日志安装字体nerd-fonts编写脚本安装字体Nerd字体全量安装文档简介 Starship是一款轻量、迅速、可无限定制的高颜值终端! Starship Shell是一个用Rust编写的开源…

visio 打开、插入、转换以及保存 DWG 和 DXF (AutoCAD) 绘图

打开、插入、转换以及保存 DWG 和 DXF (AutoCAD) 绘图 Visio 计划 2 Visio Professional 2021 Visio Standard 2021 Visio Professional 2019 更多... 如果要在 Visio 绘图中使用AutoCAD对象&#xff0c;可以使用 Visio 打开它们并将其转换为 Visio 形状。 还可以将 Visio 绘…

图灵测试:人工智能与人类沟通的界限

图灵测试是评估人工智能&#xff08;AI&#xff09;是否能够表现出与人类相似的智能的重要标准之一。它由英国数学家兼计算机科学家艾伦图灵在1950年提出&#xff0c;其核心目的是测试一个机器是否能够表现出类似于人类思维的能力&#xff0c;从而模拟人类的智能。这一测试也因…

汇编语言例题分析

以下数据段定义了如下数据&#xff0c;对应内存图请填空&#xff0c;写出每个内存字节中的2位16进制数&#xff08;注意写准确&#xff0c;2位16进制数&#xff0c;末尾不带h&#xff09;。 Data1 segment x db 1,2,3 y db “ABa” z dw 1,2 Data1 ends 物理地址从0000开始&…

PostgreSQL异常:An I/O error occurred while sending to the backend

在使用PostgreSQL数据库批量写入数据的时候&#xff0c;遇到了一个问题&#xff0c;异常内容如下&#xff1a; Cause: org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.报错内容 报错提示1 Caused by: org.postgresql.util.PSQLExc…

[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-25 ADC模块FEP-DAQ9248采集显示波形方案

软件版本&#xff1a;Anlogic -TD5.9.1-DR1_ES1.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用安路(Anlogic)FPGA 实验平台&#xff1a;米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 ht…

MTK 安卓14 launcher3修改桌面模式,替换某些应用图标,以及定制化Hotseat

原生的launcher的Hotseat如下图(1)所示,我想把效果改成图(2) 图(1) 图(2) 一:定制化HotSeat 修改的类&#xff1a;packages/apps/Launcher3/com/android/launcher3/Hotseat.java &#xff08;1&#xff09;.修改hotseat的宽 Hotseat------->setInsetsOverridepublic void…

Linux cd 和 pwd 命令

目录 1. 更改工作目录 cd 2. 查看当前工作目录 pwd 1. 更改工作目录 cd 打开虚拟机终端的时候&#xff0c;以用户的家目录为默认工作目录&#xff1b; 更多时候需要更改当前的工作目录&#xff08;Change Directory&#xff09;, 语法&#xff1a;cd 【Linux路径】 没有参数…

Java 22 中的4个永久特性

功能处于孵化或预览阶段是什么意思&#xff1f; 实际上&#xff0c;这是向 Java 编程语言添加新功能的新过程&#xff0c;Java 社区使用这种过程来在 API 和工具处于早期实验阶段时从社区获得反馈&#xff08;孵化功能&#xff09;或已经完全指定但尚未永久的阶段&#xff08;…

塔子哥的快乐值-小红书2024笔试(codefun2000)

题目链接 塔子哥的快乐值-小红书2024笔试(codefun2000) 题目内容 塔子哥有许多生活琐事。已知他生活中有n个事件&#xff0c;解决第i个事件需要他花费ti的时间和hi的精力&#xff0c;并能获得ai 的快乐值。 塔子哥想知道&#xff0c;在总花费时间不超过T且总花费精力不超过H的…

操作系统如何高效处理网络请求:IO多路复用技术

在处理大量请求时&#xff0c;各个引擎都会采用线程池的方法&#xff0c;并发处理这些请求&#xff0c;但当一万个请求来的时候&#xff0c;我们要创建一万个线程来处理吗&#xff0c;很显然不会&#xff0c;那假如我创建一千个线程&#xff0c;那一线程该如何处理这个十个请求…

3GPP R18 Multi-USIM是怎么回事?(四)

前几篇主要是MUSIM feature NAS 部分内容的总结,这篇开始看RRC部分相关的内容,由于RRC部分内容过长,也分成了2篇。这篇就着重看下musim gap以及RRC触发UE离开RRC Connected mode相关的内容,直入正题, 上面的内容在overview中有提到,对应的是如下38.300中的描述。 处于网络…

Python -numpy 基础-------1

NumPy&#xff08;Numerical Python&#xff09;是Python的一个开源数值计算扩展库。它支持大量的维度数组与矩阵运算&#xff0c;此外也针对数组运算提供大量的数学函数库。NumPy的数组&#xff08;ndarray&#xff09;对象是一个快速且灵活的多维数组对象&#xff0c;用于存储…