【单片机期末】接口及应用

一、C51语言基础

【考点】存储类型

data是低128字节
code是ROM

idata是高128字节

pdata是外部RAM可以用R0 R1寻址的,也叫页

xdata是外部RAM,可以用DPTR寻址或总线扩展
其中data、code、idata、pdata、xdata均为字节类型的,bdata是对位寻址的

【考点】数据类型

char是单字节,unsigned char是无符号单字节
int是双字节,是有符号的,即有正负

【考点】中断服务程序的写法

返回值必须是 void 类型,传递参数也必须是 void 类型

ISR 是中断服务程序,是inter interrupt server routine的缩写

xx需要写具体的中断名字

interrupt是关键字,是C51语言中特有的

第一个2 代表中断号 51单片机有5个中断(S表示串行口)

第二个2 代表工作寄存器组

【考点】指针

p是指针,声明的时候前面需要加*,表明这是一个指针类型

&x 表示取x的地址,& 为取地址符

【考点】数组的应用

在定义数组时,加 [ ] ,用来区分数组和普通变量
C语言编译器会自动在 [ ] 中填入数组元素的个数

【考点】与运算

与上0001 1111B,为零的地方会被清掉,只保留了1的部分

【考点】循环语句的用法

非零即真

unsigned char是单字节类型,范围是00H~FFH

初始值为1,也就是说 i 从1开始加到255,255再加1为0

【考点】STC单片机

模拟输入接AD转换器

推挽输出:顶天立地

开漏输出:导通时相当于接地,输出为0V

关断时,引脚和三极管(或MOS管)没有关系,此时不能输出高电平

若要输出高电平,可以在芯片外面接一个上拉电阻,此时可以输出高电平1

二、请逐行解释keil编译后输出的提示信息



【考点】对编译器的理解

启动文件优先于主函数main运行

C语言需要先生成汇编语言再翻译为机器码

汇编语言需要翻译成机器码

启动文件和C文件经过处理后会变成两大段机器码,这两大段机器码的顺序由链接器来决定,最终形成所要用的机器码

无论是变量还是机器码都要放到存储器中

51单片机中有4KB个字节

Objects是指目标文件

0错误,0警告仅代表程序在语法上没有问题

三、键盘扫描驱动设计

注意时间是计数值*时间

开始连续时间为(80-30)*10ms

自动连续时间为(100-80)*10ms

按键按下时相当于接地,即为0,注意右侧为高位

四、模拟交通灯设计

五、LED数码管设计

CD4094_Data_L代表CD4094 Data = 0

先发送最高位D7

位驱动和段码驱动都是通过4094实现的

用4094实现数码管的驱动不需要消隐,因为其位码和段码是同时输出的

六、串行口基于循环缓冲区的发送驱动程序

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

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

相关文章

C#迭代器

文档 C# Iterators 关键内容 普通接口 public interface IEnumerable {IEnumerator GetEnumerator(); }public interface IEnumerator {object Current { get; }bool MoveNext();void Reset(); }泛型接口 public interface IEnumerable<out T> : IEnumerable {IEnum…

Java多线程:为什么wait()必须用循环而非if?

在Java多线程编程中&#xff0c;调用wait()方法时应使用**循环结构&#xff08;while循环&#xff09;**而非if块&#xff0c;这是由线程同步的特性和潜在风险决定的。以下是具体原因和实现规范&#xff1a; 一、正确调用方式 synchronized (lockObject) {while (!condition) …

Fiori 初学记录----怎么调用后端系统odata 服务实现简单的CURD

1.对上面的内表做一个简单的增删改查的操作 SEGW 创建odata 项目&#xff0c;实现增删改查方法。如下图 2.odata 准备完毕后&#xff0c;打开vscode 下一步等待项目生成 把下面这个目录的视图&#xff1a;替换一下&#xff1a; View1.view.xml 代码&#xff1a; <…

OpenCV CUDA模块图像变形------对图像进行GPU加速的仿射变换函数warpAffine()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 该函数用于对图像进行 GPU 加速的仿射变换&#xff08;Affine Transformation&#xff09;&#xff0c;是 cv::warpAffine 的 CUDA 版本。支持平…

语音增强方法

一、音量增强 音量增强&#xff0c;顾名思义就是音量的调大和调小&#xff0c;通过对音量进行增强可以使得模型更好的泛化。防止数据只有小音量时&#xff0c;当有大音量传入时模型不能很好的进行识别。 下面是我对音量增强生成频谱图进行可视化的结果 上面的一个图片是音量…

内网渗透测试技巧与利用操作手册(SMB / MSSQL / LDAP)

SMB 枚举与利用清单 &#x1f50d; SMB 枚举与连接 # 尝试空会话连接&#xff08;Null Session&#xff09; smbclient -N -U "" -L \\<IP> smbclient -N -U "test" -L \\<IP> smbclient -N -U "Guest" -L \\<IP># 下载共享…

ADB(Android Debug Bridge)Android官方调试工具及常用命令

