单片机开发
elecfan2011
业精于勤,荒于嬉行成于思,毁于随。
展开
-
可以实现短按和长按的按键扫描小程序
可以实现短按和长按的按键扫描小程序原创 2014-03-06 09:07:14 · 2749 阅读 · 0 评论 -
关于51单片机的一些基本知识
1. 附上51片内资源简介,再次记忆: .8位CPU·4kbytes 程序存储器(ROM) (52为8K) ·256bytes的数据存储器(RAM) (52有384bytes的RAM) ·32条I/O口线·111条指令,大部分为单字节指令 ·21个专用寄存器 ·2个可编程定时/计数器·5个中断源,2个优先级(52有6个) ·一个全双工串行通信口转载 2014-11-29 14:46:28 · 870 阅读 · 0 评论 -
在Keil C51函数中加入ASM代码
使用C51进行单片机编程是事半功倍的事,但是很多算法上以及编译上的问题,往往使用ASM代码更为方便又高效。但不知什么原因,Keil在实现C51夹杂ASM代码比SDCC麻烦很多,方法如下:预处理指令 #pragma asm 开始ASM代码预处理指令 #pragma endasm 结束ASM代码如果就这样直接编译的话,会出现以下错误:error C272: 'asm/endas转载 2017-03-20 22:41:24 · 3436 阅读 · 0 评论 -
在51单片机上写出最优代码
列举一些如何在8051单片机上写出高性能代码的方法,高性能指的是编译出的代码具有更小的size和更快的执行速度。以下的方法在大多数情况下都是能够起作用的。存储模式(Memory Model) 存储模式最能够影响最终产生代码的大小和执行速度。编译时采用SMALL模式可以产生最小、最快的代码。在SMALL模式下所有的变量,除非特别说明,都会存放在8051内部存储区。单片机访问内部存储区的速度非常看(翻译 2017-03-14 16:38:49 · 963 阅读 · 0 评论 -
8051 MCU学习之分析单片机的启动过程
接触单片机有几年的时间了,一直专注于如何在单片机上写一些应用,对单片机如何启动的知之甚少,惭愧惭愧。。。今天得空整理了一下,加深了对单片机的认识,如为什么定义data区里的变量重新开机的初始值为0。单片机在开机上电后,会执行startup.A51的指令,我分析了一下某个项目中这个文件里的指令,在这里单片机会做如下几件事情:初始化8051硬件堆栈的大小和堆栈指针;初始化中断向量表,分配每个中断的入原创 2017-03-15 17:50:48 · 8915 阅读 · 0 评论 -
(深入理解计算机系统) bss段,data段、text段、堆(heap)和栈(stack)
bss段: bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。 bss是英文Block Started by Symbol的简称。 bss段属于静态内存分配。 data段: 数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。 数据段属于静态内存分配。 text段:...转载 2018-08-19 23:13:50 · 776 阅读 · 1 评论 -
冯诺依曼结构和哈佛结构
FROMhttps://www.cnblogs.com/douzi2/p/4876551.html哈佛结构是,数据和代码分开存在。冯诺依曼结构是在哈佛结构之后提出的,冯诺依曼提出“代码本身也是一种数据”,解决了哈佛结构的一个问题——总线暂用资源太多。冯诺依曼结构是,数据和代码放在一起。首先,通过BIOS(Uboot)将硬盘(Flash)中的程序(数据和代码),全部拷贝到R...转载 2019-06-03 17:19:47 · 596 阅读 · 0 评论