当前位置: 首页 > news >正文

Deepseek生成8088单板机的流水灯程序

1.Deepseek会话指令

8位LED,端口地址800H,程序加载地址CS:IP 为0000:2000,用emu8086编写一流水灯程序

2.DeppSeek生成的程序

#make_bin# ; BIN is plain binary format similar to .com format, but not limited to 1 segment; ; All values between # are directives, these values are saved into a separate .binf file. ; Before loading .bin file emulator reads .binf file with the same file name. ; All directives are optional, if you don't need them, delete them. ; set loading address, .bin file will be loaded to this address: #LOAD_SEGMENT=0500h# #LOAD_OFFSET=0000h# ; set entry point: #CS=0500h# ; same as loading segment #IP=0000h# ; same as loading offset ; set segment registers #DS=0500h# ; same as loading segment #ES=0500h# ; same as loading segment ; set stack #SS=0500h# ; same as loading segment #SP=FFFEh# ; set to top of loading segment ; set general registers (optional) #AX=0000h# #BX=0000h# #CX=0000h# #DX=0000h# #SI=0000h# #DI=0000h# #BP=0000h# ; add your code here ; ============================================ ; 流水灯控制程序 ; 控制8位LED,端口地址800H ; 程序加载地址:CS:0000, IP:2000 ; 功能:实现多种流水灯效果 ; ============================================ PORT_LED EQU 800H ; LED控制端口地址 ORG 2000H ; 设置IP=2000H START: ; 初始化:关闭所有LED MOV AL, 0FFH ; 假设高电平灭,低电平亮(可根据实际调整) CALL OUTPUT_LED MAIN_LOOP: ; 效果1:从左到右流水(单灯流动) CALL FLOW_LEFT_TO_RIGHT ; 效果2:从右到左流水 CALL FLOW_RIGHT_TO_LEFT ; 效果3:两边向中间汇聚 CALL FLOW_CENTER_IN ; 效果4:中间向两边扩散 CALL FLOW_CENTER_OUT ; 效果5:全亮全闪 CALL BLINK_ALL JMP MAIN_LOOP ; 无限循环 ; ============================================ ; 子程序:向LED端口输出数据 ; 输入:AL = 要输出的数据 ; ============================================ OUTPUT_LED PROC MOV DX, PORT_LED OUT DX, AL RET OUTPUT_LED ENDP ; ============================================ ; 效果1:从左到右流水(单灯移动) ; ============================================ FLOW_LEFT_TO_RIGHT PROC PUSH CX PUSH AX MOV CX, 8 ; 循环8次 MOV AL, 01111111b ; 初始:最左灯亮(第7位为0) FLOW_LR_LOOP: CALL OUTPUT_LED ; 输出到LED CALL DELAY ; 延时 ROR AL, 1 ; 循环右移:01111111→10111111→11011111... LOOP FLOW_LR_LOOP POP AX POP CX RET FLOW_LEFT_TO_RIGHT ENDP ; ============================================ ; 效果2:从右到左流水 ; ============================================ FLOW_RIGHT_TO_LEFT PROC PUSH CX PUSH AX MOV CX, 8 MOV AL, 11111110b ; 初始:最右灯亮(第0位为0) FLOW_RL_LOOP: CALL OUTPUT_LED CALL DELAY ROL AL, 1 ; 循环左移:11111110→11111101→11111011... LOOP FLOW_RL_LOOP POP AX POP CX RET FLOW_RIGHT_TO_LEFT ENDP ; ============================================ ; 效果3:两边向中间汇聚 ; ============================================ FLOW_CENTER_IN PROC PUSH CX PUSH AX MOV CX, 4 ; 4个步骤 MOV AL, 01111110b ; 初始:两边亮(第7位和第0位为0) FLOW_CI_LOOP: CALL OUTPUT_LED CALL DELAY_LONG ; 稍长延时 ; 修改位模式:01111110→10111101→11011011→11100111 ; 先右移左边0位,再左移右边0位 MOV AH, AL AND AH, 0F0H ; 保留高4位 SHR AH, 1 ; 右移 AND AL, 0FH ; 保留低4位 SHL AL, 1 ; 左移 OR AL, AH ; 合并 LOOP FLOW_CI_LOOP POP AX POP CX RET FLOW_CENTER_IN ENDP ; ============================================ ; 效果4:中间向两边扩散 ; ============================================ FLOW_CENTER_OUT PROC PUSH CX PUSH AX MOV CX, 4 MOV AL, 11100111b ; 初始:中间两个亮 FLOW_CO_LOOP: CALL OUTPUT_LED CALL DELAY_LONG ; 修改位模式:11100111→11011011→10111101→01111110 MOV AH, AL AND AH, 0F0H SHL AH, 1 ; 左移 AND AL, 0FH SHR AL, 1 ; 右移 OR AL, AH LOOP FLOW_CO_LOOP POP AX POP CX RET FLOW_CENTER_OUT ENDP ; ============================================ ; 效果5:全亮全闪 ; ============================================ BLINK_ALL PROC PUSH CX PUSH AX MOV CX, 5 ; 闪烁5次 BLINK_LOOP: MOV AL, 00000000b ; 全亮 CALL OUTPUT_LED CALL DELAY_SHORT MOV AL, 11111111b ; 全灭 CALL OUTPUT_LED CALL DELAY_SHORT LOOP BLINK_LOOP POP AX POP CX RET BLINK_ALL ENDP ; ============================================ ; 延时子程序(基本延时) ; ============================================ DELAY PROC PUSH CX PUSH DX MOV CX, 02H ; 外循环 DELAY_OUTER: MOV DX, 0FFFFH ; 内循环 DELAY_INNER: DEC DX JNZ DELAY_INNER LOOP DELAY_OUTER POP DX POP CX RET DELAY ENDP ; ============================================ ; 较长延时(用于汇聚/扩散效果) ; ============================================ DELAY_LONG PROC PUSH CX PUSH DX MOV CX, 02H DELAY_LONG_OUTER: MOV DX, 0FFFFH DELAY_LONG_INNER: DEC DX JNZ DELAY_LONG_INNER LOOP DELAY_LONG_OUTER POP DX POP CX RET DELAY_LONG ENDP ; ============================================ ; 较短延时(用于闪烁效果) ; ============================================ DELAY_SHORT PROC PUSH CX MOV CX, 0FFFH DELAY_SHORT_LOOP: LOOP DELAY_SHORT_LOOP POP CX RET DELAY_SHORT ENDP DB 55H,55H,55H,55H,55H,55H ;添加Bootloader接受结束标志数据串 ; ============================================ ; 程序结束 ; ============================================ END START HLT ; halt!

