10 ab6326795

尚未进行身份认证

我以为小鸟飞不过沧海,是以为小鸟没有飞过沧海的勇气,十年以后我才发现,不是小鸟飞不过去,而是沧海的那一头,早已没有了等待

等级
TA的排名 2k+

单片机数码管闪烁或者一个亮其他较暗

数码管串行扫描显示,有时会出现数码管闪烁或者一个亮其他较暗。1.数码管闪烁在单片机执行一个任务时,显示正常;如果再加上一个发送串口数据的功能,则发送数据的时候会出现闪烁的情况解决的方法是,在定时器里显示数码管,同时调高定时器的中断等级,大于串口中断等级2.一个亮且其他较暗一个数码管总比剩下的亮,可能是扫描的次数不一样,导致亮的那个次数要多于其他解决方法是...

2019-08-16 09:48:21

51单片机英文缩写全称

MCS-51指令(1)数据传送类指令(7种助记符)助记符英文注释功能MOVMove对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送MOVCMoveCode读取程序存储器数据表格的数据传送MOVXMoveExternalRAM对外部RAM的数据传送XCHExchange字节交换...

2019-08-16 09:36:11

单片机定时器TMOD与TCON详解!

TMOD:定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。 D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T ...

2019-08-15 18:45:09

51开发板上为什么会有多个晶振

51开发板上为什么会有多个晶振?有时是12MHZ,有时是11.0592MHZ?有什么区别么?1、12.000是给PL-2303使用的吧?因为usb通信需要严格的12m时钟。单片机用11.0592晶振,这样保证串口的波特率没有误差。2、串口通信用11.0592M的,因为串口波特率有9600等这种速率的,用11.0592M,可以无误差的产生,比如11.0592M/9600=1...

2019-08-15 18:15:05

51单片机的基本数据类型简介

在标准C语言中,存在着如下六种基本数据类型:1、char:字符型;2、short=shortint:短整型3、int:整型4、long=longint:长整型5、float:单精度浮点型6、double:双精度浮点型而面向51单片机的KeiluVision4对此进行了简化,因此,可以理解为只存在如下四种基本数据类型:1、char:字符型2、int...

2019-08-14 21:51:31

灌电流和拉电流简介

灌电流(sinkcurrent),对一个端口而言,如果电流方向是向其内部流动的则是“灌电流”,比如一个IO通过一个电阻和一个LED连接至VCC,当该IO输出为逻辑0时能不能点亮LED,去查该器件手册中sinkcurrent参数。拉电流(sourcingcurrent),对一个端口而言,如果电流方向是向其外部流动的则是“拉电流”,比如一个IO通过一个电阻和一个LED连至GND,当该IO输出...

2019-08-14 12:11:37

单片机编程为什么 led=0;led灯就亮

1、这个是需要看外围电路的,不一定是输入低电平led就会亮,首先led的正极接到vcc,负极接到单片机的P1.0上,当单片机的P1.0为高电平时,LED两端电压一样,电流不会流动,led不会亮,只有当p1.0为低电平是,电流才会从vcc进过led流向p1.0,再进过单片机内部形成回路,led就会亮了,反之一样,led负极接GND,正极接p1.0,当p1.0置高电平时,LED也会亮。2、灯...

2019-08-14 12:04:58

编写延时函数的简单方法

