<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[extern_valuable的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/extern_valuable</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; extern_valuable]]></copyright><item><title><![CDATA[项目一：光耦项目设计]]></title><link>https://blog.youkuaiyun.com/extern_valuable/article/details/119112574</link><guid>https://blog.youkuaiyun.com/extern_valuable/article/details/119112574</guid><author>extern_valuable</author><pubDate>Wed, 28 Jul 2021 10:48:49 +0800</pubDate><description><![CDATA[光耦隔离驱动电路设计
光耦电路部分的设计
光耦相关知识

光耦设计的主要参数：

If – 正向电流（往往会给出典型值）
VF – 正向导通电压(一般再1.2V左右）
Ic – 副边电流
Vce – Vce两端压降。
电流传输比：         标号
以pc817为例配图如下：




光耦的设计规则

对于作为开关使用的光耦，则需要使得两个管子都工作在饱和和截止两个状态
原边电流要参考典型参数，增加适当的限流电阻工作在饱和状态。
副边：一方面要保证饱和状态下可以提供后级电路正常工作的电流，另一方面，要保]]></description><category></category></item><item><title><![CDATA[51单片机避坑指南]]></title><link>https://blog.youkuaiyun.com/extern_valuable/article/details/119041150</link><guid>https://blog.youkuaiyun.com/extern_valuable/article/details/119041150</guid><author>extern_valuable</author><pubDate>Fri, 23 Jul 2021 17:46:14 +0800</pubDate><description><![CDATA[51单片机避坑指南
内存的使用


和stm32不同，51往往内存资源非常紧张，所以建立工程之时要列出资源使用统计表。


规则： 要给所有使用到的内存变量都指定好存放位置。


51单片机的存储器资源使用情况如下图所示：



各区域使用场合如下：


1、data区空间小,所以只有频繁用到或对运算速度要求很高的变量才放到data区内,比如for循环中的计数值。


2、data区内最好放局部变量。因为局部变量的空间是可以覆盖的（某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖）,可以]]></description><category></category></item><item><title><![CDATA[单片机框架编程整理]]></title><link>https://blog.youkuaiyun.com/extern_valuable/article/details/118632875</link><guid>https://blog.youkuaiyun.com/extern_valuable/article/details/118632875</guid><author>extern_valuable</author><pubDate>Sat, 10 Jul 2021 11:20:27 +0800</pubDate><description><![CDATA[单片机裸机编程框架
指导思想

每一个电路模块单独编写驱动 程序。
使用定时器或者cpu来进行时间调度（使用mcu编程框架）

实现非阻塞式的程序调度体系。


文件分层、同级之间不可以互相调用数据

这样可以降低功能模块之间的耦合度，在统一平台下移植或者删减不同的功能模块之时，不会影响其他模块的功能。


各个子文件建立自己的缓冲数据域，使用函数接口的方式来实现缓冲数据的访问。

详细的原因在下面展开叙述。


规范代码书写要求，统一变量和函数的命名格式方便阅读。
某个硬件不正常工作，不能影响其他的硬件。]]></description><category></category></item><item><title><![CDATA[链表的基本原理和基本接口实现]]></title><link>https://blog.youkuaiyun.com/extern_valuable/article/details/117898604</link><guid>https://blog.youkuaiyun.com/extern_valuable/article/details/117898604</guid><author>extern_valuable</author><pubDate>Mon, 14 Jun 2021 10:29:39 +0800</pubDate><description><![CDATA[链表总结复习
1.链表的基本概念
1.1 链表和数组的区别

链表和数组同为线性存储结构，在逻辑上并无本质上的不同，因为在逻辑上存储的数据是连续的，但是数组存储数据在逻辑和物理两个层面上都是连续的，链表在物理上并不连续。
链表由于在物理上不连续，所以链式存储结构只能从头指针开始顺序存取，数组由于物理上的连续性，所以可以实现数据的随机存取。
数组的缺点是在插入和删除元素的时候，需要大量的数据搬运工作，所以不适合用来作为频繁增删的数据结构。

1.2 链表和数组各自的优缺点

