Davidypy/C51 代码解释与教学可视化

解析完整的 51 单片机 C51 程序,生成适合高职课堂的中文代码解释与教学信息图,包含原样源码、关键语句、硬件效果和执行流程。适用于 LED、按键、蜂鸣器、数码管等 C51 教学可视化;也支持只做代码解析或生成制图提示词。不用于普通前端界面、通用编程教程或默认制作 PPTX。

O que é C51 代码解释与教学可视化?

Esta skill é especializada em analisar programas C51 completos para microcontroladores 8051 e gerar infográficos educacionais em chinês, voltados para cursos técnicos de nível superior (高职) na disciplina 'Tecnologia de Aplicação de Microcontroladores'. Ela processa o código-fonte original (LEDs, botões, buzzers, displays de 7 segmentos, etc.), preservando sua integridade linha por linha, e produz explicações didáticas destacando instruções-chave, efeitos de hardware e fluxos de execução. A saída padrão são imagens PNG (1814×867 px, fundo branco, formato paisagem) prontas para inserção em slides PPT, mas a skill também pode atender solicitações que exigem apenas análise textual ou prompts para geração de imagens. Suporta plataformas como Claude Code, Cursor e Codex, focando exclusivamente em ambientes de desenvolvimento C51. A skill mantém uma base de código imutável, evita generalizações não suportadas pelo código e realiza verificações rigorosas de integridade, interpretação e qualidade visual antes da entrega.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Davidypy/Skills/tree/HEAD/skills/c51-code-visualizer

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Explicação de Código C51 e Visualização Didática

Transforma o código-fonte C51 completo submetido pelo usuário em material didático voltado para iniciantes em cursos técnicos de 'Tecnologia de Aplicação de Microcontroladores'. A integridade e legibilidade do código-fonte têm prioridade sobre a estética gráfica; o comportamento é explicado com base nas instruções reais, sem tratar comentários, nomes de arquivos ou circuitos de uso comum como fatos.

Escopo de Entrada e Entrega

  • A entrega padrão é um infográfico PNG em chinês, 1814×867 pixels, orientação paisagem, fundo branco, adequado para ser inserido abaixo do título de slides PPT. Por padrão, tenta gerar 1 página, aumentando o número de páginas conforme a legibilidade; quando o usuário especifica explicitamente o número de páginas ou layout, isso é priorizado.
  • Quando o usuário solicita apenas análise, prompt ou planejamento, apenas esse escopo é concluído. A execução desta skill em si não implica na geração da imagem; na ausência de código real, exemplos ou textos placeholders não são tratados como programa.
  • Lê o código completo, nome do programa (se houver), número de imagens, layout e condições de circuito conhecidas. A ausência de código exige que o mesmo seja solicitado; outros parâmetros que podem ser razoavelmente inferidos são explicados com seus valores padrão, e o processo prossegue. Níveis lógicos desconhecidos podem ser analisados com suposições explícitas, ou apenas o estado dos bits da porta pode ser exibido.
  • O nome do arquivo segue o fornecido pelo usuário ou explicitamente indicado no código-fonte; quando não identificável, usa 'programa_sem_nome.c' e informa que é um nome de exibição, sem alegar ser o nome original do arquivo.
  • A saída é gravada por padrão em um diretório de resultados independente da tarefa atual, não escrevendo trabalhos do usuário no diretório da skill.

Base de Código-Fonte Imutável

  1. O arquivo fonte é salvo byte a byte original. Para código em chat, apenas o texto dentro do fence de código é extraído, preservando linhas em branco, indentação e quebra de linha final, e salvo para estabelecer a base. Codificações diferentes devem ser decodificadas explicitamente; caracteres de substituição não podem ser usados para engolir erros.
  2. Registra: nome do arquivo, codificação, SHA-256, número de linhas físicas, conteúdo de cada linha e contagem de caracteres de parênteses. A contagem de parênteses incluindo comentários/strings é apenas uma auditoria de caracteres, não equivale a verificação sintática.
  3. Não reescreve identificadores, constantes, comentários, operadores, parênteses ou instruções repetidas; não otimiza código ou adiciona parênteses automaticamente. Não insere reticências na área do código-fonte. Erros encontrados são explicados fora da imagem.
  4. Por padrão, mantém a ordem e indentação originais das linhas. Números de linha e cores sintáticas pertencem à camada de exibição e não podem ser escritos de volta no texto fonte. Tabulações podem ser expandidas na exibição com base em paradas de tabulação explícitas, mas o caractere original é preservado para verificação.
  5. Paginação ou layout de duas colunas do código deve cobrir cada linha do arquivo fonte exatamente uma vez, numerada sequencialmente na ordem original. Trechos de código reutilizados na área de explicação não contam como repetição da paginação do código-fonte, mas devem ser claramente diferenciados.

Estabelecendo Explicações Didáticas com Base no Programa

