The Dragon12-Plus-USB

A modern 16-bit MCU for academia.  
Step-by-step debugger.

From ECE 101 to ECE 999, from blinking a LED to RTOS and MATLAB/Simulink projects, one HCS12 board fits all.


  The HCS12/9S12 based Dragon12-Plus-USB board includes a built-in USB interface based on the flawless FT232RL and an RGB piranha color LED.  It is fully backward compatible to our Dragon12-Plus board. It will run all programs written from the Dragon12-Plus board without any modifications.

The above picture shows the kit that includes the Dragon12 Plus-USB board based on the MC9S12DG256CVPE, a solderless breadboard and a USB cable.  The SCI1 interface is changed from RS232 level to TTL level.  For RS232 interface applications an RS232 to TTL adapter (RTA, $10) is required.

For customers in US and Canada, you will also receive a free switching power AC adapter.

SD memory card holder, SD memory & VGA camera interface circuits are not included in the kit. 
The SD memory and VGA camera interfaces can only be installed at factory.

Before purchasing the SDVGA option ($20) please read the  SD memory interface page.

The 2-position mode-switch (SW7) located next to the ground test point is used for selecting one of 4 operating modes and the LCD display module will show the selected operating mode when the board is turned on or reset. When you learn HCS12/MC9S12 programming with D-Bug12 monitor, you will have to change operating modes of the HCS12/MC9S12 quite often, so this is a useful feature.

Dragon12-Plus-USB features:

  • On-board USB interface based on the flawless FT232RL for all Windows operating systems
  • On-board RGB piranha color LED
  • Free 9V 1A switching power supply AC adapter for US and Canadian orders
  • CAN controller
  • 16X2 LCD display module with LED backlight and it can be replaced by any size of LCD display module via a 16 pin cable assembly
  • 4-digit, 7-segment display module for learning multiplexing technique
  • 4 X 4 keypad
  • Eight LEDs connected to port B
  • An 8-position DIP switch connected to port H
  • Four pushbutton switches
  • IR transceiver with built-in 38KHz oscillator
  • RS485 communication port with terminal block for daisy chaining
  • speaker driven by timer, or PWM, or DAC for alarm, voice and music applications
  • Potentiometer trimmer pot for analog input
  • USB interface selectable for both SCIs
  • Dual 10-bit DAC for testing SPI interface and generating analog waveforms
  • I2C based Real Time Clock DS1307 with backup battery
  • I2C expansion port for interfacing external I2C devices
  • Dual H-Bridge with motor feedback or incremental encoder interface with quadrature output for controlling two DC motors or one Stepper motor
  • Four robot servo outputs with a terminal block for external 5V 
  • Opto-coupler output
  • DPDT form C relay
  • Temperature sensor for home automation applications
  • Light sensor for home automation applications
  • Logic probe with LED indicator
  • Fast SPI expansion port for interfacing external SPI devices
  • Power-On LED indicator
  • Abort switch for stopping program when program is hung in a dead loop
  • MC9S12DG256 MCU includes the following on-chip peripherals:
    • 3 SPIs
    • 2 SCIs
    • 2 CANs
    • I2C interface
    • 8 16-bit timers
    • 8 PWMs
    • 16-channel 10-bit A/D converter
  • Super fast bus speed up to 25 MHz
  • The 112-Pins on-board MCU (MC9S12DG256CVPE) with 89 I/O-Pins is included
  • BDM-in connector to be connected with a BDM from multiple vendors for debugging.
  • BDM-out connector for making this board as a HCS12 / 9S12 BDM or programmer. No extra hardware needed.
  • Female and male headers provide shortest distance (great for high speed applications!) to every I/O pin of the MC9S12DG256
  • Comes with AsmIDE under GPL (general public license)
  • Pre-loaded with D-Bug12 monitor for working with AsmIDE and EmbeddedGNU
  • Or pre-loaded with serial monitor for working with Code Warrior
  • Supports source level debugging in C and Assembler without a BDM
  • Mode switch for selecting 4 operating modes: EVB, Jump-to-EEPROM, BDM POD and Bootloader
  • Auto start user programs after power on
  • Fast prototyping with on-board solderless breadboard
  • Many fully debugged 68HC12 program examples including source code
  • Includes a hardware test program that simultaneously scans the keypad, plays a song, multiplexes the 4 LED seven segment display, changes display brightness by adjusting the trimmer pot and detects an object by using IR transceiver as a proximity sensor
  • DC jack and terminal block for external 9V battery input
  • PC board size 8.4" X 5.3"
  • USB cable for connecting to a PC USB port

All above features are included in the price.

  HCS12/9S12 Applications:
The pictures below were taken using the old Dragon12 Plus board, but the applications apply to the new board.

DC Motor

Stepper Motor

Servo Control with GP2D12 object sensor

 Alarm system with a real time surveillance camera recorder    

Professor Tom Almy had written an alarm clock program for our old Dragon12 board in 2003, but it still will run on the HCS12/9S12 base Dragon12-Plus board. The source program of his alarm clock can be downloaded at http://hcs12text.com/links.html

He has recently written a cool demo program for DC motor and stepper motor working with the Dragon12-Plus board. The source code is included in our distribution CD and free for all Dragon12-Plus users. More details can be found in the Designing with Microcontrollers textbook

