Deepseek给出的8255显示例程

news2025/7/25 10:17:25

#include <stdio.h>
#include <conio.h>
#include <dos.h>

// 定义8255端口地址 (根据原理图译码确定)
#define PORT_8255_A 0x8000  // PA端口地址
#define PORT_8255_B 0x8001  // PB端口地址
#define PORT_8255_C 0x8002  // PC端口地址
#define PORT_8255_CTRL 0x8003 // 控制寄存器地址

// 数码管段码表 (共阴极)
unsigned char seg_codes[] = {
    0x3F, // 0
    0x06, // 1
    0x5B, // 2
    0x4F, // 3
    0x66, // 4
    0x6D, // 5
    0x7D, // 6
    0x07, // 7
    0x7F, // 8
    0x6F  // 9
};

// 延时函数
void delay(unsigned int ms) {
    for (unsigned int i = 0; i < ms; i++) {
        for (unsigned int j = 0; j < 1000; j++) {
            // 空循环延时
        }
    }
}

// 初始化8255
void init_8255() {
    // 控制字: 10000001 (0x81)
    // A口输出, B口输出, C口输出
    outportb(PORT_8255_CTRL, 0x81);
}

// 显示8位数字
void display_numbers() {
    unsigned char digits[] = {1, 2, 3, 4, 5, 6, 7, 8}; // 要显示的数字
    
    while (!kbhit()) {  // 按任意键退出
        for (int i = 0; i < 8; i++) {
            // 设置位选 (选中当前位)
            outportb(PORT_8255_B, ~(1 << i));
            
            // 设置段码
            outportb(PORT_8255_A, seg_codes[digits[i]]);
            
            // 延时保持显示
            delay(1);
            
            // 关闭当前位显示 (消除鬼影)
            outportb(PORT_8255_A, 0x00);
        }
    }
}