ADB的定义 ADB&#xff08;Android Debug Bridge&#xff09;是Android官方提供的调试工具&#xff0c;属于Android SDK的一部分。它通过命令行与Android设备通信&#xff0c;支持安装应用、调试、文件传输、日志抓取等功能&#xff0c;适用于开发、测试及高级用户场景。 ADB工…

再现重大BUG,微软紧急撤回Win 11六月更新

BUG年年有&#xff0c;今年特别多&#xff01; Windows 11发布这近4年来&#xff0c;咱们算是一路见证了其「要么在修复BUG&#xff0c;要么在修复BUG路上」这么一件壮举。 最新的6月Windows 11 24H2更新&#xff08;版本号KB5060842&#xff09;&#xff0c;微软带来了多项改…

ROS2 工作空间中, CMakeLists.txt, setup.py和 package.xml的作用分别是?

提问 ROS2 工作空间中, CMakeLists.txt&#xff0c; setup.py和 package.xml的作用分别是&#xff1f; 回答 在一个 ROS 2 包&#xff08;package&#xff09;里&#xff0c;这三个文件各司其职&#xff1a; package.xml 作用&#xff1a;声明包的元信息和依赖关系&#xff…

Untiy打包安卓踩坑

Untiy 版本&#xff1a;unity6.1 运行环境&#xff1a;Win11 报错一&#xff1a; Assembly ‘Assets/ExternalDependencyManager/Editor/1.2.183/Google.IOSResolver.dll’ will not be loaded due to errors: 解决方法&#xff1a;通过在 Unity Hub 中下载 iOS 包来解决 报错…

2025最新版!Windows Python3 超详细安装图文教程(支持 Python3 全版本)

大家好&#xff0c;我是你们的编程搬砖工~ 今天给大家安排一篇超级详细、超接地气、纯小白友好的《Python 安装教程 for Windows》&#xff0c;从下载到安装&#xff0c;从环境变量到验证&#xff0c;手把手带你装好 Python&#xff0c;不管你是 Python3.7、3.9、3.10 还是 3.1…

【IEEE/EI/Scopus检索】2025年第五届机器学习与大数据管理国际会议 (MLBDM 2025)

2025年第五届机器学习与大数据管理国际会议 (MLBDM 2025) 2025 5th International Conference on Machine Learning and Big Data Management(MLBDM 2025)会议地点&#xff1a;南京&#xff0c;中国 时间&#xff1a;2025年12月26日- 28日 ● 会议简介 2025年第五届机器学习…

前端实现ios26最新液态玻璃效果!

先看效果图 实现步骤 先定义玻璃元素和液态滤镜 <!--玻璃容器--> <div class"glass-container"><!--使用液态滤镜--><div class"glass-filter"></div><!--边沿效果--><div class"glass-specular">…

麒麟系统集成开发环境Kylin-IDE初体验,菜鸟小白入门教程

一、安装Kylin-IDE 1、打开应用商店&#xff0c;转到“软件”->“开发”页面&#xff0c;找到“Kylin-IDE”&#xff0c;点下载。&#xff08;也可以在搜索栏搜索Kylin-IDE&#xff09; 2、等待Kylin-IDE下载并自动安装完成。 3、双击桌面的Kylin-IDE图标。 4、自动弹出“开…

Python爬虫实战:研究Bleach库相关技术

一、引言 1.1 研究背景与意义 随着互联网的快速发展,网络上的数据量呈爆炸式增长。网络爬虫作为一种自动获取网页内容的技术,能够高效地从互联网上收集所需信息,为数据分析、信息检索、舆情监测等应用提供基础。然而,爬取到的网页内容往往包含大量的 HTML 标签、JavaScri…

分布假设学习笔记

文章目录 分布假设学习笔记自然语言处理中的分布假设应用场景适用范围 Word2vec、BERT和GPTWord2vecBERTGPT 假设成立吗 分布假设学习笔记 自然语言处理中的分布假设 分布假设&#xff08;Distributional Hypothesis&#xff09;是指&#xff1a;词语在相似上下文中出现&…

提升开发思维的设计模式(上)

1. 设计模式简介 [设计模式]&#xff08;Design pattern&#xff09; 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的[可重用性]、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是实现代码…

LINUX613计划测put

FTP put ┌────────────────────────────────────────────────────────────────────┐│ • MobaXterm 20.0 • ││ (SSH client, X-serv…

NB-IoT-下行同步、广播信道和信号

这一篇主要讲解以下NPSS/NSSS/NPBCH信号的具体细节。还是依然先分析时频资源&#xff0c;再分析具体信号细节。 1、NPSS信道和信号 NPSS信号总是在每个无线帧的子帧5上。使用符号为3~13个OFDM符号&#xff0c;子载波使用0~10号&#xff08;11个子载波&#xff09;。如果部署为…

Java TCP网络编程核心指南

Java网络编程中TCP通信详解 TCP (Transmission Control Protocol) 是互联网中最核心的传输层协议&#xff0c;提供可靠的、面向连接的字节流传输服务。在Java网络编程中&#xff0c;TCP通信主要通过Socket和ServerSocket类实现。 一、TCP核心特性与Java实现 特性描述Java实现…