单片机通过串口向串口助手或者其他器件发送数据时是不能直接发送浮点类型数据的,通过printf("%f",1.28)发送浮点数据,在串口助手看似是小数,其实是字符串类型,它们是各符号对应的ASSCII码值(“1”的asscii是0x31,“.”的asscii是0x2E),使用printf发送的%d、%f、%lf等都是这样,是发送的对应数据的各asscii码值,除了%c之外。如下图所示是发送浮点类型串
浮点数混合四则运算计算器一.要求二.设计思想三.开发工具四.遇到的问题五.感想六.注意事项七.代码 一.要求支持标点符号[0-9], [±*/], [(], [)], [~], [.], [=] (其中~为负号);二.设计思想一种局部及时处理的思想,能处理的尽快处理。初始 [0-9] [+ - * /] [(] [)] [~] [.] [=] 共19个符号,8个状态 0 1 2 3 4 5 6
     STC15F104W      SOP8          烧录引脚  P3.0=RX   P3.1=TX      STC-ISP烧录说明:先点下载再给MCU上电 STC15F104W单片
1、优化上节《 51单片机——8位数码管显示正整数和小数及解决鬼影问题1.0》里的代码。2、原来dt_display(xxx),显示一会就不显示了,本次直接优化掉了,数码管dt_display();放入main函数里即可。3、增添数码管初始化函数。4、去除了清空数码管函数,这个感觉没有啥用。备注:转换小数convert_float()函数有点小问题,主要是小数精确度的问题,这个后期有眉目
我们知道,单精度浮点运算时会产生误差,但是误差具体是如何产生的?本篇博文将详细分析float浮点数在运算时产生误差的原因,我们首先通过一段C代码来进行浮点运算C代码#include <stdlib.h> #include <stdio.h> #include <math.h> #define MYDBG int main() { float a = 1
本文以AT89C51为例,列举51单片机汇编语言指令集。 AT89C51单片机的汇编指令共有111条,可按功能分为5大类:数据传送类指令28条; 算数操作类指令24条; 逻辑运算类指令25条; 控制转移类17条; 位操作类17条。在此约定下列指令中各符号的意义:Rn:当前寄存器区的8个工作寄存器(n=0~7) Ri:当前寄存器区中可作间接寻址寄存器的2个寄存器(i=0 1) Direct:直接地址
C51里用4字节存储一个浮点数,格式遵循IEEE-754标准(详见c51.pdf第179页说明)。一 个浮点数用两个部分表示,尾数和2的幂,尾数代表浮点上的实际二进制数,2的幂代表指 数,指数的保存形式是一个0到255的8位值,指数的实际值是保存值(0到255)减去127,一个 范围在-127到+128之间的值,尾数是一个24位值(代表大约7个十进制数),最高位MSB
  Keil的C51是支持51单片机最成功的C语言,它功能强大且代码效率极高,其应用最为广泛。但是,C51和标准C有一定的区别,主要体现在数据类型和数据存储结构上的差别,下面主要介绍C51和标准C有区别的内容。一、C51的数据类型  C语言的基本数据类型有char、int、short、long、float、double。对于C51来说,short和int类型相同,float和d
        单片机以性价比为特点,随着能源行业的发展,单片机在数字能源中的运用越来越广泛。最近学习了如何低端机上实现浮点运算。1、前言          目前,大多数的单片机不具有浮点运算单元(FPU)。          TI公司的tms320f2833
文章目录一、51单片机的基本原理二、51单片机的编程三、51单片机的应用 51单片机作为一种广泛应用于嵌入式系统的微型计算机芯片,其硬件结构简单、易于编程和应用。本文将带您深入探索51单片机的硬核技术,并且通过具体的代码分析来更好地了解其在嵌入式系统中的应用和潜力。一、51单片机的基本原理51单片机的基本原理包括CPU、存储器、输入输出端口、定时器、串行口等部分。其中,CPU是整个单片机的核心部分
  今天给大家介绍一款常用的8位单片机,九齐NY8A053E单片机。这是一款以EPROM作为记忆体的8位元微控制器。专为多IO产品的应用而设计。NY8A053E单片机采用了CMOS制程并同时提供客户低成本、高性能等优势。其核心建立在RISC精简指令集架构,可以非常容易地做编辑和控制,共有55条指令,除了少数指令需要2个时序,大多数指令都是1个时序即能完成,让使用者轻松地以程式控制完成不同的应用。&
