倾听九一:在喧嚣中寻觅内心的静谧与共鸣

核心内容摘要

XXLXL196:不止是大,更是极致的舒适与潮流新定义
解锁全新社交体验美女搞基软件,你的线上理想国_2

窥探心底的秘密花园:那些我们不曾言说的温柔与力量

8086双机串行通信基础说到8086微处理器很多老工程师都会想起那个被称作x86祖师爷的经典芯片。

虽然现在看起来它的性能可能还不如一颗智能手环的处理器但在当年可是实打实的性能怪兽。

我十年前第一次用8086做毕业设计时就被它强大的扩展能力惊艳到了。

双机通信听起来高大上其实原理很简单。

就像两个人打电话需要约定好说中文还是英文通信协议用多大的声音说话波特率以及怎么确认对方听明白了校验机制。

8086通过8251A芯片实现串行通信这个芯片就像是专门负责传话的翻译官。

这里有个实际项目中的经验调试双机通信时最怕遇到两边鸡同鸭讲的情况。

有一次我死活调不通后来发现是一个开发板的晶振频率标称

1

0592MHz实测却是

1

052MHz就这微小的差异导致波特率对不上。

所以建议大家在初始化8251A时一定要用示波器确认实际波特率。

智能家居控制系统的硬件设计智能家居系统的核心就是让不同设备能互相对话。

在8086的方案里洗衣机、密码锁这些设备就像会议室里不同部门的主管而双机通信就是他们开会的电话会议系统。

以洗衣机控制为例硬件连接主要分三部分传感器接口水位检测、门开关状态等执行机构电机驱动、进水阀、排水阀用户界面按键输入、数码管/LED显示特别要注意的是端口地址分配。

记得有次调试时洗衣机突然自己开始注水查了半天发现是端口地址冲突8255的C口地址错写成B口地址了。

后来我养成了习惯把所有端口地址用EQU定义好就像这样; 8255端口定义 PORT_A EQU 60H PORT_B EQU 62H PORT_CTRL EQU 66H

Proteus仿真环境搭建Proteus真是个神器特别是疫情期间在家办公时没硬件设备也能做开发。

不过仿真和实际硬件还是有些差异这里分享几个踩过的坑元件模型要选对。

有次用了个非官方模型仿真结果完全不对换成官方模型就好了时钟频率要设置准确。

默认的1MHz和实际开发板可能不同调试时多用虚拟示波器和逻辑分析仪搭建仿真环境的步骤新建工程选择8086 CPU添加8251A、8255等外围芯片连接电路注意总线接口要正确加载编译好的HEX文件运行仿真并观察波形

密码锁功能的实现细节密码锁是智能家居的安全门户我做过最复杂的版本支持6位密码指纹识别。

在8086上实现关键是要处理好这几个问题按键消抖硬件消抖成本高推荐软件消抖密码存储不能用明码存储简单点可以做个异或加密状态管理不同模式输入、修改、验证要区分清楚这里有个实用的键盘扫描代码片段KEY_SCAN: MOV AL, 0 MOV DX, PORT_A OUT DX, AL ; 所有行置低 MOV DX, PORT_C IN AL, DX ; 读取列值 AND AL, 0FH ; 取低4位 CMP AL, 0FH ; 无按键按下 JZ NO_KEY ; 有按键按下延时消抖 CALL DELAY_10MS ...

洗衣机控制逻辑剖析洗衣机的控制逻辑其实是个状态机主要状态包括待机注水洗涤排水脱水每个状态的转换都要考虑传感器反馈。

比如注水时要监测水位开关脱水时要检测门锁状态。

在汇编中可以用标志位来管理状态; 状态定义 STATE_IDLE EQU 0 STATE_FILL EQU 1 STATE_WASH EQU 2 ; 状态转换 CMP [CURRENT_STATE], STATE_IDLE JNZ NOT_IDLE ; 检测启动按钮 TEST [INPUT_PORT], START_BUTTON JZ NOT_IDLE MOV [CURRENT_STATE], STATE_FILL NOT_IDLE: ...

双机数据同步的实战技巧让两台8086稳定通信要注意三个关键点数据帧格式要定义清楚。

比如起始位数据位校验位停止位超时重传机制。

我一般设置300ms超时数据校验。

简单的奇偶校验就够了要求高的可以用CRC分享一个实用的数据发送子程序SEND_DATA: PUSH AX PUSH DX MOV DX, 8251A_CTRL ; 检查发送缓冲区是否空 WAIT_EMPTY: IN AL, DX TEST AL, 01H ; 查TXRDY位 JZ WAIT_EMPTY ; 发送数据 MOV DX, 8251A_DATA MOV AL, [DATA_TO_SEND] OUT DX, AL POP DX POP AX RET

调试排错经验分享调试这种系统最头疼的就是问题可能出在硬件、软件或者通信的任何环节。

我的排查步骤一般是先用Proteus仿真确认软件逻辑用逻辑分析仪抓取实际通信波形检查端口初始化代码测试每个模块的独立功能有个记忆深刻的bug通信时好时坏最后发现是MAX232芯片的电容容值不对。

所以硬件设计时电源要加足够去耦电容通信线要尽量短注意终端电阻匹配

系统优化与功能扩展基础功能实现后可以考虑这些增强功能增加通信加密比如简单的异或加密加入看门狗防止死机扩展更多家电控制增加无线通信模块说到扩展最近有个有趣的项目是把这套系统通过ESP8266接入物联网这样就可以手机远程控制。

虽然8086跑不动TCP/IP协议栈但可以通过串口转WiFi模块实现。

手抓大雷9:1-手抓大雷应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123