ATtiny13与Proteus仿真-UART信号模拟仿真

news2024/12/23 15:09:09

UART信号模拟仿真

ATtiny13没有UART模块,因此在调试程序时,使用软件模拟UART信号很有必要。本文将介绍如何如何控制2个GPIO来模拟UART TX和RX信号,并在Proteus仿真。

1、UART信号介绍

UART的信号一般由如下三部分组成:

  • 开始信号
  • 数据信号
  • 停止信号

在这里插入图片描述

UART 信号保持高电平。 作为要传输的数据,它将信号拉低并保持一位长度。 该位称为起始位,旨在向接收器指示数据即将到来。 在下一步中,它以 LSP(最低有效位)顺序传输一个字节数据。 图中的例子是发送一个字符“1”,在 ASCII 十六进制编码中为 0x31,在二进制中等于 00110001。 它表明 UART 相应地发送最右边的位 1 直到最左边的位 0。数据传输后,它将信号拉高并保持一位长度。 该位称为停止位,它指示接收器没有更多数据。

如果要发送的字节不止一个,则需要重复这些步骤。

每个位的长度由 UART 波特率决定。 以波特率9600为例,表示一秒可以传输9600位,即位长为1s / 9600 Hz = 104.2微秒。 波特率越高,位长越短。 以波特率 115200 为例,位长为 1s / 115200 Hz = 8.7 微秒。

使用GPIO模拟UART信号的难点