3.拷入Emu8086,编译生成可执行代码

4.下载运行

http://www.cnnetsun.cn/news/128143.html

相关文章:

  • 一块8088单板机,桌面上的技术玩具
  • 数字签名与数字证书
  • 国密算法全家桶:一文认清 SM 系列 “安全卫士”
  • RocketMQ的事务消息是如何实现的?
  • 【实证分析】上市公司产品市场竞争优势-含原始数据及do代码(2002-2022年)
  • 招标平台最难的战斗:在持续变化中保持数据稳定与精准
  • 洋驼帮跨境物流
  • 前后端分离滑雪场管理系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • Kotaemon在政务场景下的合规性与安全性设计
  • 两款免费神器一键修复,网络难题轻松搞定!
  • 自动化营销有哪些方式,国内外有哪些自动化营销工具?
  • Cursor快捷键大全:效率翻倍的隐藏技巧
  • 【项目实战】md 是标准纯文本标记语言,mdx 是其扩展格式(融合 JSX/组件能力)
  • 2、网络指南:印刷版与在线版的选择及网络知识介绍
  • Kotaemon如何处理歧义问题?上下文消解策略解析
  • 6、网络配置与管理全解析
  • 零代码训练!用本地大模型实现文本情感分析
  • Kotaemon备份与恢复策略:防止数据丢失
  • 批量将 Word 文档重命名为其标题
  • Kotaemon本地部署教程:保护数据隐私的新选择
  • Kotaemon支持GraphQL接口吗?现代API集成方案
  • 基于Kotaemon的政策法规智能查询系统
  • Kotaemon前缀缓存机制:加速重复查询响应
  • 42、数据绑定中的错误处理与ASP.NET数据绑定实践
  • 46、WinFx数据绑定入门指南
  • Kotaemon危机公关声明撰写:负面舆情应对
  • Kotaemon如何生成参考文献?学术写作辅助新玩法
  • 12、深入解析词法分析与语法分析工具的核心功能
  • 13、Bison 解析器的高级特性与使用技巧
  • Kotaemon中的元数据过滤功能如何精准定位内容?