配图如下：
两种结构都有自己各自的]]></description><category></category></item><item><title><![CDATA[stm32应用笔记：如何给项目选取合适的ROM和RAM参数]]></title><link>https://blog.youkuaiyun.com/extern_valuable/article/details/117444797</link><guid>https://blog.youkuaiyun.com/extern_valuable/article/details/117444797</guid><author>extern_valuable</author><pubDate>Tue, 01 Jun 2021 21:59:44 +0800</pubDate><description><![CDATA[如何选取合适的存储器参数
1.单片机的存储器原理：
1.1stm32单片机和PC机在程序加载方面的不同：

**不同于和PC机器把硬盘中的程序加载到内存之中，单片机在运行的过程中指令和数据是分开在两个存储空间来分别读写的，这里涉及到哈佛结构和冯诺伊曼结构。**如下图所示：


在x86架构的cpu中，由于只有一套总线来进行数据交换，所以采用了分段管理的机制，通过代码段和数据段的分开，来区分指令和数据。而哈佛结构的计算机则是使用两套总线，两个存储器同时进行操作码和操作数的获取，效率更高，但是工艺也复杂。
1.]]></description><category></category></item><item><title><![CDATA[代码规范]]></title><link>https://blog.youkuaiyun.com/extern_valuable/article/details/113536923</link><guid>https://blog.youkuaiyun.com/extern_valuable/article/details/113536923</guid><author>extern_valuable</author><pubDate>Tue, 02 Feb 2021 09:23:50 +0800</pubDate><description><![CDATA[代码规范
要求

容易看懂
看项目结构就知道写作的思路
在代码中找东西很方便。
团队写出来的就像是一个人写出来的。

关注点

编码风格

命名使用驼峰还是下划线；缩进使用空格还是tab;一行代码的最大长度等等。


命名规范

是否使用能够让人“望文生义”，解释代码的功能


功能性

是否完成了项目所要求的所有功能。


测试覆盖

各个单元是否都有合适的测试代码。


复杂性

度量代码复杂度，防止代码复杂度过大。


良好注释
设计框架

是否好维护，易拓展


安全性

数据安全性
运行安全性

]]></description><category></category></item><item><title><![CDATA[Assembly language-3]]></title><link>https://blog.youkuaiyun.com/extern_valuable/article/details/112912891</link><guid>https://blog.youkuaiyun.com/extern_valuable/article/details/112912891</guid><author>extern_valuable</author><pubDate>Wed, 20 Jan 2021 22:44:42 +0800</pubDate><description><![CDATA[汇编语言
通用寄存器和他的用法
AX 累加器，往往用来存储累加的数据。
BX 相对寻址的时候用来存储偏移地址。
CX 往往用来存放循环的计数。 loop指令执行的时候，会自动执行“cx-1”
DX 

伪指令
伪指令没有对应的机器码的指令，最终不被CPU所执行。
一个汇编程序由多个段组成，一个程序最少也要有一个段；

格式：
    段名 + segment


    段名 + ends 结束段（end segment)

assume(假设)

end (结束)
    程序结束标志，结尾处不加end,]]></description><category></category></item><item><title><![CDATA[lesson-1 8086最小系统搭建]]></title><link>https://blog.youkuaiyun.com/extern_valuable/article/details/112699790</link><guid>https://blog.youkuaiyun.com/extern_valuable/article/details/112699790</guid><author>extern_valuable</author><pubDate>Sat, 16 Jan 2021 12:34:35 +0800</pubDate><description><![CDATA[微机原理与接口技术 – CPU篇
CPU内部结构
8086工作模式及其引脚分配
四组

完成内存和接口访问的引脚

8086具有20位地址总线，可以管理1M内存地址。
8086具有16位数据总线，可以同时传送16位数据地址
AD[0…15] 16位地址线和数据线分时复用。


完成中断及其相应引脚

学习中断的时候再补充


完成总线保持的接口引脚

学习DMA的时候再去补充


外部控制引脚。（可以设计控制总线接口）

控制总线上的引脚
M/#IO 数据操作对象（内存还是接口）
#WR 写入数据
#RD ]]></description><category></category></item></channel></rss>