Durante a análise, leia references/c51-analysis.md e organize com base no programa real:

  • Pinos de entrada/saída, tipos, valores iniciais de variáveis e responsabilidades das funções.
  • Relações reais entre inicialização, loop principal, ramificações condicionais, loops bloqueantes e interrupções.
  • Ordem de avaliação de expressões, contagem de loops, deslocamentos/rotações, valores de porta e alterações de estado.
  • Detecção de tecla, debounce, confirmação secundária, se aguarda liberação realmente existe e se um único pressionamento pode acionar repetidamente.
  • Fatos conhecidos do circuito, suposições necessárias, partes que não podem ser determinadas apenas pelo código-fonte.

Cada explicação-chave usa o formato: 'instrução diretamente citada do código-fonte → função da instrução → efeito real'. Selecione apenas 3 a 6 pontos de conhecimento relevantes para a página atual; resumos de funcionalidade geralmente têm 2 a 4 itens. Não adicione pontos de conhecimento que não existem no código-fonte apenas para aumentar a quantidade.

Layout e Geração

Antes de gerar a imagem, leia references/rendering.md, que contém comandos da ferramenta de renderização, formato JSON didático e regras de paginação.

  • Fundo branco, borda fina, cartões com bordas arredondadas, margem de segurança de 20 a 30 px. Tema azul para código; verde para explicações-chave; laranja para efeitos de execução; ciano para fluxo. Na ausência de imagens históricas, crie conforme esta especificação, sem alegar ter correspondido a trabalhos históricos não vistos.
  • Não adicione títulos extras de curso. O título do cartão de código exibe o nome real do arquivo; à direita, rotule 'C (51 Microcontroladores)' e o número da página.
  • A área de código à esquerda geralmente ocupa 55% a 65%; use uma fonte monoespaçada com fallback para chinês. Comentários em verde, palavras-chave em azul/roxo, valores numéricos em laranja. Código e comentários não podem transbordar, ser cortados ou forçados com fontes extremamente pequenas.
  • À direita, coloque: funcionalidade do programa, instruções-chave, efeitos de hardware, fluxo real; em páginas múltiplas, distribua para páginas relacionadas, não exigindo que todos os módulos sejam repetidos em cada página. Código longo pode usar páginas dedicadas a código mais páginas dedicadas a explicação.
  • Execute preferencialmente o script scripts/render_infographic.py desta skill para renderizar o PNG completo de forma determinística. Ele é responsável por: leitura linha a linha do código-fonte, paginação, numeração de linhas, realce de sintaxe, cartões didáticos, LEDs de porta e nós de fluxo com linhas de conexão; o conteúdo didático é escrito por você no JSON após análise, e a ferramenta não infere semântica.
  • Se o script rejeitar devido a restrições de largura de linha, capacidade de texto ou layout, ajuste a paginação ou layout; se necessário, use ferramentas programáticas como SVG/HTML para atingir a mesma cobertura e verificação da base de código. Não trunque ou reduza texto silenciosamente para contornar falhas.
  • Cartões comuns, pinos, LEDs, displays de 7 segmentos e setas devem ser desenhados programaticamente, sem necessidade de modelo de imagem. Use a habilidade de imagegen disponível somente quando o usuário desejar ou quando o conteúdo realmente necessitar de ilustrações bitmap; ela só pode ser responsável por materiais não relacionados ao código. Não deixe que um modelo de imagem redesenhe o código-fonte e depois alegue precisão.
  • Quando o número de páginas especificado rigidamente pelo usuário não puder satisfazer simultaneamente integridade e legibilidade, explique o número de páginas necessário e o motivo, apresentando opções claras de layout; não omita código por conta própria. No modo automático de número de páginas, adote diretamente uma paginação clara e legível.

Verificação e Entrega

  1. Reconstrua o texto de todas as páginas do código-fonte, compare caractere por caractere com a base, verifique numeração de linhas contínua, sem duplicatas ou omissões, parênteses finais originais e quebra de linha final. Mantenha uma lista de resultados.
  2. Verifique interpretação do programa, ramificações condicionais, comportamento de teclas e estado do hardware; níveis de LED, ordem e direção dos bits devem ser consistentes com a fiação conhecida ou suposições declaradas.
  3. Abra cada PNG final e verifique se código, comentários em chinês, nós de fluxo e textos explicativos estão claros, sem sobreposição, falta de caracteres, cortes ou desalinhamento; confirme as dimensões reais de cada imagem.
  4. Diferencie o escopo da verificação: a aprovação na comparação do código-fonte prova que a entrada da composição é consistente; a legibilidade final dos pixels ainda requer inspeção visual. Não trate o hash do código-fonte ou o hash PNG como prova de OCR ou correção semântica.
  5. Entregue as imagens com uma breve descrição: número de páginas, intervalos de linhas do código-fonte e principais conteúdos explicativos de cada página, dimensões reais, escopo de verificação concluído, problemas identificados no programa-fonte e suposições de hardware. Forneça links para a base do código-fonte e o arquivo manifest.json para facilitar a reavaliação.
  6. Se apenas obteve um prompt, painel de código ou rascunho não verificado, indique claramente o status da entrega, não chamando de infográfico didático completo. Quando as ferramentas estiverem limitadas, explique as limitações reais e o que foi concluído.

Habilidades Relacionadas