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

news2024/9/21 20:48:27

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.coloradmin.cn/o/1943543.html

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

相关文章

SQL性能优化秘籍:如何避免计算导致索引失效

适用于MySQL、PostgreSQL、Oracle等各种数据库的优化技巧 问题剖析 设想我们为customer表的c_acctbal列创建了一个B树索引c_acctbal_idx&#xff0c;以加速相关查询。然而&#xff0c;一个看似无害的计算可能会阻碍索引的使用。比如这样的查询&#xff1a; SELECT * FROM cus…

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

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

海外IP代理科普:代理池有什么用?代理池大小的影响

在当今数字化时代&#xff0c;网络爬虫已经成为获取各类信息必不可少的工具。在大规模数据抓取中&#xff0c;使用单一 IP 地址或同一 IP 代理往往会面临抓取可靠性降低、地理位置受限、请求次数受限等一系列问题。为了克服这些问题&#xff0c;构建代理池成为一种有效的解决方…

【Android Compose】ListView效果

【Android Compose】ListView效果 1、Column、Row 和 Box2、LazyColumn和LazyRow3、Compose 中的状态4、ListView效果5、android-compose-codelabs Jetpack Compose 使用入门 Jetpack Compose 教程 Jetpack Compose 1、Column、Row 和 Box Compose 中的三个基本标准布局元素是 …

C++相关概念和易错语法(24)(map、迭代器分类)

1.map 在上篇文章中&#xff0c;我着重介绍了set&#xff0c;由于map和set同源&#xff0c;所以这次我会着重介绍map别于set的地方 &#xff08;1&#xff09;模板参数 set是以单一的key作为成员变量&#xff0c;而map是以pair作为成员变量&#xff0c;而pair的first作为key来…

使用千帆SDK压测千帆大模型平台上的服务

场景 给用户提供千帆标准的压测工具&#xff08;千帆SDK&#xff09;。满足以下使用场景&#xff1a; 测试sft模型部署到算力单元后&#xff0c;实际的性能效果 对比模型压缩后的性能效果 测试预置服务的性能 压测数据准备&#xff08;数据格式规范说明&#xff09; 可用…

DAY05 CSS

文章目录 1 CSS选择器(Selectors)8. 后代(包含)选择器9. 直接子代选择器10. 兄弟选择器11. 相邻兄弟选择器12. 属性选择器 2 伪元素3 CSS样式优先级1. 相同选择器不同样式2. 相同选择器相同样式3. 继承现象4. 选择器不同权值的计算 4 CSS中的值和单位1. 颜色表示法2. 尺寸表示法…

Try ubuntu core (by quqi99)

作者&#xff1a;张华 发表于&#xff1a;2024-07-20 版权声明&#xff1a;可以任意转载&#xff0c;转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明(http://blog.csdn.net/quqi99) try ubuntu core on qemu #ovmf is to ensure compatibility with the re…

电机线电流与转差率曲线理论推导

1.推导基础&#xff1a; #已知正转正拉电流近似为&#xff1a; curr_in_upward (im im*(rm(lml2)*2*np.pi*freq_in*1j)/(r2 l2*2*np.pi*freq_in*1j (1-s)/s*r2))#同工况同负载&#xff0c;正转反拉电流近似为&#xff1a; curr_in_downward (im im*(rm(lml2)*2*np.pi*f…

代码随想录第六十二天 | 739. 每日温度 , 496.下一个更大元素 I ,503.下一个更大元素II

先复习一下栈与队列。栈是先进后出&#xff0c;队列是先进先出。二者都属于STL容器&#xff08;版本是SGI STL&#xff09;中的容器适配器。底层容器完成其所有的工作&#xff0c;对外提供统一的接口&#xff0c;底层容器是可插拔的。如果没有指定底层实现的话&#xff0c;默认…

22-联合体与枚举

22-联合体与枚举 文章目录 22-联合体与枚举一、 联合体1.1 定义和特点1.2 语法1.3 示例1.4 联合体的使用1.5 联合体的使用&#xff1a;检查系统的字节序 二、 枚举2.1 定义和特点2.2 语法2.3 枚举常量的值可以手动修改 一、 联合体 1.1 定义和特点 联合体&#xff08;Union&a…

扩展PyTorch视觉模型

扩展PyTorch视觉模型 目录 扩展PyTorch视觉模型 一、概述 二、扩展基本视觉模型的原因 1. 性能提升 2. 功能扩展 3. 资源管理 三、扩展PyTorch视觉模型的方法 1.修改现有架构 2.应用模型集成技术 3.量化和压缩模型 四、高级技巧与实践 1.自定义训练循环 2.深度模型…

【SpringBoot】 jasypt配置文件密码加解密

目前我们对yml配置文件中的密码都是明文显示&#xff0c;显然这不安全&#xff0c;有的程序员离职了以后可能会做一些非法骚操作&#xff0c;所以我们最好要做一个加密&#xff0c;只能让领导架构师或者技术经理知道这个密码。所以这节课就需要来实现一下。 我们可以使用jasypt…

Gitops-万字保姆级教程-小白也可以轻松学会! (Part 2)

系列文章目录 本文章分为2个部分&#xff1a; Part 1主要涉及Gitlab、Gitlab-Runner、Git-Ci、Sonar-qube-CI阶段 Part 2主要涉及ArgoCD阶段 Gitops-万字保姆级教程-小白也可以轻松学会! (Part 1)-CSDN博客 Gitops-万字保姆级教程-小白也可以轻松学会! (Part 2) 文章目录 目…

【测试能力提升----fastapi框架项目】需求分析

1. FastAPI框架架构 2. 场景分析 2.1 系统分类 单一用户权限系统&#xff08;实用于CMS模型&#xff09;多用户多权限系统&#xff08;实用于多租商户类型&#xff09; 2.2 功能模块 用户登录模块用户管理模块角色权限管理模块基本设置模块日志模块 2.3 需求分析 用户登录…

[米联客-安路飞龙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…

24年广东“双百社工”招聘报名流程详细步骤

还在蹲公告的宝子们注意啦&#xff01;&#x1f525;24年广东双百社工公告陆续出啦&#xff01;⚠️中山双百社工招聘57人&#xff0c;佛山双百社工招聘135人&#xff0c;其他地区也快了&#xff01;⏰留给我们备考的时间只有一个月左右&#xff0c;想一次上岸的宝子抓紧备考&a…

《专题》numpy科学计算基础库——精细化讲解 <1>

一、什么是numpy库 Numpy(Numerical Python) 是科学计算基础库&#xff0c;提供大量科学计算 相关功能&#xff0c;比如数据统计&#xff0c;随机数生成等。其提供最核心类型为多维数组类型&#xff08;ndarray&#xff09;&#xff0c;支持大量的维度数组与矩阵运算&#xff0…

Java面试题(每日更新)

每日五道&#xff01;学会就去面试&#xff01; 本文的宗旨是为读者朋友们整理一份详实而又权威的面试清单&#xff0c;下面一起进入主题吧。 目录 1.概述 2.Java 基础 2.1 JDK 和 JRE 有什么区别&#xff1f; 2.2 和 equals 的区别是什么&#xff1f; 2.3 两个对象的…

Linux ls命令详解

学习 Linux &#xff0c;本质上是学习在命令行下熟悉使用 Linux 的各类命令&#xff1b; 1. Linux 命令通用格式 命令格式&#xff1a;命令 【-选项】【参数】(个别命令不遵循该格式) 短线&#xff08;-&#xff09;是区分选项和参数的标志&#xff0c;选项用来调整命令的功能…