# shangyi7/nkust_1151_0886_embedded_system architecture

> Architecture diagram of the GitHub repository shangyi7/nkust_1151_0886_embedded_system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/shangyi7/nkust_1151_0886_embedded_system
- Repository: https://github.com/shangyi7/nkust_1151_0886_embedded_system

## Overview

This repository contains two 8051 Assembly course experiments: flashing an LED and reading a DIP switch. The documented workflow is to compile an `.a51` program into a `.hex` image, open its Proteus project, load the image onto an 8051, and simulate the behavior. The README describes this workflow generally; no source excerpts were provided, so experiment-specific code behavior and wiring are not mapped.

Main entry points: [`01_Flash-LED/Flash-LED.a51`](https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/01_Flash-LED/Flash-LED.a51) (LED Assembly), [`02_DIP-switch/DIP-switch.a51`](https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/02_DIP-switch/DIP-switch.a51) (DIP Assembly), [`01_Flash-LED/Flash-LED.hex`](https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/01_Flash-LED/Flash-LED.hex) (LED Firmware), [`02_DIP-switch/DIP-switch.hex`](https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/02_DIP-switch/DIP-switch.hex) (DIP Firmware)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_firmware["Assembly Experiments"]
  node_led_source["LED Assembly<br/>[Flash-LED.a51]"]
  node_dip_source["DIP Assembly<br/>[DIP-switch.a51]"]
  node_led_hex["LED Firmware<br/>[Flash-LED.hex]"]
  node_dip_hex["DIP Firmware<br/>[DIP-switch.hex]"]
end

subgraph group_simulation["Proteus Simulation"]
  node_led_project["LED Circuit Project<br/>[8051.pdsprj]"]
  node_dip_project["DIP Circuit Project<br/>[8051.pdsprj]"]
  node_led_result(("LED Behavior"))
  node_dip_result(("Switch Behavior"))
end

node_learner(("Experimenter"))
node_compiler["8051 Compiler"]
node_proteus["Proteus Simulator"]
node_mcu{{"8051 Chip"}}

node_learner -->|"opens source"| node_led_source
node_learner -->|"opens source"| node_dip_source
node_led_source -->|"compiles to"| node_compiler
node_dip_source -->|"compiles to"| node_compiler
node_compiler -->|"produces image"| node_led_hex
node_compiler -->|"produces image"| node_dip_hex
node_learner -->|"opens project"| node_led_project
node_learner -->|"opens project"| node_dip_project
node_led_project -->|"simulates in"| node_proteus
node_dip_project -->|"simulates in"| node_proteus
node_led_hex -->|"loads onto"| node_mcu
node_dip_hex -->|"loads onto"| node_mcu
node_proteus -->|"simulates"| node_mcu
node_mcu -->|"observes LED"| node_led_result
node_mcu -->|"observes switch"| node_dip_result

click node_led_source "https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/01_Flash-LED/Flash-LED.a51"
click node_dip_source "https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/02_DIP-switch/DIP-switch.a51"
click node_led_hex "https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/01_Flash-LED/Flash-LED.hex"
click node_dip_hex "https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/02_DIP-switch/DIP-switch.hex"
click node_led_project "https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/01_Flash-LED/pdsprj/8051.pdsprj"
click node_dip_project "https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/02_DIP-switch/pdsprj/8051.pdsprj"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_led_source,node_dip_source,node_led_hex,node_dip_hex toneBlue
class node_led_project,node_dip_project,node_led_result,node_dip_result toneAmber
class node_learner,node_compiler,node_proteus,node_mcu toneIndigo
```

## Components

### Assembly Experiments

- [LED Assembly](https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/01_Flash-LED/Flash-LED.a51): `01_Flash-LED/Flash-LED.a51`
- [DIP Assembly](https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/02_DIP-switch/DIP-switch.a51): `02_DIP-switch/DIP-switch.a51`
- [LED Firmware](https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/01_Flash-LED/Flash-LED.hex): `01_Flash-LED/Flash-LED.hex`
- [DIP Firmware](https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/02_DIP-switch/DIP-switch.hex): `02_DIP-switch/DIP-switch.hex`

### Proteus Simulation

- [LED Circuit Project](https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/01_Flash-LED/pdsprj/8051.pdsprj): `01_Flash-LED/pdsprj/8051.pdsprj`
- [DIP Circuit Project](https://github.com/shangyi7/nkust_1151_0886_embedded_system/blob/master/02_DIP-switch/pdsprj/8051.pdsprj): `02_DIP-switch/pdsprj/8051.pdsprj`
- **LED Behavior**
- **Switch Behavior**

### Other components

- **Experimenter**
- **8051 Compiler**
- **Proteus Simulator**
- **8051 Chip**

## Connections

- Experimenter → LED Assembly: opens source (evidence: `README.md`)
- Experimenter → DIP Assembly: opens source (evidence: `README.md`)
- LED Assembly → 8051 Compiler: compiles to (evidence: `README.md`)
- DIP Assembly → 8051 Compiler: compiles to (evidence: `README.md`)
- 8051 Compiler → LED Firmware: produces image (evidence: `README.md`)
- 8051 Compiler → DIP Firmware: produces image (evidence: `README.md`)
- Experimenter → LED Circuit Project: opens project (evidence: `README.md`)
- Experimenter → DIP Circuit Project: opens project (evidence: `README.md`)
- LED Circuit Project → Proteus Simulator: simulates in (evidence: `README.md`)
- DIP Circuit Project → Proteus Simulator: simulates in (evidence: `README.md`)
- LED Firmware → 8051 Chip: loads onto (evidence: `README.md`)
- DIP Firmware → 8051 Chip: loads onto (evidence: `README.md`)
- Proteus Simulator → 8051 Chip: simulates (evidence: `README.md`)
- 8051 Chip → LED Behavior: observes LED (evidence: `README.md`)
- 8051 Chip → Switch Behavior: observes switch (evidence: `README.md`)