int main() {
    init_8255();        // 初始化8255
    display_numbers();  // 显示数字
    
    // 程序结束前关闭所有显示
    outportb(PORT_8255_A, 0x00);  // 关闭段选
    outportb(PORT_8255_B, 0xFF);  // 关闭位选
    
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2397413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智汇云舟携最新无人机2D地图快速重建技术亮相广西国际矿业展览会

5月22至25日&#xff0c;广西国际矿业展览会&#xff08;以下简称 “矿业展”&#xff09;在南宁国际会展中心成功举办。智汇云舟与合作伙伴广西空驭数智信息技术有限公司携无人机 2D地图快速重建技术&#xff0c;以及视频孪生智慧矿山解决方案参会&#xff0c;为矿山行业数字化…

力扣每日一题——连接两棵树后最大目标节点数目 ||

目录 题目链接&#xff1a;3373. 连接两棵树后最大目标节点数目 II - 力扣&#xff08;LeetCode&#xff09; 题目描述 解法一&#xff1a;​​双树贡献分离法​​ Java写法&#xff1a; C写法&#xff1a; 运行时间 时间复杂度和空间复杂度 总结 题目链接&#xff1a;…

【学习笔记】Sparse Crosscoders for Cross-Layer Features and Model Diffing

Sparse Crosscoders for Cross-Layer Features and Model Diffing Abstract 本说明介绍了稀疏跨编码器(sparse crosscoders)&#xff0c;它是一种稀疏自编码器(sparse autoencoders)或transcoders的变体&#xff0c;旨在用于理解叠加中的模型结构。SAEs是在单一层中编码和预测…

VSCode无法转到定义python源码(ctrl加单击不跳转)

已经尝试的方案&#xff1a; 1.确保对应python环境正确激活 在 VSCode 中&#xff0c;打开命令面板&#xff08;CtrlShiftP&#xff09;&#xff0c;输入并选择 Python: Select Interpreter&#xff0c;然后从列表中选择正确的 Python 解释器。 2.重新卸载Python插件再重新安装…

【华为战报】4月、5月 HCIP考试战报!

了解更多往期考试→点 【考试战报】 华为认证 HCIP 4、5月微思 | HCIP 考试战报 学员成绩单 华为认证 最新开班 厦门面授 全国直播 新生代网工必看&#xff1a;华为模拟器eNSP安装教程&#xff08;附下载链接&#xff09;

AIGC工具平台-GPT-SoVITS-v4-TTS音频推理克隆

声音克隆与语音合成的结合&#xff0c;是近年来生成式AI在多模态方向上的重要落地场景之一。随着预训练模型能力的增强&#xff0c;结合语音识别、音素映射与TTS合成的端到端系统成为初学者可以上手实践的全流程方案。 围绕 GPT-SoVITS-v4-TTS 模块&#xff0c;介绍了其在整合…

el-table配置表头固定而且高度变化

根据官网提示只要在 el-table 元素中定义了 height 属性&#xff0c;即可实现固定表头的表格&#xff0c;而不需要额外的代码。 如果你想既要固定表头&#xff0c;又要下方表格高度自适应&#xff0c;可以设置为 height"100%" &#xff1a; 然后外层设置scroll:

设计模式——组合设计模式(结构型)

摘要 组合设计模式是一种结构型设计模式&#xff0c;用于将对象组合成树形结构以表示“部分-整体”的层次结构&#xff0c;使客户端对单个对象和组合对象具有一致的访问方式。它包含抽象组件、叶子节点和组合节点&#xff0c;具有统一处理、支持递归结构和易扩展等优点&#x…

EMO2:基于末端执行器引导的音频驱动虚拟形象视频生成

今天带来EMO2&#xff08;全称End-Effector Guided Audio-Driven Avatar Video Generation&#xff09;是阿里巴巴智能计算研究院研发的创新型音频驱动视频生成技术。该技术通过结合音频输入和静态人像照片&#xff0c;生成高度逼真且富有表现力的动态视频内容&#xff0c;值得…

Python打卡训练营Day43

DAY 43 复习日 作业&#xff1a; kaggle找到一个图像数据集&#xff0c;用cnn网络进行训练并且用grad-cam做可视化 数据集地址&#xff1a;Lung Nodule Malignancy 肺结核良恶性判断 进阶&#xff1a;并拆分成多个文件 import os import pandas as pd import numpy as np from…

PHP7+MySQL5.6 查立得轻量级公交查询系统

# PHP7MySQL5.6 查立得轻量级公交查询系统 ## 系统简介 本系统是一个基于PHP7和MySQL5.6的轻量级公交查询系统(40KB级)&#xff0c;支持线路查询、站点查询和换乘查询功能。系统采用原生PHPMySQL开发&#xff0c;无需第三方框架&#xff0c;适合手机端访问。 首发版本&#x…

如何做好一个决策:基于 Excel的决策树+敏感性分析应用(针对多个变量)

本文是对《如何做好一个决策:基于 Excel的决策树+敏感性分析应用》一文的补充。 示例背景 决策问题:是否开发新产品? 关键变量: 开发成本(B2):$500K, $700K, $1M高需求概率(B4):30%, 50%, 70%高需求收入(C4

Azure DevOps 管道部署系列之一本地服务器

Azure DevOps 是一个帮助改进 SDLC(软件开发生命周期)的平台。 在本文中,我们将使用 Azure Pipelines 创建自动化部署。 Azure DevOps 团队将 Azure Pipelines 定义为“使用 CI/CD 构建、测试和部署,适用于任何语言、平台和云平台”。 在这里,我将解释如何在 Azure Dev…

Celery简介

一、什么是异步任务队列 异步任务队列是指一种用于管理和调度异步执行任务的机制。具体来说&#xff0c;它允许将任务放入队列中&#xff0c;然后由后台进程异步处理这些任务&#xff0c;而不会阻塞主线程的执行。这种设计使得系统能够高效地处理耗时操作&#xff0c;同时保持…

基于 GitLab CI + Inno Setup 实现 Windows 程序自动化打包发布方案

在 Windows 桌面应用开发中&#xff0c;实现自动化构建与打包发布是一项非常实用的工程实践。本文以我在开发PackTes项目时的为例&#xff0c;介绍如何通过 GitLab CI 配合 Inno Setup、批处理脚本、Qt 构建工具&#xff0c;实现版本化打包并发布到共享目录的完整流程。 项目地…

web架构2------(nginx多站点配置,include配置文件,日志,basic认证,ssl认证)

一.前言 前面我们介绍了一下nginx的安装和基础配置&#xff0c;今天继续来深入讲解一下nginx的其他配置 二.nginx多站点配置 一个nginx上可以运行多个网站。有多种方式&#xff1a; http:// ip/域名 端口 URI 其中&#xff0c;ip/域名变了&#xff0c;那么网站入口就变了…

AI 的早期萌芽?用 Swift 演绎约翰·康威的「生命游戏」

文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 你有没有想过&#xff0c;能不能通过简单的规则模拟出生与死亡&#xff1f;「生命游戏」正是这样一种充满魅力的数学模拟系统。这篇文章我们来聊聊它的规则到底有多神奇&#xff0c;并用 S…

go|channel源码分析

文章目录 channelhchanmakechanchansendchanrecvcomplieclosechan channel 先看一下源码中的说明 At least one of c.sendq and c.recvq is empty, except for the case of an unbuffered channel with a single goroutine blocked on it for both sending and receiving usin…

【大模型学习】项目练习:视频文本生成器

&#x1f680;实现视频脚本生成器 视频文本生成器 &#x1f4da;目录 一、游戏设计思路二、完整代码解析三、扩展方向建议四、想说的话 一、⛳设计思路 本视频脚本生成器采用模块化设计&#xff0c;主要包含三大核心模块&#xff1a; 显示模块&#xff1a;处理用户输入和…

【Rust】Rust获取命令行参数以及IO操作

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…