- 博客(53)
- 资源 (2)
- 收藏
- 关注
原创 8086的简化版8088
8088作为第三代微处理器的开创成员,兼具8位与16位处理特性。它采用VLSI技术,支持16位数据处理和1MB内存寻址,同时兼容8位外围芯片。虽然表面像8位芯片,但软件层面完全兼容16位的8086。其8位数据总线设计降低了成本与实现难度,使该芯片在特定任务中仍具实用价值。这种独特设计平衡了性能与实现便利性,展现了早期微处理器的创新智慧。
2025-06-05 13:35:01
27
原创 H_Prj04 8088单板机的IO(LED)
LED_8X产生有效锁存的三个条件是,1)地址线X8, XA9,XA10同时为零2)8088的IO_M为高,代表当前总线周期为IO,而不是内存3)WR写信号有效。用deepseek写程序,写emu8086的测试成熟。1.原理图与工作原理。
2025-06-04 10:51:01
64
原创 8088单板机C语言计划基本算完成了2025.6.4
摘要:文章强调在项目开发中,优先实现功能比追求完美更重要,鼓励快速迭代和实用主义。末尾以"Good Luck!"表达对读者的美好祝愿。核心观点是:先求运行再求优化,务实比完美主义更关键。(50字)
2025-06-04 08:30:36
71
原创 Prj10--8088单板机C语言8259中断测试(2)
本文实现了一个嵌入式系统程序,包含串口通信、8255数码管控制、8253定时器和8259中断控制器功能。核心代码展示了8259初始化过程:设置边沿触发、自动EOI模式及中断向量基址为08h。调试过程中遇到两个关键问题:8259端口地址错误(应为0x400/0x402)和ICW2中断向量设置不当(需8的整数倍)。这些问题导致程序跑飞,经修正后成功运行。作者反思调试过程对睡眠的影响,最终顺利完成项目。程序还包含寄存器读取、格式化输出、LED控制等功能模块,通过串口输出调试信息。
2025-06-04 08:23:47
351
原创 Prj10--8088单板机C语言8259测试(1)
摘要:本文展示了8259中断控制器的编程示例代码,通过初始化8259芯片并设置中断服务程序来接收IRQ0中断。代码实现了中断计数统计功能,当累计10次中断或用户按下ESC键时退出程序。关键步骤包括:8259初始化配置(ICW1-4)、安装新中断向量(INT20h)、启用中断、处理中断(显示计数并发送EOI),最后恢复原中断设置并输出中断总次数。该示例展示了x86环境下硬件中断处理的基本编程方法。
2025-06-03 14:08:51
194
原创 Prj09--8088单板机C语言8253 1Khz方波(2)
本文摘要: 实现基于8253定时器的硬件编程控制,通过定义计数器端口地址(PORT_8253_CNTx)、控制寄存器地址(PORT_8253_CTRL),设置时钟频率(PCLK_FREQUENCY=1.193182MHz)和目标输出频率(OUTPUT_FREQUENCY=1kHz)。核心函数init_8253()采用0x36控制字配置计数器0为模式3(方波发生器),通过分频计算COUNTER_VALUE并分高低字节写入计数器。该实现还包括8255并行接口控制、串口通信、格式化输出等功能,通过硬件端口操作实现
2025-06-03 13:35:44
500
原创 Prj09--8088单板机C语言8253产生1KHz方波(1)
摘要:本文介绍了基于8253定时器芯片的1kHz方波发生器实现方案。程序通过设置8253的计数器0为模式3(方波发生器),使用标准1.193182MHz时钟频率,计算出1193的计数器初值。代码展示了如何配置控制寄存器(0x36)、写入高低字节计数器值,并最终在OUT0引脚输出1kHz方波信号。程序包含初始化、频率计算和退出处理功能,可通过按键终止输出。该实现适用于需要精确方波信号生成的嵌入式系统应用。
2025-06-03 09:18:40
457
原创 Prj7--8088单板机C语言8255显示数字
摘要:本代码展示了8088单板机通过8255芯片控制数码管显示的C语言实现。主要内容包括:1) 定义8255端口地址和数码管段码表;2) 实现基本IO操作函数(outp/inp)和串口通信功能;3) 编写8255初始化函数(init_8255)和数码管显示函数(display_numbers);4) 通过位选和段码控制实现8位数码管的动态扫描显示。代码还包含寄存器读取、NMI中断处理、自定义sprintf等辅助功能,完整展示了单板机外设控制的典型编程方法。
2025-06-02 10:52:18
179
原创 8088单板机C语言项目计划表
Prj1 原来第一版8088单板机C语言实现版 用Nmake 和 Makefile编译方式实现的 略显复杂。Prj4 8088单板机C语言串口实现格式化sprintf()函数功能。Prj3 8088单板机C语言串口实现“Hellow World!Prj2 8088单板机C语言实现LED灯闪烁控制。Prj11 8088单板机大综合------时钟。Prj6 8088单板机C语言NMI中断。Prj10 8088单板机C语言8259中断。
2025-06-02 09:32:56
185
原创 8088 单板机 汇编 NMI 中断程序示例 (脱离 DOS 环境)
【代码】8088 单板机 汇编 NMI 中断程序示例 (脱离 DOS 环境)
2025-06-01 09:24:18
322
原创 8088单板机C语言输出CPU段基地址--Prj05
这是一段基于x86汇编和C语言的嵌入式系统代码,主要实现了寄存器读取、串口通信和格式化输出功能。程序通过汇编指令获取CS、DS、SS段寄存器的值,并使用自定义的tiny_sprintf函数格式化输出这些寄存器值到串口。主循环中持续输出寄存器信息,同时通过LED闪烁(0xff和0x00交替输出)显示程序运行状态。代码包含基本的I/O端口操作函数(inp/outp)、串口发送函数和精简版的sprintf实现,支持%d、%x等格式转换,适用于资源受限的嵌入式环境。
2025-05-31 16:35:39
105
原创 8088单板机C语言sprintf()格式化串口输出---Prj04
该代码实现了一个基于I/O端口操作的嵌入式系统程序,主要功能包括:1. 提供基本的I/O操作函数(inp/outp);2. 实现串口通信功能(uart_send/uart_str_send);3. 自定义格式化输出函数tiny_sprintf,支持%d、%x、%s等格式;4. 主程序循环发送格式化字符串到串口,并控制LED闪烁。程序采用自定义的可变参数实现(tiny_stdarg.h),包含数字转换(itoa)和格式化输出功能,适用于资源受限的嵌入式环境。最后通过循环实现LED灯的闪烁效果。
2025-05-31 15:22:14
299
原创 单板机8088C语言计划
计划将汇编小程序重写为C语言,预计耗时2个月。完成后尝试用C编写固件BootLoader和类似DOS时代的Debug调试器。该计划涉及语言转换和底层开发,目标实现基础调试功能。
2025-05-31 14:31:04
232
原创 8088单板机编译运行C程序的方法(二版)
摘要:本文介绍8088单板机开发流程:1)准备编译工具;2)组织源文件;3)使用批处理编译;4)通过串口Bootloader下载验证。整个流程涵盖从编译环境搭建到硬件验证的关键步骤。
2025-05-30 15:06:03
614
原创 8088单板机编译运行C程序的方法
连接器:LD=optlink.exe C:\Program Files (x86)\8086 Compilers Bundle\optlink.exe。C编译器:CC=dmc.exe C:\Program Files (x86)\8086 Compilers Bundle\dmc.exe。汇编器:ASM=ml.exe C:\Program Files (x86)\8086 Compilers Bundle\ml.exe。8088单板机一块,带有简单的串口Bootloader。
2024-03-23 10:54:58
1734
原创 dsPIC30F6014 交流有效值计算程序
//rms_calc_64.c#include "p30f6014a.h"#include "math.h"#define NN 64#define PI 3.1415926unsigned long Vs1[NN];extern signed long sqrt_int(signed long x);////////////////////////////////////////////////////void sample_data_simulate(unsigned.
2022-05-16 15:16:38
970
原创 proteus编译汇编和C的编译脚本Makefile
################################################################################ Makefile for project ################################################################################# General optionsPROJECT = MCU = 8086COMPILER = "Digital Mars C"T.
2022-05-14 16:58:02
1020
原创 dsPIC30F6014A 编写的MODBUS程序
/*------------------------------Modbus.c--------------------------*/#include "PRJ.h"#include "p30f6014a.h"#include "stdio.h"#include "DFT.h"#include "Freq.h"#include "control.h"#include "ModBus.h"#define R485C PORTGbits.RG14//#define R485C PORTG.
2022-05-13 14:26:42
409
原创 dsPIC30F6014A 64点采样程序
/*-----------------------------Sample.c----------------------------*/#include "p30f6014a.h"#define TRUE 1#define FAILURE 0unsigned char temp1[80];unsigned long Va[64],Vb[64],Vc[64],Ia[64],Ib[64],Ic[64];int i,ad_result;int sample_count=0;//ad采样计数器.
2022-05-12 15:48:35
414
原创 dsPIC30F6014A写的Modbus程序
/*------------------------------Modbus.c--------------------------*/#include "PRJ.h"#include "p30f6014a.h"#include "stdio.h"#include "DFT.h"#include "Freq.h"#include "control.h"#include "ModBus.h"#define R485C PORTGbits.RG14//#define R485C PORTG.
2022-05-12 15:37:50
351
原创 dsPIC6014A写的电网谐波计算程序
/*--------------------------DFT.c---------------------------------*///Function:DFT电网谐波分析程序//Time:20220512//Generator:/*----------------------------------------------------------------*/#include "p30f6014a.h"#include "sample.h"#include "math.h"#inc.
2022-05-12 15:33:46
271
原创 Matlab LCL滤波器设计验证
clc;close all;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%LCL原来设计方案%L1=0.6mH L2=0.07mH C=10uF%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%num=1;den=conv([1,0],[0.6e-3*0.07e-3*10e-6,0,0.67e-3]);sys=tf(num,den)%g=tf([1],[1,1.
2022-05-10 21:10:09
1102
1
原创 程序员年龄变大后的职业出路是什么?
曾经的你,是不是满怀信心的迈进了程序员的行列?若干年后,你突然发现,曾经的美好似乎离你越来越远,随着年龄的增长,不知不觉的到了38,40,45岁,那我们应该怎么办呢?第一,转岗开发做不了太久,其他行业能做很久?其实整个互联网行业都是有年龄限制的,如果说老程序员大部分人能干到35,那其他岗位撑死到45也不得了了。但时间长,总是有机会,而且还是技术出身,对技术实现系列更了解,指不定还能实现事业第二春。程序员能去的方向有以下两大类:1,产品经理...
2022-05-10 14:55:20
9097
原创 如何使用 GCC 生成一个最小的 BIOS hello world 引导扇区
1.研究的目的:想用GCC为8088单板机开发C运行程序2.工具需要: 2.1.GCC编译器(windows 下的 minGW) 2. 2.qemu虚拟机3.参考文档:如何使用 GCC 生成一个最小的 BIOS hello world 引导扇区,该扇区可以在真实硬件上的 USB 记忆棒上运行?(How to produce a minimal BIOS hello world boot sector with GCC that works from a USB...
2022-05-10 10:19:53
213
原创 8088单板机上8253、8259的初始化代码
;--------------------------------------------------------;intel 8253 init;-------------------------------------------------------- ;8253 init t0 timer ;----------------------------- _8253_init: nop mov al,00110111b...
2022-05-08 22:44:50
938
原创 Visual Studio 2015 建立汇编项目步骤
参考引用:汇编语言笔记(一)——汇编语言基础 - 知乎一、开发环境我使用visual studio 2022 preview,其他版本的设置大同小异。 第一步: 打开visual studio,点击“创建新项目”: 第二步: visual studio并没有专门的汇编项目,所以需要挂羊头卖狗肉,选择C++空项…https://zhuanlan.zhihu.com/p/420032439步骤一:创建C++空项目步骤二:鼠标右键单击项目名称——>生成依赖项——>生成自定义,点击masm,
2022-05-08 16:59:03
949
原创 汇编语言小记
(1)汇编语言的特点与硬件相关,每一种处理器都有相应的汇编语言;与机器码相关,指令通常与机器码一一对应;家用电脑使用intel/amd处理器,对应x86-x64汇编语言。(2)汇编语言的作用深入理解硬件工作原理;充分利用计算机特性(如SIMD,即单指令多数据);开发操作系统内核、驱动程序等;优化程序。(3)汇编语言无用论汇编语言代码难以维护;编译器优化足够先进,无需汇编语言(编译器可实现循环展开、内联展开等,减少跳转,而汇编语言开发难以实现);高级语言也可以实
2022-05-08 16:40:26
132
原创 串口16550驱动程序与测试
想法:8088单板机的boot部分,串口芯片16550 波特率设置成9600,想在测试程序加载后,重新设定串口通讯的波特率为19200。代码如下://PC16550 INIT CODE;---------------------------------------------------;16650 init;---------------------------------------------------COM_INIT :;// PROC NEAR ;LINE MOV AL
2022-05-08 16:24:45
1401
8088单板机原理图+PCB板图+Boot代码
2022-05-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人