本以为新冠在经过这几年的不断传播变异以及疫苗接种的普及,得到了有效的控制。新的一年本该摩拳擦掌,开启奋斗的新征程。然而,事情非但没有按照我的剧本来发展,疫情的蔓延却离我越来越近。所在的地区、街道都被列为管控范围,一时间,工厂停工、商店停业、学校停课。开始了每天一次的核酸检查。天天在家憋着也是烦躁。趁着这个时间,把自己封闭到小屋里。理一理技术点。提高一点是一点。虽然当下困难很多,但是我们仍然不能迷茫
单片机定时中断的精确定时编程方法种种时间:2006-03-03     发布人:meitai   引 言   MCS-51单片机的中断响应延迟时间,取决于其它中断服务程序是否在进行,或取决于正在执行的是什么样的指令。单中断系统中的中断响应时间为3~8个机器周期[1]。无论是哪一种原因引起的误差,在精确定时的应用场合,必须考虑它们
中断,顾名思义就是停止现在正在做的事情,去做其他的事情。就像你在上班,这时来了个电话,你就要停下手中的活,去接电话。而要我们暂时停下手中的活的电话就叫做中断源。可以说是中断让单片机的工作变得丰富且更有条理,就像生活中这个电话可能是约会奥。一、简介       51的中断系统如下图所示:    &nb
概述传统的嵌入式单片机开发基本上形式如下图:该流程对于功能单一或者功能变更极少的场景是比较友好的,但是对于设备应用层变更比较多或者公板方案开发应用的场景,上述场景显的有些累赘。那么有什么方式可以解决呢??对于设备应用层变更比较多或者公板方案开发应用的场景,可能因为应用层稍微修改一下就要出固件版本验证,这对于版本管理,时间周期,固件质量都是比较不友好的。那么我们如何避免这些问题??那么有什么方式呢?
 void esp8266Init(){ //检测wifi模块是否能回复指令 printf("1.AT\r\n"); while(atk_8266_send_cmd("AT","OK",20)){ } delay_ms(500); //关闭wifi自动连接 printf("2. CWAUTOCONN\r\n"); while(atk_8266_
文章目录环境移植过程1、安装arm-himix200-linux-gcc\g++编译器,下载opencv2.4.10源码2、安装cmake,设置编译参数3、编译、安装opencv2.4.104、在海思平台上运行opencv例程问题及解决方案 环境交叉编译器:arm-himix200-linux-gcc\g++(海思SDK中提供的交叉编译器)opencv版本:opencv2.4.10,点击进入下载
开篇之前学习了51单片机最基础的Stc89c52,因为一些原因,需要提前学习stm32,加上专业也会学习stm32f411系列,所以挑选了这块板子用入门嵌入式。所谓工欲善其事,必先利其器。所以今天总结一下入门学习前需要做的准备工作(搭建环境)。搭建环境1.安装Java环境因为使用Stm32Cubemx需要Java环境,所以先安装Java环境。进入官网:点此处下载Java环境进去之后下载第三个文件(
单片机的运行1.组成:CPU(中央处理器):核心部件,决定了主要功能特性(分为运算器和控制器两大部分)。存储器:由ROM和RAM组成(例:51单片机在系统结构上采用了哈佛型,将程序和数据分别存放在两个存储器内,一个称为程序存储器,另一个为数据存储器在物理结构上分程序存储器和数据存储器,有四个物理上相互独立的存储空间,即片内ROM和片外ROM,片内RAM和片外RAM。)定时器/计数器(T/C):51
单片机以性价比为特点,随着能源行业的发展,单片机在数字能源中的运用越来越广泛。最近学习了如何低端机上实现浮点运算。 1、前言 目前,大多数的单片机不具有浮点运算单元(FPU)。 TI公司的tms320f28335具有FPU,但是在进行一个浮点除法运算时,需要1.5us的时间,这在实时控制系统中是不太 ...
转载 2021-10-06 11:17:00
2287阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5