To run his program, remove the jumper on J24(J24A) and place it on J18.  This will provide VCC to the H-Bridge (U12) and disable the 7-segment display at the same time. After running his program, don't forget to move the jumper back to J24(J24A) for enabling the 7-segment display. 

Following is the brief description of his demo program:

; Motor Speed Control Example Program
; Author: Tom Almy
; Date: May 22, 2007
; Copyright 2007, Tom Almy. Permission given to copy for use; in Wytec Dragon12-plus board.

; The user enters the desired speed and direction using the keypad.
; 0 through 9 set the speed (stop to full speed). The * button sets
; forward direction and the # button sets reverse direction. The lower
; right button on the keypad turns the driver off.

; In the DC motor version, the motor connects between the MOT1 and MOT2 terminals.
; In the (bipolar) stepper motor version, one winding connects between the MOT1 and MOT2
; terminals while the second winding connects between the MOT3 and MOT4 terminals.
; For the stepper motor, this code will by default give a step rate of 10 to 90 steps/second.

; The board must be configured for the desired motor power voltage and source. 

; Implementation:
; An RTI interrupt at roughly 1mSec rate does the keypad polling and LCD display driving.
; This code is taken from the keypad and frequency meter examples in the Designing with
; Microcontrollers textbook. The subroutine getkey reads the keypad value and blocks if no
; key is available. There is a single byte buffer for the keypad value. The LCD display driver
; is interrupt driven so that the timing delays won't interfere with the control of the motors.
; The subroutines lcd_line1 and lcd_line2 position the cursor at the start of the first and
; second lines, respectively, while msg_out displays the 0-byte terminated character string
; passed to it in X, and putlcd displays the character passed to it in A. These functions will
; block only if the 32 byte buffer is filled, so typically an entire message can be queued for
; display without blocking.

; The main routine ("idle process") reads the key presses, saves the command in variables running, 
; reverse, and speed, then updates the LCD display by writing a new status message.

; In the DC motor version, a PWM channel is used to control the speed. Since the PWM generates a
; continuous pulse train without program intervention, the main routine has additional code to
; set the direction (by changing the H-Bridge inputs) and speed (by changing the pulse width).

; In the stepper motor version, a timer channel interrupt is used to advance the H-Bridge through the
; four phases. The LED row display shows the values for the driver enables (bits 7 and 6) and
; the motor drives (bits 3 to 0).


Following is the brief description of the pre-installed hardware test program:

; Test.asm --- Test program for Dragon12-Plus board, (c)2007, EVBplus.com
; Author:  Wayne Chu
; Function: This is the factory test program for checking on-board
; hardware only. It checks the DIP switch of port H, the 8 LEDs of
; port B,  the pushbuttons SW2(PH3)-SW5(PH0), and the LCD display.

; It scans the keypad and shows key numbers on 7-segment
; LED display while playing a song. It allows to
; adjust the trimmer pot to change LED display's brightness.
; New functions for the Dragon12-Plus board:
; The shifting speed of the 7-segment display is controlled by
; the photosensor Q1 (the darker ambient light, the faster shifting),
; The music playing tempo is controlled by the temp sensor U14,
; (the hotter temp, the slower tempo).

; Operating instructions:
; Before running the test program, place all individual DIP
; switches at upper (north) positions.
; 1. After running the test program, test each individual switch and
; see the corresponding  status on the PB0-PB7 LEDs.
; LCD display shows:  "PRESS SW2 & SW5 "
;                                "WHEN 8DIP-SWs UP"
; 2. Test the pushbutton switches PH0-PH3 only when all
; PH0-PH3 switches on the DIP switch are in the upper positions.
; LCD display shows:  "PRESS SW2 & SW5 "
;                                "WHEN 8DIP-SWs UP"
; 3. Set all individual DIP switches at the upper positions.
; Press the pushbutton switches SW2 and SW5 simultaneously, and the
; music should come out. The hex number 0 to F should be
; shifting out on the 7 segment LED display. The RX LED should be off
; and the TX LED should be on.
; LCD display shows:  "TESTING IR LIGHT"
;                                "NO OBJECT NEARBY"

; 4. Adjust the trimmer pot, the 7 segment LED display's brightness 
; should change. If you press any key on the keypad, the 7 segment
; display will display the key number that you pressed.
; LCD display shows:  "TESTING IR LIGHT"
;                                "NO OBJECT NEARBY"

; 5. Place your hand at 6" in the front of the IR transceiver,
; and to allow the IR light reflect. Both the RX LED and TX LED
; should be on, then observe the message on the LCD display.
; See IR_sen.asm for details.
; LCD display shows:  "TESTING IR LIGHT"
;                                " OBJECT DETECTED"

; 6. Place your hand over the photo sensor, the 7-segment display will
; shift faster.

; 7. Use a solder iron to touch the temp sensor (U14). Do not overheat it.
; As soon as the tempo of music gets slower remove the iron. 

; 8. Place a jumper wire from COL of the opto-coupler to +5V and another
; jumper wire from EMIT of the opto-coupler to the Logic Probe, then
; press key number 1 on the keypad, the Logic Probe LED will be lit.

; 9. Press key number 2 on the keypad the relay will be turned on.