过程参考如下:在编译器下建立一个新项目,也可以利用已有项目。此过程中需要注意,单片机晶振的选择,因为for循环里指令的执行时间和晶振有直接关系,本例中晶振使用11.0592M。编写一段关于延时的函数,主要利用for循环,代码如下:voiddelay_ms(unsignedintms){unsignedinti;unsignedcharj;for(i=0...

2019-08-13 10:42:35

ART Mterp Interpreter 解释 bytecode

Interpreter首先分析Interpreter如何解释执行dalvikbytecode,Interpreter在ART7.0有3种实现:InterpereImpl:enumInterpreterImplKind{kSwitchImplKind,//Switch-basedinterpreterimplementation.kC...

2019-06-24 11:01:06

ART Overview

Android虚拟机演化VM Runtime Android版本 说明 Dalvik Interpreter Android2.2以前 慢,卡顿 Dalvik Interpreter+JIT Android2.x/4.x 性能有所提升,仍慢,卡顿且耗电 ART Interpreter+AOT(Quick) ...

2019-05-30 16:15:46

Android App瘦身实战

随着业务的快速迭代增长,不断引入新的业务逻辑代码、图片资源和第三方SDK等,很多app都面临一个一个结果,app越来越大,甚至很多无用的代码,包体积的增大带来了很多问题,诸如app启动更慢,代码维护越来越困难。公司业务发展到一定程度之后,重构,代码优化,app瘦身成为不得不做的一个任务。这里以xx外卖app为例给大家讲讲app瘦身过程中常用的几种方法(也都是网上老生常谈的)。apk文件构成...

2019-05-30 15:51:38

ARM实现除法运算。以及Branch to unaligned destination, expect destination to be <max> byte aligned解决办法

在贴吧看到一道题目:刚学ARM7汇编不久,所以就来练练手。解答如下:PRESERVE8AREACLAC,CODE,READONLYEXPORTmainIMPORT_printfBUFDCD-1,3,24,94,62,72,55,0,-48,99BUF_SIZEEQU10PIRNT_BUFDCB"max=%d,ave=%d",0...

2019-05-24 18:28:30

ARM汇编实现 for循环、strcmp、 调用printf打印字符串示例

utils.S(实现for循环、strcmp)AREAFIRE,CODE,READONLYEXPORTforEXPORTstrcmp_asmforPUSH{LR}FOR_LOOPBLXR0SUBSR1,R1,#0x1BNEFOR_LOOPPOP{LR}BXLRstrcmp_asmLDRBR2,[R0],#1...

2019-05-23 18:07:44

arm协处理器(CDP,LDC,STC,MCR,MRC)

ARM微处理器可支持多达16个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略ARM处理器和其他协处理器的指令。ARM的协处理器指令主要用于ARM处理器初始化ARM协处理器的数据处理操作,以及在ARM处理器的寄存器和协处理器的寄存器之间传送数据,和在ARM协处理器的寄存器和存储器之间传送数据。ARM协处理器指令包括以下5...

2019-05-23 10:47:56

ARM指令STMFD和LDMFD、PUSH和POP区别深入详解

根据上一篇文章,https://blog.csdn.net/tabactivity/article/details/90449317,我们编写了一个ARM汇编示例main.c#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;stdint.h&gt;externintasm_add(int,int);in...

2019-05-22 18:42:58

ARM的STM和LDM指令详解

STM和LDM的主要用途是现场保护、数据复制、参数传递等,其模式有8种,如下:注:前面4种用于数据块的传输,后面4种用于堆栈操作(1)IA每次传送后地址加4(2)IB每次传送前地址加4(3)DA每次传送后地址减4(4)DB每次传送前地址减4(5)FD满递减堆栈(6)FA满递增堆栈(7)ED空递减堆栈(8)EA空递增堆栈下面的讲述对于空递减...

2019-05-22 18:15:22

ARM关于标志位影响详解

比较指令CMP,CMN,TEQ,TST这几条指令,总是会更新条件标志位,但运算结果总是被扔掉,不会进行保存。他们的语法格式如下CMP{cond}Rn,Operand2;Rn-Operand2操作类似SUBS(除了扔掉运算结果)CMN{cond}Rn,Operand2;Rn+Operand2操作类似ADDS(除了扔掉运算结果)TEQ{cond}R...

2019-05-21 15:28:00

ARM指令详解(二) 表格版,更全

指令格式:指令{条件}{S}{目的Register},{OP1},{OP2} "{}"中的内容可选。即,可以不带条件只有目的寄存器,或 只有目的寄存器和操作数1,也可以同时包含所有选项。“S”决定指令的操作是否影响CPSR中条件标志位的值,当没有S时指令不更新CPSR中条件标志位的值 助记符 ...

2019-05-20 17:34:02

ARM 练习笔记

目录1、BIT运算2、LDR/STR使用3、比较指令示例(CMP\TST),条件跳转BEQ、BNE4、宏定义的使用5、ADR与LDR的区别6、CPSR寄存器控制7、!的使用8、DCD数组,LDR、STR示例1、BIT运算MOVR3,#0x07MOVR4,R3BICr3,r3,#0x05...

2019-05-17 10:35:23

ARM 指令集中,SBC 为什么C要取反

需要注意的是,在SUBS指令中,如果发生了借位操作,CPSR寄存器中的C标志位设置成0:如果没有发生借位操作,CPSR寄存器中的C标志位设置成1。这与ADDS指令中的进位指令正好相反。这主要是为了适应SBC等指令的操作需要。SBC带位减法指令:SBC指令从寄存器<Rn>中减去<shifter_operand>表示的数值,再减去寄存器CPSR中C...

2019-05-16 18:33:55

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。