在使用GPIO模拟UART信号时需要考虑一些问题:

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

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

    相关文章

    软件测试概念基础——小记

    文章目录1. 什么是软件测试2. 软件测试和软件开发的区别3. 什么是需求4. 需求是软件测试的依据5. 什么是BUG6. 什么是测试用例7. 开发模型瀑布模型螺旋模型增量模型 迭代模型敏捷模型scrum8. 测试模型V模型W模型9. 软件测试的生命周期(软件测试的流程)10…

    Web大学生个人网页作业成品——学生个人爱好展示网站设计与实现(HTML+CSS+JS)

    🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

    FlinkCDC部署

    文章目录Flink安装job部署1、测试代码2、打包插件3、打包4、测试Flink安装 1、解压 wget -b https://archive.apache.org/dist/flink/flink-1.13.6/flink-1.13.6-bin-scala_2.12.tgz tar -zxf flink-1.13.6-bin-scala_2.12.tgz mv flink-1.13.6 /opt/module/flink2、环境变量…

    快手某HR吐槽:职位要求写得很清楚,照着写简历不行吗?有的工作经历不相关,有的工作好几年还写学生会奖学金,这种一秒扔垃圾桶!...

    求职时,你的简历是什么样的?能否帮你顺利通过初筛?一位快手的面试官吐槽很多求职者的简历“一塌糊涂”:职位要求已经写得很明白了,就把里面罗列的技术和跟业务相关的项目经验贴上来就好了,有人偏写航空公司…

    Vue 不重新打包,动态加载全局配置的实现过程

    背景 项目前端采用了 Vue.js ,跟传统前端 html 技术不同之处在于,每次打包后都重新生成新的 js 文件,而且不可读,必须全量替换。但最近碰到一个漏洞扫描的问题,系统通过单点登录方式访问时,是不能有登录首…

    【MySQL基础】数据库操作语言DML相关操作有那些?

    目录 一、什么是DML 二、数据插入insert 三、数据的修改update 四、数据的删除delete 五、delete和truncate有什么不同? 六、DML操作知识构图 七、DML操作练习 💟 创作不易,不妨点赞💚评论❤️收藏💙一下 一、什…

    【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?

    通过前面的学习,我们已经知道,怎么将本地自己制作的镜像发布到阿里云远程镜像仓库中去。但是在实际工作开发中,一般,我们都是将公司的镜像发布到公司自己搭建的私服镜像仓库中,那么一个私服的镜像仓库怎么搭建&#xf…

    Android之Service

    一、Service简介: Service是一种后台服务机制,允许在没有用户界面的情况下,使程序能够长时间在后台运行。 Service是四大组件之一,适用于开发无UI界面、长时间后台运行、做一些用时比较长的操作。 二、Service创建:…

    Frida - App逆向 JavaScript代码注入 基本语法以及数据类型介绍

    Frida - App逆向 JavaScript代码注入 常用语法介绍 文章目录Frida - App逆向 JavaScript代码注入 常用语法介绍前言一、逆向步骤二、重载(Overload) / Frida数据类型1.重载函数介绍2.重载函数常用的类型三、Frida Hook常用代码介绍1.基本代码框架四、注入JavaScript代码运行监听…

    功能测试的工作流程

    测试工作人员接收到项目需求、验收标准和原型图并对需求进行分析以了解项目的需求。 一、测试计划:个人觉得测试计划应在在详细设计确认后,代码开始编写的时候开始编写。测试计划主要给后面的测试工作的一些指南。 其内容包含: 1、测试团队人…

    kubernetes学习之路--Pod配置学习

    写在前面:上篇文章提供了两种简单搭建一个k8s集群的方法,其中两种方式的区别是:kubeadm是直接在主机上进行k8s搭建,kind是在docker中搭建。本文主要分享新建pod等方法。(想了想,对于像我这刚入门的人来说&a…

    面试常问的《进程创建—进程终止—进程等待—进程替换》!

    送给正在努力前行的你一句话:要努力,但不要着急,繁花锦簇,硕果累累都需要过程! 博主主页 目录 1.进程创建 fork函数初识 fork函数返回值 写时拷贝 2.进程终止 进程退出场景 进程如何退出 3.进程等待 进程等待的必要性 …

    Java泛型简介

    参考博客:https://www.jb51.net/article/192850.htm 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的…

    vuex持久化

    下载: vuex-persistedstate npm install --save vuex-persistedstate 或者: npm install --save vuex-persistedstate --legacy-peer-deps 引入使用:在store文件夹下的index文件中,也就是放vuex的js代码中引入: i…

    周末福利 | 21天学通Python完整版,豆瓣评分9.6!

    前言 又到了周末啦,小编例行给大家发福利! 今天福利的内容是21天学通Python完整版,这是一本豆瓣评分9.6的人工智能入门书籍!全面、系统、深入地讲解了Python编程基础语法与高级应用。在讲解过程中,通过大量实际操作的…

    mac m1 安装docker docker 安装php 5.6 和 7.2 避坑指南

    通过该link可以下载兼容mac m1核心的docker-desktop: Docker Desktop - Docker 所有基于amd64架构核心的都加上--platform linux/amd64来运行,这样就能愉快的玩耍了: docker search centos7 php56 #搜索 docker images #显示所有镜像 docker pull sglim2/centos7 建议使用ln…

    如何让青少年在AI时代抢占先机

    点击蓝字关注我们AI TIME欢迎每一位AI爱好者的加入!11月17日,由智谱AI支持,北京市科委、中关村管委会科普专项经费资助的系列栏目“科普大佬说”很荣幸邀请到国家科技部“新一代人工智能创新发展与应用研究”项目、中小学人工智能教育服务平台…

    在VSCode中用Markdown自动生成PPT详细使用指南,支持多种风格和排版,支持ppt转为pdf等

    在VSCode中用Markdown自动生成PPT详细使用指南,支持多种风格和排版,支持ppt转为pdf等。 Marp 官网: https://marp.app/ 这款软件也能在 Windows 或 Linux 系统上使用,并不局限于 macOS 系统。 今天要介绍的是 Marp 推出的 VS Cod…

    PLC-Recorder实现速度高达0.24ms准确周期采集的方法(带时间戳采集)

    目录 1、PLC的发送程序 2、PLC连接配置 3、PLC-Recorder侧的通讯设置 4、PLC-Recorder的通道配置 5、PLC-Recorder的变量配置 6、正常通讯情况的界面 7、记录数据的情况 8、小结 如果要以非常高的速度高速采集各种控制器(典型的是PLC)的数据&…

    【Linux】gcc/g++

    目录 Linux编译器-gcc/g使用 No.1 背景知识 No.2 预处理(进行宏替换) No.3 编译(生成汇编) No.4 汇编(生成机器可识别代码) No.5 动态链接过程 No.6 gcc选项 Linux编译器-gcc/g使用 No.1 背景知识 预处理(进行…