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

Deeepseek生成8255动态显示程序

1.给deepseek下达的聊天指令

8255驱动 8位数码管,PORTA是段码,PORTB是位码,程序加载地址CS:IP 为0000:2000,用emu8086编写一个动态显示‘12345678’的程序

2.Deepseek生成的程序

; ============================================ ; 8255驱动8位数码管动态显示 "12345678" ; CS:0000, IP:2000 ; 硬件连接: ; PORTA (200h) -> 段码 (a,b,c,d,e,f,g,dp) ; PORTB (201h) -> 位码 (8位数码管位选) ; 控制口 (203h) -> 8255控制寄存器 ; ============================================ ; 端口地址定义 (根据您的设置) PORTA EQU 200h ; 段码输出 PORTB EQU 201h ; 位码输出 CTRL EQU 203h ; 控制端口 ; 程序起始地址 ORG 1000H ; 代码段偏移 START: ; 初始化8255:A口输出,B口输出,方式0 MOV AL, 10000000b ; 控制字:A口方式0输出,B口方式0输出 MOV DX, CTRL OUT DX, AL ; 初始化显示 CALL INIT_DISPLAY MAIN_LOOP: ; 动态显示"12345678" CALL DISPLAY_12345678 JMP MAIN_LOOP ; 无限循环显示 ; ============================================ ; 显示数字"12345678"的子程序 ; ============================================ DISPLAY_12345678 PROC PUSH AX PUSH BX PUSH CX PUSH SI ; 指向段码表起始位置 LEA SI, SEG_TABLE + 1 ; 从数字'1'开始 ; 初始化位选码:最低位有效 (00000001b) MOV BL, 00000001b MOV CX, 8 ; 显示8位数 NEXT_DIGIT: ; 1. 关闭所有数码管(消隐) CALL CLEAR_DISPLAY ; 2. 输出段码 MOV AL, [SI] ; 获取当前数字的段码 MOV DX, PORTA OUT DX, AL ; 3. 输出位码 MOV AL, BL MOV DX, PORTB OUT DX, AL ; 4. 延时保持显示 CALL DELAY ; 5. 准备下一个数字 INC SI ; 指向下一个段码 ROL BL, 1 ; 位选码左移一位 LOOP NEXT_DIGIT POP SI POP CX POP BX POP AX RET DISPLAY_12345678 ENDP ; ============================================ ; 清除显示(消隐) ; ============================================ CLEAR_DISPLAY PROC PUSH AX PUSH DX MOV AL, 0FFh ; 段码全灭(共阳)或00h(共阴) MOV DX, PORTA OUT DX, AL MOV AL, 0 ; 关闭所有位选 MOV DX, PORTB OUT DX, AL POP DX POP AX RET CLEAR_DISPLAY ENDP ; ============================================ ; 初始化显示 ; ============================================ INIT_DISPLAY PROC CALL CLEAR_DISPLAY RET INIT_DISPLAY ENDP ; ============================================ ; 延时子程序 ; ============================================ DELAY PROC PUSH CX PUSH DX MOV CX, 02FFh ; 外循环次数(可调整) DELAY_OUTER: MOV DX, 0FFFFh ; 内循环次数 DELAY_INNER: DEC DX JNZ DELAY_INNER LOOP DELAY_OUTER POP DX POP CX RET DELAY ENDP ; ============================================ ; 七段数码管段码表(共阳极) ; 格式:dp g f e d c b a ; 0=亮,1=灭(共阳) ; ============================================ SEG_TABLE: ; 数字 0-9 的段码(共阳) DB 11000000b ; 0: C0H DB 11111001b ; 1: F9H DB 10100100b ; 2: A4H DB 10110000b ; 3: B0H DB 10011001b ; 4: 99H DB 10010010b ; 5: 92H DB 10000010b ; 6: 82H DB 11111000b ; 7: F8H DB 10000000b ; 8: 80H DB 10010000b ; 9: 90H ; 其他字符(如果需要) DB 11111111b ; 全灭 ; ============================================ ; 程序结束 ; ============================================ END START

3.Deepseek生成的程序复制到emu8086中,进行编译

注意:为了适用8088单板机加载运行的需要,程序的末尾要加上结尾标识数据 5个55H

4.串口下载测试

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

相关文章:

  • RAX3000M刷机终极指南:从零开始玩转OpenWrt系统
  • 软件产品设计中用户体验提升的主要问题分析
  • Typst数学排版终极指南:告别对齐困扰,打造完美公式
  • 22、企业环境下迁移 Windows 应用到 Linux 及瘦客户端计算的全面解析
  • 24、探索瘦客户端计算与Linux桌面资源
  • IT66122FN-300:低功耗发射器,配备HDMI 1.4 3D
  • uniapp+springboot微信小程序民宿预订管理系统设计与实现_337b01q6_论文
  • 第135篇:美国APT的苹果手机“三角测量“行动是如何被溯源发现的
  • 高效节能的工业动力核心:西门子罗宾康高压变频器LDZ14501000.070
  • CosyVoice语音合成实战指南:从零到一掌握微调全流程
  • 使用 Coze MCP 插件 + curl 调用工具生成高质量提示词示例
  • 5个Apache Weex渲染性能提升技巧:终极优化指南
  • 271. Java Stream API - 理解 Java Stream 的流水线模型:中间操作 vs 终端操作
  • 生成对抗网络:从代码到创意的商业变现指南
  • 【R与Python函数调用适配全攻略】:掌握跨语言协作的5大核心技术
  • R与Python库版本同步实践全解析(20年专家亲授避坑手册)
  • 心法利器[147] | Agent,是大模型落地的殊途同归
  • 金融风险管理实战(R语言蒙特卡洛模拟大揭秘)
  • 帮我推荐短视频seo电话
  • 金融风险建模不再难,R语言压力测试十大关键步骤全公开
  • 基于Java的取水许可与征费智慧管理系统的设计与实现全方位解析:附毕设论文+源代码
  • 【实践篇】我在某AI Native系统架构设计与实现上做了一点尝试:双路径架构
  • 气象数据分析的秘密武器:R语言季节性分解技术首次完整披露
  • 揭秘R语言在环境监测中的数据同化魔法:5个关键步骤实现精准预测
  • 塔吉特成功率低?自养号技术底层原理与落地步骤
  • 【R语言量子电路优化实战】:掌握5大核心技巧提升量子算法效率
  • 内存管理 - 内存泄漏 - 排查、预防策略
  • 全球服贸联盟:世界主要城市数字经济创新与知识产权发展指数报告2025(摘要)
  • 冰途缓行,雪路安驾:冰雪天气安全驾驶指南
  • DuckDB Go客户端深度开发指南:构建高性能嵌入式分析应用